Forum : 6 - Le MIDI

[RESOLU] Piloter Carvin quad X avec pc + carte son en midi

jujudusud utilisateur non connecté France
Bonjour tout le monde.

Je cherche comment envoyer un ordre midi au travers d'une carte son (midi).
Ma carte est une presonus audiobox usb. elle posséde un midi In et un Midi Out.
Mon but est de cliquer sur une bouton (une touche etc) pour faire changer de canal un Preampli Guitare Quad X Carvin.

Est ce que vous avez une idée, des pistes ?

Merci par avance.

olinuxx utilisateur non connecté France
Explique nous comment est connecté tout ce petit monde.

jujudusud utilisateur non connecté France
Bonjour Olinux,
Merci de ta réponse et de ton aide.

En fait, ce dont j'ai besoin, c'est "juste" d'envoyer un instruction midi "Program Change" à un préampli. Celà me permettrai de changer de canal (clean PC0, clean2 PC1, Crunch PC2, Lead PC3).

L'écoute du canal midi par le préampli se règle avec des mini switchs accessibles sur la façade arrière de l'engin. Donc je peux décider d'utiliser n'importe lequel des canaux midi(de 1 à 16).
le Préampli possède un Midi In et un Midi Thru. Donc il recoit les infos sans soucis.

Mon PC est sous GNU/Linux (Manjaro pour l'instant ... mais peu importe ...).
Mon interface audio est une Presonus Audiobox usb ( https://www.presonus.com/products/audiobox-usb ). Elle est dotée d'un Midi In et Midi Out à priori bien reconnu sous Linux.

Donc, je cherche un "programme" qui me permettrait d'envoyer les infos en passant par ma carte son pour piloter mon préampli.

Tu en penses quoi ?

olof utilisateur non connecté
a priori, il te faut utiliser jack pour piloter ta carte presonus
a lancer avec cadence par exemple, et ensuite realiser les connections qui vont bien.
as tu lancé jack ?

sub26nico utilisateur non connecté France
Alors, si je ne dis pas de conneries, il faudrait un logiciel capable de recevoir un ordre
(clic de souris, touche ou potard de clavier maître) et de le transformer en program change,
le logiciel serait connecté au midi out de la carte son via Jack, le midi out physique de la carte
serait connecté au midi-in de l'ampli par câble midi.
Si je vois juste, la question à un million est :
Quel logiciel peut recevoir et envoyer des information midi?
Qmidiroute? OSC? PureData?

jujudusud utilisateur non connecté France
Bonjour Olof, Bonjour Nico :-)

@Olof :
J'utilise Jack2 pour tout ce qui est connexion audio.
Je comprend comment fonctionne le midi mais je suis totalement débutant.

J'utilise aussi la suite Cadence.

Tout ce que je vois partout comme infos sur le midi n'est uniquement qu'un routage de "notes midi" à destination d'instruments. Du coup je suis un peu perdu.

@Nico : Exactement ! Parfaitement !
La question est quel logiciel peut recevoir les infos d'un clavier, d'une souris ... ou de je ne sais pas encore quoi d'autre (une tablette bluetooth/wifi) et serait capable d'assigner à ces evenements un ordre Programme Change correspondant à un préampli par l'intermédiaire de la carte son (par exemple la touche 1 du clavier numérique = Canal 1 du préampli)...

Qmidiroute, OSC, PureData ... Voilà trois bonnes pistes !!! alors ... je vais m'y coller !

N'hésitez pas si vous avez des infos... des idées ...

-----------------------------------------------------------------
EDIT pour info :
extrait d'un site d'aide sur Pure Data :
"Autres objets MIDI

Il y a de nombreux autres objets MIDI dans Pure Data, et la plupart d'entre eux sont documentés dans l'aide interne du programme.

pgmin / pgmout : ces objets reçoivent et envoient des changements de programme (program changes), qui sont utilisés pour des sons d'instrument, ou des rythmes, par exemple. "
alors dèja avec Pure Data, ça doit le faire ... à tester !!!
-----------------------------------------------------------------
J'ai regardé mes connections avec Catia (et Jack) et je ne vois pas mes connections Midi USB de ma carte son... je vais creuser par là. Certainement que je dois mettre en route le pont "Alsa-jack Midi"
J'essaie de regarder aujourd'hui.

jujudusud utilisateur non connecté France
la suite de mes aventures :-)

J'ai installé Alsa to jack midi deamon qui à l'air de bien être en place.
a2jmidid
Ensuite, j'ai tenté de bridger alsa midi avec Jack au travers de Catia de la suite Cadence.

voilà le message d'erreur qui sort dans le log :
Mon Dec  4 15:02:33 2017: Bridge starting...
Mon Dec  4 15:02:33 2017: Using JACK server 'default'
Mon Dec  4 15:02:33 2017: Hardware ports will be exported.
Mon Dec  4 15:02:33 2017: ERROR: a2j_new: failed to open alsa seq
Mon Dec  4 15:02:33 2017: ERROR: a2j_start: a2j_new() failed.
Mon Dec  4 15:02:33 2017: ERROR: a2j_dbus_error: a2j_start() failed.


Je suis allé voir dans alsamixer, la carte son possede bien un Midi Raw :
/proc/asound/devices 
  2: [ 0]   : control               
  3: [ 0- 0]: digital audio playback
  4: [ 0- 0]: digital audio capture 
  5: [ 0- 0]: raw midi
 33:        : timer


et
/proc/asound/oss/devices
  2: [0- 0]: raw midi
  9: [0- 0]: raw midi


J'avance :-)

-----------------------------------------------------------
Après recherche et reboot et je sais pas trop encore quoi d'autre ...
j'ai finalement deux Midi Through qui sont bien utilisés par Alsa. Cela correspond bien aux deux ports qui sont sur l'interface audio (un In et un Out).
Le pont Alsa To Jack Midi fonctionne apparement !

Mais ... je n'arrive plus à mettre la main sur mon cable Midi DIN !!!! :-)
Bon rien de grave, je vous tiens au courant !

Merci à tout le monde, vous me faites reflechir et du coup je trouve des solution a cheval entre vos indications et ce que je vois dans mon système :-)... :-)

olinuxx utilisateur non connecté France
jujudusud écrit :
La question est quel logiciel peut recevoir les infos d'un clavier, d'une souris ... ou de je ne sais pas encore quoi d'autre (une tablette bluetooth/wifi) et serait capable d'assigner à ces evenements un ordre Programme Change correspondant à un préampli par l'intermédiaire de la carte son (par exemple la touche 1 du clavier numérique = Canal 1 du préampli)...


mididings ?

jujudusud utilisateur non connecté France
Bonjour Olinux :-)

Alors là ! Mididings, est absolument, exactement ce dont j'ai besoin (et envie).

Mes programmes Pythons seront beaucoup plus simple étant donné que je n'ai que 4 Program Change sur un seul canal et rien d'autre en simultané. Mais c'est vraiment top !

Je vais me plonger dedans, même si je n'ai pas encore les compétences pour mettre ça en place, avec les exemple que tu donnes je dois pouvoir m'en sortir.

Dès que j'ai un peu avancé, je reviens ici vous montrer où j'en suis.
J'aurais peut être besoin de vous pour m'aider à débugger le cas échéant.

Merci, Merci et Merci à tout le monde.

olof utilisateur non connecté
bon je crois que pour ce que tu veux faire, puredata ça reviendrait a acheter une usine a gaz pour allumer un barbecue...
et mididings à t'y mettre avec 2 silex...
je suis convaincu que c'est faisable dans les deux cas, mais y'a peut etre un truc qui ressemblerait plus a une boite d'allumettes, une methode plutot efficace et simple à mettre en oeuvre :

  • un clavier midi virtuel qui comprends en entree l'appui sur les touches d'un clavier d'ordi : vmpk devrait faire l'affaire
  • derriere tu mets qmidiroute qui transforme les notes midi en entree dans le programme change qui te convient, et tu routes tout ça vers l'entree de ton preamp. y'a plus qu'a appuyer sur A, B, C ...

jujudusud utilisateur non connecté France
Bonsoir à ceux qui suivent mes aventures :-)

Bon, je dois dire un truc ! Encore une fois merci à tout le monde !
j'ai appris plein de choses ... trifouillé partout ... Génial ! J'adore !

J'ai tenté le coup avec VMPK et qmidiroute.
Qmidiroute voit bien VMPK et à priori il transpose bien les ordres ... mais je ne suis pas arrivé a faire fonctionner ça ... je pense que c'est du à un soucis de ma part, impossible je crois de connecter virtuellement dans mon pc la sortie de Qmidiroute au port physique midi out de ma carte son ...

En plein désespoir ... j'ai donc investigué et cherché une solution ...
Et j'ai trouvé quelque chose qui me satisfait à moitié mais me montre que mon ampli fonctionne bien du coté de son entrée midi :-)

J'ai squeezé Qmidiroute (qui est top !!!) et j'ai demandé à VMPK d'utiliser AudioboxUSB:0 comme port de sortie midi ! Et la miracle ! le fait de changer de programme (acoustic grand piano/bright acoustic piano ... etc ...) fait changer mon ampli de canal !

Les chemins : Editer / Connexions Midi / Pilote midi out -> Alsa / Connexion du port de sortie -> Audiobox USB:0

je pense que je vais avoir d'autres questions et d'autres soucis en essayant d'autres logiciels ... Je vais maintenant tenter d'utiliser Qmidiroute et lui demander de passer par le port de sortie Audiobox lui aussi ... Affaire à suivre ! :-)

olof utilisateur non connecté
pour pouvoir faire les connections, il te faut faire apparaitre les connections midi dans claudia de la suite cadence (peut etre aussi possible avec catia )
pour cela, dans un terminal , tape la commande suivante :

a2jmidid -e


et tu auras tes connections midi disponibles dans claudia, y'aura plus qu'a relier les bonnes sorties aux bonnes entrée, et à mettre le bon filtre dans qmidiroute

jujudusud utilisateur non connecté France
Dans l'immediat, il m'est impossible de lancer Claudia :

[julien@GMC ~]$ claudia
Using Tray Engine 'Qt'
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/dbus/bus.py", line 175, in activate_name_owner
    return self.get_name_owner(bus_name)
  File "/usr/lib/python3.6/site-packages/dbus/bus.py", line 361, in get_name_owner
    's', (bus_name,), **keywords)
  File "/usr/lib/python3.6/site-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'org.ladish': no such name

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/share/cadence/src/claudia.py", line 2717, in <module>
    gDBus.ladish_control = gDBus.bus.get_object("org.ladish", "/org/ladish/Control")
  File "/usr/lib/python3.6/site-packages/dbus/bus.py", line 241, in get_object
    follow_name_owner_changes=follow_name_owner_changes)
  File "/usr/lib/python3.6/site-packages/dbus/proxies.py", line 248, in __init__
    self._named_service = conn.activate_name_owner(bus_name)
  File "/usr/lib/python3.6/site-packages/dbus/bus.py", line 180, in activate_name_owner
    self.start_service_by_name(bus_name)
  File "/usr/lib/python3.6/site-packages/dbus/bus.py", line 278, in start_service_by_name
    'su', (bus_name, flags)))
  File "/usr/lib/python3.6/site-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.ladish was not provided by any .service files


Je comprends le soucis mais je suis incapable de le résoudre.

Dans catia, je vois bien tout ce qu'il faut :
Lien vers image catia connexion

Après avoir fait 50 fois le tour des options, j'ai fini par trouver ce qui clochait.
Je ne voyais pas les connection Hardware avant de cocher l'option : menu SETTINGS -> Show Alsa Menu (Experimental)

Bon pour l'instant je peux faire changer les canaux soit :
--- en passant par QMidiRoute avec les touches w -> canal 1 / x -> canal 2 / c -> canal 3 / v -> canal 4
--- En utilisant la fonction program change de VMPK avec la touche raccourci Pg up Pg Dw pour switcher canal par canal en montant ... ou en descendant.

Merci encore à tout le monde ! ça n'a l'air de rien mais j'ai fait un pas énorme (de mon point de vue (!).
Je continue à vous tenir informés de mes expériences liées à Linux MAO ... :-)