Communication Midi dans Schwartzpeter, 0.6c et supérieures

Bonjour, cette inclusion midi est toute neuve et n'a pas été éprouvée en spectacle à ce jour, 23/03/2007, sur la version 0.6c. Les versions précédentes de schwartzpeter ( 0.6b et inférieures) ne recoivent pas le midi.

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. Grosso modo 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 ?).

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 manuelle 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)

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 du forum MidiShare, qui m'a permis de résoudre un petit souci de méthode...


Christoph Guillermet





>>>>>>>>>> 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)
msvide

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:
ms1    ms2

re-valider IN en reclickant sur le nom du périphérique:  Clicker la petite icone d'attribution et du logo msDrivers
ms3    ms4

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.

>>>>>>>>>>>>> 2. Tester>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


utiliser Test_midishare.exe.
testmidishare


>>>>>>>>>>>>> 3. Affecter dans schwartzpeter>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Ok, passé le plus important, dans schwartzpeter clicker l'icone de midi config menu en haut à gauche de l'écran:

ic_midi

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 reçus 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.


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 permet de charger sur ctrl-change des mémoires.

Les pages 5 et 6 concernent les modules d'éclairements spéciaux.


La page 7 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 se voit aussi ici:



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.

*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.


page3 


>>>>>>>>>>>>>>PAGE 4 APPEL DES MEMOIRES>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

depuis la version 0.6d


.

Les mémoires de 499 à 499.9 sont donc apelables 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.


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. Pour débrayer il faut que la vélocité soit nulle.



>>>>>>>>>>>>>>PAGE 5 URGENCES>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>



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.

Bonus et considérations sur le midi ( avec le temps et l'expérience):

ma miditable.dat, qui utilise deux hardwares:
une surface de controle midi à 8 potards et appels de pages ( la config en ctrl-change se base sur 8 potards 5 pages), ainsi qu'un synthé. Et oui, midishare merge les signaux dans msdrivers !

   +  

Vous pouvez la placer dans votre sauvegarde de spectacle ou dans default, si ces contrôles vous conviennent.  
Si  jamais vous avez une config perso qui vous plait, aller dans schwartzpeter/saves/lenom devotrespectacleoucetteconfigestplacee/ et prélevez le fichier miditable.dat pour le copier dans les dossiers de spectacles qui vous intéressent.  

Cas de figure récurents et philosophie:

Faders:
Certains utilisateurs ont soulevé le problème des faders en midi et du fait qu'ils n'étaient pas "remotés". 
Ex: je mets mon sub, via un fader midi à 50%,  plus tard j'utilise ma souris sur sa tirette virtuelle et le mets à 0, enfin je retouches beaucoup plus tard mon potard : OUPS, j'ai un bon à 50% sur scène !
Certains périphériques MIDI ont la fonction NULL ou MUTE incluse dans leur programmation et fonctionnement, ce qui permet de repositionner le potard à l'intensité voulue sans envoyer de signaux midi non voulus. 
Une autre possibilité est de basculer sur une page ou les controles n'ont pas été assignés, et ainsi remettre manuellement ses potards à 0 ou à l'intensité voulue ( attention info en 0-127 vers 0-100 %).
Dans schwartzpeter, seul le mode polywheel permet de gérer celà: lorsque celle-ci est activée, son % est affiché en haut à gauche, en fond rose, avant l'appel de sélection en Key-On. Celà permet de prépositionner sa roue de niveaux, puis d'appeler le ou les controles à qui son niveau sera affecté.

Key-On:
Certains ont des soucis avec leurs périphériques qui ne renvoient pas Key-Off  ou Key-On Vel 0, lorsqu'on relache la touche. 
C'est un pb de config hardware, ou de possibilité de le faire pour ce dernier. 
Schwartzpeter, sur les flashs et sélections a besoin soit d'un Key-Off, soit d'un Key-On Vel 0.  
Privilégiez cependant le Key-Off, c'est la voie que j'aie prise pour coder la plus part des 'appels clavier'. Il est possible d'utiliser midi-Ox pour tricher d'une certaine manière les signaux.
Certains appareils vont envoyer un Key-On sans vélocité et en continu, par ex.... Bref, des essais s'imposent, ou une lecture attentive de la doc du périphérique désiré.

D'autres part, dans la version 0.6d, les signaux midi sont filtrés en entrée, ne laissant apparaitre que les évènements de type Key-ON/OFF, Ctrl Change et Pitch Wheel.
En phase d'exploration de son hardware midi, je vous recommande fortement de lancer test_midishare.exe ( dans C://schwartzpeter/bin/), qui ne filtre pas les données entrantes. Ou alors d'utiliser midi-Ox, et ainsi analyser les réactions de son périphérique.

Si tout celà vous semble obscur, il ne vous reste plus qu'une solution: aller se chercher un copain ingé son ou musicien qui vous réconciliera avec ce tout charabia ( ;-P) !

TYPE CTRL-CHANGE SUR CHAN 0 
1 à 6     -> SUBS 1 à 6
7        -> MASTER SUB
8        -> GRAND MASTER

9        -> POLY LEVEL
10 à 13    -> MAST FX 1 à 4
14    -> Rien
15 et 16    -> CROSSFADE STAGE / PRESET

17 à 36    -> MEMS 499 à 500.9

37     -> Level TOKYO LINE
38    -> Speed TOKYO LINE

TYPE KEY-ON SUR CHAN 0 au clavier
66    -> TOGGLES CALL
71    -> GROUP 1
72    -> GROUP 2
74    -> GROUP 3
76    -> GROUP 4
77    -> GROUP 5
79    -> GROUP 6
81    -> GROUP 7
83    -> GROUP 8
84    -> GROUP 9
86    -> GROUP 10




>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
CONCLUSION
L'entrée Midishare permet de recevoir  des ordres de Pure Data , Max VSNP, VVV, utiliser les capteurs Interface-Z ,etc...

Performer avec des séquenceurs....

Des solutions logicielles sont très interressantes pour merger du signal midi, notamment midi_yoke ( freeware).