Ingresso
Il simbolo di qualsiasi accordo triadico (vedi http://en.wikipedia.org/wiki/Chord_(music)#Triads ).
Produzione
Le note che costituiscono l'accordo dato.
Esempi
Ingresso: AM
Uscita:A C# E
Ingresso: C#m
Uscita:C# E G#
Ingresso: Db+
Uscita:C# F A
Ingresso: C0
Uscita:C D# F#
bonus
-50 se riesci anche a gestire gli accordi del settimo
-150 per suonare effettivamente il suono dell'accordo
-150 per l'uso di caratteri stampabili per mostrare come suonare l'accordo su un piano; esempio per AM
:
┌─┬─┬┬─┬─┬─┬─┬┬─┲┱─┬─┬─┲━┱┬─┲━┱─┬─┬┬─┬┬─┬─┐
│ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │
│ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │
│ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │
│ └┬┘└┬┘ │ └┬┘└┲┛┗┱┘ │ ┗┯┛└┲┛ ┃ └┬┘└┬┘└┬┘ │
│ │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
└──┴──┴──┴──┴──┺━━┹──┴──┴──┺━━┹──┴──┴──┴──┘
-100 per l'utilizzo di caratteri stampabili per mostrare come suonare l'accordo su una chitarra; esempio per AM
:
x o o o o o
┌───┬───┬───┬───┬───┐
│ │ │ │ │ │
├───┼───┼───┼───┼───┤
│ │ │ │ │ │
├───┼───┼───┼───┼───┤
│ │ █ █ █ │
├───┼───┼───┼───┼───┤
│ │ │ │ │ │
(vedi https://en.wikipedia.org/wiki/Box-drawing_character )
Regole
Il risultato deve essere un programma o uno script da riga di comando.
L'input e l'output possono essere in qualsiasi forma, purché seguano uno standard di notazione musicale.
Una rappresentazione di chitarra o piano è considerata valida se e solo se contiene le tre (triadiche) o quattro (settime) note richieste e nient'altro. La stessa nota può essere presente più volte nell'accordo.
Le librerie esterne non sono consentite, ad eccezione della generazione del suono (nel qual caso le direttive
#include
,import
... non vengono aggiunte al conteggio dei caratteri).Questo è il codice golf, vince il codice più corto!
Un po 'di teoria musicale ...
Nella moderna musica tonale occidentale, ogni ottava è composta da dodici note successive, spesso annotate:
A
A#
B
C
C#
D
D#
E
F
F#
G
G#
O:
La
La#
Si
Do
Do#
Re
Re#
Mi
Fa
Fa#
Sol
Sol#
In questo sistema, si considera che due note successive (ad esempio A
e A#
, oppure E
e F
) sono separati da un semitono. Inoltre, le note sono in qualche modo "looping": ciò che segue immediatamente G#
è A
.
Un accordo è costituito da poche (2, 3, 4, a volte più) note che "suonano bene insieme". Ad esempio, gli accordi triadici contengono tre note diverse e il settimo accordo contiene quattro note diverse.
Definiamo i quattro accordi triadici come:
Triade maggiore : contiene la radice dell'accordo (in questa domanda, la nota fornita come input), il terzo maggiore per la radice (4 semitoni più in alto della radice) e il quinto perfetto per la radice (7 semitoni in più della radice ); questo può essere simbolizzato 0-4-7
Triade minore , simboleggiata 0-3-7
Triade aumentata , simboleggiata 0-4-8
Triade ridotta , simboleggiata 0-3-6
Così, per esempio, se si vuole fare una triade C , ha osservato C
, CM
, Cmaj
, avrete bisogno di tre notare:
- 0: la radice , in questo caso a
C
- 4: il terzo minore , 4 semitoni più alti della radice; questo è un
E
- 7: il quinto perfetto , 7 semitoni più in alto della radice: a
G
Questo è ciò che il 0-4-7
, 0-3-7
, 0-4-8
e 0-3-6
notazioni utilizzate sopra media! Per il settimo accordo, usa il seguente schema:
Questo è tutto per oggi! Ora, stupiscimi con un codice straordinario ... Se hai qualche domanda, aggiungi alcuni commenti qui sotto.
Db+
è Db F A
non c'è nessun D # o G in là. È forse un po 'più teoria del necessario, le formule erano la parte importante. Se vuoi davvero includere tutti e otto gli accordi del settimo elencati in Wikipedia, devi specificare l'input. Presumo che l'output di arte ascii di piano e chitarra sia flessibile.