Liên quan: Âm nhạc: những gì trong hợp âm này? , Ghi chú cho Tablature , Tạo tab guitar? , Dịch cặp số sang ghi chú guitar
Cho một ngón đàn guitar, xuất ra hợp âm mà nó đại diện. Bạn có thể sử dụng đầu vào và đầu ra tiêu chuẩn hoặc viết một hàm trả về một chuỗi.
Các ngón tay đầu vào sẽ được phân loại là một trong những hợp âm sau, được thể hiện như sau (nếu ghi chú gốc là C):
- bộ ba chính:
C
- bộ ba nhỏ:
Cm
- (chiếm ưu thế) thứ bảy:
C7
- thứ bảy nhỏ:
Cm7
Hợp âm có thể bị đảo ngược, vì vậy bạn không thể dựa vào nốt thấp nhất là gốc. Bạn cũng không thể dựa vào điều này là một ngón tay dễ dàng hoặc phổ biến trong thế giới thực. Tổng quát hơn, đầu ra của chương trình của bạn phải bỏ qua quãng tám của các nốt và coi tất cả các nốt tương ứng với cùng một nốt nhạc (nghĩa là A
) bằng nhau.
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ thắng.
định dạng đầu vào
Đầu vào là một chuỗi gồm 6 giá trị cho biết, đối với mỗi chuỗi của guitar 6 dây trong điều chỉnh tiêu chuẩn (EADGBE), sẽ băn khoăn chuỗi đó sẽ được phát. Nó cũng có thể chỉ ra rằng chuỗi này hoàn toàn không được phát. Băn khoăn "zeroth" còn được gọi là vị trí mở và số lượng băn khoăn đếm từ đó. Giả sử đàn guitar có 21 vị trí băn khoăn, sao cho vị trí băn khoăn cao nhất là số 20.
Ví dụ: đầu vào X 3 2 0 1 0
có nghĩa là đặt các ngón tay ở các vị trí sau trên đỉnh cổ của guitar:
(6th) |---|---|---|---|---
|-X-|---|---|---|---
|---|---|---|---|---
|---|-X-|---|---|---
|---|---|-X-|---|---
(1st) |---|---|---|---|---
và xâu chuỗi thứ 2 đến thứ 6. Nó tương ứng với tab ASCII này :
e |-0-|
B |-1-|
G |-0-|
D |-2-|
A |-3-|
E |---|
Bạn có một số linh hoạt trong việc chọn loại đầu vào bạn muốn: mỗi vị trí băn khoăn có thể được thể hiện dưới dạng một chuỗi hoặc một số. Các dây đàn guitar không được chơi thường được chỉ định bằng một X
, nhưng bạn có thể chọn một giá trị sentinel khác nếu điều đó giúp bạn dễ dàng hơn (chẳng hạn như -1
nếu bạn đang sử dụng số). Chuỗi 6 vị trí băn khoăn có thể được nhập vào dưới dạng bất kỳ danh sách, mảng hoặc loại chuỗi nào, một chuỗi được phân tách bằng dấu cách hoặc một lần nữa là đầu vào tiêu chuẩn, một lần nữa, bạn chọn.
Bạn có thể dựa vào đầu vào tương ứng với một trong 4 loại hợp âm được đề cập ở trên.
Vui lòng giải thích trong bài viết của bạn về hình thức đầu vào mà giải pháp của bạn thực hiện.
Định dạng đầu ra
Bạn phải quay lại hoặc in ra đầu ra tiêu chuẩn một chuỗi mô tả hợp âm mà ngón tay dành cho. Chuỗi này bao gồm hai phần được nối với nhau. Vấn đề vốn. Khoảng trống Trailing được cho phép.
Phần đầu tiên chỉ ra nốt gốc , một trong những A
, A#
/ Bb
, B
, C
, C#
/ Db
, D
, D#
/ Eb
, E
, F
, F#
/ Gb
, G
hay G#
/ Ab
. (Tôi đang sử dụng #
thay vì ♯
, và b
thay vì ♭
, để tránh yêu cầu Unicode.) Ghi chú rễ có thể được thể hiện mà không có một sắc nét hoặc căn hộ phải được thể hiện mà không có họ (không bao giờ đầu ra B#
, Fb
hoặc Dbb
); những cái không thể được thể hiện bằng một biểu tượng sắc nét hoặc phẳng (nghĩa là C#
hoặc Db
, nhưng không bao giờ B##
). Nói cách khác, bạn phải giảm thiểu số lượng tai nạn (vật sắc nhọn hoặc căn hộ) trong tên của ghi chú.
Phần thứ hai chỉ ra loại hợp âm, hoặc trống cho một bộ ba chính, m
cho một bộ ba nhỏ, 7
cho thứ bảy chiếm ưu thế, hoặc m7
cho thứ bảy thứ yếu. Vì vậy, một G chính là đầu ra đơn giản là G
, trong khi một D thứ bảy có thể là đầu ra là D#m7
hoặc Ebm7
. Nhiều ví dụ có thể được tìm thấy trong các trường hợp thử nghiệm ở cuối.
Lý thuyết & gợi ý
Nốt nhạc
Thang màu có 12 nốt trên mỗi quãng tám. Khi được điều chỉnh để tính khí bằng nhau, mỗi nốt này đều cách xa nhau so với các nước láng giềng 1 . Các nốt cách nhau 12 nửa cung (một quãng tám) được coi là cùng một nốt nhạc. Điều này có nghĩa là chúng ta có thể xử lý các ghi chú như số nguyên modulo 12, từ 0 đến 11. Bảy trong số này được đặt tên chữ cái 2 từ A đến G. Điều này không đủ để đặt tên cho tất cả 12 nốt, nhưng thêm các sửa lỗi vô tình: thêm một ( sắc nét) đến một ghi chú làm cho nó cao hơn một nửa cung và thêm ♭ (phẳng) làm cho nó thấp hơn một nửa cung.
Hợp âm
Một hợp âm là 2 hoặc nhiều nốt được chơi cùng nhau. Loại hợp âm phụ thuộc vào mối quan hệ giữa các nốt, có thể được xác định bởi khoảng cách giữa chúng. Một hợp âm có một nốt gốc, như đã đề cập trước đó. Chúng tôi sẽ coi ghi chú gốc là 0 trong các ví dụ này, nhưng điều này là tùy ý và tất cả những gì quan trọng trong thử thách này là khoảng cách giữa các ghi chú trong số học modulo. Sẽ luôn có một loại hợp âm duy nhất cho câu trả lời, đó là hợp âm ba hoặc hợp âm thứ bảy . Ghi chú gốc sẽ không phải luôn luôn là tần số thấp nhất; chọn ghi chú gốc sao cho bạn có thể mô tả hợp âm là một trong bốn loại hợp âm sau:
- Một bộ ba chính là một hợp âm với các nốt
0 4 7
. - Một bộ ba nhỏ là một hợp âm với các nốt
0 3 7
. - Một hợp âm thứ bảy chiếm ưu thế (hoặc chính / phụ) có các nốt
0 4 7 10
. - Một hợp âm thứ bảy (hoặc nhỏ / phụ) có các nốt
0 3 7 10
. 3
Điều chỉnh guitar
Điều chỉnh tiêu chuẩn trên đàn guitar 6 dây bắt đầu bằng E trên dây thấp nhất và sau đó nhấn các nốt trong các khoảng thời gian 5, 5, 5, 4, sau đó 5 nửa cung đi lên dây. Lấy E thấp nhất là 0, điều này có nghĩa là xâu chuỗi tất cả các dây của đàn guitar mang lại cho bạn các nốt được đánh số 0 5 10 15 19 24
, mà modulo 12 tương đương với 0 5 10 3 7 0
hoặc các nốt E A D G B E
.
Ví dụ làm việc
Nếu đầu vào của bạn là 0 2 2 0 0 0
, điều này tương ứng với các ghi chú E B E G B E
, do đó, chỉ E, B và G. Những hình thức này là hợp âm Em
, có thể được nhìn thấy bằng cách đánh số chúng với gốc là E, cho chúng ta 0 3 7
. (Kết quả sẽ giống nhau cho X 2 X 0 X 0
, hoặc 12 14 14 12 12 12
.)
Nếu đầu vào của bạn là 4 4 6 4 6 4
, đánh số này bằng gốc C root đưa ra 7 0 7 10 4 7
, hoặc 0 4 7 10
, vì vậy câu trả lời là C#7
(hoặc Db7
). Nếu đó là thay vào đó 4 4 6 4 5 4
, việc đánh số sẽ cho 7 0 7 10 3 7
, hoặc 0 3 7 10
, đó là C#m7
(hoặc Dbm7
).
Các trường hợp thử nghiệm
X 3 2 0 1 0 ---> C
0 2 2 0 0 0 ---> Em
X 2 X 0 X 0 ---> Em
4 4 6 4 6 4 ---> C#7 (or Db7)
4 4 6 4 5 4 ---> C#m7 (or Dbm7)
0 2 2 1 0 0 ---> E
0 0 2 2 2 0 ---> A
X X 4 3 2 2 ---> F# (or Gb)
3 2 0 0 0 1 ---> G7
X X 0 2 1 1 ---> Dm7
3 3 5 5 5 3 ---> C
4 6 6 5 4 4 ---> G# (or Ab)
2 2 4 4 4 5 ---> B7
0 7 5 5 5 5 ---> Am7
7 6 4 4 X X ---> B
8 6 1 X 1 3 ---> Cm
8 8 10 10 9 8 --> Fm
0 19 5 16 8 7 --> Em
6 20 0 3 11 6 --> A# (or Bb)
X 14 9 1 16 X --> G#m (or Abm)
12 14 14 12 12 12 --> Em
15 14 12 12 12 15 --> G
20 X 20 20 20 20 --> Cm7
X 13 18 10 11 10 --> A#7 (or Bb7)
1 bởi các logarit của tần số của chúng
2 hoặc, trong solfège , tên như do, re, mi . Trong thử thách này, sử dụng tên chữ cái.
3 Điều này cũng có thể được gọi là hợp âm thứ sáu lớn, với một sự lựa chọn khác nhau của ghi chú gốc. Trong thử thách này, gọi nó bằng tên thứ bảy nhỏ của nó.