Sebagian besar dari Anda mungkin tahu skala C mayor:
C D E F G A B C
Skala utama dicirikan oleh interval antara not yang berdekatan, yang diukur dalam semitone adalah:
2 2 1 2 2 2 1
Dari interval ini, kita dapat membangun skala besar yang dimulai dengan nada apa pun ( kunci skala). 12 catatan dalam sistem tuning temperamen setara 12-nada kami adalah:
C C♯ D D♯ E F F♯ G G♯ A A♯ B
ekuivalen (menggantikan beberapa setara enharmonik ):
C D♭ D E♭ E F G♭ G Ab A B♭ B
dengan semitone antara setiap pasangan not yang berdekatan.
Setiap skala harus memiliki tujuh catatan secara berurutan, mulai dari kunci. Kalau tidak, Anda bisa memiliki dua catatan di baris pentagram yang sama, yang akan membingungkan. Jadi, dalam G # major / ionian, Anda memiliki F ## daripada G; musisi hanya akan melihat di mana di pentagram adalah catatan, mereka sudah mempelajari kecelakaan untuk setiap skala. Memang, dalam G # mayor , F ## diwakili dalam garis F ## tanpa disengaja, kebetulan berada di tanda tangan kunci - tetapi karena tanda tangan kunci itu membutuhkan 2 benda tajam untuk F, biasanya ini dinotasikan sebagai Ab mayor.
Menggeser 2 2 1 2 2 2 1
interval, kita sampai pada tujuh mode berbeda dari skala diatonis:
- Ionia :
2 2 1 2 2 2 1
- sesuai dengan skala utama - Dorian :
2 1 2 2 2 1 2
- Frigia :
1 2 2 2 1 2 2
- Lidia :
2 2 2 1 2 2 1
- Mixolydian :
2 2 1 2 2 1 2
- Aeolian :
2 1 2 2 1 2 2
- sesuai dengan skala minor alami, dan skala minor melodi ketika turun (ketika naik, skala minor melodi telah naik derajat 6 dan 7. Ada juga skala minor harmonik, dengan kenaikan derajat ke-7 dibandingkan dengan alami minor). - Orang lokal :
1 2 2 1 2 2 2
Jadi, tantangannya adalah untuk menulis program yang mengambil sebagai input (via stdin ) kunci dan mode dan output (melalui stdout ) skala yang sesuai. Beberapa test case ( stdin ( key
mode
) => stdout ( scale
)):
Input: Output:
C mixolydian => C D E F G A Bb
F mixolydian => F G A Bb C D Eb
G mixolydian => G A B C D E F
G# ionian => G# A# B# C# D# E# F##
Bb aeolian => Bb C Db Eb F Gb Ab
Referensi lebih lanjut: Ada
berapa kunci (utama dan kecil) yang ada? Mengapa?
Jawaban:
GolfScript, 96 karakter
Solusi Golfscript yang dapat diuji secara online .
Catatan: Seperti dalam contoh, tombol harus huruf besar sedangkan mode harus diberikan dalam huruf kecil.
Contoh:
sumber