Chargement...
 
Skip to main content

6 - Le MIDI


Séquenceur MIDI, LinuxSampler et ProgramChange

Salut 😊

Voilà depuis un moment j'ai commencé à titiller les séquenceurs MIDI. Pour synthétiser les instruments j'utilise LinuxSampler avec la banque Sonatina la plupart du temps.

J'aimerais bien ne pas avoir une piste pour le violon sustain, une pour le violon staccato et une pour le violon pizzicato.

Si j'utilise la sortie MIDI avec Qsynth et une banque GM, je peux mettre un événement MIDI programchange suivi du numéro de l'instrument MIDI que je veux utiliser dans la piste et ça modifie l'instrument en sortie.

Mais je n'ai pas trouvé comment faire avec le greffon de synthétiseur LinuxSampler.

Là je suis sur RoseGarden avec Jsampler comme interface pour Linuxsampler.

Est-ce que quelqu'un a une idée de comment faire cela ?

Flo
France
Je ne savais pas qu'on pouvait avoir Linux Sampler en greffon et je veux bien qu'on m'explique comment on fait.
En tous cas, en périphérique externe, j'insère des évènements "program Change" dans l'éditeur MIDI. Mais j'ai toujours eu un problème avec la première note qui suit, qui reste sur le son précédent. Au final j'utilise toujours une piste par instrument.
France
Logiquement : Si la piste envoyée au synthé contient un événement programChange, si le synthé est prèvu pour cet événement, il obéit. S'il ne se passe rien, c'est que l'événement n'est pas traiter par le logiciel.
Dans ton cas, si QSynth accepte c'est que les événements sont bons, et si pour le même fichier, Linuxsampler ne faite rien c'est que l'événement programchange n'est pas traité.
France
A l'époque je voulais alterner les sons sustain et staccato selon la durée de la note. J'ai plutôt eu l'impression que ça prenait du temps de charger le programme demandé en mémoire: sur deux notes staccato, la seconde était bonne. Je crois avoir aussi constaté ce comportement lorsque je changeais à la main l'instrument attribué à une piste, mais rarement.
France
Je viens de faire des tests pour le code programchange MIDI :
Avec QSynth un "port" peut être considérer comme une collection d'instruments et rosegarden peut modifier le "program" suivant le N° dans "channel" de Qsynth (incrémenter de 1 ex : 40 dans qsynth = 41 dans roseg).
Avec Linuxsampler (J'ai utiliser jsampler (fantasia) avec le même fichier rg et la même SF2 que Qsynth), il semblerait que la piste MIDI, pilote le port de Linuxsampler et que, si sur ce port, sont connectés plusieurs instruments sur le même channel, ils jouent tous en même temps, les mêmes notes. Ce qui signifie que contrairement à QSynth, linuxsampler ne tient pas compte de l'instrument donné par rosegarden ; Il ne traite que les données de notes et peut-être quelques données controleurs (je n'ai pas encore testé jusque là), par contre, si dans rosegarden on change le patch de l'instrument, Fantasia n'en à rien à battre, il continue l'instrument définit chez lui. Ce principe ne vient pas forcément de linuxsampler, peut-être de fantasia puisqu'il sert d'interface ?
Merci de vos réponses.

J'ai refait des tests aussi avec LS à la sortie MIDI de RG cette fois.

En effet, il se fiche un peu de l'indication programm. D'ailleurs, quand on veut lui faire charger une SF2 avec plusieurs program dedans, il demande explicitement de dire lequel de ces program on veut charger.

Par contre, il reconnait le changement de channel (intrument dans RoseGarden), mais je ne sais pas s'il y a un événement qui permet de faire ça. Et ça ne permettrait du coup de n'avoir que 16 instrument, pas terrible...

Autre chose, je ne comprends pas dans Jsampler à quoi correspondent les « channel lanes » ni « MIDI instrument map » ni les « Port » qu'on peut ajouter dans MIDI device.
C'est encore moi 😊

Donc j'ai fait des tests avec Qsampler cette fois, et j'ai toruvé quelque chose de plutôt intéressant :
Dans Qsampler, on peut configurer des « instruments » avec lesquels on peut choisir la valeur de program. Donc je vais tester ça, ça a l'air de fonctionner. Il suffit de créer un channel puis on a accès à "instruments" depuis le menu view.
France
Je viens de réessayer Qsampler, il ne veut ni sfz, ni sf2 je ne peux charger que des gig, et là encore, il ne me propose pas d'instrument, (no instrument).
Si tu arrives à les charger avec Fantasia, il n'y a pas de raison que ça ne marche pas avec Qsampler.

Pour utiliser la méthode que j'ai écrite au dessus, il faut donc :
- créer un sampler channel pour chaque piste du sequenceur, chaque sampler channel ne doit écouter qu'un MIDI channel.
- créer des instruments dans qsampler avec des valeurs de program différentes.
- mettre ces valeurs de program dans le séquenceur pour les pistes correspondantes.

Le problème, c'est si on veut faire plus de 16 pistes. Dans ce cas, il faut rajouter une sortie dans le séquenceur et une entrée dans linuxsampler. On gagne alors 16 pistes supplémentaires.
Mais je trouve que ça devient assez fastidieux. Faudrait voir s'il n'y a pas plus simple, ou au moins, comment scripté ça.

Sinon j'ai trouvé comment utiliser LS sans front-end graphique, ça peut toujours servir :
http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html
Bon, j'ai trouver une meilleure idée.

Ça marche avec RG, pour les autres séquenceurs je ne sais pas.
- Mettre toutes les pistes du même instrument les unes en dessous des autres.
- Utiliser LS comme synthé dans RG.
- Sélectionner tous les segments correspondant à un instrument (mais à plusieurs pistes).
- Ouvrir la matrice d'édition ; toutes les pistes sélectionnées apparaissent !
Et on peut switcher d'une piste à l'autre sans avoir à fermer la matrice, il suffit de donner un coup de molette en bas à gauche de la fenêtre de matrice.

Et en plus, en utilisant LS comme plugin on a pas de limite pour le nombre des pistes.

J'écrirai peut-être un tuto si y'en a que ça intéresse de faire marcher LS avec RoseGarden (ou n'importe quel autre séquenceur).
France
Moi, ça m'intéresse. J'avais l'intention de m'attaquer à linuxsampler+rosegarden, alors tu peux y aller. Dès que j'ai fini mes trucs en cours je me joindrai à ton tuto.
Je tenterai un nouvel essai avec Qsampler.