FORUM MAM ( Forum MAO - Forum ABLETON LIVE - Forum MASTERING)
Bonjour,
L'inscription est rapide, simple et gratuite !

Retrouves les Tutoriels MAO Pro sur :

www.tuto-mao-guitare.com

Amicalement, Didier.

[Bome's Midi Translator pro] 3 - Convertir les messages MIDI de PrgmCh en CC

Voir le sujet précédent Voir le sujet suivant Aller en bas

[Bome's Midi Translator pro] 3 - Convertir les messages MIDI de PrgmCh en CC

Message par soxy le Sam 1 Oct 2011 - 1:34

Tutoriel proposé par Soxy


Convertir les signaux MIDI Program Change en Control Change
Synopsis :



...
...Cet exemple est un support pour tenter de vous familiariser avec l'édition de BMT.

1ère Partie :

2ème partie :
...Convertir un type de message en un autre type - Les variables locales

Les variables globales et les règles


Si le MIDI vous est complètement étranger vous pouvez lire ceci avant de continuer ce tutoriel : Qu’est ce que le MIDI ?

Si BMT vous est complètement étranger vous pouvez lire ceci avant de continuer ce tutoriel : Présentation de BMT - utilitaire traducteur de messages MIDI



La version utilisée pour ce tutoriel est la Bome's Midi Translator Pro 1.7.1




---------------------------------------------------------------------------------------





¤ 1ère Partie :

Ceci est mon patch BMT personnel :
(en cours de construction) :
...


Focalisons sur le Preset "PgrmCh >>> CC" et ignorons complétement les autres.

J'ai créé ce Preset pour utiliser les Program Changes de mon clavier maître comme des CC (Control Change) normaux.
En effet, Ableton Live, mon séquenceur préféré, ne permet pas d'utiliser les Program Changes comme des Control Changes : lorsque j'ouvre la MIDI map et que j'assigne un message PgrmCh à un bouton du DAW, il le considère comme étant un PitchBend et ne fonctionne pas du tout quand je referme la MIDI map (bug ou limitation dû à Ableton ??? ... ça ne fonctionne pas ...).

... Pourtant, j'aimerais bien profiter de ce signal MIDI pour sélectionner mes instruments par le biais de l'armement exclusif proposé par Ableton.

Heureusement, BMT est là !


Créons un nouveau Preset dans le cadre de gauche de BMT et nommons-le "PgrmCh >>> CC" (pour suivre l'exemple de l'image)
Clique droit sur celui-ci, puis "properties"
Sélectionner l'onglet "Default MIDI Ports"
dans "Input Port Aliases", cocher le port MIDI correspondant à votre clavier maître
dans "Output Port Aliases", cocher "Bome's Midi Translator 1 Virtual Out" (ou autre MidiYoke si vous utiliser Midiyoke comme câble MIDI virtuel)
Clique OK ferme la fenêtre de propriétés


Créons un nouveau Translator dans le cadre de droite (le Preset, créé juste avant, doit être sélectionné pour pouvoir créer un Translator dedans)

Double clique sur le Translator ouvre la fenêtre d'édition :


Onglet Options :



Nommons le Translator et rendons le actif (il l'est par défaut normalement)


Onglet Incoming (entrée) :



Sélectionnez MIDI message comme type d'entrée (les Program Changes sont bien des messages MIDI)
Cocher "capture MIDI" permet d'éditer automatiquement le message MIDI en envoyant le signal depuis votre contrôleur MIDI.
Cochez "capture MIDI" et actionnez un Program Change, vous verrez apparaître dans le champ les coordonnées exacte du Program Change que vous avez actionné. Il doit ressembler à ça : C0 03

Comme il l'est expliqué dans l'aide (bouton "Show Help") ; disponible en français ici
- le "C" détermine que c'est un Program Change
- le "0" que c'est sur le ch1 que ça se passe (il faut préciser que les coordonnées et les valeurs sont toujours exprimées en hexadécimal)
0=ch1, 1=ch2, 2=ch3, 3=ch4, 4=ch5, 5=ch6, 6=ch7, 7=ch8, 8=ch9, 9=ch10, A=ch11, B=ch12, C=ch13, D=ch14, E=ch15, F=ch16.
- puis il y a un espace suivi d'une valeur exprimée en hexadécimal (deux chiffres/lettres), c'est l'adresse du PgrmCh

expl :

channel 1 PgrmCh 0 = C0 00
channel 5 PgrmCh 2 = C4 02
channel12 PgrmCh15 = CB 0F[/i]

Ne soyez pas inquiet au sujet de l'hexadécimal, on s'y fait très vite. Il y a un convertisseur Décimal/hexadécimal intégré dans l'aide de BMT (onglet MIDI message), et puis c'est très logique, le MIDI est un protocole numérique basé sur l'hexadécimal (d'où les 16 canaux ayant chacun 128 paramètres dont la valeur peut aller de 0 à 127).

mais revenons à notre mouton...
nous voulons simplement convertir les Program Changes en Control Changes (CC).
Nous avons mis un PgrmCh en entrée (disons le C0 03 pour l'exemple), mettons un CC en sortie :


Onglet Outgoing (sortie) :



Sélectionnez MIDI message comme type d'action en sortie

Remplissez le champ "Outgoing MIDI message" en y inscrivant : B4 03 7F

- le "B" détermine que c'est un Control Change (cf help de BMT en français ici)
- le "4", que c'est sur le ch5 que ça se passe (0=ch1, 1=ch2, 2=ch3, 3=ch4, 4=ch5, 5=ch6, 6=ch7, 7=ch8, 8=ch9, 9=ch10, A=ch11, B=ch12, C=ch13, D=ch14, E=ch15, F=ch16).
- il y a un espace suivi de 03, c'est l'adresse du CC
- puis un espace suivi de la valeur du CC , ici 7F (7F = 127 = Full)

>>> Et voilà !!! désormais, quand vous envoyez l'ordre Program Change C0 03, BMT traduit et envoie en sortie l'ordre Control Change B4 03 7F (CC ch5 n°03 à full)

Ok, mais à ce stade, nous n'avons qu'un seul PgrmCh converti en CC.
On pourrait créer 128 Translators pour les 128 PgrmCh dont nous disposons,
mais y a beaucoup plus simple à faire : utiliser une variable locale

" Les variables locales sont nommées oo, pp..., xx. Une fois qu'une variable est mise (par exemple dans la Détente Entrante), elle peut être utilisé dans cette Entrée de Traducteur, mais elle perd sa valeur quand le traitement de l'Entrée de Traducteur est fini "


dans l'onglet Incoming :



remplaçons l'adresse du Pgrm Change par la variable locale "pp", ce qui donne : C0 pp (C0 pour PgrmCh ch1)


dans l'onglet Outgoing :



faisons la même chose, changeons l'adresse du CC par la même variable "pp", ce qui nous donne : B2 pp 7F (B2 pour CC ch3)


>>> Désormais, lorsque vous envoyez un ordre de PgrmCh sur le ch1, BMT traduit et envoie la valeur 127 au CC ch3 dont l'adresse correspond à l'adresse du PgrmCh :
si vous envoyez C0 12, BMT enverra B2 12 7F (pp=12 pour l'exemple)
et si vous envoyez C0 67, BMT enverra en sortie B2 67 7F (pp=67 pour l'expl) [note : 67hex=103, il s'agit donc du PgrmCh n°103]

Voilà ! Nous avons converti tout nos PgrmCh en CC avec un seul translateur.

Ouvrez votre séquenceur préféré, et configurez ses préférences MIDI avec "Bome's Midi Translator 1 Virtual In" (ou autre MidiYoke si vous utiliser Midiyoke comme câble MIDI virtuel - enfin celui que vous avez choisi comme "Output Port Aliases" dans les propriétés du preset de BMT) comme télécommande ou surface de contrôle.

>>> Désormais vos Program Changes sont vu comme des Control Changes dans votre DAW, vous pouvez donc les assigner comme bon vous semble.

Testez bien, quand même, car le fonctionnement pourrait ne pas être très convainquant suivant le DAW; par exemple, sur Ableton Live (je pense que ça fait pareil sur les autres DAW, mais je n'en suis pas sûr), il faut aussi envoyer une information de relâchement du paramètre contrôlé ;
C'est-à-dire B2 pp 00 en Outgoing Action.

C'est sûrement à cause du signal PgrmCh qui est différent de celui du CC en termes d'impulsion ou alors c'est Live qui interprête comme ça pour pouvoir faire les assignations clavier (key alpha-num) car le clavier alpha-num de votre ordi envoie deux impulsion, la première est l'appui (Down) et la deuxième est le relâchement (Up) (le Note On aussi d'ailleurs)

Ainsi, il faut faire pareil avec nos Translator :



créons un deuxième Translator au sein du Preset et nommons-le "PgrmCh TRIG Up"
Et configurons l'Incoming Trigger = MIDI C0 pp et l'Outgoing Action = MIDI B2 pp 00


>>> désormais le message est complet, et l'action aura lieu pour chaque PgrmCh envoyé (le "bug" est détourné ... y a toujours moyen ...)



---------------------------------------------------------------------------------------
Fonctionnement du Preset dans Ableton Live :

Ce qui suit est valable uniquement pour Ableton Live (les fonctionnements de chaque DAW étant particulier)


Maintenant que le Preset "Pgrm >>> CC" est complet, voyons plus précisément son fonctionnement dans Ableton Live.

Créons dans Live 4 pistes et configurons leur mode de monitor sur "auto".

Assurez-vous que l'entrée MIDI "Bome's Midi Translator 1 Virtual In" ("input: 2-Bome's Midi Translator 1" Chez moi) soit configurée avec Téléc=on dans les préférences de Live, onglet MIDI/sync.
Et assurez-vous que l'Armement Exclusif est enclenché dans l'onglet Record/Warp/Launch.

Ouvrez la MIDI map de Live (bouton "MIDI" en haut à droite) et assignez le PgrmCh 01 à l'armement de la piste 1, le PgrmCh 02 à l'armement de la piste 2, ... et ainsi de suite sur les 4 pistes (ou plus si vous voulez - en tout, vous pouvez en faire 128).

Refermez la MIDI map.

Normalement tout fonctionne, si vous envoyez le PgrmCh02, la piste 2 s'arme et les autres se désarment (grâce à l'armement exclusif de Live).
Si vous envoyez le PgrmCh04, la piste 4 s'arme et les autres se désarment ... etc

>>> Vous pouvez donc sélectionner rapidement, depuis votre clavier maître, la piste dans laquelle vous voulez faire entrer une signal MIDI (MIDI From) ou audio (Audio From)
---------------------------------------------------------------------------------------





Vous pouvez surtout détourné cette méthode pour l'adapter à un autre fonctionnement ou à un autre DAW




---------------------------------------------------------------------------------------





¤ 2ème Partie :


Nous avons vu le fonctionnement du preset "PgrmCh >>> CC" dans Ableton Live :
Si j'appuie sur un Program Change, BMT traduit et envoie le CC correspondant et ça arme la piste correspondante.

Mais maintenant, je me rend compte que si j'appuie une deuxième fois sur ce même PgrmCh, BMT traduit et envoie un nouvelle fois le CC correspondant et ça me désarme la piste correspondante (c'est le fonctionnement normal de ce bouton dans Live).
Sauf que ça ne me va pas du tout ! : si, en plein live, j'appuie malencontreusement deux fois sur mon PgrmCh, ben ... je me retrouve sans aucune piste armée et là, plus aucun son ne sortira de mon clavier :pale: (le bide assuré)

Voyons ce que MIDI Translator Pro peut pour nous

Nous sommes donc toujours dans le Preset "PgrmCh >>> CC".
Clique double sur le Translator "PgrmCh TRIG Down"



Dans l'Incoming Trigger, nous avons utilisé la variable locale "pp" (qui prend donc la valeur de l'adresse d'un PgrmCh quand j'enclenche ce PgrmCh).

Réutilisons cette variable pour empêcher une double action sur les PgrmCh :


Onglet "Rules"



Ne prêtons pas attention à la première règle écrite dans l'image, mais intéressons-nous à la dernière.

Elle dit : g0=pp

g0 est une variable globale (cf BMT Help FR) et en inscrivant cette règle d'"Assignment", on donne la valeur pp à la variable g0.


Ok, éditons une nouvelle règle, une "Conditional" cette fois-ci, qui dit : if pp==g0 then exit rules, skip Outgoing Action

Cela veut dire : "si pp est égal à g0 (ça veut dire que j'ai déjà appuyer sur le PgrmCh et que la piste correspondante est armée) alors sorts des règles et n'envois pas l'action en sortie.


Attention !

l'ordre d'apparition des règles dans cette fenêtre a une grande importance, les règles de déroulent les unes après les autres de haut en bas (tout comme l'ordre des translators dans le cadre des Translators et tout comme les presets dans le cadre des Presets)

Pour ce que nous voulons faire, il faut d'abord traiter la règle conditionnelle et ensuite seulement la règle qui assigne g0=pp.

Dans le cas contraire, on assigne g0=pp et ensuite on lui dit if pp==g0 then tu fais rien, du coup pp sera toujours = à g0 avant la règle conditionnelle, du coup l'Outgoing Action ne se fera jamais




Voilà, j'espère vous avoir fait entrapercevoir les possibilités de MIDI Translator Pro de Bome's Software, l'utilitaire MIDI aux possibilités infinies puisqu'il n'a comme limite que votre imagination





Merci, à Florian de Bome's Software, Didguitare, MAHE David


les commentaires qui permettront de préciser ce tutoriel sont les bienvenus Very Happy

soxy

soxy
Administrateur
Administrateur

Masculin Messages: 2390
Réputation: 120
Age: 33
Localisation: Toulouse

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum