Connexes: Musique: qu'est-ce que cet accord? , Notes to Tablature , Générer des tablatures de guitare? , Traduire des paires de numéros en notes de guitare
Étant donné un doigté de guitare, sortez l'accord qu'il représente. Vous pouvez utiliser une entrée et une sortie standard ou écrire une fonction qui renvoie une chaîne.
Les doigtés d'entrée seront classables comme l'un des accords suivants, à exprimer comme suit (si la note fondamentale était C):
- triade majeure:
C
- triade mineure:
Cm
- (dominant) septième:
C7
- septième mineure:
Cm7
L'accord peut être inversé, vous ne pouvez donc pas vous fier à la note la plus grave comme étant la racine. Vous ne pouvez pas non plus compter sur le fait qu'il s'agit d'un doigté facile ou courant dans le monde réel. Plus généralement, la sortie de votre programme doit ignorer les octaves des hauteurs et traiter tous les hauteurs correspondant à la même note de musique (c'est-à-dire A
) comme égales.
Il s'agit de code-golf , donc le code le plus court en octets l'emporte.
Format d'entrée
L'entrée est une série de 6 valeurs qui indiquent, pour chaque corde d'une guitare à 6 cordes en accordage standard (EADGBE), à quelle frette cette corde sera jouée. Cela pourrait également indiquer que la chaîne n'est pas jouée du tout. La frette "zeroth" est également connue comme la position ouverte, et le nombre de frettes compte à partir de là. Supposons que la guitare a 21 positions de frettes, de sorte que la position de frette la plus élevée soit le numéro 20.
Par exemple, l'entrée X 3 2 0 1 0
signifie placer ses doigts aux positions suivantes en haut du manche de la guitare:
(6th) |---|---|---|---|---
|-X-|---|---|---|---
|---|---|---|---|---
|---|-X-|---|---|---
|---|---|-X-|---|---
(1st) |---|---|---|---|---
et gratter les 2e à 6e cordes. Il correspond à cet onglet ASCII :
e |-0-|
B |-1-|
G |-0-|
D |-2-|
A |-3-|
E |---|
Vous avez une certaine flexibilité dans le choix du type d'entrée que vous souhaitez: chaque position de frette peut être exprimée sous la forme d'une chaîne ou d'un nombre. Les cordes de guitare qui ne sont pas jouées sont généralement indiquées par un X
, mais vous pouvez choisir une valeur sentinelle différente si cela vous facilite la tâche (comme -1
si vous utilisez des chiffres). La série de 6 positions de frettes peut être entrée comme n'importe quel type de liste, de tableau ou de séquence, une seule chaîne séparée par des espaces ou comme entrée standard — encore une fois, votre choix.
Vous pouvez compter sur l'entrée correspondant à l'un des 4 types d'accords mentionnés ci-dessus.
Veuillez expliquer dans votre message quelle forme de saisie prend votre solution.
Format de sortie
Vous devez soit retourner soit imprimer sur la sortie standard une chaîne décrivant l'accord auquel le doigté est destiné. Cette chaîne est composée de deux parties concaténées ensemble. La capitalisation est importante. Les espaces de fin sont autorisés.
La première partie indique la note fondamentale , l' un des A
, A#
/ Bb
, B
, C
, C#
/ Db
, D
, D#
/ Eb
, E
, F
, F#
/ Gb
, G
ou G#
/ Ab
. (J'utilise au #
lieu de ♯
, et au b
lieu de ♭
, pour éviter d' exiger Unicode.) Notes fondamentales qui peuvent être exprimées sans dièse ou bémol doit être exprimé sans eux (jamais sortie B#
, Fb
ou Dbb
); ceux qui ne peuvent pas être exprimés avec un seul symbole pointu ou plat (c'est-à-dire soit C#
ou Db
, mais jamais B##
). En d'autres termes, vous devez minimiser le nombre d'accidents (objets tranchants ou plats) dans le nom de la note.
La deuxième partie indique le type d'accord, soit vide pour une triade majeure, m
pour une triade mineure, 7
pour la septième dominante, soit m7
pour la septième mineure. Ainsi, un sol majeur est G
sorti simplement comme , tandis qu'un septième mineur en D♯ peut être sorti comme D#m7
ou Ebm7
. Plus d'exemples peuvent être trouvés dans les cas de test à la fin.
Théorie et astuces
Notes de musique
La gamme chromatique a 12 hauteurs par octave. Lorsqu'il est réglé sur un tempérament égal, chacun de ces emplacements est également éloigné de ses voisins 1 . Les hauteurs distantes de 12 demi-tons (une octave) sont considérées comme la même note de musique. Cela signifie que nous pouvons traiter les notes comme des entiers modulo 12, de 0 à 11. Sept d'entre eux ont des noms de lettre 2 de A à G.Ce n'est pas suffisant pour nommer les 12 hauteurs, mais l'ajout de corrections accidentelles: ajout d'un ♯ ( forte) à une note la rend un demi-ton plus haut, et l'ajout d'un ♭ (plat) la rend un demi-ton plus basse.
Accords
Un accord est composé de 2 notes ou plus jouées ensemble. Le type d'accord dépend des relations entre les notes, qui peuvent être déterminées par les distances entre elles. Un accord a une note fondamentale, comme mentionné précédemment. Nous traiterons la note fondamentale comme 0 dans ces exemples, mais c'est arbitraire, et tout ce qui compte dans ce défi est la distance entre les notes en arithmétique modulo. Il y aura toujours un type d'accord unique pour la réponse, soit une triade ou un septième accord . La note fondamentale ne sera pas toujours la hauteur de fréquence la plus basse; choisissez la note fondamentale de telle sorte que vous puissiez décrire l'accord comme l'un des quatre types d'accord suivants:
- Une triade majeure est un accord avec les notes
0 4 7
. - Une triade mineure est un accord avec les notes
0 3 7
. - Un accord de septième dominant (ou majeur / mineur) a les notes
0 4 7 10
. - Un accord de septième mineur (ou mineur / mineur) a les notes
0 3 7 10
. 3
Accordage de guitare
L'accord standard sur une guitare à 6 cordes commence par E sur la corde la plus basse, puis frappe des notes à des intervalles de 5, 5, 5, 4, puis 5 demi-tons en remontant les cordes. En prenant le plus bas E comme 0, cela signifie que gratter toutes les cordes de la guitare vous donne des hauteurs numérotées 0 5 10 15 19 24
, auxquelles le modulo 12 est équivalent 0 5 10 3 7 0
, ou les notes E A D G B E
.
Exemples travaillés
Si votre entrée est 0 2 2 0 0 0
, cela correspond aux notes E B E G B E
, donc juste E, B et G. Ceux-ci forment l'accord Em
, qui peut être vu en les numérotant avec la racine comme E, nous donnant 0 3 7
. (Le résultat serait le même pour X 2 X 0 X 0
, ou 12 14 14 12 12 12
.)
Si votre entrée est 4 4 6 4 6 4
, leur numérotation avec une racine de C♯ donne 7 0 7 10 4 7
, ou 0 4 7 10
alors la réponse est C#7
(ou Db7
). Si c'était le cas 4 4 6 4 5 4
, la numérotation donnerait 7 0 7 10 3 7
, ou 0 3 7 10
, qui est C#m7
(ou Dbm7
).
Cas de test
X 3 2 0 1 0 ---> C
0 2 2 0 0 0 ---> Em
X 2 X 0 X 0 ---> Em
4 4 6 4 6 4 ---> C#7 (or Db7)
4 4 6 4 5 4 ---> C#m7 (or Dbm7)
0 2 2 1 0 0 ---> E
0 0 2 2 2 0 ---> A
X X 4 3 2 2 ---> F# (or Gb)
3 2 0 0 0 1 ---> G7
X X 0 2 1 1 ---> Dm7
3 3 5 5 5 3 ---> C
4 6 6 5 4 4 ---> G# (or Ab)
2 2 4 4 4 5 ---> B7
0 7 5 5 5 5 ---> Am7
7 6 4 4 X X ---> B
8 6 1 X 1 3 ---> Cm
8 8 10 10 9 8 --> Fm
0 19 5 16 8 7 --> Em
6 20 0 3 11 6 --> A# (or Bb)
X 14 9 1 16 X --> G#m (or Abm)
12 14 14 12 12 12 --> Em
15 14 12 12 12 15 --> G
20 X 20 20 20 20 --> Cm7
X 13 18 10 11 10 --> A#7 (or Bb7)
1 par les logarithmes de leurs fréquences
2 ou, au solfège , des noms comme do, re, mi . Dans ce défi, utilisez les noms de lettres.
3 Cela pourrait aussi être appelé un accord majeur de sixième, avec un choix différent de note fondamentale. Dans ce défi, appelez-le par son septième nom mineur.