Je cherche un spécialiste du midi

bonjour
je cherche un spécialiste de la transmission Midi sur clavier pour finaliser un projet de pédalier qui marche sur trois pattes
les notes déclenchées par les contact ne sont pas celle attendu et il ni a pas de logique a cela
est ce dans le programme ?
est ce dans le câblage ?
ou dans le module arduino ?

merci a tous

Je cherche un spécialiste du midi

posté dans le bar : c'est pour l'apéro ??? :rofl:

Je déplace la discussion...

1 Like

Vu qu'il n'y a d'infos ni sur l'un, ni sur l'autre on peut répondre au hasard.
Vous qui passez, faites une proposition:

  • Dans le programme
  • Dans le câblage
  • Dans le module Arduino
0 voters

Il manque la proposition "Autre" :smiley:

:rofl::rofl::rofl:

salut le message est tronqué
je recommence
j'ai un montage avec un clavier interrupteur . un arduino deux registre à décalage hc165
À chaque passage dans la boucle principale, l'Arduino vérifie l'état des pédales et, s'il y a eu un changement, il envoie un message MIDI de type "NoteOn" ou "NoteOff".
cependant le message midi n'est pas celui que l'on attend le fa# est un do et tous est pareil les notes ne correspondent pas
donc je voudrai communiquer avec un spécialiste du midi instrument
est ce dans le programme ?
est ce dans le câblage ?
ou dans le module arduino ? :slightly_smiling_face:
voila

le message a été tronqué :rofl:

dans le midi c'est le Ricard :slight_smile:

bon, on se moque un peu mais gentiment... :slight_smile:

ce que l'on essaye de vous faire comprendre c'est que sans votre code, sans schéma du montage et autres infos, on ne peut que sortir la boule de cristal..

lire les recommandations listées dans "Les bonnes pratiques du Forum Francophone”

Si des notes sont envoyées on peut imaginer que l'essentiel du système fonctionne. Peut-être le code a-t-il été écrit pour un pédalier organisé différemment.

  • si c'est juste un décalage de toutes les notes, il suffit de rajouter une constante (positive ou négative) au code envoyé par "NoteOn" ou "NoteOff".
  • si c'est n'importe quoi il va falloir, soit revoir le câblage, soit faire une table pour assigner correctement les codes aux touches

Mais avec le code et un schéma ce serait quand même plus facile de répondre

EDIT le sondage est clos :wink:

ok je comprend bien donc c'est le montage de Publié par [Yves Pelletier]

comme çà vous avez tout
il ya toujours des truc qui bug avec c'est montage
c'est intéressant du reste mais la je bloque vraiment
au plaisir de vous lire
merci les amis

Oui mais alors, les notes sont décalées ou dans n'importe quel ordre en fin de compte.

Bon, déjà, dans un forum, on ne demande pas "Il me faut un spécialiste" (sous entendu s'il n'y en a pas, ça ne vaut pas la peine de faire l'effort d'expliquer mon problème). On expose son problème, et si qqun veut répondre, il le fait.

Donc, ton programme ne se comporte pas comme prévu. La solution universelle est la suivante: il faut "l'instrumenter" en faisant afficher les valeurs importantes, à divers endroit du programme.
Par exemple, lorsqu'une touche est enfoncée, tu fais afficher le numéro de cette touche
Serial.print ( "Touche enfoncée = " ), Serial.println ( numero_touche );
en remplaçant bien sûr numero_touche par la variable adéquate.
Ensuite tu vérifies attentivement les valeurs affichées, pour localiser le problème.

merci
je suis un novice dans la programmation
il faut "l'instrumenter" ??? what ??
le programme si tu as vus affiche

Serial.begin(31250); //pour transmission MIDI
valeurs1avant = B11111111; // valeurs normales si aucune pédale n'est enfoncée,
// pour les 8 premieres pédales: do-do#-ré-ré#-mi-fa-fa#-sol
valeurs2avant = B11111; // valeurs normales si aucune pédale n'est enfoncée,
// pour les 5 dernieres pédales: sol#-la-la#-si-do

les deux registre à décalage hc165 ne donne pas les bonnes notes

je ne comprend pas le B11111111

Ca veut dire y ajouter des instruments de mesure (c'est une expression)
Ces instruments de mesure, ce sont des lignes de code comme celle que je t'ai montrée au post#13
A toi d'en mettre aux bons endroits pour "suivre" le déroulement de ton programme, et vérifier pas par pas que toutes le valeurs qu'il affiche sont OK, conforme à ce que tu attends.

En C, un nombre qui commence par "B" est exprimé en binaire (seulement des 0 et des 1)
B11111111, ça fait 8 1 à la suite, un octet plein de 1, ça vaut 255 en décimal et 0xFF en héxadécimal (on peut l'exprimer dans plusieurs "bases", c'est toujours le même nombre, 255)
B11111 vaut 0x1F, c-à-d 31 en décimal.

Disons uniquement dans le monde merveilleux d’Arduino :wink:

La norme à venir (que GCC supporte depuis longtemps) c’est une notation commençant par 0b, comme on a 0x pour l’hexadécimal

Le “machin” avec le grand B c’est une abomination qui provient de plusieurs centaines de macros pour définir ces nombres…


#define B0 0
#define B00 0
#define B000 0
#define B0000 0
#define B00000 0
#define B000000 0
#define B0000000 0
#define B00000000 0
#define B1 1
#define B01 1
#define B001 1
#define B0001 1
#define B00001 1
#define B000001 1
#define B0000001 1
#define B00000001 1
#define B10 2
#define B010 2
#define B0010 2
#define B00010 2
#define B000010 2
#define B0000010 2
#define B00000010 2
…

Cf https://github.com/arduino/ArduinoCore-avr/blob/9f8d27f09f3bbd1da1374b5549a82bda55d45d44/cores/arduino/binary.h

bonjour
ok je pige pas tous
néanmoins voici la config de ce qu'il fait
sortie des HC165
le 165 1 pin 14 re# devient sol#
pin 12 ré devient sol
pin 13 do# devient fa#
pin 14 do grave devient fa
pin 6 sol devient sol
pin 5 fa# devient si
pin 4 fa# devient la#
pin 3 mi devient la
il n'y a aucune cohérence ??
merci
j'ai mis le programme en lien sur le site du concepteur

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.