
 Command Line Options for MIDI Transformation Example with Midicable 2.4:

Convert Controller to start-stop: Ctrl #5,Chn1, 64..127 = start, 0..63=stop
	TR1=FFFF40,B00540,FA,1 (start)
	TR2=FFFF40,B00500,FC,1 (stop)

Convert a controller to NRPN (#1,all channels) (eg. AWE32 cutoff)
	TR1=F0FF,B001,00637F,03 ( add NRPN MSB-127 )  
	TR2=F0FF,B001,006215,03 ( add NRPN LSB-21 - AWE32 Filter Cutoff)  
	TR3=F0FF,B001,000600,03 ( add Data MSB 0 )  
	TR4=F0FF,B001,002680,01 ( convert Ctrl to Data LSB )  

Convert Note Velocity to additional Pitchbend (funny "detuned Piano")
	TR1=F000FF,900000,808040,01 (convert Note-On velo[0] to NoteOff event)
	TR2=F0,90,E00080,03         (add pitchbend w. velocity to ) 
 
Convert Note Velocity to (additional) channel Aftertouch. All Channels
	TR1=F000FF,900000,808040,01 (convert Note-On velo[0] to NoteOff event)
	TR2=F0,90,A081,03  (add channel pressure w/ Data2) 

Convert Note Velocity to Aftertouch and fix Note Velo to 127
	TR1=F000FF,900000,808040,01 (convert Note-On velo[0] to NoteOff event)
	TR2=F0,90,A081,03  (add channel pressure w/ Data2) 
        TR3=F0,90,00807F,01 (for all NoteOn set Data2 to 127

Fix Note Velocity to 127
	TR1=F000FF,900000,808040,01 (convert Note-On velo[0] to NoteOff event)
        TR2=F0,90,00807F,01 (for all NoteOn set Data2 to 127
	
Convert Active Sense to Bass Drum, MidiClk to HiHat
	TR1=FF,FE,99247F,03
	TR2=FF,F8,992C40,03




Reference:

	TRx=MASK,TRIGGER,VALUE,FUNC

	x = 1..4

        MASK
		up to 3 bytes (and a 4th obsolete byte)

        TRIGGER
		up to 3 bytes (and a 4th obsolete byte)
	
	This 2 patterns are used to compare the message:

	if ( (Message And MASK ) = TRIGGER ) then DoTransf(....)

	the AND is a bitwise AND between the two 32bit values.
	MASK and TRIGGER must be written in MOTOROLA Notation,
        This has the advantage, that 90 and 9000 and 900000 is the same.
	
	If this camparisom is true, then the Result is setted to VALUE,
	but...
		if first VALUE byte (status byte) is invalid (i,e, < $80)
		then the message is not changed. 
		If channel is not masked, then it is unchanged.

		if VALUE data bytes are invalid (Hi-bit set, $80), the original
		data is kept. $81 uses the other data byte (data1<->data2).
 
	A value of 008080 means unchanged message. Cryptic, but it is.

        Some Patterns: 
           to match Controller on all channels, use TR1=F0,B0,...  


Some Warnings: 
   You cannot split Notes by velocity into different Midi channels - 
        The NoteOff-events  will get lost ! 
