Communication
Midi dans Schwartzpeter
Cet apport des controles midi est là non pour se substituer à une console classique ( quoi que...), mais pour apporter d'autres façons, plus souples, d'agir en lumière.
Le module est fonctionnel même avec un tout petit clavier et une seule roue en Control-Change, comme il est fonctionnel avec des surfaces de contrôle sophistiquées ou des capteurs ( êtes vous allé sur le site des Interfaces-Z ?).
Schwartzpeter peut aussi recevoir des infos midi via le network, en serveur.
La voie est ouverte donc pour un interfaçage manuel plus aisé, mais aussi aux installations utilisant des capteurs midi ou s'appuyant sur des logiciels tels pure data, vvvv ou encore Max-VNSP.
Les fonctionnalités d'appels midi sont donc écrites en laissant ouvertes le plus de portes possibles aux utilisateurs:
-interfaçage manuel de type live comme sur une console
-remote des fonctions de crossfade, d'affectation de temps et de déclenchements d'évènements ( Go, Fx, Masters)
-main sur les sélections et les groupes
-une attention à ne pas limiter à un seul cas de figure en termes de matériel ( les masters sont par exemples utilisables de 3
manières)
(0.6d) sont traités ici:
A/ l'interfacage midi sur l'ordinateur recevant schwartzpeter
1. CONFIGURER
MIDISHARE
-a/avec hardware
-b/avec une application de type max/vnsp ou pure data
2. Tester
B/ adressage midi sous schwartzpeter
3. Affecter dans schwartzpeter
C/ l'interfacage midi distant, via le network
La communication midi avec schwartzpeter
est basée sur la
librairie open-source MidiShare.
Je
tiens à remercier Christian Pierredon qui m'a orienté
vers cette bibliothèque. Merci à toi, monsieur, de tes
conseils et de ta gentillesse !!!
Et merci
à Stéphane Letz de Grame, qui m'a permis de
résoudre un petit souci de méthode...
Christoph Guillermet
>>>>>A/a/ INTERFACAGE MIDI EN ENTREE DIRECTE SUR L'ORDI RECEVANT SCHWARTZPETER
>>>>>>>>>> 1. CONFIGURER MIDISHARE>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Schwartzpeter
reçoit des infos midi via le driver Midi share. Toute la
communication se fait via ce dernier.
Midi
share hors communication réseau n'a pas besoin d'être
installé sur votre ordi. Cette librairie est utilisée
de manière statique.
Donc pour recevoir des messages midi
entrant il vous faut d'apport paramétrer les entrées de
midishareDrivers via msDrivers.exe avant d'utiliser schwartzpeter
avec du midi.
msDrivers comprend 256 ports possibles.
Lorsque
l'on lance msDrivers.exe cette fenêtre s'affiche.
Sur cet
ordi, seul un clavier UF apparait en entrée ( pas d'autres
périphériques branchés sur le
système)
Sélection
du périphérique UF MIDI ( chaque étape est un
click de souris):
clicker le périphérique
souhaité:
Clicker le slot du port pour qu il devienne
rouge:
re-valider
IN en reclickant sur le nom du périphérique:
Clicker la petite icone d'attribution et du logo msDrivers
Voilà,
vous venez de paramétrer la dll modulable de midishare.
Mais
attention ! la logique de windows et son attribution des ports usb (
par chronologie) fait qu'une déconnexion-reconnexion à
un autre endroit fera planter msDrivers et donc schwartzpeter à
son lancement: msDrivers ne trouvera pas le périphérique
MIDI sur le port paramétré.
Celà veut dire qu
il vous faudra RECONFIGURER MSDRIVERS. Je m'en suis rendu compte au
débranchement-rebranchement sauvage d'un périphérique
midi.
>>>>>A/b/ INTERFACAGE MIDI VENANT D'UN LOGICIEL SUR LA MEME MACHINE
QUE SCHWARTZPETER
Merci à Patrick pour ce midi-tester sou MAX en stand alone !
A noter que si vous désirez tricher les signaux ( transformer le type de message, etc...), qu'ils viennent d'un périphérique physique ou virtuel, préférer la suite Midi-Ox, plus complète.
>>>>>>>>>>>>> 2. Tester>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
si vous voulez tester à part, hors schwartzpeter:
utiliser
Test_midishare.exe.
Ce petit utilitaire NE FILTRE PAS LES ENTREES MIDI.
Sous schwarzpeter, et schwz_midi_sender3 les fonctions midi sont filtrées, ne laissant passer que les messages de type Key-On, Key-Off, Ctr Change et Pitch Wheel. ( Faire des essais si vous êtes novices en midi).
>>>>>B/ ADRESSAGE DES FONCTIONS MIDI DANS SCHWARTZPETER
>>>>>>>>>>>>>
3. Affecter dans
schwartzpeter>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Ok, passé le plus important, dans schwartzpeter clicker l'icone de midi config menu en haut à gauche de l'écran:
Vous
arrivez dans le menu de configuration de l'interfaçage midi.
Le paramétrage midi est un paramétrage spécifique à chaque spectacle.
Les
signaux utilisés dans Schwartzpeter sont de deux
types:
*Key On , Key Off ( ou Key On Vel 0 fonction des matériels
midi),
*et Control Change exprimé en valeur ( data 2) de 0
à 127.
IMPORTANT:
Un filtre dans schwartzpeter ( ce filtre n est pas activé dans
test_midishare.exe) ne laisse voire et apparaitre QUE les signaux de
type Key On/Off , Ctrl-Change et Pitch Wheel.
Il y a donc des évènements qui se font en type On – Off ( 0/1) , et d'autres des asservissements via potards ou rotatifs ( val de 0 – 127).
Les
pages 0, 1 et 2 ( fond blanc) comprennent les évènements
pilotés par un Key On- Off.
Schwartzpeter analyse le signal <Type> il ne fera rien si vous assignez un controleur 0-127 à un ON/OFF.
La
page 3 ( fond jaune) comprend les évènements
assujettissables à des Contrôleurs donnant un Data 2
avec des informations de 0 à 127. Attention un Key ON est
affectable mais ne déclenchera rien!!! Le type doit être
Ctrl-Change pour fonctionner.
La page 4 concerne les procédures « dangereusement utiles ».
Schwartzpeter
compare le type d'information ( Key On, Key Off, Ctrl Change) , le
Port midishare, le Canal, et enfin la Note ( allias Pitch), si toutes
les infos correspondent à un cas de figure paramétré
il exécute l'action voulue.
Donc
sur toutes les pages, on voit dans la fenêtre en haut les
informations midi reçues:
Type Port
midishare Canal Note
et Vélocité ( c'est à dire le toucher)
Le monitoring de l'entrée midi directement sur la machine recevant schwartzpeter se voit aussi ici, en ROSE:
Pour
affecter les commandes midi dans schwartzpeter, c'est très
simple:
Frappez la touche ou bougez le contrôleur que vous voulez affecter, puis clickez gauche dans la case d'action voulue.
Apparaissent alors le Port, le Canal , et le Pitch qui déclencheront l'évènement.
Toute action déclenchée par le midi apparaît en bas de l'écran:
Ici
la sélection du groupe 2.
>>>>>>>>>>>>>>>>>>>>>>>>
KEY-ON-OFF PAGES 0 1 et 2
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
PAGE
0
KEY ON KEY OFF
*TOGGLE CALL:
une
touche on-off pour choisir le mode lors de l'appel d'évènements
de type Key On Key Of :
-selection
-flash à 100%
-flash avec
pour info de niveau la transposition de la véolicité (
plsu on tape fort et plus le niveau est élevé)
-4eme mode à faire, un shadow mode. A voir,
quand on est sur que tout le reste marche...
Le Toggle CALL ne concerne pas la page 4 ( mémoires en Key ON). Il concerne uniquement les pages blanches.
un iindicateur coloré et clickable vous permet de basculer de mode sans être sous la page de midi_config.
*APPEL DES GROUPES
: les 10 groupes
*SELECTION DE CIRCUITS: <ESC> <ALL>
<INVERTED>
*CONTROLE DE PLAYLIST : GO, GO BACK, et mode
F9 ( toggles stage/preset)
PAGE
1
KEY ON KEY OFF
Suite du contrôle DE PLAYLIST:
*W/X navigation cut en arrière en avant
*L'envoi du Timer en ON/OFF et son affectation en F8 F4 F5 sur le crossfade à venir
des actions pour le Live:
*L'action Freeze ( clicker d'abord la case Freeze mode pour qu'il soit effectif)
*Le ON/OFF des masters Fx 1 2 3 4 ( attention, clicker d'abord la case Chaser/Fx , et s'assurer que les masters sont biens chargés avec un chaser, sinon la commande ne sera pas envoyée.
PAGE
2
KEY ON KEY OFF
*LEVEL + et LEVEL - : quand un circuit est
sélectionné, ou un master, ou le grand master, ou un
Fx, ( voir tout à la fois) : permet d'augmenter comme avec les
flèches de la valeur du default step level les niveaux de ces
derniers.
*APPEL DES SUBS EN SELECTIONS, ET DU GRAND MASTER.
Quand un master est sélectionné en Key ON laissée
appuyée, on peut le manipuler soit par les LEVEL + LEVEL –
MIDI, soit par la roue de niveau polyvalente ( page 3)
PAGE
3 CONTROL
CHANGE ordres avec en data 2 ( nommé VEL) un niveau allant de
0 à 127
*LEVEL est en fait une molette pour tout. C'est
à dire, que si vous avez juste un petit clavier avec une roue
qui envoie un signal de type Ctrl Change ( pas PITCH BEND!!!) , vous
pouvez affecter le niveau de cette roue aux éléments
sélectionnés en pressant KEY ON ( circuits, master,
submasters, masterfx)
ATTENTION: le dernier signal reçu
prend le pas !!!! donc si vous avez des circuits ou des masters à
une intensité donnée, il vous faut d'abord mettre le
Contrôleur qui gère LEVEL au niveau voulu. Lors de
l'utilisation de ce controleur, son niveau apparait quand il est
activé, à coté de l'icone midi_conf.
*GRAND
MASTER, SUB1 à 6, MAIN SUB, les 4 MASTERS FX peuvent se faire
assigner un contrôleur. Attention: si vous les avez monté
à la souris, ces contrôleurs agissent en direct. Ils
reprennent donc la main directement sur les niveaux de ces masters.
*Le
CROSSFADE manuel se fait comme sur la Velleman, avec un potard X1 et
un autre X2, qu'il faut recharger.
>>>>>>>>>>>>>>PAGE 4 APPEL DES MEMOIRES>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
depuis la version 0.6d
.
Les mémoires de 499 à 499.9 sont appelables via le MIDI
Cet appel peut se faire de deux manières:
-soit
par l'affectation d'un Key On , dont la Vélocité
affectera le niveau des circuits enregistrés dans cette
mémoire et restitués sur scène
-soit par
l'affectation d'un Control Change, permettant ainsi d'avoir sous
portards ou rotatifs 20 mémoires.
Le Toggle Call ( selection / flash / level_is_velocity) de la page 0 n est pas actif sur cette page. L'information Type de signal n'est en fait pas prise en compte : un Ctrl Change Port 0 Ch 1 Pitch 40 aura la même action qu'un Key On Port 0 Ch 1 Pitch 40. La vélocité ( Data 2) est récupérée directement comme indication de niveau.
KEY_ON: A préciser que pour éteindre un circuit issu d'une mémoire en Key On, la vélocité d'entrée ou de sortie doit être de 0-1. Il s'agit donc d'une histoire de doigté...
Tant que le niveau midi est enclenché ( sup à 0), il prend la main sur les états de circuits dans les mémoires et à l'appel clavier. Pour débrayer il faut que la vélocité soit nulle.
>>>>>>>>>>>>>>PAGE 5 URGENCES && SENSIBLE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Ok,
Pourquoi y a t il la ré affectation des Commands Ports
?
C'est que dans le cas d'un trash de midishare ( périphérique
midi pas sur le bon port usb, etc...) le numéro de port midi
share change.
Donc
tout le paramétrage ne réagira plus car un commande
attendue de Port 1, Canal 1, Pitch 7 arrivera peut être comme
Port 256, Canal 1, Pitch 7.
Comme il serait fastidieux de tout
reaffecter ( surtout en performance) , vous pouvez ré-affecter
UNIQUEMENT le port .
Pour
ce, utiliser un Key On, et clickez sur ré affecter. Les
contrôles de Canal et Pitch restent les mêmes dans toutes
les affectations, mais le port est changé.
Le reset,
c'est si vous ne vous en sortez plus... il remet tout à ZERO
pour les attributions de commandes midi.
D'autre part une
petite case reload permet de recharger la conf midi du spectacle
depuis le fichier midi du spectacle, sur le disque dur, si ce
dernier a été sauvé.
Une config midi est différente pour chaque spectacle.
Partie SERVEUR: voir juste ici:
>>>>>C/ L' INTERFACAGE MIDI VIA LE NETWORK
Le
serveur attend des infos, le client émet. Le client va se
connecter à l'adresse IP et au port demandé ( faire
attention à ses antivirus, qui peuvent bloquer le programme en
émission et réception).
A partir de la version 0.6d schwartzpeter devient un serveur.
SERVEUR:
Au démarrage il ouvre un port, prêt à y recevoir des informations.
Sur ce port il va attendre des informations qu'il s'appliquera comme étant MIDI.
Dans la page 5, l'adresse IP de l'ordinateur est indiquée.
Le port UDP que schwartzpeter va écouter est paramétrable ( taper un chiffre puis click gauche sur la zone Listen Port).
Le serveur est lancé au démarrage de schwartzpeter. Pour permettre l'écoute du port et la réception d'info, activer Allow receiving from network.
Une re initialisation du serveur est possible aussi.
On
peut dire à schwartzpeter qu'il doit ou non automatiquement
écouter le port au démarrage en allant dans:
C://schwartzpeter/user/last_config.txt.
Changer " receive_udp= 0 " en " receive_udp= 1"
L'information midi arrivant par le réseau est visble ici : ( noir sur fond blanc lorsque pas de signal , blanc sur fond noir si signal)
Enfin, il est à noter que l'entrée midi peut être simultanée ( UDP / Midi direct).
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Pour ceux qui développent des applications dans d'autres languages, un client enverra les infos de la manière suivante:
char traindinfo[10]. Seulement les premieres cases du tableau sont utilisées, le reste étant réservé au cas où à d'autres développements.
dans ce traindinfo :
traindinfo[0]=portmidi
traindinfo[1]=type de signal , en numéro standard ( cf InitTblLibEv() de Midishare)
midi traindinfo[2]= channel
traindinfo[3]= note
traindinfo[4]= vélocité
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.