Ajout d'écrans sur une BCF2000
- 58 réponses
- 12 participants
- 5 849 vues
- 22 followers
Silhm
Salut à tous,
J'ai commencé un projet qui a pour but d'ajouter des écrans pour chaque tranche de ma BCF 2000 (un peu à la Xtouch de la même marque).
L'idée, c'est d'afficher le nom de la piste correspondant, et en fonction d'une touche dédiée, où alors directement sur l'édition d'un paramètre, afficher le paramètre en question. Éventuellement par la suite, ajouter un vu-metre par piste.
Le but est de faire un truc open-source, facile à mettre en place pour un bricoleur débutant et compatible avec plusieurs surfaces de contrôle, voir même chainable pour des surfaces plus larges et le tout sans se ruiner.
Pour le moment, j'utilise un Arduino flashé avec HIDuino pour que celui-ci soit reconnu comme un périphérique USB-MIDI et un écran OLED de 0,96" (c'est tout petit, mais ça tiens pile sur une largeur de tranche) de la BCF .
Pour la compatibilité, j'utiliserai le protocole Mackie HUI MIDI en me basant sur le boulot de theageman qui a reverse-engineeré tout ça et en a fait un joli document d'explications dispo sur un thread du forum de Reaper.
Dans mes avancées, j'arrive à faire en sorte que l'Arduino soit reconnu comme périphérique USB-MIDI et afficher sur l'écran oled les paramètres MIDI et leur valeurs tels que CC, PC, noteOn/Off, etc. avec le numéro de canal MIDI associé.
Le projet est dispo sur mon Github, et la route est encore longue pour avoir quelque chose de fonctionnel, mais si des motivés sont prêts à m'aider, c'est pas de refus!
Pour le moment je galère à recevoir des informations depuis le protocole Mackie HUI, qui est sensé être transporté dans des trames SysEx. Les messages que je reçois sont tout sauf du SysEx, donc ils sont interprétés par mon programme comme des Notes ou des Changes (qui font juste 3 bytes, et non plus, comme prévu par les SysEx). Si quelqu'un à déjà mis les mains dans ce genre de truc, qu'il n'hésite pas à me guider!
Rémy M. (chimimic)
Sinon, j'ai bien réussi à récupérer les mêmes SysEx que sur mon moniteur MIDI logiciel, sur mon écran Oled!
Génial, bravo et bonne suite !!!
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
metalfx
Pour ma part, j'ai flashé l'arduino uno avec dualMocoLUFA... c'est super pratique pour tester et passer d'usb-midi à usb-serial... Pour ceux que çà intéresse : https://github.com/kuwatay/mocolufa
Silhm
Après lecture du magnifique : LogicControl_EN.pdf, je comprends mieux mes trames SysEx:
L'écran LCD sur une mackie control possède 56 caractères, ça tombe bien, divisé par 8 (nombre de tranches/écrans) ça fait 7 caractères par écran.
Chaque position de caractère est identifié par une valeur Hexa:
- allant de 0x00 à 0x37 (soit 56 valeurs) pour la première ligne,
- et de 0x38 à 0x6F pour la seconde ligne.
Dans les SysEx reçus (dont le screenshot se trouve quelques posts plus haut), on retrouve bien ce format:
5 chars : F0 00 00 66 00 qui correspond à l'identifiant du device,
12 : qui indique le début du message LCD
Puis : 38 4C 35 31 52 34 39 20 8
Donc: à partir de l'offset 38 (2e ligne, 1er caractère) on doit donc afficher :
SysEx | 4C | 35 | 31 | 52 | 34 | 39 | 20 |
Affiche | L | 5 | 1 | R | 4 | 9 | (espace) |
Si vous suivez jusque là, on à donc un affichage de PAN sur la 2e ligne, 1er afficheur : L51 R49 (j'ai du me rater dans le DAW pour faire un PAN pareil )
Il y a 8 messages SysEx qui se suivent avec le même schéma, soit mes 8 configurations de PAN pour chacune de mes tranches sur la 2e ligne!
@metalfx : J'ai utilisé HIDuino pour flasher le mien, ça semble être sensiblement la même chose!
@chimimic: Merci de ton soutien ! Ton site est une mine d'or pour tout bricoleur!
Rémy M. (chimimic)
Cela me donnerait presque envie de m'y (re)plonger...
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
metalfx
Silhm
De retour avec une belle progression sur le projet,
J'arrive à présent à afficher les infos que le DAW m'envoie sur la sortie MIDI mackie control!
Je change la valeur du PAN via les potards de la BCF, et mon écran réagit bien et m'affiche un truc du genre:
Après quelques temps, l'écran retourne à sa valeur initiale:
Ça réagit même sur les faders quand je les bouge depuis la bcf, ou directement dans le DAW:
Il revient toujours sur PAN visiblement. J'ai jamais eu de MCU en main, donc je suppose que c'est un comportement voulu.
J'ai aussi réussi à afficher le nom de la piste sur l'écran, mais le problème, c'est que celui-ci ne s'affiche que lorsque je le modifie dans le DAW…
En gros l'écran ne réagit pas tant que je ne modifie pas de paramètres. Il y a peut-être une fonction pour demander au DAW de me fournir des valeurs, piste à creuser.
J'ai un autre soucis, quand je modifie rapidement les paramètres, l'écran affiche parfois des caractères aléatoires un peu n'importe ou. Y'a de la friture sur la ligne… il faut que j'arrive à stabiliser le truc, c'est peut-être dû au grand nombre de messages qui passent par la liaison MIDI-USB
Reste à faire:
- La gestion du nom de la piste,
- La gestion eventuelle d'un petit bargraph/vumetre
- La gestion du TimeCode sur un écran à part pour connaitre la position du curseur dans le projet,
- Des boutons pour switcher l'affichage,
- … plein d'autre trucs!
J'ai mis à jour le code sur Github si ça interesse quelqu'un.
Je crois que je vais lancer une commande d'afficheurs Oled supplémentaires!
Je tacherais de faire une petite vidéo pour montrer le projet en fonctionnement!
Rémy M. (chimimic)
Et merci pour le partage sur Github.
Pour avoir travaillé avec plusieurs écrans LCD/TFT/OLED, je sais que le temps de rafraichissement est parfois un problème. Et encore, là tu n'affiches que du texte et pas de "larges" zones graphiques.
Il serait sans doute judicieux de ne pas rafraichir systématiquement les infos sur l'écran OLED, en cas de réception d'un grand nombre d'infos, mais d'attendre quelques dizaines de ms ou même "sauter" quelques valeurs "intermédiaires".
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
Silhm
Après réflexion, je vais me heurter à un souci, l'adressage des écrans OLED… mon écran actuel cause en I2C, jusque là, pas de soucis, 4 câbles, c'est un BUS. Par contre, les écrans I2C à base de SSD136 n'offrent que la possibilité de 2 adresses différentes (via un jumper). Là où je veux en mettre un minimum de 8, ça va poser problème…
Je regarde donc du coté des écrans SPI, qui semblent être plus rapides (et donc plus fluide?) Mais qui nécessitent plus de branchements. Ils sont un peu plus cher aussi.
J'aurai donc besoin de 4 I/O que je peux chainer entre les différents écrans:
- DATA to digital 9
- CLK to digital 10
- D/C to digital 11
- RST to digital 13
mais chaque écran nécessite 1 I/O supplémentaire pour être "selectionné" ce qui me laisse:
- CS to digital 2 3 4 5 6 7 8 12
Je ne sais pas si je peux utiliser 0 et 1 car je pense qu'elles sont réservées pour la communication Série/MIDI
Ça me fait un total de 8 écrans, tout pile. Je pense cependant balancer le tout derrière un multiplexeur pour n'utiliser qu'une seul I/O sur l'arduino, pour laisser de la place à d'éventuelles améliorations.
Ça complexifie un peu le montage par contre... mais ça me semble nécessaire.
[ Dernière édition du message le 23/09/2016 à 14:17:33 ]
Rémy M. (chimimic)
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
metalfx
Il en parle à partir de 6 minutes dans cette vidéo
Il a également un site où tu peux télécharger son code source :
http://www.notesandvolts.com/2016/03/arduino-midi-controller-potentiometers.html
Peut-être trouveras-tu une idée dans son code... bien que celui-ci soit axé sur des potentiomètres et des boutons...
[ Dernière édition du message le 23/09/2016 à 18:36:35 ]
- < Liste des sujets
- Charte