Die meisten von Ihnen kennen wahrscheinlich die C-Dur-Tonleiter:
C D E F G A B C
Die Hauptskala ist gekennzeichnet durch die Intervalle zwischen benachbarten Noten, die in Halbtönen gemessen werden:
2 2 1 2 2 2 1
Aus diesen Intervallen können wir jede Hauptskala konstruieren, die mit einer beliebigen Note beginnt (dem Schlüssel der Skala). Die 12 Noten in unserem 12-Ton-Stimmsystem für gleiches Temperament sind:
C C♯ D D♯ E F F♯ G G♯ A A♯ B
äquivalent (Ersetzen einiger Enharmonic-Äquivalente ):
C D♭ D E♭ E F G♭ G Ab A B♭ B
mit einem Halbton zwischen jedem Paar benachbarter Noten.
Jede Skala muss die sieben Noten in der richtigen Reihenfolge haben, beginnend mit der Tonart. Andernfalls könnten Sie zwei Noten in derselben Zeile des Pentagramms haben, was verwirrend wäre. In G # Dur / Ionian haben Sie also F ## anstelle von G; Musiker schauen sich nur an, wo im Pentagramm die Note ist, sie haben bereits die Vorzeichen für jede Skala gelernt. In G # Dur wird F ## in der Zeile von F ## ohne Vorzeichen dargestellt, die Vorzeichen befinden sich in der Schlüsselsignatur - aber da diese Schlüsselsignatur 2 Scharfe für F erfordern würde, wird dies normalerweise als Ab-Dur notiert.
Durch Verschieben der 2 2 1 2 2 2 1
Intervalle gelangen wir zu sieben verschiedenen Modi der diatonischen Skala:
- Ionisch :
2 2 1 2 2 2 1
- entspricht der Hauptskala - Dorian :
2 1 2 2 2 1 2
- Phrygisch :
1 2 2 2 1 2 2
- Lydian :
2 2 2 1 2 2 1
- Mixolydian :
2 2 1 2 2 1 2
- Äolisch :
2 1 2 2 1 2 2
- entspricht der natürlichen Moll-Tonleiter und der melodischen Moll-Tonleiter beim Abstieg (beim Aufstieg hat die melodische Moll-Tonleiter den 6. und 7. Grad angehoben. Es gibt auch eine harmonische Moll-Tonleiter mit einem erhöhten 7. Grad im Vergleich zur natürlichen geringer). - Locrian :
1 2 2 1 2 2 2
Die Herausforderung besteht also darin, ein Programm zu schreiben, das als Eingabe (über stdin ) einen Schlüssel und einen Modus verwendet und (über stdout ) die entsprechende Skala ausgibt . Einige Testfälle ( 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
Weitere Referenzen:
Wie viele (Dur- und Moll-) Tasten gibt es? Warum?
Antworten:
GolfScript, 96 Zeichen
Golfscript-Lösung, die online getestet werden kann .
Hinweis: Wie in den Beispielen muss der Schlüssel in Großbuchstaben angegeben werden, während der Modus in Kleinbuchstaben angegeben werden muss.
Beispiele:
quelle