Eingang
Das Symbol eines Triadenakkords (siehe http://en.wikipedia.org/wiki/Chord_(music)#Triads ).
Ausgabe
Die Noten, die den gegebenen Akkord bilden.
Beispiele
Eingabe: AM
Ausgabe:A C# E
Eingabe: C#m
Ausgabe:C# E G#
Eingabe: Db+
Ausgabe:C# F A
Eingabe: C0
Ausgabe:C D# F#
Boni
-50, wenn Sie auch mit Septakkorden umgehen können
-150 für das tatsächliche Spielen des Akkordklangs
-150 für die Verwendung druckbarer Zeichen, um das Spielen des Akkords auf einem Klavier zu zeigen; Beispiel für AM
:
┌─┬─┬┬─┬─┬─┬─┬┬─┲┱─┬─┬─┲━┱┬─┲━┱─┬─┬┬─┬┬─┬─┐
│ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │
│ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │
│ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │
│ └┬┘└┬┘ │ └┬┘└┲┛┗┱┘ │ ┗┯┛└┲┛ ┃ └┬┘└┬┘└┬┘ │
│ │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
└──┴──┴──┴──┴──┺━━┹──┴──┴──┺━━┹──┴──┴──┴──┘
-100 für die Verwendung druckbarer Zeichen, um das Spielen des Akkords auf einer Gitarre zu zeigen; Beispiel für AM
:
x o o o o o
┌───┬───┬───┬───┬───┐
│ │ │ │ │ │
├───┼───┼───┼───┼───┤
│ │ │ │ │ │
├───┼───┼───┼───┼───┤
│ │ █ █ █ │
├───┼───┼───┼───┼───┤
│ │ │ │ │ │
(siehe https://en.wikipedia.org/wiki/Box-drawing_character )
Regeln
Das Ergebnis muss ein Befehlszeilenprogramm oder ein Skript sein.
Die Ein- und Ausgabe kann in beliebiger Form erfolgen, sofern sie einem Musiknotationsstandard entspricht.
Eine Gitarren- oder Klavierdarstellung gilt nur dann als gültig, wenn sie die drei (Triade) oder vier (Siebte) erforderlichen Noten enthält und sonst nichts. Dieselbe Note kann mehrmals im Akkord enthalten sein.
Externe Bibliotheken sind nicht zulässig, mit Ausnahme der Klangerzeugung (in diesem Fall werden die Direktiven
#include
,import
... nicht zur Zeichenanzahl hinzugefügt).Dies ist Codegolf, der kürzeste Code gewinnt!
Ein bisschen Musiktheorie ...
In der modernen westlichen Klangmusik besteht jede Oktave aus zwölf aufeinanderfolgenden Noten, die häufig notiert werden:
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
Oder:
La
La#
Si
Do
Do#
Re
Re#
Mi
Fa
Fa#
Sol
Sol#
In diesem System werden zwei aufeinanderfolgende Noten (z. B. A
und A#
, oder E
und F
) durch einen Halbton getrennt. Auch die Noten sind eine Art "Schleife": Was unmittelbar folgt, G#
ist A
.
Ein Akkord besteht aus ein paar (2, 3, 4, manchmal mehr) Noten, die "zusammen gut klingen". Zum Beispiel enthalten triadische Akkorde drei verschiedene Noten und siebente Akkorde vier verschiedene Noten.
Definieren wir die vier triadischen Akkorde als:
Dur-Dreiklang : Enthält den Grundton des Akkords (in dieser Frage die als Eingabe angegebene Note), das große Drittel für den Grundton (4 Halbtöne höher als der Grundton) und das perfekte Fünftel für den Grundton (7 Halbtöne höher als der Grundton) ); Dies kann durch 0-4-7 symbolisiert werden
Kleine Triade , symbolisiert 0-3-7
Erweiterte Triade , symbolisiert 0-4-8
Verminderte Triade , symbolisiert 0-3-6
So zum Beispiel, wenn Sie einen machen wollen C - Dur - Dreiklang , bemerkt C
, CM
, Cmaj
, müssen Sie drei fest:
- 0: die Wurzel , in diesem Fall a
C
- 4: das kleine Drittel , 4 Halbtöne höher als die Wurzel; das ist ein
E
- 7: das perfekte Fünftel , 7 Halbtöne höher als die Wurzel: a
G
Dies ist , was die 0-4-7
, 0-3-7
, 0-4-8
und 0-3-6
Notationen über die mittleren verwendet! Verwenden Sie für die siebten Akkorde das folgende Muster:
Das war `s für heute! Überraschen Sie mich jetzt mit erstaunlichem Code ... Wenn Sie Fragen haben, fügen Sie unten einige Kommentare hinzu.
Db+
gibt Db F A
es kein D # oder G drin. Das ist vielleicht ein bisschen mehr Theorie als nötig, die Formeln waren der wichtige Teil. Wenn Sie wirklich alle acht der in Wikipedia aufgelisteten siebten Akkorde einschließen möchten, sollten Sie die Eingabe angeben. Ich gehe davon aus, dass die Ascii-Art-Ausgabe von Klavier und Gitarre flexibel ist.