Entrada
El símbolo de cualquier acorde triádico (ver http://en.wikipedia.org/wiki/Chord_(music)#Triads ).
Salida
Las notas que constituyen el acorde dado.
Ejemplos
Entrada: AM
Salida:A C# E
Entrada: C#m
Salida:C# E G#
Entrada: Db+
Salida:C# F A
Entrada: C0
Salida:C D# F#
Bonos
-50 si también puedes lidiar con séptimos acordes
-150 para tocar realmente el sonido del acorde
-150 por usar caracteres imprimibles para mostrar cómo tocar el acorde en un piano; ejemplo para AM
:
┌─┬─┬┬─┬─┬─┬─┬┬─┲┱─┬─┬─┲━┱┬─┲━┱─┬─┬┬─┬┬─┬─┐
│ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │
│ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │
│ │ ││ │ │ │ ││ ┃┃ │ │ ┃ ┃│ ┃ ┃ │ ││ ││ │ │
│ └┬┘└┬┘ │ └┬┘└┲┛┗┱┘ │ ┗┯┛└┲┛ ┃ └┬┘└┬┘└┬┘ │
│ │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
└──┴──┴──┴──┴──┺━━┹──┴──┴──┺━━┹──┴──┴──┴──┘
-100 por usar caracteres imprimibles para mostrar cómo tocar el acorde en una guitarra; ejemplo para AM
:
x o o o o o
┌───┬───┬───┬───┬───┐
│ │ │ │ │ │
├───┼───┼───┼───┼───┤
│ │ │ │ │ │
├───┼───┼───┼───┼───┤
│ │ █ █ █ │
├───┼───┼───┼───┼───┤
│ │ │ │ │ │
(ver https://en.wikipedia.org/wiki/Box-drawing_character )
Reglas
El resultado debe ser un programa o script de línea de comandos.
La entrada y la salida pueden ser de cualquier forma, siempre que sigan un estándar de notación musical.
Una representación de guitarra o piano se considera válida si y solo si contiene las tres (triádicas) o cuatro (séptimas) notas requeridas y nada más. La misma nota puede estar presente varias veces en el acorde.
Las bibliotecas externas no están permitidas, excepto para la generación de sonido (en cuyo caso
#include
, lasimport
directivas , ... no se agregan al recuento de caracteres).Este es el código de golf, ¡el código más corto gana!
Un poco de teoría musical ...
En la música tonal occidental moderna, cada octava se compone de doce notas sucesivas, a menudo señaladas:
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#
En este sistema, consideramos que dos notas sucesivas (por ejemplo , A
y A#
, o E
y F
) están separadas por un semitono. Además, las notas son una especie de "bucle": lo que sigue inmediatamente G#
es A
.
Un acorde está constituido por unas pocas notas (2, 3, 4, a veces más) que "suenan bien juntas". Por ejemplo, los acordes triádicos contienen tres notas diferentes, y los acordes séptimos contienen cuatro notas diferentes.
Definamos los cuatro acordes triádicos como:
Tríada mayor : contiene la raíz del acorde (en esta pregunta, la nota dada como entrada), el tercio mayor para la raíz (4 semitonos más alto que la raíz) y el quinto perfecto para la raíz (7 semitonos más alto que la raíz ); esto se puede simbolizar 0-4-7
Tríada menor , simbolizada 0-3-7
Tríada aumentada , simbolizada 0-4-8
Tríada disminuida , simbolizada 0-3-6
Así, por ejemplo, si usted quiere hacer una tríada de Do mayor , señalado C
, CM
, Cmaj
, necesitará tres observó:
- 0: la raíz , en este caso un
C
- 4: el tercio menor , 4 semitonos más alto que la raíz; eso es un
E
- 7: el quinto perfecto , 7 semitonos más altos que la raíz: a
G
Esto es lo que el 0-4-7
, 0-3-7
, 0-4-8
y 0-3-6
anotaciones utilizadas por encima de media! Para los acordes séptimos, use el siguiente patrón:
¡Es todo por hoy! Ahora, sorpréndeme con un código increíble ... Si tienes alguna pregunta, agrega algunos comentarios a continuación.
Db+
es que Db F A
no hay D # o G allí. Tal vez sea un poco más de teoría de lo necesario, las fórmulas fueron la parte importante. Si realmente desea incluir los ocho acordes de séptima enumerados en wikipedia, debe especificar la entrada. Supongo que la producción de arte ascii del piano y la guitarra es flexible.