Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]

6 - Le MIDI

> Forums de discussion > 6 - Le MIDI > Je cherche un Synthetiseur MIDI simple (Bricolage Arduino)
Dernier post

Je cherche un Synthetiseur MIDI simple (Bricolage Arduino)

ted utilisateur non connecté
Bonjour,

Je viens par ici chercher quelques infos pour un de mes projets.
Celui-ci consiste à apprendre quelques bases musicales à des enfants enfants, dont le codage, à l'école. Pour cela, j'aimerai utiliser un contrôleur midi capacitif (dans le genre makey-makey) afin de produire des sons sur un PC.

J'ai déjà un prototype fonctionnel, mais qui est un peu trop complexe:
Une carte Arduino fait office de clavier capacitif, et envoie les infos au PC par USB (port série). Sur le PC, un programme Python réceptionne ces données (série), et émule l'appui de touches du clavier (/dev/uinput, evdev). Un programme joue alors les notes correspondantes (ZynAddSubFx, car c'est celui que j'ai réussi à faire fonctionner...). Ça marche bien, mais l'idéal serait que les enfants soient un peu autonomes, et c'est dur avec une telle pile de logiciels (il faut que la bonne fenêtre ait le focus, par exemple, et faire des réglages).

J'ai vu qu'il est peut-être possible de transformer ma carte Arduino en contrôleur MIDI USB , cela pourrait un peu simplifier le système. Mais j'ai besoin de votre aide pour la partie logiciel PC.

Je cherche un logiciel tout simple, capable de réceptionner les événements MIDI et produire un son correspondant. Par simple, je veux dire qu'il n'y ait pas d'interface graphique compliqué avec 1500 boutons: il faut juste le lancer, et que ça fonctionne (préréglé). Il pourrait même ne pas y avoir pas d'interface graphique du tout: si je peux coder l'interface moi même (python) c'est très bien. J'ai vu qu'il existe TiMidiTy, est ce que ça pourrait faire l'affaire?

Je vous précise que ne connais pas vraiment l'univers de la MAO, et je n'ai jamais utilisé de périphérique MIDI:je n'en ai pas à ma disposition pour tester, jusqu'à ce que je bidouille ma carte Arduino (une nano).

Avez-vous des logiciels ou des bibliothèques à me conseiller? Il faut que ça fonctionne sous Linux, de préférence avec Alsa/PulseAudio (parce que j'ai du mal avec Jack... mais bon au point où j'en suis ^^')

olof utilisateur non connecté
n'importe quel instrument virtuel midi pourrait faire l'affaire.
par exemple calf-wavetable te permettrait de charger d'avance une forme d'onde , eventuellement de jouer un peu sur son enveloppe et sur un ou deux lfos et roule.
ou alors Calf-Fluidsynth te permettrait de charger des soudfonts de ton choix
tu trouverais peut etre des synthés plus faciles d'acces de zyn, comme par exemple helm, ou un synthetiseur modulaire comme ingen the plaira t'il peut etre encore plus etant donné que tu pourras construite celui ci comme tu veux.

mais de toute façon je te conseille vraiment d'utiliser jack... avec cadence pour le lancer par exemple, c'est pas bien sorcier.

yruama utilisateur non connecté
@ted: la manip que tu présente a l'air d’être encore plus compliqué et peux ne pas être possible avec ton arduino nano. L'astuce consiste à reprogrammer la puce dédié à la communication entre l'USb du pc et la puce principal. Si c'est pas une puce atmega (8U2), ça ne marchera pas. En plus il semblerais que le firmware midi ne permet pas de reprogrammer la puce principale. tu est obliger à chaque fois de remettre le programme d'origine sur cette puce secondaire avant de pouvoir reprogrammer la puce principale (sauf si tu a un programmateur)

ted utilisateur non connecté
@yruama : oui, je suis encore en train d'étudier la question, je ne savais pas trop si c'est la puce principale ou le pilote usb/série qui devait être flashé. Mes cartes sont des clones avec la puce ch340G, donc en fait, ça ne marche pas :-(

Par contre je vais essayer en utilisant le logiciel ttyMIDI, qui convertira les données envoyées de l'Arduino par série en MIDI.

https://github.com/robelix/hard-dj/tree/master/ttymidi

@olof: Merci pour les suggestions, mais ce n'est pas vraiment ce que je recherche (interfaces trop complexes).

yruama utilisateur non connecté
Sinon, deux autre alternative en tête:

1) prendre un câble midi/USB + un connecteur DIN et une résistance de 220 ohm. ensuite tu envoie tes octet sur le port série de l'arduino à 31250 bauds et tu recupère ca avec le cable midi/usb. La résistance sert a avoir le bon courant quand tu est en 5v, mais là j'ai oublié ou on la branche.

2) utiliser un arduino micro (atmega32U4) et la lib midiUSB. cette carte à l'USB natif et la lib te permet d'envoyer des trame midi/USB (4 octets).

olof utilisateur non connecté
calf fluidsynth n'est certainement pas une interface complexe : tu charges une fichier soundfont (.sf2) de ton choix, et c'est tout. par contre, bien sur il te faut faire les connections qui vont bien dans jack.

olinuxx utilisateur non connecté France
Pour aller dans le sens d'olof, il est à noter que calfjackhost (l'hôte pour les greffons calf) est utilisable en ligne de commande sans nécessité d'une interface graphique.

Comme souvent, il y a plusieurs possibilités !

ted utilisateur non connecté
J'ai un peu avancé, voici un screenshot qui sera peut être plus parlant:
Image
La liaison Arduino>PC fonctionne, et j'ai bien une sortie MIDI Alsa. On peut voir que ça marche, car j'ai routé cette sortie vers le clavier VMPK.

Niveau logiciel, j'utilise ttyMidi, qui sort du MIDI Alsa. Il y a un fork de ce logiciel qui utilise Jack, mais quand je le lance il me met un message d'erreur (cf screenshot), et la sortie MIDI ne s'active pas (mais l'entrée apparemment oui).

Par contre, je ne parviens pas encore à un son... Peut être que je n'ai pas bien configuré TiMidiTy... Mais j'ai aussi remarqué qu'après avoir bidouillé avec Jack, mes autres applications ne pouvaient plus émettre de son, donc ça vient peut être aussi de là.

olinuxx utilisateur non connecté France
ted écrit :
il me met un message d'erreur (cf screenshot)


Voir PAM.

ted écrit :
Par contre, je ne parviens pas encore à un son


Tu ne sembles pas avoir de générateur de son (synthé logiciel, ou lecteur de banque de son) dans ta config' actuelle. Et le MIDI n'est qu'un ensemble de commande qui ne produit pas de son directement.

ted utilisateur non connecté
@olinuxx: J'ai fait les réglages pour que Jack soit en temps réel, et le message d'erreur a disparu. Mais la sortie Midi Jack de ce logiciel ne fonctionnait toujours pas (je vais encore retester)... Dans l'exemple que j'ai donné, c'est TiMidiTy le synthé.

Mes déboires avec Alsa venaient du fait que certaines applications monopolisaient la carte son, une fois Jack stoppé et le serveur Alsa relancé, ça marche. Je comprend bien l'intérêt de Jack, mais du coup je n'ai pas réussi à avoir une chaîne qui fonctionne avec lui...

Actuellement, j'ai quelque chose de fonctionnel avec Alsa, ça fonctionne comme ça:
- La carte Arduino envoie les données à l'ordinateur (série/USB)
- ttymidi lit les données série, et les convertit en MIDI
- un synthé joue les sons (TiMidiTy ou ZynAddSubFX)
- je connecte l'entrée MIDI et le synthé avec Patchage

Les points à améliorer:
- J'aimerai pouvoir me passer de Patchage, et que la connexion du "clavier" MIDI au synthé soit automatique. Je ne sais pas comment on peut régler cela
- J'ai remarqué de la latence avec TyMidiTy, alors qu'il n'y en a pas avec ZynAddSubFX
- Avec le synthé ZynAddSubFX, je ne peux pas utiliser d'autre logiciel audio (Par exemple VLC). Avec TiMidiTy, oui...

Petit aperçu du montage, il lui faut encore quelques boutons et une jolie boite ^^

Image

olinuxx utilisateur non connecté France
ted écrit :
J'ai fait les réglages pour que Jack soit en temps réel, et le message d'erreur a disparu. Mais la sortie Midi Jack de ce logiciel ne fonctionnait toujours pas (je vais encore retester)


"la sortie Midi Jack de ce logiciel" ... de quel logiciel parles-tu ?



ted écrit :
J'aimerai pouvoir me passer de Patchage, et que la connexion du "clavier" MIDI au synthé soit automatique. Je ne sais pas comment on peut régler cela


jack_connect en ligne de commande



ted écrit :
Avec le synthé ZynAddSubFX, je ne peux pas utiliser d'autre logiciel audio (Par exemple VLC). Avec TiMidiTy, oui...


Probablement parce que Zynaddsubfx est lancé en mode audio-alsa et pas audio-jack. Consulter le man de zynaddsubfx (spécialement les options -I et -O).

ted utilisateur non connecté
Hello,

Juste un petit retour sur mon projet: j'ai pu faire un truc correct avec un script lançant ttymidi, ZynAddSubFX préconfiguré, puis aconnect pour relier tout ça. Et ça fonctionne bien, j'ai pu le tester avec des élèves de cm1/cm2 pour leur apprendre la notion d'isolant et conducteur.

Image

Image

Afficher les articles :
Aller au forum :

Documentation [Afficher / Cacher]

Connexion
[Afficher / Cacher]



Mégaphone [Afficher / Cacher]

olinuxx, 07:25, lun. 18 Jun 2018: @BrnVrn; réponse courte (mégaphone oblige) : oui et non. Ouvre un sujet dans le forum pour des réponses plus longues.
sub26nico, 22:42, dim. 17 Jun 2018: Salut et bienvenue à BrnVrn :-)
BrnVrn, 20:07, dim. 17 Jun 2018: LADSPA est-il obsolete ? On trouve du LADSPA parce qu'il y a beaucoup de legacy ou c'est utilisé sur de nouveau projets ?
sub26nico, 15:43, dim. 17 Jun 2018: Salut et bienvenue à ledufakademy :-)
olinuxx, 11:22, sam. 16 Jun 2018: Une nouvelle version du MOD Duo est apparue : [Lien]
sub26nico, 20:17, ven. 15 Jun 2018: Un éditeur audio original multiplateforme : [Lien]
sub26nico, 13:45, ven. 15 Jun 2018: Salut et bienvenue à Onerrach :-)
olinuxx, 19:23, mer. 13 Jun 2018: Bonjour et bienvenue à Zuardent :-)
sub26nico, 00:35, mer. 13 Jun 2018: Salut et bienvenue à milie :-)
sub26nico, 20:53, sam. 09 Jun 2018: @Nolwen, ça fonctionnait ici avec firefox
Nolwen, 18:46, sam. 09 Jun 2018: Bon, ce n'est pas que le son était de si mauvaise qualité, c'était surtout que FalkTX parlait tout bas (ou bien que son micro était trop loin de sa voix)...
Nolwen, 17:25, sam. 09 Jun 2018: Ah si, il faut un navigateur basé sur Chromium (Yandex en l'occurence). Firefox ESR ne fonctionne pas ! Youpi !