OSC message is used to control the conductor directly, by which one can use a external device to control playback and tempo. Since OSC messages are based on UDP, such messages are functionally limited and assumed to be transfered locally.
Address is: /hcmp
Message content: one integer.
Type | Message | Comments |
---|---|---|
Tap | -3 | Indicate a beat point to the conductor. |
Play | -1 | start conducting |
Stop | -2 | stop conducting and tell the players to stop |
Cue | 0 ~ 999 | Let the conductor to send a cue to players. |
The following table shows the messages used by HCMP. Note that <something> means a number and the "something" inside is the variable's name.
Type | Direction | Message | Comments |
---|---|---|---|
Play | c->p* | play | start playing |
Stop | c->p | stop | stop playing |
Update time-map | c->p | tm k b | Send new time-map (vtime = rtime * k + b) to the player |
Set Position | c->p | pos vtime | set position to beat vtime |
PlayAll | p->c** | ID *** play | indicate the conductor to play |
StopAll | p->c | ID stop | indicate the conductor to stop |
Ready | p->c | ID ready | tell the conductor that this player is ready to play |
Position | p->c | ID pos vtime | indicate the conductor to go to position vtime |
* c->p means from conductor to player
** p->c means from player to conductor
*** the ID of the player.
Type | Direction | Message | Comments |
---|---|---|---|
ReSync/StartSync | p->c | resync | Phase 1: tell the conductor to start clock sync |
Send Conductor Time | c->p | cclk time | Phase 2: tell the player clock sync starts and send conductor's local time by time |
Send Player's Time | p->c | pclk time | Phase 3: send the conductor the player's local time |
Send Player Latency | c->p | clat latency | Phase 4: send the latency between sending cclk and receiving pclk to the player. |