Hi William,
You are sinking !
Note of the author :
I have simplify the whole thing not to make it too complicated so Willian could understand the difference of a programming language and a protocol.
VSL SE is wrote in a programming language, the most use at this time C or C ++ but thers is also Java, Algol, Cobol, Basic, RPG II.......
SE will receive Midi messages from your DAW (Logic Cubase...)
A programming language will look like this (this is inside SE) ;
define variables :
type = 1 bit
note = 1bit
velocity = 1bit
Begin:
read message from midi else on error wait 1 ms then go to Begin
MidiChannel = message [1,1] ;* I extract the midi channel, the type of message, the value of the note, and the velocity
type = message [2,1]
note = message [3,1]
velocity = message [4,1]
If type = CTRL the gosub ctrl ;* if it is not a note I will go to the subroutine that is taking care of controlers
IF note >= c1 and <= B1 then do ;* i check if it is not an articulation change
If note = c1 then
read staccato sample from file
else
if not is c#1 then read legato sample from file
end
else
.........
If I simplify the Midi protocol it looks like this ;
midi01noteA066,midi01noteB044,midi01endnoteA0,midi01endnoteB0,
Explication :
on midi channel 1 I send the a0 with velocity = 66, I send B0 with velocity = 44, I send end note of A0, I send end note 0f 0
So dont speak of things you dont know about !
If my memory is good Midi is a very bad protocol language because the sender just send and the receiver just receive, it is not possible to say in midi "please resend message xxx I have not understand "
With protocol like BSC it is much more complicate, it looks like this :
beggining of a xx bit message,......(my xx bits)....., end of message, control checksum
so when the receiver read the message it extract the 64 bit , to the calculation of the checksum, compare with the checksum send by the sender.
If the difference of the checksums is different than zero it sends a message back to the sender so it sends the block again !!!
Best
Cyril
P.S. I have been programming for 30 years, made a lot of teletransmitions between small and VERY big computer, I have also created a language for talking between host and printers over Postscript