Controller midi diy

Bonjour,

J'ai réfléchis un peu plus précisément ce que je souhaiterais réaliser je fais du dub, et j'ai besoin de ressentir les potards, le mix à la souris, à la longue , en plus j'aime les boiboites les trucs qu'ont une âme... bref faut que cela ai de la gueule...J'ai réfléchis un peu plus précisément ce que je souhaiterais réaliser donc je souhaite pouvoir piloter la space echo roland "uad", ainsi que quelques sends dans pro tools, ensuite quelques potards assignables à ma guise, j'ai fait un croquis, de manière à voir quel type de potards crantés ou non j'aurais besoin, et ce que ces choix vont impliquer dans la programmation du cerveau.rien n'entrera dans la machine juste midi out. http://img.audiofanzine.com/image.php?lang=fr&identifier=image&size=normal&module=user&userPhoto_id=231789

En partant d'une base arduino, quelle carte faut il, quel type de contraintes vais-je rencontrer, il s'agit de créer 16 canaux assignables de 1 à 16, ils serviront à piloter des faders sauf un qui pilotera un potard 12 positions

Y a t-il différents courses de potards, est ce que chaque potards à un emploi bien précis? Bon en gros je mélange tout dans mon poste, je me pose plein de questions, je bouillonne, mais j'ai pas assez de connaissances pour approfondir...

si certains sont intéressés pour m'aider...ou participer.

J'ai déjà commencé à poster aussi sur audiofanzine pour ceux que ça intéresse:

http://fr.audiofanzine.com/construction-d-effets/forums/t.454916,controller-midi-diy.html

Je viens de réaliser un controleur similaire :

http://fraph.free.fr/arduino/SNC00025.jpg

Il fonctionne avec 10 encodeurs à boutons (chaque encodeur est aussi un bouton poussoir). Un encodeur est un bouton sans fin à crans. C'est très pratique pour ce genre d'application. C'est à mon sens mieux qu'un potentiomètre standard. Pour le midi pas de problèmes çà fonctionne chez moi.

J'utilise pour cela un arduino mega car il dispose de 56 i/o digitales, 16 input analog ainsi que 4 ports série.

chaque encodeur utilise 2 pins digitales pour le rotatif et 1 pin pour le bouton. En utilisant les entrées analogues ont peut multiplexer les boutons (pour ma part, 4 boutons sur une pin).

Les ports séries avec quelques composants sont utilisables pour faire du midi. Donc on peux avoir avec cette carte 4 ports midis totalement indépendants !

Bref c'est de la balle. Ensuite, ben il faut programmer tout cela. Mais ce n'est pas excessivement compliqué pour qui sait un tant soit peu déjà programmer en C.

Si tu veux des infos, je peux t'aider.

Depuis il est possible de gérer le midi via l’USB en chngeant de firmware sur l’Atmel82U, ce qui est méga pratique (auto alimentation, pas de câble de fou partout)… En ce qui me concerne c’est le coté prog qui m’est difficile, une question:

Je compte gérer:

  • 32 potards (4 4051)
  • 16 button + Led (165 + un driver de led MAX)
  • 8 encodeurs …

Pour gérer la latence du bordel, vais-je être “obligé” d’en passer par tout ce qui est interruptions??? :grin:

tu peux passer par un multiuplexeur/demultiplexeur: http://t-o-f.info/pmwiki/index.php?n=Arduino.TLC5940 ca marche bien , et ca e permet de tout tanker sur une UNO ou duamillanove

Dualminove non, chipset ftdi non flashage aisément en peripherique midi sans drivers. Après le multiplexage/demultiplexage, ne me pose pas vraiment de soucis. C'est plutot dans l'écriture de mon code. Soit comme d'habitude, je ne fais rien en finesse et n'utilise que des boucles, où j'arrive à assimiler le fonctionnement des interruptions, et peux à mon avis coder un truc plus propre, en minimisant la latence de réaction au maximum...Je ne sais pas si avec une prog type noob comme moi, la latence sera assez convenable pour travailler mes sons...Merci d'avoir pris le temps de répondre tout de même :grin:

on optimise son code quand on voit le résultat.... et que l on se dit , mince faut que ce soit mieux ;-)

lol tous les développeurs qui m'entourent au travail liraient ça, deviendraient fou de chez fou...Une partie de l'équipe chez nous ne fait que de l'optimisation.... 8)

Bonjour,

Grag38: Il fonctionne avec 10 encodeurs à boutons (chaque encodeur est aussi un bouton poussoir). Un encodeur est un bouton sans fin à crans. C'est très pratique pour ce genre d'application. C'est à mon sens mieux qu'un potentiomètre standard.

Ça fonctionne comment ces encodeurs à boutons? En quoi c'est mieux que des potentiomètres?

Merci par avance :)

Un encodeur est un "potard" sans fin. Il envoit des impulsion quand tu tournes dans un sens ou dans l'autre. Digital vs analogique.

C'est quoi les réfs des encodeurs que tu utilises ?

J'était en déplacement...

Ce sont des ALPS que j'ai trouvé ici : http://fr.farnell.com/alps/ec12e2424407/encodeur-vert-24-crans-24-impul/dp/1520813

Désolé, mais je n'ai toujours pas compris en quoi ces encodeurs sont 'mieux' que des potentiomètres??? :astonished:

Un potentiomètre est une résistance variable avec plus ou moins de précision. Pour lire cette valeur il faut utiliser les entrées analog qui donne un resultat entre 0 et 1024 (codage sur 10 bits).

Un potentiomètre a une course limitée, il se bloque au bout d'un moment quand on le tourne à gauche ou à droite.

Il existe des potentiomètres linéaire et logarithmiques.

Bon çà c'est dit.

Les encodeurs sont des boutons qu'on peut tourner à l'infini dans un sens ou dans l'autre. Il ne donne qu'une information : +1 ou -1 suivant le sens dans lequel on le tourne. Il necessite 2 entrées digitales dont on étudie les fronts d'impulsion afin de déterminer le sens dans lequel on l' a tourné.

Avantage : pas de lecture avec 'marge d'erreur' de la valeur sur les encodeurs. Utilisation d'une plage de valeur infinie.

Bref on en fait ce qu'on veut.

plus d'infos sur :

http://www.arduino.cc/playground/Main/RotaryEncoders

Le fait que mes encodeurs disposent aussi d'un boutons puissoir (quand on presse dessus), me permet d'integrer d'autre combinaisons lors des mes programmations (par example augmenter le pas de 10 point quand on tourne l'encodeur en position appuyée).

Bref j'adore ce type de contôle.

A+

Merci pour cette explication TRÈS claire 8)

Je suis convaincu :)

Bonjour, je reviens jeter un coup d'oeil sur le post que j'avais créé, jamais eu les alertes mail me signalant une réponse, j'ai finalement opté pour la carte Doepfer, moins de tracas pour une première en diy, mais j'ai vu que vos réponses laissaient présager des trucs sympas en matière de conception de contrôleurs midi. à Grag38, peut-on brancher un encodeur et des potentiomètres, par exemple 1 encodeur et 15 potentiomètres linéaires sur la même platine, en gros la carte gère t-elle différents types de contrôleurs ou faut il que touts les contrôleurs soient identiques? Le langage à programmer est il compliqué ?s'agit il de recopier des scripts, ou de les créer soit même, n'ayant aucune notion de programmation informatique!

Merci pour vos réponses et n'hésitez pas à montrer ce que vous avez déjà réalisé(des photos!!!)

8)

Bon je me suis monté un petit proto pour tous mes tests de code: 6 boutons, 5 potentiometres. En regardant le code de la librairie fournit par Atmel (avrlib) et les datasheet du 328P, notemment la partie concernant l'ADC, il s'avert que la fonction analogRead() est une grosssssseeeee grrrrooooosssssseeeee daube. D'une part elle est bloquante, et en plus prend au minimum 100us pour mesurer et convertir son résultat....J'ai un pote plutôt très très bon en code, qui m'a développer une lib permettant de scanner toutes les entrées analogiques, de faire les mesure si et seulement si un changement est détecté et en plus ce n'est pas du tout bloquant tout le reste continue à tourner (je finis de mettre son code au propre et je partage ensuite pour ceux que ça intéresse): Précision, fréquence, nbre d'entrée à scanner, ... paramétrable ;) .... Bref avec ce satané firmware Lufa pour le 8u2 et cette Lib, plus rien à envier à des controlleurs industriels, latence quasi innexistante compatible mac os, windows, linux, .... Elle est pas belle la vie?

Voici le mini proto qui va me servir à me faire la main, il se glisse tranquillement entre mes deux monomes:

il s'avert que la fonction analogRead() est une grosssssseeeee grrrrooooosssssseeeee daube

Hello, je suis très étonné de ce que tu décris ici concernant la latence. Perso je n' ai quasi aucune latence sur 6 potards ( arduino et uno) en liaison usb. Je fais de la lumière et de la vidéo, et la réaction d'analog read en résolution 0-255 est même plus rapide que les périphs midi. T'avais pas plutot un gros gros souci dans ton code ?

une lib permettant de scanner toutes les entrées analogiques, de faire les mesure si et seulement si un changement est détecté et en plus ce n'est pas du tout bloquant tout le reste continue à tourner

Ce serait bien, si cette lib assure, que tu puisses la mettre sur le playground, à dispo de la communauté( les dieux du hardcoding çà courre pas les rues). :D

Bonjour,

Je voudrais me lancer dans la fabrication d’un controlleur midi arduino. Je n’ai encore jamais utilisé arduino. J’ai des bases en éléctronique et en programmation (en C).
J’aimerais vous demander quelques conseils sur le matériel à acheter.
Je voudrais un controller avec en gros une douzaine de boutons et une quinzaine de potentiomètre/encodeurs. J’aimerais mettre aussi un sélecteur de session, comme il y en a sur certain controller, pour préparer plusieurs réglages différent sur tout les contrôles (j’aurais bien vu un switch comme sur les guitares éléctriques).
Pour les boutons j’ai bien envie de prendre des boutons d’arcades comme j’en ai vu sur beaucoup de controller DIY.
Donc qu’est ce que je dois acheter ?
Est -ce que le arduino UNO sera suffisant pour ce que je veux faire ?
Me conseillerais vous un kit ? Quel site ?
Avez vous des conseils à me donner ? Des liens intéressants ? Des tutos ?

J’ai vu pas mal de chose bien sur ce site : http://www.sparkfun.com/

Merci !

karistouf:
T’avais pas plutot un gros gros souci dans ton code ?

Lol nan pas de soucis dans le code. Mais il suffit de lire les datasheet du 328p pour se rendre compte de comment fonctionne l’analogRead() pour se servir de l’adc. De plus la mesure dans les derniers bits est assez peu précise (il y a même un noisefilter interne d’intégré à l’adc pour tenter de pallier à ça), et oblige en gros pour être certain d’avoir de bonnes valeurs de moyenner 4 lectures. La lib en question n’a pas été développée par moi, si ça t’intéresse d’y jeter un oeil, va faire un tour sur le github d’Olivier Gillet créateur du magnifique Shruthi-1 https://github.com/pichenettes/avril elle n’est à la base pas destinée à Arduino, mais compile très bien quand même 8)

ok, merci pour le lien. A la communauté: quelqu un a un peu de temps pour tester dans tous les sens cette lib avec l arduino ?