home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 December / Chip_1999-12_cd.bin / sharewar / MIDIdrv / TRANSFRM.TXT < prev   
Text File  |  1997-04-09  |  6KB  |  157 lines

  1. Command Line Options for MIDI Transformation Example with Midicable 2.51:
  2. --------------------------------------------------------------------------------
  3.  
  4. Convert Controller to start-stop: Ctrl #5,Chn1, 64..127 = start, 0..63=stop
  5.     TR1=FFFF40,B00540,FA,1 (start)
  6.     TR2=FFFF40,B00500,FC,1 (stop)
  7.  
  8. Convert a controller to NRPN (#1,all channels) (eg. AWE32 cutoff)
  9.     TR1=F0FF,B001,00637F,03 ( add NRPN MSB-127 )  
  10.     TR2=F0FF,B001,006215,03 ( add NRPN LSB-21 - AWE32 Filter Cutoff)  
  11.     TR3=F0FF,B001,000600,03 ( add Data MSB 0 )  
  12.     TR4=F0FF,B001,002680,01 ( convert Ctrl to Data LSB )  
  13.  
  14. Convert Note Velocity to additional Pitchbend (funny "detuned Piano")
  15.     TR1=F000FF,900000,808040,01 (convert Note-On velo[0] to NoteOff event)
  16.     TR2=F0,90,E00080,03         (add pitchbend w. velocity to ) 
  17.  
  18. Convert Note Velocity to (additional) channel Aftertouch. All Channels
  19.     TR1=F000FF,900000,808040,01 (convert Note-On velo[0] to NoteOff event)
  20.     TR2=F0,90,A081,03  (add channel pressure w/ Data2) 
  21.  
  22. Convert Note Velocity to Aftertouch and fix Note Velo to 127
  23.     TR1=F000FF,900000,808040,01 (convert Note-On velo[0] to NoteOff event)
  24.     TR2=F0,90,A081,03  (add channel pressure w/ Data2) 
  25.         TR3=F0,90,00807F,01 (for all NoteOn set Data2 to 127
  26.  
  27. Fix Note Velocity to 127
  28.     TR1=F000FF,900000,808040,01 (convert Note-On velo[0] to NoteOff event)
  29.         TR2=F0,90,00807F,01 (for all NoteOn set Data2 to 127
  30.     
  31. Convert Active Sense to Bass Drum, MidiClk to HiHat
  32.     TR1=FF,FE,99247F,03
  33.     TR2=FF,F8,992C40,03
  34.  
  35.  
  36.  
  37.  
  38. Reference:
  39.  
  40.     TRx=MASK,TRIGGER,VALUE,FUNC
  41.  
  42.     x = 1..4
  43.  
  44.         MASK
  45.         up to 3 bytes (and a 4th obsolete byte)
  46.  
  47.         TRIGGER
  48.         up to 3 bytes (and a 4th obsolete byte)
  49.     
  50.     This 2 patterns are used to compare the message:
  51.  
  52.     if ( (Message And MASK ) = TRIGGER ) then DoTransf(....)
  53.  
  54.     the AND is a bitwise AND between the two 32bit values.
  55.     MASK and TRIGGER must be written in MOTOROLA Notation,
  56.         This has the advantage, that 90 and 9000 and 900000 is the same.
  57.     
  58.     If this camparisom is true, then the Result is setted to VALUE,
  59.     but...
  60.         if first VALUE byte (status byte) is invalid (i,e, < $80)
  61.         then the message is not changed. 
  62.         If channel is not masked, then it is unchanged.
  63.  
  64.         if VALUE data bytes are invalid (Hi-bit set, $80), the original
  65.         data is kept. $81 uses the other data byte (data1<->data2).
  66.  
  67.     A value of 008080 means unchanged message. Cryptic, but it is.
  68.  
  69.         Some Patterns: 
  70.            to match Controller on all channels, use TR1=F0,B0,...  
  71.  
  72.  
  73. Some Warnings: 
  74.    You cannot split Notes by velocity into different Midi channels - 
  75.         The NoteOff-events  will get lost ! 
  76.  
  77. --------------------------------------------------------------------------------
  78. Functions:
  79. 1 = Convert
  80. 2 = Remove
  81. 3 = Add
  82.  
  83. Velocity to 127:
  84. TR1=F000FF00,90000000,80804000,01 TR2=F0000000,90000000,00807F00,01
  85.  
  86. Velocity 0 to Note Off:
  87. TR1=F000FF00,90000000,80804000,01
  88.  
  89. Controller #2 to AWE Cutoff:
  90. TR1=F0FF0000,B0020000,00637F00,03 TR2=F0FF0000,B0020000,00621500,03 TR3=F0FF0000,B0020000,00060000,03 TR4=F0FF0000,B0010000,00268000,01
  91.  
  92. Controller #3 to AWE Resonance:
  93. TR1=F0FF0000,B0030000,00637F00,03 TR2=F0FF0000,B0030000,00621600,03 TR3=F0FF0000,B0030000,00060000,03 TR4=F0FF0000,B0030000,00268000,01
  94.  
  95. C6 to Modulation:
  96. TR1=F0FF0000,90600000,B0018000,01
  97.  
  98. B5 to AWE Cutoff:
  99. TR1=F000FF00,90000000,80804000,01 TR2=F0FF0000,905F0000,B0637F00,03 TR3=F0FF0000,905F0000,B0621500,03 TR4=F0FF0000,905F0000,B0268000,01
  100.  
  101. A#5 to AWE Resonance:
  102. TR1=F000FF00,90000000,80804000,01 TR2=F0FF0000,905F0000,B0637F00,03 TR3=F0FF0000,905F0000,B0621500,03 TR4=F0FF0000,905F0000,B0268000,01
  103.  
  104. Remove Bank Select:
  105. TR1=F0DF0000,B0000000,00000000,02
  106.  
  107. --------------------------------------------------------------------------------
  108.  
  109. 99 2E 7F 10 -> Open Hihat Channel 10 Note On with Velocity 127
  110. 89 2E 40 10 -> Open Hihat Channel 10 Note Off with Velocity 64
  111. C9 40 -- 10 -> Program Change Channel 10 Value 64
  112. B0 0A 40 10 -> Control #10 Channel 1 Pan to 64
  113. B0 07 7F 01 -> Control #7 Channel 1 Volume to 127
  114. B0 20 02 01 -> Control #32 Channel 1 Map to 2
  115. B0 00 40 01 -> Control #0 Channel 1 Bank to 64
  116. F0 43 10 4C 00 00 7E 00 F7 -> XG Reset
  117. F0 41 10 42 12 40 01 58 00 67 F7 -> GS Delay Off
  118.  
  119. C (=1100) 9 (=1001) d (=????) d (=????)
  120. F (=1111) F (=1111) 0 (=0000) 0 (=0000)
  121. --------------------------------------- AND
  122. C (=1100) 9 (=1001) 0 (=0000) 0 (=0000)
  123.  
  124. TRx=FF,C9,C940,01 -> If Patch Change on Channel 10 then value is 64!
  125.  
  126. C (=1100) c (=????) d (=????) d (=????)
  127. F (=1111) 0 (=0000) 0 (=0000) 0 (=0000)
  128. --------------------------------------- AND
  129. C (=1100) 0 (=0000) 0 (=0000) 0 (=0000)
  130.  
  131. TRx=F0,C0,B00040,03 -> If Patch Change then dump a bank 64 controller!
  132.  
  133. 9 (=1001) 9 (=1001) 2 (=0010) E (=1110) v (=????) v (=????)
  134. F (=1111) F (=1111) F (=1111) F (=1111) 4 (=0100) 0 (=0000)
  135. ----------------------------------------------------------- AND
  136. 9 (=1001) 9 (=1001) 2 (=0010) E (=1110) 4 (=0100) 0 (=0000)
  137.  
  138. TRx=FFFF40,992E40,992E7F,01 -> If Open Hihat on Channel 10 then Velocity is 127!
  139.  
  140. B (=1011) c (=????) 0 (=00?0) 0 (=0000)
  141. F (=1111) 0 (=0000) D (=1101) F (=1111)
  142. --------------------------------------- AND
  143. B (=1011) 0 (=0000) 0 (=0000) 0 (=0000)
  144.  
  145. TRx=F0DF,B000,0000,02 -> If Bank or Map Select then remove!
  146.  
  147. TRx=FFFFFFFF,F043104C,F0411042124001580067F7,3 -> If XG Reset then GS Delay Level is 0 (Doesn't work)
  148.  
  149. Convert Note Messages Channel 1->6 and Channel 2->7:
  150. C:\WINAPP\SOUND\HWMDCABL.EXE OUT=7 IN=2 TR1=EF,80,058080,1 TR2=EF,82,068080,1
  151.  
  152. C:\WINAPP\SOUND\HWMDCABL.EXE OUT=7 IN=2 TR1=F0DF,B000,0000,02 TR2=F0,C0,B00040,03 TR3=FFFF40,992E40,992E7F,01 TR4=FF,C9,C940,01
  153.  
  154. C:\WINAPP\SOUND\HWMDCABL.EXE OUT=7 IN=2 TR1=F0DF,B0,00,02 TR2=F0,C0,B00040,03 TR3=FF,C9,C940,01 TR4=FFFF40,992E40,992E7F,01 FILT=0,0,1
  155.  
  156. C:\WINAPP\SOUND\HWMDCABL.EXE OUT=6 IN=1 TR1=F000FF,90,808040,01 TR2=F0,90,D081,03 TR3=F0,90,90807F,01
  157.