Tuştan ve moddan ölçeklendirme


10

Çoğunuz C büyük skalasını biliyorsunuz:

C D E F G A B C

Büyük ölçek, yarı tonlarda ölçülen bitişik notalar arasındaki aralıklarla karakterizedir :

2 2 1 2 2 2 1

Bu aralıklardan, herhangi bir nottan başlayarak herhangi bir büyük ölçeği oluşturabiliriz ( ölçeğin anahtarı ). 12 tonlu eşit mizaç ayarlama sistemimizdeki 12 nota:

C C♯ D D♯ E F F♯ G G♯ A A♯ B

eşdeğer olarak (bazı enharmonik eşdeğerlerin yerine ):

C D♭ D E♭ E F G♭ G Ab A B♭ B

bitişik notaların her çifti arasında bir yarım ton vardır.

Her ölçeğin anahtardan başlayarak yedi nota sahip olması gerekir. Aksi takdirde, pentagramın aynı satırında kafa karıştırıcı olacak iki notunuz olabilir. Yani, G # major / ionian'da G yerine F ## var; müzisyenler sadece pentagramda notun nerede olduğuna bakacaklar, her ölçek için kazaları zaten öğrendiler. Gerçekten de, G # major'da , F ##, kazaralar olmadan F ## çizgisinde temsil edilir, kazalar anahtar imzasındadır - ancak bu anahtar imza F için 2 keskinlik gerektireceğinden, bu genellikle Ab majör olarak gösterilir.

2 2 1 2 2 2 1Aralıkları değiştirerek, diyatonik ölçeğin yedi farklı moduna ulaşıyoruz:

  • İyonya : 2 2 1 2 2 2 1- büyük skalaya karşılık gelir
  • Dorian :2 1 2 2 2 1 2
  • Frig :1 2 2 2 1 2 2
  • Lidya :2 2 2 1 2 2 1
  • Mixolydian :2 2 1 2 2 1 2
  • Aeolian : 2 1 2 2 1 2 2- azalan doğal minör skalaya ve melodik minör skalaya karşılık gelir (yükselirken, melodik minör skala 6. ve 7. dereceyi arttırır. minör).
  • Yer :1 2 2 1 2 2 2

Bu yüzden zorluk, girdi olarak ( stdin aracılığıyla ) bir anahtar ve bir mod alan ve ilgili ölçeği ( stdout aracılığıyla ) alan bir program yazmaktır . Bazı test durumları ( 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

Diğer referanslar:
Kaç tane (majör ve minör) anahtar var? Neden?


4
Örnekler, yukarıda açıklanmayan gösterimi içerir - yassı ve çift keskin. Sadece temel notaları ve basit anadalları kullanarak eşdeğer çıktı almak kabul edilebilir mi? (Değeri ne olursa olsun, benim tercihim "Hayır" demeniz ve spesifikasyonu biraz genişletmeniz - bu sorunun biraz gizli derinliğe sahip olması gibi görünüyor).
Peter Taylor

@PeterTaylor: Doğru. Umarım düzenleme yeterlidir. Çıktının yedi nota adı ve bunlara karşılık gelen kazalar ile gösterildiği gibi olmasını bekliyorum. Bu nispeten büyük bir programdır.
ninjalj

Yanıtlar:


7

GolfScript, 96 karakter

" "/~5<{+}*7%"v]nwm[{"=2*2base(;\(" #"@?]{.1>))["b""""#"..+]=+\[~@(@+@(7%65+\1$7%4%0>-]}7*;]" "*

Test edilebilir Golfscript çözüm çevrimiçi .

Not: Örneklerde olduğu gibi, anahtarın küçük harfle yazılması gerekirken, modun küçük harfle verilmesi gerekir.

Örnekler:

>C lydian
C D E F# G A B

>C mixolydian
C D E F G A Bb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.