Se connecter
Se connecter

ou
Créer un compte

ou

Midi contrôleur (encore un)

  • 10 réponses
  • 3 participants
  • 387 vues
  • 5 followers
Sujet de la discussion Midi contrôleur (encore un)
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
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.

Christian

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...
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

Christian

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 !

[ Dernière édition du message le 12/04/2023 à 09:31:32 ]

6
Merci pour vos réponse.
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?

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...
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).

Christian

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?
10