Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Interface MIDI USB 3 IN / 3 OUT

  • 16 réponses
  • 4 participants
  • 1 430 vues
  • 7 followers
Sujet de la discussion Interface MIDI USB 3 IN / 3 OUT
Salut les AFIENS,

Petit post pour vous dire que je viens de terminer la réalisation d'une interface MIDI USB 3 IN / 3 OUT, basée sur une carte microcontrôleur à base de STMF32103, le "Bluepill" beaucoup plus puissante qu'un Arduino, et coûtant moins de 2€ sur de nombreux sites chinois, comme ici par ex. Le firmware est open source.

J'ai également réalisé une platine , (i.e. un "shield" pour ceux qui pratiquent l'Arduino), qui permet de connecter simplement la "Bluepill", de souder quelques circuits élémentaires, et de disposer ainsi d'une interface MIDI compliant avec 3 MIDI IN DIN / 3 MIDI DIN OUT.
68747470733a2f2f322e62702e626c6f6773706f742e636f6d2f2d776f3148323752515969552f58447a4f395647337664492f41414141414141414157412f4b65684c6a7958684c54675f6e6d6a6a6d456b4f374c5a74593548383352722d41434c63424741732f73313630302f32303139303131335f3232313535372e6a7067

Je m'en sers désormais tous les jours, à coté de 2 MIDIFACES 4x4 dont j'avais d'ailleurs modifié également le firmware.
Manque plus qu'un boitier...si des experts de l'impression 3D me lisent !
Les commentaires et les questions sont les bienvenues.
Le site du projet sur Github : https://github.com/TheKikGen/USBMidiKliK4x4

[ Dernière édition du message le 19/01/2019 à 15:54:12 ]

Afficher le sujet de la discussion
11
J'étais fan du concept des premières version, je suis sur le cul la...
Tu vends tjs des interfaces ?
12
Hello,

Oui, en mode artisanal, (fabriquée à l'unité !) sur Tindie, ou en MP si besoin. Voir sur Github.
Il me reste une dizaine de carte nue également.
13
Aperçu de l'interface de configuration mode terminal :


USBMIDIKLIK 4x4 - BLUEPILL STMF103CBx 128K FLASH (MASTER ON BUS)
V2.5 - Build 2.200416.0325 - (c) TheKikGen Labs
[url]https://github.com/TheKikGen/USBMidiKliK4x4[/url]

[0] Show global settings         [c] Midi clock                   [x] Exit
[1] Show midi routing            [8] Toggle bus mode              [!] Dump EEPROM
[2] Usb VID PID                  [9] Set device Id                [:] Dump Flash memory
[3] Usb product string           [a] Show active devices           /  Format EEPROM
[4] Cable OUT routing            [d] SYSEX settings dump
[5] Jack IN routing
[6] IThru routing                [e] Reload settings
[7] USB idle time                [f] Factory settings
[v] Virtual IN routing           [r] Reset routing
[p]  Show pipeline                s Save settings
=>1
VIRTUAL IN ROUTING (8 port(s) found)

| Vr | Pipeline | Cable IN 1111111 | Jack OUT 1111111 |<-|  Clock Generator  |
|    |   Slot   | 1234567890123456 | 1234567890123456 |  | MTC  Bpm  Enabled |
|  1 |    .     | .X.............. | ...............  |  |  X  120.0    .    |
|  2 |    .     | ..X............. | ...............  |  |  .  128.0    X    |
|  3 |    .     | ...X............ | ...............  |  |  X  132.0    X    |
|  4 |    .     | ................ | ...............  |  |  .  120.0    .    |
|  5 |    .     | ................ | ...............  |
|  6 |    .     | ................ | ...............  |
|  7 |    .     | ................ | ...............  |
|  8 |    .     | ................ | ...............  |


CABLE OUT ROUTING (16 port(s) found)

| Cb | Pipeline | Cable IN 1111111 | Jack OUT 1111111 | Virt. IN 1111111 |
|    |   Slot   | 1234567890123456 | 1234567890123456 | 1234567890123456 |
|  1 |    .     | ................ | X..............  | ........         |
|  2 |    .     | ................ | .X.............  | ........         |
|  3 |    .     | ................ | ..X............  | ........         |
|  4 |    .     | ................ | ...X...........  | ........         |
|  5 |    .     | ................ | ....X..........  | ........         |
|  6 |    .     | ................ | .....X.........  | ........         |
|  7 |    .     | ................ | ......X........  | ........         |
|  8 |    .     | ................ | .......X.......  | ........         |
|  9 |    .     | ................ | ........X......  | ........         |
| 10 |    .     | ................ | .........X.....  | ........         |
| 11 |    .     | ................ | ..........X....  | ........         |
| 12 |    .     | ................ | ...........X...  | ........         |
| 13 |    .     | ................ | ............X..  | ........         |
| 14 |    .     | ................ | .............X.  | ........         |
| 15 |    .     | ................ | ..............X  | ........         |
| 16 |    .     | ................ | ...............  | ........         |


JACK IN ROUTING (15 port(s) found)

| Jk | Pipeline | Cable IN 1111111 | Jack OUT 1111111 | Virt. IN 1111111 |        ITHRU      Jack OUT  1111111 | Virt. IN 1111111 |
|    |   Slot   | 1234567890123456 | 1234567890123456 | 1234567890123456 | Enabled |  Slot  | 1234567890123456 | 1234567890123456 |
|  1 |    .     | X............... | ...............  | ........         |    .    |    .   | XX.............  | ........         |
|  2 |    .     | .X.............. | ...............  | ........         |    .    |    .   | ..X............  | ........         |
|  3 |    .     | ..X............. | ...............  | ........         |    .    |    .   | ..X............  | ........         |
|  4 |    .     | ...X............ | ...............  | ........         |    .    |    .   | ...............  | ........         |
|  5 |    .     | ....X........... | ...............  | ........         |    .    |    .   | ...............  | ........         |
|  6 |    .     | .....X.......... | ...............  | ........         |    .    |    .   | ...............  | ........         |
|  7 |    .     | ......X......... | ...............  | ........         |    .    |    .   | ...............  | ........         |
|  8 |    .     | .......X........ | ...............  | ........         |    .    |    .   | ...............  | ........         |
|  9 |    .     | ........X....... | ...............  | ........         |    .    |    .   | ...............  | ........         |
| 10 |    .     | .........X...... | ...............  | ........         |    .    |    .   | ...............  | ........         |
| 11 |    .     | ..........X..... | ...............  | ........         |    .    |    .   | ...............  | ........         |
| 12 |    .     | ...........X.... | ...............  | ........         |    .    |    .   | ...............  | ........         |
| 13 |    .     | ............X... | ...............  | ........         |    .    |    .   | ...............  | ........         |
| 14 |    .     | .............X.. | ...............  | ........         |    .    |    .   | ...............  | ........         |
| 15 |    .     | ..............X. | ...............  | ........         |    .    |    .   | ...............  | ........         |

ITHRU mode is disabled.
USB idle detection time :30s


Le générateur d'horloge peut aussi générer des trames Midi Time Code 30 fps (SMPTE).
14
Ci-dessous, un exemple de pipeline utilisé avec le pipe "keyboard splitter". Fonctionne comme suit :
Pipe 0 : si p1, valeur de la note >= 0 : fixer canal à p2 (canal midi 1)
Pipe 1 : si p1, valeur de la note >= 30H : fixer canal à p2 (canal midi 2)
Pipe 2 : si p1, valeur de la note >= 60H : fixer canal à p2 (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

=>p
PIPELINE SLOT 1 :

| Idx | Pipe id    ( p1, p2, p3, p4 ) | Bypass |
|   0 | 08 KBSPLIT ( 00, 00, 00, 00 ) |        |
|   1 | 08 KBSPLIT ( 30, 01, 00, 00 ) |        |
|   2 | 08 KBSPLIT ( 60, 02, 00, 00 ) |        |

| Attached port            |          1111111 |
|                          | 1234567890123456 |
| Cable out                | ..............X. |
| Jack in                  | ................ |
| Jack in Ithru            | ................ |
| Virtual in               | .X.......        |





15
Salut,

Je viens de découvrir ton interface sur Git, super taf, vraiment.. en plus open source...:8O::bravo:

J'ai quelques questions un peu techniques qui me viennent.

La première, comment sais-tu quand tu achete les BLUEPILL que ce sont des vrai et pas des clones ?

J'ai acheté mes premières BLUEPILL sur aliexpress récemment, 2 parmis elles sont des CKS32, et les 2 autres sont des STM32F103 mais elles ont un comportement bizarre quand je compile un bootloader.
Après, je suis un peu novice avec les lib STM32, les nouvelles fonctions, la nouvelle architecture STM(j'ai tout appris sous arduino), donc je compile peut être mal le bootloader.

En tout cas je galère à comprendre le bootloader sur ton Git et à le compiler. Une fois compilé, ma carte BLUEPILL n'est pas reconnu comme midi device quand je la branche en USB mais en Standard USB device.

Autre question, quel est le fonctionnement général de ton bootloader ? Si on recompile avec l'IDE arduino, il sera effacé ?

Je bosse en ce moment à passer un contrôleur midi que j'ai fait sous arduino (https://www.youtube.com/watch?v=hh8hn07VTkg) à du STM32.
Ma première tâche principale est de faire la mesure de potentiomètres via les ADC et envoyer cette mesure en midi au travers de l'USB. Ton projet m'intérresse donc énormément, mais je ne vois pas comment je pourrait modifier le code (est ce que l'IDE arduino est suffisant pour modifier ton code ?) pour qu'il «écoute & transmette» les mesures faites sur les ADC.

Adrien
16
Salut Adrien,

L'IDE Arduino suffit pour modifier le code. Tu devras télécharger aussi ma librairie MIDI sur le Git.
Tu peux utiliser le bootloader Stm32Duino si tu as des soucis, voire ne pas utiliser de bootloader du tout.
Effectivement, le comportement est variable en fonction des Bluepill (clone, original, qualité des composants, etc...).
Pour les Bluepill, le seul moyen de vérifier est d'acheter ! Parfois les clones sont de meilleure qualité !
Je te propose de continuer la discussion sur le Github si besoin ou MP !




[ Dernière édition du message le 30/08/2020 à 12:12:33 ]

17