Se connecter
Se connecter

ou
Créer un compte

ou
Sujet de la discussion Interface MIDI USB 3 IN / OUT jusqu'à 15 IN / OUT avec routage et transfo midi
Salut les AFIENS,

J'avais posté dans la mauvaise rubrique ce topic il ya quelque temps en me promettant de corriger...chose faite !

J'ai réalisé from scratch une interface MIDI USB 3 IN / 3 OUT, basée sur une carte microcontrôleur à base de STMF32103 "Bluepill", qui est beaucoup plus puissante qu'un Arduino (72 Mhz !), et coûtant moins de 2€ sur de nombreux sites chinois.

J'ai également réalisé une platine qui permet de connecter simplement cette carte "Bluepill" (au milieu sur la photo ci-dessous), sur le principe d'un shield Arduino, de souder quelques circuits élémentaires, et de disposer ainsi d'une interface MIDI compliant avec 3 MIDI IN DIN / 3 MIDI DIN OUT extrêmement puissante.
68747470733a2f2f322e62702e626c6f6773706f742e636f6d2f2d776f3148323752515969552f58447a4f395647337664492f41414141414141414157412f4b65684c6a7958684c54675f6e6d6a6a6d456b4f374c5a74593548383352722d41434c63424741732f73313630302f32303139303131335f3232313535372e6a7067

On peut également "agréger" plusieurs interfaces en une seule, en exploitant le bus I2C, et obtenir ainsi une interface qui peut offrir jusqu'à 15 In x 15 Out ports (1 carte=3x3, 2=6x6, 3=9x9, 4=12x12, 5=15x15) :

USBMIDIKLIK-I2C-BUS-MODE.jpg

Ci-dessous, l'interface 15IN / 15OUT (laide) dont je me sers dans mon studio. 20191215_173355.jpg

Concernant la manipulation de messages midi en temps réel : Un mécanisme de "pipeline" permet de transformer un messages midi IN en live, pour par exemple, transposer les notes, splitter un clavier par notes ou par vélocité (layering) sur plusieurs canaux midi, diviser une horloge midi, mapper des contrôleurs midi, mapper un canal midi vers un autre, filtrer des messages spécifiques, etc... avant son routage vers les ports de sortie. Il est très simple d'ajouter d'autres "pipes" (les briques élémentaires de transfo). 4 générateurs d'horloge midi / Midi Time Code, et 8 ports virtuels sont également disponibles.

pipelines1.jpg

Par exemple, pour splitter des notes sur 3 claviers différents, on peut utiliser le "pipe" (un module) "keyboard splitter" nommé KBSPLIT. Ce pipe accepte 2 paramètres : p1, valeur de la borne inf pour la note jouée et p2, canal midi vers lequel la note sera envoyée si la note jouée est >= à p1 . Comme il est possible "d'empiler" plusieurs fois KBSPLIT dans un tuyau midi (le pipeline), on peut donc splitter les notes midi sur 3 claviers différents (ou plus) :

KBSPLIT Pipe n°1 : si p1, valeur de la note >= 0 : fixer canal midi à 1
KBSPLIT Pipe n°2 : si p1, valeur de la note >= 30H : fixer canal midi à 2
KBSPLIT Pipe n°3 : si p1, valeur de la note >= 60H : fixer canal midi à 3
=> puis routage

Ainsi les notes sont distribuées sur différents canaux midi : [0,2fh] => 1, [30h,5fh] => 2, [60h,7fh] => 3
(J'espère que vous suivez !)

Vue globale des chemins possibles empruntés par un message midi du IN vers le OUT physiques.

umk4x4-routing-engine-overview.jpg

Le site du projet sur Github : https://github.com/TheKikGen/USBMidiKliK4x4
Je m'en sers tous les jours, il ne manque plus qu'un boitier...si des experts de l'impression 3D me lisent !
Le firmware est open source.

[ Dernière édition du message le 30/08/2020 à 13:10:56 ]

2
Salut ! ben...moi j'aime pas trop l'cambouis :( enfin disoint que je suis assez nul en technologie ^^
Mais je cherche un petit boitier qui pourrait avoir 3 Midi IN (4?) et au moins 1 Midi Out (pour aller à un quadra thru)
Comme je cherche à faire fonctionner (en stand alone) un Beatstep non Pro de chez Arturia , Le modèle non Pro doit être alimenté en Usb ,(à l'inverse de son grand frère)
C'est possible ça ?
3
Réponse un peu tardive !!
Pas de cambouis ici ! Il y a des cartes toutes prêtes sur Tindie (en cours de fab).
Ce que tu peux faire avec cette interface va largement au delà que ce que fait un Quadra thru.
Tu peux effectivement router les 3 midi in de l'interface vers 1 OUT (merge) avec quelques commandes SYSEX.
Voir cet example ici : https://github.com/TheKikGen/USBMidiKliK4x4/wiki/UMK4x4-V2.5-User-Manual#43-routing-example-a-trithru-%C3%A0-la-midisolutions

Il est maintenant possible d'ajouter des courbes de vélocité, comme le fait également le Velocity Converter de Midisolutions, en mieux et moins cher.
https://github.com/TheKikGen/USBMidiKliK4x4/wiki/UMK4x4-V2.5-User-Manual#44-velocity-curves-example--reproduce-the-midisolutions-velocity-converter-39-curve

[ Dernière édition du message le 24/10/2023 à 00:29:49 ]