Client_broadcast_dos.exe
Documentation

(multiple peer midi sending)
suite logicielle schwartzpeter


*Le Client Broadcast


Le client_broadcast est simple petit programme en Dos.
Il permet juste de retransmettre l'info midi reçue en broadcast ( les 255 adresses d'un réseau donné: 192.168.1.* )
via le réseau ( ethernet ou wifi) .




Client_Broadcast ... jusqu'à 255 adresses en étoiles




Cette communication se fait en envoyant un paquet UDP de 10 caractères, comprenant l'info midi à envoyer.

Un serveur écrit pour ces paquets sur les ordis distants se charge soit:
        -de retransformer en midi sur son système l'info reçue (serveur2midi )
        -d'émuler des lettres du clavier (Kbd_emul)
        -de faire de la lumière ( schwartzpeter est un serveur et recevra donc les infos du client_broadcast)






Configuration du client_broadcast:

1. Configuration de midishare




Avant de lancer le client, il faut configurer l'entrée des signaux midi.
Ouvrir msDrivers.exe. Cliquer sur le port midishare souhaité ( image ci dessus: le port 0 est sélectionné en rouge) puis clicker sur le Midi IN et éventuellement le Midi Out ( optionel, pour monitoring).
Ici le clavier UF MIDI IN est sélectionné en entrée.
Celà pourrait être le port midi virtuel Midi Yoke 1, sur lequel on enverrait depuis un programme tiers ( pure data, pro tools , etc... des signaux midi).

2. Configuration
du client_broadcast

Il y a un fichier de configuration config_broadcast.txt à editer au notepad ou au wordpad:

#  PORT CHEAT_KEY
11059 1
# The IP
192.168.1.

2ème ligne:
-le port de communication éthernet vers lequel émettre ( le serveur doit écouter ce même numéro de port pour recevoir les infos)
-option cheat key 0 ou 1, permet de tricher l'émission d ' un signal Key On Vel 0 en un signal de type Key Off

4ème ligne:
l'adresse générique de votre réseau


Information relative aux signaux:

Important: ne sont acheminées que les informations de type KeyOn/Off, Ctrl-Change et Pitch-Ctrl. 


PORT TYPE CHANNEL NOTE VEL DUREE DELAY NAME

Port: le port midishare ( 0 à 255) sur lequel émettre le signal ( cf la config de midishare avec msDrivers)

Type: le type de signal défini comme suit ( max 127):

                                                        0    Note                11    Start                     22    QuarterFrame       33    CuePoint 
                                                        1    Key On             12    Continue                23    Ctrl 14bits            34    Chan Prefix
                                                        2    Key Off           13    Stop                      24    NonRegParam.       35    Port Prefix
                                                        3    Key Press         14    Tune                     25    Reg Param             36    End Track  
                                                        4    Ctrl Change      15    Active Sens.          26    Seq Number          37    Tempo    
                                                        5    Prog Change     16    Reset                    27    Text                     38    SMPTE Offset
                                                        6    Chan Press       17    System Excl.         28    Copyright              39    Time Sign. 
                                                        7    Pitch Wheel     18    Stream                  29    Seq Name              40    Key Sign.  
                                                        8    SongPos           19    Private                  30    Instr Name           41    Specific
                                                        9    SongSel           20    Process                 31    Lyric                    42    Reserved   
                                                        10    Clock              21    DProcess               32    Marker                43    Dead 

Chan: le channel midi ( max 16)

Note: la note ou pitch midi ( max 127)

Vel: la vélocité, allias data 2 ( max 127)


*Le message UDP envoyé:


Pour ceux qui désirent récupérer les données, ou inclure avec leurs logiciels ces données:

Le message en UDP envoyé par client multiple est le suivant:
- c'est une message en forme de texte : char udp_message [10]

udp_message[0]= le port midishare ( max 255) d'où provient le signal ( cf msdrivers.exe)
udp_message[1]= le type de signal ( max 127)
udp_message[2]= le Channel midi ( max 16)
udp_message[3]= la note ( pitch) (max 127)
udp_message[4]= la velocité, allias data 2 ( max 127)

normalement udp_message[5] et [6] devraient être la durée et le delay. Ceux ci ne sont pour l' instant pas utilisés, ni par le client, ni par les serveurs, demandant une donnée en int.

udp_message[9]= l'index d'état d'infos, qui varie à chaque nouvel envoi de 0 à 1 puis de 1 à 0 ( bool).