Changement de pattern de la DR-880 par MIDI (et Arduino)
- 10 réponses
- 3 participants
- 1 872 vues
- 4 followers
Danguit
J'ai acheté il y a peu une DR-880, sans regarder ses possibilités en MIDI.
Grande déconvenue (et je ne suis pas le seul) quand j'ai constaté qu'il n'était pas possible d'envoyer des changements de programme (motif, song ou favoris) par MIDI, même avec des sysex. Si j'avais pris la peine de jeter un oeil sur la "Midi Implementation chart", je m'en serais rendu compte et aurais certainement acheté autre chose.
Je me suis un peu creusé les méninges pour voir comment m'en sortir et je me suis dit qu'en actionnant rapidement les pédales (analogiques) permettant d'incrémenter/décrémenter les programmes (par exemple FS-6) on devait pouvoir faire quelque chose.
Je viens de réaliser un petit montage avec un Arduino UNO et le tester, sans ordres MIDI pour l'instant, mais cela ne pose pas de problème avec Arduino.
Résultat, ça marche (j'ai un effet de bord +/- 1 dû à une programmation bâclée).
Maintenant il faut tester les limites pour savoir s'il est possible de se balader dans les 1000 motifs (500+500), ou s'il est plus raisonnable de se limiter par exemple aux 80 favoris).
La maquette :
Je suis ouvert à (presque) toutes les suggestions.
- 1
- 2
marclr17
Chapeau Danguit !!!
Mais comment pilotes-tu le UNO ? Via les 2 potars en bas à droite ?
Danguit
Mais comment pilotes-tu le UNO ?
Si le projet vaut le coup d'être continué, une prise MIDI permettra de recevoir le numéro de programme (il peut même y avoir possibilité d'utiliser l'USB, je l'ai déjà fait avec un adaptateur).
En l'état cela fonctionne, mais je ne peux pas descendre en dessous de 200ms par incrément (*), sinon il y a des erreurs (dues à la DR car à l'oscillo mes signaux de sortie sont corrects).
Dans ces conditions, passer directement du motif 1 au 1000 mettrait plus de 3 mn. Donc à oublier pour du live.
Je pense que la bonne solution serait de ne programmer que les favoris en utilisant les CTRL 1 à 4, 2 pour les Banks et 2 pour le numéro, ce qui amènerait grosso modo à un temps de commutation max (passage de B1-1 à B20-4) de 4.8s. Donc avec une limitation à 80 programmes, mais personne n'empêche d'avoir aussi la possibilité de passer aux motifs s'il n'y a pas trop de contraintes de temps.
Edit : (*) en descendant à 180ms je ne détecte pas d'erreurs, donc gain de 10%.
[ Dernière édition du message le 08/11/2013 à 18:35:58 ]
Danguit
J'ai utilisé le circuit d'un adaptateur Gravis (sur la photo) pour l'entrée Midi uniquement pour me simplifier la vie, mais ce circuit se fait simplement avec un optocoupleur, une diode et 2 résistances.
Les potars ne servent plus.
En ce moment j'envoie des PC par Cubase et la DR-880 se positionne comme une grande.
Et je pense que finalement la solution de prévoir 127 programmes permet de simplifier en n'utilisant que deux switches (CTRL 3 et 4) et permet de modifier motifs users ou songs (pour les favorites serait possible mais un peu plus compliqué,à peine).
Rémy M. (chimimic)
Merci pour le partage.
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
marclr17
alors là chapeau!...
(je n'avais pas vu évoluer ce thread, je le cherchais sur le forum de la DR)
il n'y a pas d'Arduino incluant un module midi ?
tu as codé en C, C++, JAVA ?
c'est quoi comme modèle d'Arduino ?
Danguit
Pour le codage, j'utilise l'environnement Arduino (genre C) et je fais beaucoup de copier-coller et adaptation des exemples.
On pourrait d'ailleurs compliquer très facilement le machin en intégrant aussi des foootswitches et potars (ou pédales) dans un boîtier pour rentabiliser (utilisation des E/S).
[ Dernière édition du message le 11/11/2013 à 17:56:21 ]
marclr17
oui, c'est clair !
merci pour ces infos
l'idéal serait aussi de le doter de 2 ports midi, un IN et un OUT, et de pouvoir comme sur ce module http://www.midisolutions.com/prodepp.htm interpréter les ordres midi en entrée pour en sortir d'autres (des sysex par exemple) en OUT
Danguit
interpréter les ordres midi en entrée pour en sortir d'autres
C'est là que je me suis aperçu que le SoftwareSerial (sur UNO) fonctionne mal avec un débit important en entrée. Il faut donc utiliser l'uart, mais cela rend difficile la mise au point. Ou alors utiliser un ATmega à 2 uarts.
Mais s'il ne s'agit que de commandes, c'est peut-être jouable avec l'émulation.
Rémy M. (chimimic)
C'est là que je me suis aperçu que le SoftwareSerial (sur UNO) fonctionne mal avec un débit important en entrée.
C'est le cas avec beaucoup de microcontrôleurs. Pour gérer correctement des débits importants, il faut impérativement passer par les UART matériels et mettre en oeuvre un buffer circulaire (minimum 64 octets, 128 ou plus si la taille mémoire de l'uC le permet). Les routines soft conviennent quand on veut juste traiter quelques commandes ou notes isolées. Dès qu'on veut plaquer des accords à un rythme élevé ou envoyer des longs sysex, ouille !
Je me suis trop cassé les pieds avec des routines soft. Certes aussi avec l'UART hard à mes débuts car il faut bien apprendre et tout ne vient pas d'un coup. Mais globalement, et même quand on traite des données pas trop volumineuses, l'UART matériel est vraiment un plus. Et si on doit bosser avec deux ports MIDI en même temps, pas de doute, un uC équipé de deux UART... c'est le pied !
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
[ Dernière édition du message le 11/11/2013 à 18:34:23 ]
- < Liste des sujets
- Charte
- 1
- 2