Midi contrôleur (encore un)
- 10 réponses
- 3 participants
- 515 vues
- 5 followers
frascal
143

Posteur·euse AFfiné·e
Membre depuis 11 ans
10 Avril 2023 à 19:10Midi contrôleur (encore un)
#1
Bonjour,
Comme le nom l'indique, je voudrais faire un contrôleur midi avec (dans l'idéal) 26 encodeurs et 9 boutons.
Comme je possède une mega r2, je me suis dis que ça devrais aller.
Cela fait un bon moment que je cherche sur internet, sur le forum arduino, sur github etc et pour l'instant je trouve pas le code qui correspond à mes attente.
Soit, je sort avec une prise din (midi), et la carte fonctionne sur l'exemple de base (arduino ide) mais je ne trouve pas de suivi d'information (les lignes de commandes pour les encodeurs etc).
Soit (et dans la plupart des cas) je trouve des codes mais dans ce cas cela fonctionne uniquement avec des cartes type Léonardo ou teensy ?
J'ai cru comprendre que l'on pouvais flasher une carte avr (uno, méga) pour pouvoir utiliser les bibliothèque midi et que surtout ça à l'air plus simple.
Si on flashe une carte, on peut plus téléverser du code dessus ?
Je suis désolé, mais je suis un peux perdu dans cette environnement et j'aimerais partir sur ce projet de la façon la plus saine possible, donc si c'est plus simple de partir sur une carte teensy 4.1 (elle a suffisamment d'entrées je crois) et bien soit. c'est juste dommage de ne pas se servir de la méga
Merci pour vos retour
Comme le nom l'indique, je voudrais faire un contrôleur midi avec (dans l'idéal) 26 encodeurs et 9 boutons.
Comme je possède une mega r2, je me suis dis que ça devrais aller.
Cela fait un bon moment que je cherche sur internet, sur le forum arduino, sur github etc et pour l'instant je trouve pas le code qui correspond à mes attente.
Soit, je sort avec une prise din (midi), et la carte fonctionne sur l'exemple de base (arduino ide) mais je ne trouve pas de suivi d'information (les lignes de commandes pour les encodeurs etc).
Soit (et dans la plupart des cas) je trouve des codes mais dans ce cas cela fonctionne uniquement avec des cartes type Léonardo ou teensy ?
J'ai cru comprendre que l'on pouvais flasher une carte avr (uno, méga) pour pouvoir utiliser les bibliothèque midi et que surtout ça à l'air plus simple.
Si on flashe une carte, on peut plus téléverser du code dessus ?
Je suis désolé, mais je suis un peux perdu dans cette environnement et j'aimerais partir sur ce projet de la façon la plus saine possible, donc si c'est plus simple de partir sur une carte teensy 4.1 (elle a suffisamment d'entrées je crois) et bien soit. c'est juste dommage de ne pas se servir de la méga
Merci pour vos retour
signaler
christian_r
2237

AFicionado·a
Membre depuis 17 ans
10 Avril 2023 à 23:21
#2
Une carte Uno ou Mega peut envoyer et recevoir du MIDI sans problème (boutons, potars, leds...) avec le bootloader d'origine (sans flasher). Avec des entrées / sorties sur simple prise Din 5 broches qu'on trouve sur presque tous les synthés depuis 1980.
On dispose d'une bibliothèque MIDI (à inclure à la compilation de son code) compatible qui permet de programmer soi même tout (note ON, note Off, velocity,...) , y compris les trucs plus tordus en CC et commandes Sysex spécifiques à une machine.
C'est si tu veux une E/S en USB que c'est plus compliqué.
L'ajout d'un multiplexeur permet d'augmenter les E/S de la carte si besoin.
On dispose d'une bibliothèque MIDI (à inclure à la compilation de son code) compatible qui permet de programmer soi même tout (note ON, note Off, velocity,...) , y compris les trucs plus tordus en CC et commandes Sysex spécifiques à une machine.
C'est si tu veux une E/S en USB que c'est plus compliqué.
L'ajout d'un multiplexeur permet d'augmenter les E/S de la carte si besoin.
Christian
signaler
frascal
143

Posteur·euse AFfiné·e
Membre depuis 11 ans
11 Avril 2023 à 09:21
#3
merci de ta réponse Christian_r,
Aurais tu des exemples de code simple pour essayer ?
La bibliothèque que tu cite, elle s'appelle comment ? car chaque fois que je fais des recherche, je tombe sur des exemples avec l'usb...
Aurais tu des exemples de code simple pour essayer ?
La bibliothèque que tu cite, elle s'appelle comment ? car chaque fois que je fais des recherche, je tombe sur des exemples avec l'usb...
signaler
christian_r
2237

AFicionado·a
Membre depuis 17 ans
11 Avril 2023 à 21:47
#4
Pour faire mon pédalier MIDI (à partir d'un pédalier d'orgue EKO) j'avais utilisé la librairie pour arduino Uno:
#include <MIDI.h>
avec un simple MIDI.sendNoteOn(NoteMidi, Velocite, Canal) pour jouer les notes
#include <MIDI.h>
avec un simple MIDI.sendNoteOn(NoteMidi, Velocite, Canal) pour jouer les notes
Christian
signaler
MenaouelTenquin
126

Posteur·euse AFfiné·e
Membre depuis 9 ans
12 Avril 2023 à 09:30 (modifié le 12 Avril 2023 à 09:31)
#5
Bonjour,
Quand il ne s'agit que d'envoyer des commandes MIDI 5 br sur un port Serial ou SoftwareSerial, j'utilise simplement des routines maison avec des write pour chaque octet. A défaut de MIDI USB, sur PC on peut envoyer les write sur le Serial vers USB et utiliser Hairless MIDI et LOOP pour interfacer avec ARDUINO.
Je ne l'ai pas testée, mais quand on installe teensyduino dans l'IDE ARDUINO, il y a une bibliothèque encoder avec un exemple à 2 encoders. Mais s'il y a beaucoup plus, je ne suis pas sûr que cela fonctionne correctement avec des entrées qui ne sont pas des Interrupt pins. Et sur le MEGA il n'y a pas beaucoup !
Quand il ne s'agit que d'envoyer des commandes MIDI 5 br sur un port Serial ou SoftwareSerial, j'utilise simplement des routines maison avec des write pour chaque octet. A défaut de MIDI USB, sur PC on peut envoyer les write sur le Serial vers USB et utiliser Hairless MIDI et LOOP pour interfacer avec ARDUINO.
Je ne l'ai pas testée, mais quand on installe teensyduino dans l'IDE ARDUINO, il y a une bibliothèque encoder avec un exemple à 2 encoders. Mais s'il y a beaucoup plus, je ne suis pas sûr que cela fonctionne correctement avec des entrées qui ne sont pas des Interrupt pins. Et sur le MEGA il n'y a pas beaucoup !
signaler
frascal
143

Posteur·euse AFfiné·e
Membre depuis 11 ans
12 Avril 2023 à 16:27
#6
Merci pour vos réponse.
J'ai suivi le tutoriel: https://www.notesandvolts.com/2016/03/arduino-midi-controller-potentiometers.html
Je me suis servi de la librairie midi.h ainsi que Controller.h et ça fonctionne bien avec des potentiomètre et des boutons.
Mais dans ce cas on peux pas utiliser une carte méga?
Citation de christian_r :
Pour faire mon pédalier MIDI (à partir d'un pédalier d'orgue EKO) j'avais utilisé la librairie pour arduino Uno:
#include <MIDI.h>
avec un simple MIDI.sendNoteOn(NoteMidi, Velocite, Canal) pour jouer les notes
J'ai suivi le tutoriel: https://www.notesandvolts.com/2016/03/arduino-midi-controller-potentiometers.html
Je me suis servi de la librairie midi.h ainsi que Controller.h et ça fonctionne bien avec des potentiomètre et des boutons.
Citation de UncleBen :
quand on installe teensyduino dans l'IDE ARDUINO
Mais dans ce cas on peux pas utiliser une carte méga?
signaler
frascal
143

Posteur·euse AFfiné·e
Membre depuis 11 ans
12 Avril 2023 à 16:30
#7
Citation de UncleBen :
des entrées qui ne sont pas des Interrupt pins. Et sur le MEGA il n'y a pas beaucoup !
Qu'est ce que les interrupt pins?
Je pensait que l'on pouvait installer 27 encodeurs sur la méga, vu qu'il y as 54 entrées digitales...
signaler
christian_r
2237

AFicionado·a
Membre depuis 17 ans
12 Avril 2023 à 19:32
#8
Une entrée digitale permet de surveiller l'état binaire d'un bouton on/off (0/1), ou d'allumer/éteindre une led; il y a 54 E/S numériques sur la carte MEGA2560.
Une entrée analogique permet de mesurer la valeur continue d'un potentiomètre (par exemple de 0 à 128), il y en a 16 sur la MEGA.
Si on a besoin de plus d'entrées analogiques, on peut ajouter un multiplexeur (dont l'adresse de commande sera digitale).
Les interrupt pins ne sont en principe pas nécessaires pour faire un contrôleur MIDI, la boucle principale du programme surveille successivement tous les boutons, suffisamment vite. Une interruption sert plutôt à coder un truc très spécifique (arrêt d'urgence, all notes off, etc., pour déclencher une action sans attendre que la boucle principale ait fini son cycle).
Une entrée analogique permet de mesurer la valeur continue d'un potentiomètre (par exemple de 0 à 128), il y en a 16 sur la MEGA.
Si on a besoin de plus d'entrées analogiques, on peut ajouter un multiplexeur (dont l'adresse de commande sera digitale).
Les interrupt pins ne sont en principe pas nécessaires pour faire un contrôleur MIDI, la boucle principale du programme surveille successivement tous les boutons, suffisamment vite. Une interruption sert plutôt à coder un truc très spécifique (arrêt d'urgence, all notes off, etc., pour déclencher une action sans attendre que la boucle principale ait fini son cycle).
Christian
signaler
frascal
143

Posteur·euse AFfiné·e
Membre depuis 11 ans
13 Avril 2023 à 09:20
#9
Donc, tout vas pour le mieux, j'ai tout ce qu'il me faut, sauf le code pour déclarer et utiliser des encodeurs, et pour l'instant je n'ai aucune pistes...
quelqu'un aurais une idée?
quelqu'un aurais une idée?
signaler
MenaouelTenquin
126

Posteur·euse AFfiné·e
Membre depuis 9 ans
13 Avril 2023 à 14:48
#10
frascal
143

Posteur·euse AFfiné·e
Membre depuis 11 ans
14 Avril 2023 à 12:50
#11
Merci beaucoup UncleBen, mais je ne suis un gros noob en arduino, il faudrait que je trouve un exemple concret ou l'encodeur envoi un cc midi.
Je n'ai pas besoin d'information qui entre dans la carte (seulement un midi out) et je voudrais des encodeurs tout simple, sans boutons).
merci
Je n'ai pas besoin d'information qui entre dans la carte (seulement un midi out) et je voudrais des encodeurs tout simple, sans boutons).
merci
signaler
- < Liste des sujets
- Charte