mon idée était aussi de laisser l'utilisateur pointer un manche et en sortir des possibilités de noms d'accord
par exemple accord de C (donc simple majeur composé par I III majeur et V) sur la gamme chromatique de do... ou pour ma notation : 1, 5, 8
je pense que les guitaristes ont également besoin de voir un manche pointé selon une dominante et une gamme, pour les solos voire pour les bassistes par exemple
donc mon but ultime est de faire un programme pour les guitaristes avec les grilles d'accords, les positions de doigts, les gammes,... les tablatures (à terme)
je voudrais également pouvoir faire en sorte que tous les modules ouvre, sauve ou importe, exporte depuis des fichiers textes (facilement réutilisables) pour rester dans l'idée de l'open source.
du code, du code !!!
on y va ; j'ai commencé par faire 2 manches ;
je commence par le plus simple : le manche complet (vue de dessus et corde de basse en bas)
frm_manche.py
et ma class Guitare de mon module guitare.py :
NB : 2/3 choses : j'ai un pote guitariste qui ne s'est jamais fait à la notation internationale donc tout devrait fonctionner en européen (do à si) et en international (C à B)
bien sur, il faut pouvoir s'adapter à l'open tuning (mais ça vous avez déjà commencé à le prendre en considération)
... pour les notes, j'utilise des numéros de gamme.
j'ai également utilisé des tailles de cordes dont je prend les tirants qui me servent à représenter le diamètre des cordes pour bien distinguer les basses des aigus.
voilà, pour commencer... si l'idée vous intéresse je vous ferais parvenir plus de code que je nettoierai à l'occasion
je vais potasser vos codes plus profondément maintenant...]]>
Voir si il fonctionne délà
Pour l'utiliser, ça un peu changé depuis le screenshot, maintenant il faut juste cliquer sur un manche et un popup devrait apparaitre,
tu choisi l'accordage, l'accord et enfin sa variante et ça devrait s'afficher. (note : il n'y à que le premier et dernier accordage qui fonctionnent, les deux autres étaient vides dans le fichier que tu as fourni)]]>
#Pour moi c'est plus représentatif de ce dont je parle
#la frette est un "trait". La case est un espace. Du coup je préfère
#une liste de noms de frettes et une avec le nom des cordes.
#Peutêtre ai-je mal compris ?
C'est toi qui persistais à utiliser la variable case pour tracer des traits, c'est un de tes codes que j'ai remodifié...
Donc, oui, frettes est plus adapté.
#effectivement x et y resteront des entiers et non des chaînes dans les boucles for
A quoi t'attendais tu?
# x est un compteur et non une variable, c'est ça ?
Je ne sais pas ce que tu entends pas compteur exactement,
Je définirai compteur ainsi: variable qui à chaque itération s'incrémente de 1
comme x n'augmente pas de 1 à chaque itération, ce n'est pas un compteur, mais c'est une variable
x énumère les valeurs stockées dans la liste cordes,
x a successivement la nature des éléments stockés dans cordes, peu importe la nature de ceux qui s'y trouvent
La boucle for et while, c'est peu ou prou là même chose. Si tu connais déjà les valeurs de x, c'est juste plus explicite d’utiliser la première.
J'ai noté cordes et la boucle for ainsi pour mettre en évidence le fonctionnement,
mais tu remarquera que si tu veux changer l'espace entre les cordes, il te faudra changer plusieurs valeurs
Tu peux tout mettre dans une classe si tu veux,
tu remarquera que si tu remets tout dans une boucle (et en adaptant un peu), tu peux tracer aussi plusieurs diagrammes.
Une classe apportera de la clarté.
Tu dois aussi créer une fonction pour afficher les notes.
Tu peux commencer par l'un ou par l'autre, cherche des tutos tu en trouvera de nombreux, plus exhaustifs que tout ce que je pourrais t'écrire ici]]>
]]>
Ma version :
]]>
]]>
pour des cordes espacées de 50.]]>
]]>
Tes cordes doivent être espacées de espace_entre_corde, pas de espace_entre_frette, non?
Et tu as l'air de vouloir les placer verticalement, puisqu'elles sont de longueur longueur comme la hauteur de ton canvas
Mais dans ta boucle, elles sont horizontales]]>
]]>
Je dis "module" comme ça, pour dire "appartient à, si tu veux faire de la sémantique... En python tout est objet comme ça c'est réglé.
Je dis que : Canvas et Tk appartienent à tkinter
Tout ça c'est pareil
Sinon, les cordes et les cases sont toujours inversées dans les boucles, les cordes sont elles espacées de espace_entre_frette?
Regarde mes messages précédent, tout à déjà été dit]]>