Programme donnant le nom d'un accord

Rappel du dernier message de la page précédente :
pouzzler
C'est une idée, mais ce n'est absolument pas le but du programme. Comme indiqué, le but du programme est de s'amuser sur le diagramme, et d'obtenir le nom des accords que l'on a potentiellement exprimé en jouant sur le diagramme. Si on a rentré du n'importe quoi, on n'obtient rien, c'est prévu comme ça.

À moins que ce que tu suggère soit que lorsque l'on a plusieurs accords possibles comme par exemple pour un dim7, il doive faire.. je ne sais pas très bien quoi - quand il y a plusieurs accords possibles, il les indique déjà tous avec les notes dans le bon ordre, comme ceci par exemple :

G B♭ D♭ E 1 ♭3 ♭5 ♭♭7 Gdim7
C♯ E G B♭ 1 ♭3 ♭5 ♭♭7 C♯dim7
A♯ D♭ E G 1 ♭3 ♭5 ♭♭7 A♯dim7
E G B♭ D♭ 1 ♭3 ♭5 ♭♭7 Edim7


Captcha : EBEMO... manque le L
skynet
  • skynet
  • Vintage Ultra utilisateur
    ModérateurModérateur
  • MP
Ok, mais si tu rentres un G tout bête:

320003

Ok!

Tu lui colles simplement add9:

320203

Et il ne trouve pas.


Autre piste: on peut considérer que la fondamentale est jouée à la basse.
Afin de moins confondre C6 et Am7.
Bonjour les trolls
pouzzler
Si j'ai saisi ce que sont les accords add, c'est un accord "normal", auquel on rajoute une note qui ne fait partie d'aucun accord "normal" contenant déjà les notes de cet accord. Par exemple, le fameux accord Hendrix.

C'est en prévision, ça nécessite quelques modifications du code, mais ça viendra.
skynet
  • skynet
  • Vintage Ultra utilisateur
    ModérateurModérateur
  • MP
pouzzler a écrit :
Si j'ai saisi ce que sont les accords add, c'est un accord "normal", auquel on rajoute une note qui ne fait partie d'aucun accord "normal" contenant déjà les notes de cet accord. Par exemple, le fameux accord Hendrix.

C'est en prévision, ça nécessite quelques modifications du code, mais ça viendra.


Tu ajoutes une note à T 3 5 : c'est add (Gadd9)

Si cette note remplace la tierce: c'est "sus" (Gsus4)

S'il y a aussi la 7, c'est 7+6, ou 7+4, même 7+2 (G19, G11 ou G9)
Bonjour les trolls
skynet
  • skynet
  • Vintage Ultra utilisateur
    ModérateurModérateur
  • MP
Il ne semble pas connaître non plus:

A7.5b : 5X564X

A7.5# : 5X566X

D'ailleurs, là tu vas nous trouver relous après avoir été aussi tatillons sur la notation des altérations:

Il est très courant que ces accords soient A11# ou A13m et qu'on les chiffre comme ça.
Bonjour les trolls
pouzzler
Il ne connait ni les soustractions, ni les ajouts de notes, et encore moins les modifications (b5 accidentel de ta formule 1 3 b5 b7).
C'est un peu plus compliqué à programmer élégamment et de façon facile à maintenir dans le futur. C'est ce que j'essaie de faire aujourd'hui.

Il y a deux façons de définir les chose, en extension, et en intension : en extension, on donne la liste de chaque chose possible, par exemple (rouge, bleu, jaune, orange, orange foncé, orange clair,...); en intension on donne une formule qui permet de calculer chaque chose possible, par exemple couleur = (x% vert + y% rouge + z% bleu) avec x+y+z = 100.

Concernant les soustractions et ajouts de notes, j'ai ma petite idée, mais concernant les modifications un peu moins. J'ai l'impression que ça va le plus fréquemment être b5 au lieu de 5, non? Et donc qu'il suffit que je définisse une petite règle, plutôt que de reécrire chaque accord de la liste une deuxième fois en remplaçant 5 par b5.

Ou bien au contraire il y a de nombreuses altérations possibles?

Ou bien, le pire de tout, c'est une règle double : on fait une altération (par exemple b5), mais en aucun cas sur n'importe quel accord, juste sur une liste restreinte (par exemple 7 et 9), à définir... de quelle façon?

Merci,
Seb
skynet
  • skynet
  • Vintage Ultra utilisateur
    ModérateurModérateur
  • MP
pouzzler a écrit :

Ou bien au contraire il y a de nombreuses altérations possibles?


Une seule note ne bouge pas: la fondamentale. Et elle donne son nom à l'accord.
Bonjour les trolls
pouzzler
Merci Constasio, je vais y jeter un oeil.

Je n'ai pas eu le temps de bosser plus, juste quelque lignes de code pour gérer les instruments à cordes doublées correctement : une touche sur l'une des deux cordes = une touche sur les deux.
skynet
  • skynet
  • Vintage Ultra utilisateur
    ModérateurModérateur
  • MP
pouzzler a écrit :
Il ne connait ni les soustractions, ni les ajouts de notes, et encore moins les modifications (b5 accidentel de ta formule 1 3 b5 b7).
C'est un peu plus compliqué à programmer élégamment et de façon facile à maintenir dans le futur. C'est ce que j'essaie de faire aujourd'hui.

Il y a deux façons de définir les chose, en extension, et en intension : en extension, on donne la liste de chaque chose possible, par exemple (rouge, bleu, jaune, orange, orange foncé, orange clair,...); en intension on donne une formule qui permet de calculer chaque chose possible, par exemple couleur = (x% vert + y% rouge + z% bleu) avec x+y+z = 100.

Concernant les soustractions et ajouts de notes, j'ai ma petite idée, mais concernant les modifications un peu moins. J'ai l'impression que ça va le plus fréquemment être b5 au lieu de 5, non? Et donc qu'il suffit que je définisse une petite règle, plutôt que de reécrire chaque accord de la liste une deuxième fois en remplaçant 5 par b5.

Ou bien au contraire il y a de nombreuses altérations possibles?

Ou bien, le pire de tout, c'est une règle double : on fait une altération (par exemple b5), mais en aucun cas sur n'importe quel accord, juste sur une liste restreinte (par exemple 7 et 9), à définir... de quelle façon?

Merci,
Seb


Je ne sais pas. Sur un accord de 4 notes: 1 3 5 7

Fondamentale donne son nom à l'accord.

Tierce peut être majeure (2 tons) ou mineure (1.5ton)

Quinte peut être juste (3.5 tons), diminuée [5b ou 5-] (3 tons) ou augmentée [5# ou 5+] (4 tons)

Septième peut être mineure [7] (5 tons) ou majeures [7M ou maj7] [5.5 tons].
Bonjour les trolls
Salut Pouzzler,

Je suis allé voir ton programme, ça a l'air plutôt bien parti, bravo !

Allez, je me lance dans une ou deux suggestions qui me viennent à première vue :

Pour l'ergonomie :
- Pourquoi pas une petite couche de graphisme sur le manche, même juste un fond ? Ca le rendrait plus agréable assez facilement je pense. Je rendrais aussi les cases plus rectangulaire, c'est un peu déroutant qu'elles soient carrées
- J'aurais mis les boutons "tuners" des cordes dans l'autre sens (- à gauche et + à droite), je trouve ça pas très naturel comme ça. Et tu peux aussi les rendre plus explicites, ils apparaissent sous forme de petit carré, on ne voit pas trop à quoi ils servent au début
- Il y a un truc bizarre avec les note length et spacing : le spacing dépend de la length, c'est pas normal, si ? J'aurais mis tout simplement MIDI.noteOn(0, realNotes[n], 127, spacing*n); et MIDI.noteOff(0, realNotes[n], spacing*n + length); (lignes 321 et 322) Si les notes se chevauchent c'est pas grave, c'est normal si length>spacing, pas de souci sémantique pour l'utilisateur. Mais je suppose que tu as une bonne raison d'avoir fait comme tu as fait.
- Serait-il possible d'avoir de l'aide un peu plus détaillé (et en français ?) pour chaque commande. Bon je sais qu'elles sont assez simples mais ça pourrait être pas mal (par exemple j'ai toujours pas compris le rôle du bouton "coursed instrument" qui lie les cordes par deux)
- il y a un petit souci de mis en page des boutons ".tuners" en dessous d'une certaine largeur de fenêtre. Peut-être qu'un min-width de 20px environ sur #controls ferait l'affaire. bon je sais c'est vraiment du détail


Au niveau de la reconnaissance des accords :
- pourquoi ne pas intégrer les intervalles ? si tu rajoutes tout simplement "2de mineure": ["1", "2b"], "2de majeure": ["1", "2"], "Tierce mineure": ["1", "3b"], "Tierce majeure": ["1", "3"], etc... à part pour le "1","5" qui reste un power chord, of course yeah
- J'ai voulu faire un E79# (x7678x) mais il ne le reconnait pas parce qu'il veut absolument une quinte... Peux-tu déclarer plusieurs arrangement pour chaque nom ? ici par exemple "7♯9": [["1", "3", "5", "♭7", "♯9"],["1", "3", "♭7", "♯9"]]. Ou peut-être si possible traiter la quinte à part, elle est quand même souvent omise dans les accords 7.
- Je pense que ça vient du même souci, mais 023100 ne me donne pas E9b (il veut une septième). Frustrant pour un flamenquiste comme moi ! En fait pour les accords 9, et 13, si tu enlèves la b7 dans la variable ça devrait pas poser de problème, si il y a une 9eme ça suffit à dire qu'il est 9, même si il n'y a pas de b7 (même si officiellement un accord 9 ou 13 contient obligatoirement une b7...)
- Un accord 13 veut absolument une 9. Même si c'est vrai officiellement (je suis pas sûr), c'est dommage pour le chiffrage par exemple de E713 en x79799 ou 076709, on s'attend à E713 ou E13


Voilà pour quelques pistes pour améliorer ton programme, tu en fais ce que tu veux bien sûr !

Je suis moi aussi en train de faire un programme en ligne pour les guitaristes
Je suis d'ailleurs parti à peu près de la même idée que toi, mais dans l'autre sens : faire trouver au programme les notes d'un accord à partir de son nom !
Le truc a beaucoup évolué depuis, c'est devenu une sorte de séquenceur orienté pour travailler la guitare, et maintenant le resultat est assez sympatique.
Je vous invite à aller voir si ça vous intéresse, le mieux est d'aller dans l'onglet "ouvrir un morceau" pour écouter ceux qui ont déjà été faits, et rajouter les votres si ça vous branche !
Voilà le lien :
http://services.emerit.net/jea(...).html

Je pense que je vais aussi faire un sujet pour avoir quelques retours et trouver la motivation pour en faire quelque chose d'abouti !

Encore bravo pour ton programme, continue-le !
yanmarqui
pouzzler
Salut, je vois un mur de texte, je comprends son sens global, et je t'en remercie. Là j'ai pas trop le temps, mais promis, je fais une réponse plus complète dès que possible!

A+
pouzzler
* Pourquoi pas une petite couche de graphisme sur le manche

Pourquoi pas en effet.

* Je rendrais aussi les cases plus rectangulaire

Remplacé une variable unique par deux variables.

*J'aurais mis les boutons "tuners" des cordes dans l'autre sens et tu peux aussi les rendre plus explicites.

Je viens de les inverser. Ils sont censés avoir le caractère unicode flêche vers le haut et flêche vers le bas, mais ça bugge.

*Il y a un truc bizarre avec les note length et spacing mais je suppose que tu as une bonne raison d'avoir fait comme tu as fait.

La bonne raison c'est que le meilleur navigateur de tous les temps était Opéra 12.16, et que tant que la majeure partie du web fonctionne dessus, je n'en change pas, et que ça marchait comme ça pour moi. Après vérification sur d'autres browsers, j'ai changé ça comme tu le demandes.

*Serait-il possible d'avoir de l'aide un peu plus détaillé, par exemple j'ai toujours pas compris le rôle du bouton "coursed instrument"

Je viens de traduire l'UI et j'ai rajouté l'aide vite vu. Elle a un petit bug (2 clics au lieu d'un à la mise en route), et est incomplète. Un "course", c'est deux cordes liées (c'est surtout utile pour la guitare 12 cordes, par exemple, qui le coche d'office quand on la sélectionne).

*Il y a un petit souci de mis en page des boutons ".tuners".

Fait. Merci!

*Au niveau de la reconnaissance des accords [...]

Beaucoup de travail en prévision, car je me demande jusqu'à quel point il ne devrait pas proposer quelque chose quelque soient les notes sélectionnées, même un truc genre C, D, D#. Le moteur est donc à revoir, et va être vachement plus compliqué, donc pour l'instant mon cerveau fume, c'est tout.

Concernant ton site, dès que je chope un sujet ou mettre mes commentaires, je le fais.

Merci encore!
Cool !

du coup les divs dans #controls devraient toutes avoir height:cellH au lieu d'une margin-top pour qu'elles soient bien alignées avec leurs cordes, ça a l'air de le faire.
Il faut aussi ajouter 12 aux notes des instruments, on dirait qu'il leur manquent tous une octave (la basse n'a même pas les 5 notes les plus graves sur la corde de mi !)

Pour la reconnaissance des accords...
effectivement il faudrait réfléchir à une autre approche qui pourrait être plus souple, et qui proposerait plus de solutions.
Une idée par exemple serait, pour chaque note différente jouée, de "superposer" les autres pour reconstruire un nouvel arrangement et d'analyser ce nouvel accord. Ou quelque chose du genre...
Parce qu'après tout, un do majeur7 est une sorte de mi mineur13b ou de la mineur9. Pourquoi ne pas proposer ces chiffrages, quitte à les classer dans l'ordre croissant de tarabiscotage ?
Tu pourrais même analyser les notes en ayant enlevé la plus grave (disons que tu obtiens do mineur), et dire que c'est un do mineur basse de "la plus grave" (si la plus grave n'est pas "do" évidemment). Enfin c'est surement une mauvaise idée, mais un truc dans ce goût-là pourrait se tenter !


J'ai créé un sujet sur mon programme, merci pour les retours !

En ce moment sur théorie...