Utiliser Zynaddsubfx et ses code contrôles MIDI avec Rosegarden
Table des matières
Utiliser ZynAddSubFx avec RoseGarden
L'utilisation de Zynaddsubfx avec RodeGarden est simple... avec un peu de pratique.
Commençons par la connexion entre le séquenceur et Zynadd.
Au préalable
Remarque zynadd->jack
Il est possible que dans l'onglet audio de jack le port de sortie : zynaddsubfx n'apparaisse pas. Dans ce cas il faut utiliser le pontage a2jmidi comme indiqué ici en tapant la commande a2jmidi_bridge dans un terminal pour créer un pont statique.
- Avoir créé dans zynaddsubfx les instruments et les avoir affecté à des canaux MIDI différents.
- Démarrez Rosegarden et Zynaddsubfx puis les relier dans jackd/connexion.
Ne pas oublier
Dans ce qui suit, si vous créez des contrôleurs, que vous les testez puis effacez de la liste des contrôleurs de Rosegarden, sans les supprimer des événements dans la piste, ils seront toujours actifs. Il vous faudra les supprimer en passant par l'éditeur d'événements.
Préparer Rosegarden
Création du périphérique d’exécution connecté à Zynadd
Le périphérique d'exécution acheminera les données MIDI à zynadd. Dans le menu : studio->gérer les périphériques MIDI
- dans la zone "périphériques d'exécution MIDI"
- appuyez le bouton créer : une ligne nouveau périphérique apparaît (changez le libellé en double/cliquant dessus ex: zyn )
- choisissez à droite dans la zone sorties disponibles l'appareil MIDI qui sera piloté par zyn, en l’occurrence quelque chose du genre 128: zynaddsubfx (write)
- appuyez le bouton banque, vérifier que zyn est surligné
- appuyez le bouton ajouter une banque : le libellé nouvelle banque apparaît sous zyn changez-le.
- dans la liste des instruments à droite, remplissez les lignes en commençant par la ligne 1 et en plaçant un part (instrument) de zynadd par ligne ; autant de lignes que de part créés dans zynadd.
- fermer les deux boîtes de dialogue.
création de la piste pour jouer l'appareil zynadd
Depuis cette piste vous enverrez les événements MIDI au part de zynadd. Il faut autant de pistes que de part. Évitez le code contrôle "program change", celui-ci était valable à l'époque où il n'y avait pas beaucoup de pistes où quand il fallait "jongler" avec 16 canaux. Ce n'est plus le cas à présent.
- Créez une piste
- dans paramètres de la piste
- dans la zone périphérique : sélectionnez zyn
- dans instrument sélectionnez le canal MIDI qui correspond à l'instrument zynadd qui recevra les données. Pour le part 1 choississez le canal auquel il a été affecté dans zynadd sous le bouton volume (MIDI channel receive )
- dans paramètres instrument
- cochez la case banque pour voir apparaître la banque de zyn que vous avez créé.
- cochez la case programme et sélectionnez l'instrument correspondant au canal choisit plus haut.
- ET SURTOUT pour canal (en dessous de programme) sélectionnez fixé. Sinon les données iront quelque part, mais pas où vous le souhaitez.
Si vous avez plusieurs instruments à piloter vous procédez de même en affectant dans Rosegarden le canal choisit dans zynadd au niveau de la zone MIDI channel receive.
Entrer de nouveaux codes contrôles dans RoseGarden
Chaque périphérique de sortie peut avoir SA série de codes contrôles parce que les synthétiseurs ne répondent pas tous aux mêmes codes et que les périphériques peuvent être reliés à des synthétiseurs différents.
exemple avec le portamento sur zynaddsubfx :
- studio->gérer les périphériques MIDI
- sélectionnez le périphérique qui va recevoir le nouveau code contrôle
- cliquer le bouton contrôleurs
- si le contrôleur portamento (65) n'existe pas le créer :
- cliquer ajouter
- remplir les zones ( code contrôle : 65, valeur mini 0, maxi 127) et accepter les valeurs
- fermer les boîtes de dialogue
- si le contrôleur portamento (65) n'existe pas le créer :
à propos de l'éditeur matriciel
les valeurs des contrôleurs sont initialisés à l'ouverture de la fenêtre, et, dans ce cas, si des contrôleurs sont créés, alors que cette fenêtre est ouverte, la liste de ses contrôleurs ne sera pas mise à jour.
- cliquer sur l'icône ajouter une réglette de contrôle et, dans la liste, le nom du contrôleur portamento devrait apparaître
- cliquer sur ce nom de contrôleur et, en bas de la fenêtre, la réglette portamento s'affiche
à savoir
le code contrôle 65 : portamento, fonctionne en on/off une valeur>=64 démarre le portamento sur toutes les notes qui suivent et une valeur=<63 stoppe ce contrôleur.
Pour tester, il vous suffit de placer quelques notes puis, dans la réglette, placer deux valeurs pour débuter et stopper le portamento. Le trait plus foncé au centre de la réglette situe de "63". Tout taquet placé en dessous de cette ligne désactive le contrôleur et au-dessus le réactive.
Les codes contrôles MIDI et Zynaddsubfx
codes contrôles Général MIDI
Zynaddsubfx n'accepte pas tous les codes contrôles du standard Général MIDI. Par exemple le code 7 de volume est inactif. Ci-dessous un tableau répertoriant les codes actuellement fonctionnels suivant le standard GM :
pitch bend | ||
10 | panoramique | remplace le code 8 "balance" |
11 | ex |
remplace le 7 volume si une note est prolongée, une salve de codes 11 en diminuant provoque un shunt |
64 | sustain | envoyer une valeur>63 démarre le sustain sur toutes les notes qui suivent, jusqu'à l'envoi d'une autre valeur <64. |
65 | portamento | envoyer une valeur>63 active le portamento, envoyer une valeur<64 le désactive. |
5 | portamento time | il est possible que ce paramètre fonctionne, mais je n'ai pas pu évaluer son effet ! |
Les codes suivants, qui corrrespondent à timbre(71) et brightness (74) dans le standard GM sont utilisés à d'autres fins par zynadd :
Filtre passe bas voir ici pour description | ||
71 | Filter Q | valeur de 0 à 127 |
74 | fréquence de coupure (cutoff) | valeur de 0 à 127 |
Les codes suivants sont ignorés.
1 | modulation (wheel) |
7 | volume utiliser 11 |
8 | balance utiliser 10 |
Codes non-testés mais réputés actif par zynaddsubfx. Ils ne sont utilisés que pour interrompre les appareils avec le bouton "panique".
120 | arrêter tous les sons |
121 | reset de tous les contrôleurs |
123 | arrêter toutes les notes |
codes contrôles spécifiques à Zynaddsubfx
Certains contrôleurs sont redéfinis par zynaddsubfx
J'ai testé ces codes sans résultats significatifs
code | action | description | valeurs limites | défaut |
---|---|---|---|---|
75 | passe bande | il permet de modifier la larguer de bande passante de l'instrument | 0 à 127 | 64 |
76 | modulation d'amplitude | permet d'atténuer l'amplitude du modulateur ADsynth | 0 à 127 | 127 |
77 | Resonance Center Frequency | modifie la valeur de la fréquence | val test 0 à 127 | ? |
78 | résonance de la bande passante | modifie la résonance de la largeur de bande | val test 0 127 | ? |
NRPN : code de paramètre non-enregistrés.
ZynaddSubfx posséde deux classes d'effets voir ici pour description
- les effets systèmes
- les effets insérés
L'envoi de ces valeurs de codage doit être précédé par la valeur B0 qui va indiquer à ZynAdd qu'il va recevoir une série de code NRPN (voir exemple plus bas).
Les codes pour envoyer ces paramètres sont :
code | descrition | valeur paramètre | description |
---|---|---|---|
99 | code général pour désigner la zone d'effet | 4 | envoi pour effet système |
8 | envoi pour effet intégré | ||
98 | Code pour donner le N° de l'effet | 0 à 3 | pour un effet système |
0 à 7 | pour un effet intégré | ||
06 | communique le N° du paramètre | suivant le tableau ci-dessous | |
38 | valeur du paramètre | dépend du paramètre de 0 à 127 |
Si une erreur est détectée dans l'envoi, les codes seront ignoré.
à propos des NRPN
Jusqu'à ce jour, aucun des essais que j'ai effectué n'a abouti. Devant l'envoi de code, figure un code MIDI spécifique B0 (d176), ignoré par Rosegarden.
Exemple :
B0 99 04 | Effets systèmes |
B0 98 01 | Pointer le second effet (écho) (le N° de code 0 correspond à l'effet 1) |
B0 06 00 | Activer le paramètre 0 de l'effet (ici volume DRY/WET |
B0 38 52 | Mettre sa valeur à 52 |
Tableau des N° de paramètres suivant l'effet (les N° absents ne sont pas utilisés) :
les valeurs sont de 0 à 127, sauf indications contraires.
Réverbération | 00 | Volume ou Dry/Wet |
01 | Pan | |
02 | temps de réverbération | |
03 | délai initial | |
04 | délai du feedback | |
07 | fréquence passe-bas | |
08 | fréquence passe haut | |
09 | fréquence du Damping valeurs autorisées : 64 à 127 où 64 = pas de Damping | |
10 | type de réverbération valeur 0 : aléatoire, 1 : Freeverb | |
11 | valeur de la salle (room size) | |
Echo | 00 | Volume ou Dry/Wet |
01 | Pan | |
02 | délai | |
03 | délai entre droite et gauche | |
04 | intersection droite gauche | |
05 | Feedback | |
06 | fréquence du Damping | |
Chorus | 00 | Volume ou Dry/Wet |
01 | Pan | |
02 | fréquence LFO | |
03 | LFO Randomness | |
04 | LFO Type : valeur 0 ou 1 | |
05 | LFO Stereo Difference | |
06 | LFO profondeur | |
07 | délai | |
08 | Feedback | |
09 | intersection gauche/droite | |
11 | Mode : valeur 0 ou 1 (0=ajoute, 1=soustrait) | |
Phaser | 00 | Volume ou Dry/Wet |
01 | Pan | |
02 | fréquence LFO | |
03 | LFO Randomness | |
04 | LFO Type 0 ou 1 | |
05 | LFO Stereo Difference | |
06 | LFO profondeur | |
07 | Feedback | |
08 | nombre d'étages : valeur de 0 à 11 | |
09 | intersection gauche/droite | |
10 | Mode : valeur 0 ou 1 (0=addition, 1=soustraction) | |
11 | Phase | |
AlienWah | 00 | Volume ou Dry/Wet |
01 | Pan | |
02 | fréquence LFO | |
03 | LFO Randomness | |
04 | LFO Type : valeur 0 ou 1 | |
05 | LFO Stereo Difference | |
06 | LFO profondeur | |
07 | Feedback | |
08 | Délai : valeur de 0 à 100 | |
09 | intersection gauche/droite | |
10 | Phase | |
Distorsion | 00 | Volume ou Dry/Wet |
01 | Pan | |
02 | Left/Right Crossing | |
03 | Drive | |
04 | Level | |
05 | Type : valeur de 0 à 11 | |
06 | inversion du signal : valeur 0 ou 1 | |
07 | fréquence passe bas | |
08 | fréquence passe haut | |
09 | Mode : valeur 0 ou 1 (0=mono,1=stereo) |
Liens et commentaires
les messages MIDI
les codes contrôle de zynaddsubfx
[+]