[Numérique] [Projet] Controleur MIDI de synthétiseur modulaire
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

[Projet] Controleur MIDI de synthétiseur modulaire



  1. #1
    invite21803170

    [Projet] Controleur MIDI de synthétiseur modulaire


    ------

    Bonjour à toutes et à tous, ceci est mon premier message, j'ai lu les règles mais j'espère ne pas faire de bêtise, de ce que j'ai compris je dois poster ici et pas dans la catégorie projets.

    I - PROJET

    Mon projet est de créer un contrôleur MIDI de synthétiseur modulaire, afin d'avoir à disposition des contrôles physiques de synthétiseur modulaire, mais dont la partie audio est virtualisée par l'ordinateur. Si vous ne savez pas ce qu'est un synthétiseur modulaire ou un contrôleur MIDI, plus de détails dans la partie suivante. Sinon, vous pouvez passer directement à la partie III.

    II - SYNTHETISEUR MODULAIRE, CONTRÔLEUR MIDI

    1) Le synthétiseur modulaire
    La plupart des synthétiseurs qu'utilisent les musiciens sont développés par une société, qui désigne le produit, assemble touts les éléments dans une boîte, et le consommateur n'a qu'à utiliser le produit.
    Mais il est possible de créer soi-même son propre synthétiseur en achetant tous les composants et en le désignant de A à Z. Cela prendrait des années à l'échelle d'une personne.
    Il est possible de faire un intermédiaire*; acheter un rack (conteneur) dans lequel on va insérer des modules, qui sont des «*briques élémentaire*» du synthétiseur (filtre, VCO, VCA, Reverbe, générateur d'enveloppe, etc).
    Une fois ces éléments installés, on peut les connecter dans l'ordre que l'on veut grâce à des «*câbles de patch*» qui relient un module à un autre. Il devient donc facile de créer un synthétiseur sur-mesure, qui en plus est modifiable facilement (en débranchant/rebranchant des câbles), que l'on peut améliorer et modifier à l'envie en achetant/revendant des modules.
    C'est absolument génial, sauf pour un détail*: c'est CHER. Vraiment. Chaque module se compte en général en centaine(s) d'euro, et ça devient rapidement un gouffre à argent. Un simple synthétiseur avec quelques modules peut déjà chiffrer au dessus de 1000€.

    2) Les contrôleurs et claviers MIDI
    Depuis longtemps, les musiciens utilisent des contrôleurs MIDI. Ce sont des boîtes qui permettent de contrôler un synthétiseur ou un logiciel. Par exemple, on peut utiliser un contrôleur MIDI avec des potentiomètres rotatifs*; ceux-ci peuvent contrôler les volumes des pistes dans un séquenceur audio (ou d'autres paramètres, on peut «*assigner*» ces contrôles librement).
    Un des avantages est que l'on peut acheter un clavier MIDI, qui ne génère pas de son*; c'est juste un clavier qui envoie des informations (par exemple*: «*note Sol3 enclenchée pas trop fort*») à l'ordinateur.
    Ainsi, l'ordinateur transforme cette information en son. On peut choisir un son de piano, mais aussi un son d'orchestre à cordes, de flûte etc... C'est l'ordinateur qui s'occupe de transformer l'information MIDI provenant du contrôleur en information sonore.
    Cela permet de réduire drastiquement les coûts, car on déplace toute la partie génération du son du hardware au software*: la partie hardware doit seulement récupérer une information (note du clavier enclenchée par exemple), et c'est la partie software qui génère le son, ce qui apporte de nombreux avantages, notamment au niveau du prix car il y a beaucoup moins de contraintes.

    III – LE CONTROLEUR DE SYNTHETISEUR MODULAIRE

    Mon but est simple*; je veux créer un outil qui physiquement soit similaire dans l'utilisation à un synthétiseur modulaire (modules interchangeables, câbles de patch pour interconnecter les modules), mais pour beaucoup moins cher.
    Une solution est d'avoir un contrôleur MIDI qui ne récupère que des informations simples, du type «*potentiomètre réglé à 78%*» ou «*prise 23 connectée à prise 48*», puis que ce soit l'ordinateur qui émule un synthétiseur modulaire, en fonction de l'état du contrôleur. La partie hardware se résume donc à des potentiomètres, boutons, connectiques branchées ou non, et de l'électronique permettant l'acquisition.
    Malgré de longues recherches sur internet, je n'ai pas trouvé de contrôleur MIDI qui corresponde à ce que je veux faire. Le plus proche est ce qui s'appelle «*joué*» de PlayfulMusic, qui ne ressemble pas du tout à un synthétiseur modulaire avec des câbles de patch, mais qui est un contrôleur modulaire.

    J'ai donc décidé de développer moi même ce produit, et commencé à designer certaines choses. Beaucoup de choses peuvent être améliorables, j'en suis vraiment au début du développement.
    Avant même d'acheter des composants pour prototyper, je souhaiterais avoir des avis extérieurs, qui pourront peut être rapidement me dire «*non mais ça c'est trop compliqué, tu peux utiliser du SPI à la place ça sera plus simple et moins cher*» par exemple.

    IV – Fonctionnement
    La partie acquisition des données est vraiment très simple en l'occurence, je ne vais pas rentrer dans le détail de comment récupérer la valeur d'un potentiomètre et la transformer en information numérique. Les défis complexes sont surtout*:
    la communication entre les modules et le rack (qui contient les modules)
    comment détecter les différentes configurations de câblage avec les câbles de patch

    Composants
    Pour le côté modulaire, je pensais utiliser des microcontrôleurs pour le rack et les modules. Ainsi les microcontrôleurs peuvent faire l'acquisition d'informations, et ils se communiquent entre eux. Les éléments physiques utilisés seront principalement des potentiomètres, des connectiques pour les câbles de patch, et des boutons.

    Fonctionnement Global
    Mon approche globale est la suivante*: le rack qui contient chaque module est le «*chef d'orchestre*». C'est lui qui envoie au PC des informations dès que le contrôleur change d'état (câble débranché, câble branché, potentiomètre tourné, etc). Les modules acquièrent les données des potentiomètres/boutons en permanence, enregistrent ces données en mémoire, et quand le Rack demande aux modules leur état, alors ils l'envoient au Rack.

    Cycle Global
    Le Rack communique avec les autres Modules par une liaison Série I2C (peu de câbles, possibilité d'avoir entre 1 et 100 modules branchés au rack). Chaque module a sa propre adresse.
    Le Rack interroge chaque module un par un pour savoir si une information a changé ou non. Chaque module scanne son propre état en permanence, stocke dans sa mémoire cet état, et lorsque le Rack lui demande son état, le module envoie au Rack son état. Cette manière de faire permet de faire du traitement en parallèle*: pendant que le Rack interroge un module, tous les autres sont en train de faire de l'acquisition de donnée.

    Connexion d'un câble de patch
    Pour faire l'acquisition de l'état de connexion des câbles de patch, mon idée est la suivante*: chaque connectique est reliée à une broche de microcontrôleur. On définit toutes les broches comme des entrées, et UNE broche comme une sortie. On met la sortie de cette broche à +5V. Si une des entrées réagit à un niveau de tension haut (avec une interruption par exemple, ou en scannant manuellement chaque entrée), alors on sait que les deux broches sont connectées. Sinon, rien n'est connecté, et on passe à la broche suivante, etc. Ça donne un temps de calcul triangulaire (je crois). S'il y a N connectiques, il y a N + N-1 + N-2 + … + N0 scans à faire (je considère qu'il n'y a pas de câble en Y ou hubs, seulement des câbles avec deux connexions).

    Ce cas là est simple quand la connexion se fait au sein d'un même module. Mais si on connecte un module à un autre (ce qui arrive beaucoup plus fréquemment), alors la méthode devient un poil plus complexe. Mon idée est*: Le Rack envoie au premier module l'ordre de mettre à +5V la pin A au module 1 et attends. Si un câble de patch est branché entre le premier et le deuxième module, alors le deuxième module va détecter (via une interruption par exemple) qu'une de ses broches est passée à +5V, et communique au Rack pour lui indiquer que sa broche est connectée. Dès que le Rack reçoit cette information, il sait alors que la broche X est connectée à la broche Y. Et il continue son cycle en interrogeant chaque broche. Dans notre example, quand le rack va demander au module 1 de mettre à +5V sa pin C, Une interruption va avertir le module 2 que sa pin C est à +5V, et envoyer au rack cette information. Le Rack saura donc que la pin C du module 1 est connectée à la pin C du module 2.

    Ecran LCD
    Etant donné les possibilités qu'offrent ce genre de produit comparé à un synthétiseur modulaire standard (analogique), j'ai trouvé intéressant d'ajouter un petit écran LCD qui permette d'indiquer quel rôle chaque module a. Dans un synthétiseur modulaire standard, un module de filtre sera toujours un module de filtre. Dans mon idée, rien n'empêche de garder un module physique mais que son rôle change en fonction de son utilisation. Un module pourra être un filtre dans un cas de figure, puis devenir un VCA dans un autre cas. Pour que l'utilisateur s'y retrouve, il a un petit écran qui lui indique quelle fonctionnalité remplit chaque module.

    Temps de cycle
    J'apporte un note concernant le temps de cycle du «*Rack*»*; ma solution est sûrement très peu optimale, mais il ne faut pas oublier que l'information de l'état du système doit être récupérée dans une échelle de temps assez grande*: disons quelques milisecondes, à mon avis maximum 20 avant qu'un humain se rende compte de la latence entre ce qu'il contrôle met du temps à être détecté par le système. Cela ne m'empêche pas de faire un système cohérent et si possible optimisé, mais il n'y a nullement besoin de performances incroyables au niveau de l'exécution de chaque cycle. Le pire cas de figure me semble être le suivant*: il y a beaucoup de modules, et l'utilisateur tourne rapidement deux potentiomètres en même temps.
    Si le système se révèle trop lent, je pense mettre une priorité temporelle sur l'acquisition des informations des potentiomètres (car on n'a pas envie de tourner un potentiomètre et attendre un demi-secondes que le résultat se fasse entendre). La conséquence sera peut être que les connexions avec les câbles de patch seront détectées avec du retard, mais ce n'est pas critique,

    V - Conclusion
    Si vous êtes arrivé jusqu'ici, merci d'avoir lu, je ne demande pas à ce qu'on me dise comment faire ou qu'on résolve tout mes problèmes, j'ai conscience que mon savoir-faire et mon expérience sont limités, donc je souhaite savoir si en me lisant vous pourriez avoir des remarques, suggestions, ou conseils type «*tu seras bloqués sur les interruptions parce que tu peux pas avoir des microcontrôleurs avec des ports qui mélangent entrées et sorties*». Je sais que c'est pas forcément facile à expliquer, posez moi toutes les question que vous voulez sur mon projet si quelque chose n'est pas clair, je ferais des modifs si possible.

    Bonne journée =)

    -----

  2. #2
    GBo

    Re : [Projet] Controleur MIDI de synthétiseur modulaire

    Bonjour,
    Ce n'est pas clair pour moi désolé, tu dis que la partie génération de sons est sur l'ordi, mais tu ne dis pas de quoi il s'agit, c'est pourtant ça qui va conditionner le reste il me semble.
    Voici un exemple très connu:
    https://en.wikipedia.org/wiki/Reaktor
    Donc supposons que Reaktor soit sur ton PC.
    Tu souhaites pouvoir remplacer juste l'interface graphique de ce programme (en gardant son moteur de synthèse soft) par un dispositif hardware connecté au PC par MIDI, c'est ça ?
    cdlt,
    GBo

  3. #3
    invite21803170

    Re : [Projet] Controleur MIDI de synthétiseur modulaire

    Bonjour,

    Oui pardon je n'ai pas été clair sur cette partie, en fait c'est parce que plusieurs solutions sont possibles, peu importe la forme que prend le controleur que je réalise. Mais mon idée principale était quand même d'utiliser Reaktor, plus précisément reaktor blocks. En soi un contrôleur MIDI peut controler des tonnes de choses, mais dans mon cas ce sera sûrement un seul programme.

    Oui, en gros le controleur que je veux faire "remplace" l'interface graphique sur ordi. L'idée c'est de pouvoir manipuler un synthétiseur avec des contrôles physiques, pas avec une souris.

    Merci pour la réponse

  4. #4
    GBo

    Re : [Projet] Controleur MIDI de synthétiseur modulaire

    Un projet un peu comme celui-ci alors ?
    https://fr.audiofanzine.com/controle...y,n.42737.html
    (pour le patching ça restera sur l'ordi par contre, mais des potars physiques, 60 ça devrait aller )

  5. A voir en vidéo sur Futura
  6. #5
    GBo

    Re : [Projet] Controleur MIDI de synthétiseur modulaire


  7. #6
    GBo

    Re : [Projet] Controleur MIDI de synthétiseur modulaire


  8. #7
    invite21803170

    Re : [Projet] Controleur MIDI de synthétiseur modulaire

    En fait, le lien que tu as envoyé est intéressant, mais il s'agit seulement d'un controleur midi "standard", c'est à dire qu'on a juste une boite fixe avec des potards fixes. Là où mon projet ne ressemble pas à ces contrôleurs, c'est par son côté modulaire (à tout moment, je peux "déclipser" un module, et en brancher un autre endroit), qui en général n'existe pas sur les autres produits, dont celui que tu as envoyé en lien. le controleur fera toujours la meme taille et sera agencé toujours de la même manière.

    L'autre aspect que le controleur que tu as envoyé n'a pas, c'est cette histoire de câble de patch. Dans mon système, l'utilisateur peut interconnecter les différents modules comme bon lui semble, comme un synthétiseur modulaire.

    Je ne sais pas si c'est clair, franchement c'est tellement un truc de niche que même les musiciens qui bricolent avec des synthés prennent aussi du temps à comprendre ce que je veux faire ^^

    Merci pour la réponse en tout cas =)

  9. #8
    invite21803170

    Re : [Projet] Controleur MIDI de synthétiseur modulaire

    Du coup pour les deux autres liens : le DIY avec ucapps je ne connaissais pas mais je note le lien, c'est très intéressant, je trouverais sûrement des bonnes ressources dessus. En tout cas pas trouvé de choses qui correspond à mes besoins pour le moment, mais c'est une super source, merci beaucoup !

    Pour le shantea control, pareil je ne connaissais pas, intéressant également. Par contre ça ne résoud pas les questionnement spécifiques à mon projet : modularité avec des modules interchangeables, et câbles de patch

  10. #9
    GBo

    Re : [Projet] Controleur MIDI de synthétiseur modulaire

    Le but me semble clair, c'est la faisabilité que je ne vois pas, comment "repatcher en hardware" va te repatcher Reaktor comme par magie ? Il faut déja que "repatcher en hardware" génère des messages MIDI, premier problème, et ensuite que ces messages correspondent à ce que peut comprendre Reaktor au niveau patching virtuel, est-ce seulement possible par MIDI ?

  11. #10
    invite21803170

    Re : [Projet] Controleur MIDI de synthétiseur modulaire

    Effectivement c'est une des difficultés du projet. Transformer des informations en messages MIDI n'est pas très compliqué, je l'avais déjà fait sur un ancien projet avec des capteurs de flexion, il existe des bibliothèques qui s'occupent de générer les messages MIDI vers le PC. En soi j'ai déjà fait sans trop de difficultés un projet avec de l'électronique (capteurs) qui allait dans un arduino branché au PC par usb, qui contrôlait des paramètres dans mon logiciel, ça c'est pas super dur.

    En gros je pensais faire une solution assez "bourrin" : le contrôleur génère un message MIDI codé sur 16 bits : les 8 bits du MSB correspondent au numéro de la première prise jack, et les 8 derniers du LSB correspondent au numéro de la deuxième prise jack. Ensuite, si on utilise reaktor, il faut créer un composant "matriçage" qui est relié à tous les modules virtuels, et les connecte entre eux en fonction de ces messages MIDI qu'il reçoit.

    On peut générer des messages MIDI de "note on" quand câble est branché, et des messages "note off" quand un câble est débranché par exemple.

  12. #11
    GBo

    Re : [Projet] Controleur MIDI de synthétiseur modulaire

    OK, mais je ne vois pas comment des note on/note off (correspondant à l'appui/relachement des touches du clavier), peuvent piloter le matriçage dans le soft ?

  13. #12
    invite21803170

    Re : [Projet] Controleur MIDI de synthétiseur modulaire

    Pour être honnête je n'avais pas encore creusé précisément cette question, je partais du principe que ça allait être faisable, c'est bien de m'en avoir parlé, je n'avais pas pensé à la mise en place concrète de cette solution.

    En fait je sais que dans Reaktor il est possible de vraiment bidouiller l'intérieur des synthés, en allant jusqu'à implémenter les portes logiques ou mettre des fonctions mathématiques dans l'éditeur, donc ce genre d'opérations me paraissait faisable.

    Après un peu de recherches j'ai toruvé cette vidéo où la personne utilise un modue "selector" qui permet de sélectionner différentes connexions et les "connecter ensemble". La solution ne sera peut être pas hyper élégante, assez redondante, mais je pense pas que ce soit grave vu qu'on a pas besoin de rapidité incroyable pour cette fonctionnalité, et que ce sera l'ordinateur qui gère (et c'est seulement du routing)
    https://www.youtube.com/watch?v=8_IHEsIkMwU

Discussions similaires

  1. [Programmation] Interrupteur contrôleur midi Arduino
    Par inviteb1860e60 dans le forum Électronique
    Réponses: 0
    Dernier message: 02/08/2017, 04h30
  2. connecter un synthétiseur sur port midi
    Par invited5797b50 dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 13/04/2013, 11h35
  3. Probleme usb sur controleur midi
    Par invite54ab1317 dans le forum Électronique
    Réponses: 0
    Dernier message: 06/06/2011, 19h45
  4. controleur midi
    Par invite535ab4a4 dans le forum Électronique
    Réponses: 0
    Dernier message: 02/09/2008, 19h05
  5. Projet tuteuré 1er année : synthétiseur et musique électronique
    Par invite3ba5b099 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 05/03/2006, 09h25
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...