home *** CD-ROM | disk | FTP | other *** search
/ Esprit de Apple Corps / EDAC-1.iso / MOD.Utilities / Info / MEDCOM.txt < prev    next >
Text File  |  1993-03-19  |  16KB  |  419 lines

  1.  
  2. ------- Tempo (playing speed)
  3.  
  4. To understand this completely, you need to know some technical aspects.  MED
  5. uses the CIAB timers for timing.  They give "timing pulses" that trigger the
  6. MED's  player  interrupt.   On  each  timing pulse effects are handled (e.g.
  7. commands  1,2,3,4,5,D, hold/decay, synthsounds), but new note is usually not
  8. played  on  each  pulse.   The  time  between  timing  pulses can be changed
  9. (primary  tempo).   The  new  note is usually played on every 6th pulse, but
  10. this  can  be  changed  too  (secondary tempo), for example, if new note was
  11. played  on  every 3rd pulse, the playing speed would be twice as fast.  This
  12. doesn't affect the speed of effects.
  13.  
  14. Graphically:
  15. pulse   \         PLAY NOTE
  16.          the time between pulses can be changed (primary tempo)
  17. pulse   /         DO EFFECTS  \
  18.                                \
  19. pulse             DO EFFECTS    \ The number of pulses between
  20.                                 / notes can be changed (4 in this example).
  21. pulse             DO EFFECTS   /  This is the secondary tempo.
  22.                               /
  23. pulse             PLAY NOTE
  24. ...
  25.  
  26. +-------------------------------------------------------------------+
  27. |+-----------------------------------------------------------------+|
  28. ||             MED V3.2 player commands/effects                    ||
  29. |+-----------------------------------------------------------------+|
  30. +-------------------------------------------------------------------+
  31.  
  32. This  section  gives  information  about  commands/effects.  They are events
  33. which affect the playing and they are handled by the MED player routine.
  34.  
  35.          C - 2  1 2 3 4
  36.                   | \ |
  37.      command number  \|
  38.                       data byte
  39.  
  40. You insert the commands usually by hand (turn editing on, move cursor on the
  41. command  numbers  and type the numbers).  It may be a bit easier if you turn
  42. off automatic-advance with Ctrl-A.
  43.  
  44. Here are the descriptions of each of the currently recognized commands:
  45.  
  46.  
  47. +---------------------------------------------------+
  48. | Command 0:  ARPEGGIO       MIDI: controller value |
  49. +---------------------------------------------------+
  50.  
  51. This command changes the pitch of the note quickly (6 times during 1 note).
  52. It can be used to create "chords" or special effects. If you've listened
  53. to music made with the C-64, you MUST have heard arpeggios. The pitch is
  54. changed between 3 different pitches during one note:
  55.          the 1st pitch is the pitch of the original note
  56.          the 2nd pitch is the pitch of the original note + the 1st number
  57.                 of databyte halfsteps up
  58.          the 3rd pitch is the pitch of the original note + the 2nd number
  59.                 of databyte halfsteps up
  60.  
  61. Note: 3rd pitch | 2nd pitch | 1st pitch | 3rd pitch | 2nd pitch | 1st pitch
  62.       changed 6 times during note
  63.  
  64. It may be a bit difficult to understand, so here's an example:
  65. You want to make an arpeggio which sounds like C-major chord.
  66.  
  67. The lowest pitch is C (C-2 in this example).
  68. The second is E-2 (4 halfsteps higher than C-2).
  69. The third is G-2 (7 halfsteps higher than C-2).
  70.  
  71. 4 halfsteps from C-2 -+ 7 halfsteps from C-2
  72.                       |/
  73. That produces:  C-2 1047
  74.                 --- 0047
  75.                 --- 0047 and so on...
  76.  
  77. Data byte for a minor chord would be 37.
  78.  
  79. The arpeggios sound better with some instruments than others.
  80.  
  81. MIDI: See command 5 for a description.
  82.  
  83. +---------------------------------------------------+
  84. | Command 1:  SLIDE UP       MIDI: pitchbender up   |
  85. +---------------------------------------------------+
  86.  
  87. This command slides up the pitch of the current track.
  88.  
  89. With Amiga samples:
  90.          Decreases the period of the note the amount of databyte on each
  91.          timing pulse. Sounds rather technical?? Yes... The instructions for
  92.          previous (before 2.10) versions of MED contained detailed
  93.          instructions for making good-sounding slides with this command.
  94.          Because this version now contains the easy automatic slide making
  95.          (Amiga-T), I felt that these instructions are not necessary any more.
  96.          If you use this function for special effects (not real slides) then
  97.          you can experiment with the values for the databyte.
  98.          Example:
  99.                 A-1 1000
  100.                 --- 0000
  101.                 --- 010F <- slide up a bit
  102.  
  103. With MIDI:
  104.          This commands works very differently with MIDI. It actually
  105.          "turns" the pitchbender 8 * databyte steps up on each timing pulse.
  106.          Because the actual range of the pitchbender may be different with
  107.          different MIDI-devices, you must find the right value by
  108.          experimenting. There's also one thing you should know: when a new
  109.          note is played, the pitchbender is not resetted automatically. To
  110.          reset the pitchbender, you use this command with databyte zero.
  111.          Example:
  112.                 G-2 L1FF <-turn it up very quick
  113.                 --- 0000
  114.                 --- 0100 <- then reset the pitchbender
  115.  
  116.  
  117. +---------------------------------------------------+
  118. | Command 2:  SLIDE DOWN     MIDI: pitchbender down |
  119. +---------------------------------------------------+
  120.  
  121. Not much about this command. It's just like command 1 except it slides
  122. down.
  123.  
  124.  
  125. +---------------------------------------------------+
  126. | Command 3:  PORTAMENTO     MIDI: set pitchbender  |
  127. +---------------------------------------------------+
  128.  
  129. This is another slide command (on some old MED versions (2.00) this
  130. was a vibrato command, see command 5 now). It can be used to
  131. make perfect slides more easily. First an example:
  132.  
  133.          C-2 5000 <- played note C
  134.          --- 0000
  135.          E-2 5305 <- this note is not played!! Instead, slide target is set
  136.          --- 0300    to G-2 and slide speed is 5
  137.          --- 0300 <- when speed is zero, use the previous speed
  138.          --- 0306 <- the speed can be changed, of course
  139.  
  140. This example would slide from C-2 to E-2, but the slide stops EXACTLY
  141. when E-2 is reached. The remaining 3's have no effect. This command
  142. is easier to handle with automatic slide making (see Edit/S1 above).
  143.  
  144. MIDI: By using this command, you can set the pitchbender to an absolute
  145. value, instead of sliding as commands 1 and 2 do. The data byte is the
  146. pitchbender value, expressed as a signed hexadecimal digit (a nightmare
  147. to non-programmers!).
  148.         00 = center position
  149.         80 (-7F) = smallest value
  150.         7F = largest value
  151.  
  152. Example:
  153.         C-2 3000
  154.         --- 037F <- pitchbender to max. value
  155.         --- 0300 <- reset
  156.  
  157.  
  158. +---------------------------------------------------+
  159. | Command 4:  VIBRATO        MIDI: modulation wheel |
  160. +---------------------------------------------------+
  161.  
  162. The first number of the data byte is vibrato speed, the second is
  163. vibrato depth. If the numbers are zeros, the previous speed and depth
  164. is used.
  165.  
  166. Example: F-215000
  167.          --- 0000
  168.          --- 0433 <- slow, not much depth
  169.          --- 0437 <- more depth
  170.          --- 043F <- full depth
  171.          --- 0482 <- fast, not very deep
  172.  
  173. MIDI: This command affects the modulation wheel of the current channel.
  174.       The data byte can be 00 - 7F. 00 = no modulation, 7F = maximum.
  175.       Values 80 - FF are reserved for future expansion (and won't work).
  176.  
  177.  
  178. +---------------------------------------------------+
  179. | Command 5:  OLD VIBRATO    MIDI: controller number|
  180. +---------------------------------------------------+
  181.  
  182. This is the old vibrato command (previously it was 3). The command 3 is
  183. automatically converted to 5 when loading old MED songs. The pitch of
  184. the note is changed between two values, databyte is the depth.
  185.  
  186. Example: A#1 J502
  187.          --- 0507 increasing depth
  188.          --- 0517 v
  189.          --- 0527
  190.          --- 0537
  191.  
  192. MIDI: Command 5 in conjunction with command 0 allows you to change any
  193. controller of MIDI (command $Bx cc vv, where cc = controller number,
  194. vv = value).
  195.  
  196. First you set the number of controller you want to change with command
  197. 5. Then you can select the value with command 0. Subsequent uses of
  198. command 0 will affect the controller previously set with command 5.
  199. Each channel has its own controller number. If the controller value is
  200. $00, you can't use '00', because the command '000' means 'do nothing'.
  201. Instead, you type '80'. Acceptable controller numbers and values are
  202. $00 - $7F.
  203.  
  204. For example: (assuming instrument 3 is set to MIDI channel 1)
  205.         C-2 3000
  206.         --- 0507 <- controller $07, volume, according to MIDI standard
  207.         D-2 307F <- set max. volume ($7F), command $B0 $07 $7F is sent
  208.         --- 0000
  209.         F-3 3001 <- small volume ($01)
  210.         --- 055C <- select controller $5C (tremolo depth)
  211.         G-4 3080 <- set to 0 (note: $80 = $00)
  212.  
  213. +---------------------------------------------------+
  214. | Command 8:  SET HOLD/DECAY MIDI: set hold only    |
  215. +---------------------------------------------------+
  216.  
  217. This command must be located on the same line with a note. The command
  218. assigns the hold and decay values for the note (see above for description
  219. about hold/decay).
  220.  
  221.                 hold value
  222. decay----------+|
  223.                ||
  224. Example: C-3 3824
  225.          -|- 3000
  226.          -|- 3000
  227.          --- 0000
  228.  
  229. +---------------------------------------------------+
  230. | Command 9:  SEC. TEMPO     MIDI: no action        |
  231. +---------------------------------------------------+
  232.  
  233. This command sets the secondary tempo (the number of timing pulses/note).
  234. The argument must be 01 - 20.
  235.  
  236. Example: --- 0903 <= double tempo
  237.          --- 0000
  238.  
  239. +---------------------------------------------------+
  240. | Command A:  VOLUME SLIDE   MIDI: polyph aftertouch|
  241. +---------------------------------------------------+
  242.  
  243. This is the same as command D (for Noise/Protracker compatibility).
  244. However, please use D instead of this. If I some day find that there
  245. are no free commands, I'll use this!!
  246.  
  247. MIDI: Command A changes the polyphonic aftertouch of the most recent note.
  248. The value should be $00 - $7F.
  249. Example:
  250.         C-3 4000
  251.         --- 0A30 <- aftertouch $30
  252.         --- 0000
  253.         --- 0A00 <- aftertouch $00
  254.  
  255. +---------------------------------------------------+
  256. | Command B:  POSITION JUMP  MIDI: position jump    |
  257. +---------------------------------------------------+
  258.  
  259. This command lets you make songs that have beginning which is played
  260. only once and then some part which is looped forever. Position jump
  261. causes the jump to playsequence number pointed by the data byte. If the
  262. data byte is 0, then the playseq jumps to the first entry.
  263.  
  264. Example:    --- 0B02 <- start playing from playsequence number 3
  265.  
  266. +---------------------------------------------------+
  267. | Command C:  SET VOLUME     MIDI: set volume       |
  268. +---------------------------------------------------+
  269.  
  270. You can override the default volume of the instrument with this command.
  271. Example:
  272.          A-3 4C20 <- played with volume 20
  273.  
  274. There are 65 volume levels (0 - 64), 0 = no sound, 64 = maximum. The
  275. data byte of command C can be 00 - 64 or 00 - 40 (decimal or hex).
  276. Non-programmers will probably want to use the decimal numbers. See
  277. (Play/[Dec/Hex]). If you want the playroutine to have maximum performance,
  278. then use hex values.
  279.  
  280. It is also possible to change the volume of already played note. Note
  281. that it doesn't work with MIDI-instruments.
  282.  
  283. Example:
  284.          A-3 4000
  285.          --- 0000
  286.          --- 0C10 <- volume to 10
  287.  
  288. It's possible to change the default volume of an instrument (MED V2 and
  289. later). The value must be between 80 and C0 (always hex!). Value $80 = volume
  290. 0, and $C0 = 64. Note: This can cause trouble in multi-modules, because the
  291. set of instruments (and their default volumes) are common. I recommend that
  292. you change the default volume only on non-multi-modules.
  293.  
  294. +---------------------------------------------------+
  295. | Command D:  VOLUME SLIDE   MIDI: channel pressure |
  296. +---------------------------------------------------+
  297.  
  298. You can increase/decrease volume smoothly with this command. The data
  299. byte is divided in two parts:
  300.  
  301.          C-3 3D01
  302.                ||
  303.                |+- Amount of decresdendo
  304.                +-- Amount of crescendo
  305.  
  306. If crescendo is zero, then the decrescendo is performed. Otherwise only
  307. crescendo is performed.
  308.  
  309. Example:
  310.          C-2 3C40
  311.          --- 0D01 <- a bit more quiet
  312.          --- 0D01 <- even more
  313.          --- 0D20 <- and crescendo back to original
  314.  
  315. One unit in these commands means six actual volume units, so this example
  316. would look like this, when using the C-command (except that it doesn't
  317. sound so smooth):
  318.          C-2 3C40 (volumes are decimal in this example)
  319.          --- 0C34 <- -6
  320.          --- 0C28 <- -6
  321.          --- 0C40 <- +12
  322.  
  323. MIDI: This command sends a channel pressure (channel aftertouch) message
  324. using the channel in which the most recent note was sent. The databyte
  325. should be $00 - $7F.
  326.          D#5 J000
  327.          --- 0D40 <- channel aftertouch $40
  328.          --- 0D00 <- to $00
  329.  
  330. +---------------------------------------------------+
  331. | Command E:  SYNTH/JMP      MIDI: pan control      |
  332. +---------------------------------------------------+
  333.  
  334. When used with synth/hybrid instruments, this command triggers a jump
  335. in the waveform command sequence. The databyte is the jump destination
  336. (line number).
  337.  
  338. Example: C-4 4000 <- this should be synth/hybrid instrument
  339.          --- 0000
  340.          --- 0E05 <- cause a jump to line # 5
  341.  
  342. With MIDI-instruments, this command controls the stereo location of the
  343. sound. The data byte can be 00 - 7F.
  344.  
  345.         left           mid            right
  346.          |              |               |
  347.         00             3F               7F
  348.  
  349. If you've used MED V2.00/V2.01 or Noise/SoundTracker, you may remember
  350. that this command controlled the low-pass filter. I think that it was
  351. unnecessary to spend the command E only for controlling only a single
  352. switch. See command F.
  353.  
  354. +---------------------------------------------------+
  355. | Command F:  TEMPO/MISC.    MIDI: tempo/misc.      |
  356. +---------------------------------------------------+
  357.  
  358. Command F has many different actions depending on the data byte.
  359.  
  360. If the data byte is zero (00), this command causes the immediate jumping
  361. to the next block on the playing sequence (or to the beginning of this
  362. block if you're only playing the block). This function is better to
  363. implement by making the block shorter (takes less memory).
  364.  
  365. Example:
  366.          C-2 4F00 <- this is the last note of this block
  367.  
  368. When the data byte if 01 - F0, the command changes the tempo. This is the
  369. primary tempo (length of the pause between timing pulses).
  370.  
  371. If the new tempo is 01 - 0A, it is compatible with Trackers, but now you
  372. should use the command 9 instead of this command, as it's directly
  373. Tracker-compatible (set the primary tempo to 33).
  374.  
  375. Example:
  376.          E-3 6FF0 <- highest tempo
  377.          --- 0000
  378.          --- 0F0B <- slowest
  379.  
  380. Data bytes FF1 - FFF are reserved for special actions, some of them
  381. are currently used:
  382.  
  383. FF1 causes the same note played actually twice. This way it's possible
  384. to create fast rhythms.
  385.  
  386.          C-3 2FF1 is same as C-3 2000
  387.                              C-3 2000 with double tempo
  388.  
  389. FF2 plays the note only once, but it is not started immediately:
  390.  
  391.          C-3 2FF2 is same as --- 0000
  392.                              C-3 2000 with double tempo
  393.  
  394. FF3 works like FF1 except the note is played three times (very fast).
  395.  
  396. FF8 turns off the low-pass filter (power-LED will dim).
  397.  
  398. FF9 turns the low-pass filter on (bright LED).
  399.  
  400. FFA sends MIDI "hold pedal on"-command (works only with MIDI-instruments).
  401.  
  402. FFB sends MIDI "hold pedal off"-command (works only with MIDI-instruments).
  403.  
  404. FFD works only with Amiga-samples. It causes the pitch of the channel to
  405.     be set to the pitch of the new note, but the new note is not replayed.
  406.  
  407.          C-1 2000 <- play note
  408.          --- 0000
  409.          C-2 2FFD <- don't replay the note, just set the pitch to C-2
  410.  
  411. FFE stops playing immediately. If you want to make a song which plays only
  412.     once, put this command to the end of the song. This command can be
  413.     easily entered: Click "Stop playing" while holding the Shift-key.
  414.  
  415. FFF Stops the note on the current track. Works with both Amiga- and MIDI-
  416.     instruments. Nearly identical to "C00" on Amiga-samples, but because
  417.     "C00" doesn't work with MIDI, I made this command.
  418.  
  419.