EMIDIAPI.TXT 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. =============================================================
  2. | Apogee Expanded MIDI (EMIDI) API v1.0 |
  3. =============================================================
  4. Specifications created by Lee Jackson and Jim DosŠ
  5. Support coded by Jim DosŠ
  6. FOR INTERNAL USE ONLY. ACCESS OR USE WITHOUT EXPRESS WRITTEN
  7. PERMISSION FROM APOGEE SOFTWARE, LTD., 3D REALMS ENTERTAINMENT, OR
  8. ACTION ENTERTAINMENT, INC., IS STRICTLY PROHIBITED.
  9. Copyright (c) 1995 Apogee Software Ltd. All Rights Reserved.
  10. =============================================================
  11. | Contents |
  12. =============================================================
  13. I. Instrument Definitions
  14. II. Controller Definitions
  15. III. InitBeat Format
  16. =============================================================
  17. | I. Instrument Definitions |
  18. =============================================================
  19. The following instruments are currently defined as valid for data
  20. entry events:
  21. 0 - General MIDI
  22. 1 - Roland Sound Canvas (GM and GS)
  23. 2 - Sound Blaster AWE32
  24. 3 - Wave Blaster and Compatibles (SCD-10, etc.)
  25. 4 - Sound Blaster and Compatibles (OPL-2 and OPL-3)
  26. 5 - Media Vision Pro Audio series
  27. 6 - Logitech Sound Man 16
  28. 7 - Adlib and Compatibles
  29. 8 - Ensoniq Soundscape
  30. 9 - Gravis Ultrasound, Ultrasound Max, Ultrasound ACE
  31. 127 - All (see Controller Definitions)
  32. =============================================================
  33. | II. Controller Definitions |
  34. =============================================================
  35. The following controllers are currently defined as valid:
  36. 110 - Track Designation
  37. Required: Yes
  38. Multiples allowed: Yes
  39. Format: 110 nn
  40. (where nn is a defined instrument)
  41. Controller 110 determines which instruments will receive data for
  42. this track. Multiple instances may be used to designate multiple
  43. instruments. If the track is designated for all instruments,
  44. Instrument 127 may be used. This instrument may also be used in
  45. conjunction with Controller 111 to exclude a single instrument or
  46. group of instruments.
  47. 111 - Track Exclusion
  48. Required: No
  49. Multiples allowed: Yes
  50. Format: 111 nn
  51. (where nn is a defined instrument -
  52. instrument 127 is invalid)
  53. Controller 111 excludes an instrument from receiving the data for
  54. this track. Multiple instances may be used to exclude multiple
  55. instruments. Instrument 127 is not valid for this controller.
  56. 112 - Program Change
  57. Required: No
  58. Multiples allowed: Yes
  59. Format: 112 nn
  60. (where nn is a GM program change)
  61. Controller 112 is the same as the standard MIDI program change
  62. event. It may be inserted at any point a program change is
  63. required. If it does not exist, standard MIDI program change events
  64. will be recognized for this track. If it does exist, standard MIDI
  65. program change events will not be recognized for this track, and all
  66. program changes for the track must be entered using Controller 112.
  67. 113 - Volume
  68. Required: No
  69. Multiples allowed: Yes
  70. Format: 113 nn
  71. (where nn is between 0 and 127)
  72. Controller 113 allows different volumes to be inserted in the same
  73. manner as Controller 7. It should be used only if
  74. designation/exclusion groups exist on the same MIDI channel. If
  75. Controller 113 does not exist at the beginning of the track,
  76. Controller 7 events will be recognized. If Controller 113 does
  77. exist at the beginning of the track, Controller 7 events will be
  78. ignored.
  79. 116 - Loop Begin
  80. Required: Yes
  81. Multiples allowed: Yes (see below)
  82. Format: 116 nn
  83. (see below for definition)
  84. Controller 116 indicates the beginning of a sequence to be looped.
  85. Values for this controller are as follows:
  86. 0 - infinite loop
  87. 1 - loop once
  88. 2 - loop twice
  89. x - loop x times
  90. A song should have a Master Start point and a Master End point. The
  91. start point should occur after the InitBeat (see section III) and
  92. after any introduction you wish to have played only once. Any
  93. controller information (patch changes, pitch bend info, etc.)
  94. required for the loop should be entered and/or repeated after the
  95. loop's Master Start event (see also Section III, "InitBeat", below).
  96. Likewise, any "reset" events required should be entered either just
  97. after the loop's Master Start event or just before the loop's Master
  98. End event.
  99. Multiple non-infinite loop start/end pairs (see Controller 117
  100. below) may occur at any point inside the Master Loop. Only one
  101. infinite loop may be defined per song. Nested loops are not yet
  102. supported.
  103. IMPORTANT: Any event to be included within the loop must fall after
  104. the Loop Begin point and end before the Loop End point.
  105. If you are using Cakewalk Pro for Windows, you can
  106. verify this by looking at the Event List view.
  107. SIMULTANEOUS TIMES FOR LOOP POINTS AND EVENT DATA DO NOT
  108. GUARANTEE THAT AN EVENT IS INSIDE THE LOOP. If in
  109. doubt, set the event one tick after the Loop Begin or
  110. have it end one tick before the Loop End.
  111. 117 - Loop End
  112. Required: Yes
  113. Multiples allowed: Yes (see below)
  114. Format: 117 127
  115. Controller 117 indicates the end of a looped segment of a song, or
  116. in the case of a Master Loop, the end of the entire song. This
  117. controller signals that the Apogee Sound System should immediately
  118. loop back to the nearest non-resolved loop begin event (i.e., the
  119. nearest Controller 116 event that does not have a matching
  120. Controller 117 event).
  121. Loop End events should not occur at the exact time of a Loop Begin
  122. event.
  123. Note: Loop Begin/End pairs only affect the track they are placed
  124. on. If an entire song is to be looped through a segment, all
  125. tracks must contain Loop Begin events and Loop End events
  126. which occur on the same tick across all tracks. Be careful
  127. how you use non-synchronous single track loops - the composer
  128. is responsible for making sure that everything stays in sync.
  129. See Controller 116 above for important information regarding
  130. placements of events to be included within loops.
  131. =============================================================
  132. | III. InitBeat Format |
  133. =============================================================
  134. Each song should begin with an InitBeat. In terms of standard
  135. musical notation, an example of this would be a single 1/4 measure
  136. where the rest of the song is in 4/4, or a single 1/8 measure when
  137. the rest of the song is in 6/8. In MIDI terms, this is equivalent
  138. to one full cycle of the current timebase (e.g., for timebase 120, a
  139. single beat, 120 ticks long). Each track used should have its own
  140. InitBeat. This beat should not contain any note on/off data, sysex
  141. dump data, Loop Begin/End events (Controllers 116 and/or 117), or
  142. other non-Controller events. It may, however, contain MetaEvents
  143. such as text, copyrights, markers, program changes (normal or
  144. Controller 112), and the like.
  145. The InitBeat should contain any needed Controller 110, 111, 112, or
  146. 113 events needed to set up each track for the song. It may also
  147. contain other Controllers (pitch wheel, modulation, RPN/NRPN data,
  148. etc.) as desired. Keep in mind that you will need to repeat these
  149. controller values at some point within the Master Loop if you change
  150. them at any point in the song (and you rely on the original values
  151. when the song goes back to the Master Start point).
  152. If no special handling is required for a track (i.e., the track is
  153. to be played by all instruments and no Controller resets/setups are
  154. desired), the InitBeat for that track may be left blank. It is
  155. advisable, however, to at least insert a single Controller 110 event
  156. with value 127, indicating that the track is to be played by all
  157. instruments. This is more a matter of personal preference, but it
  158. can come in handy for setting up templates with Cakewalk Pro for
  159. Windows and other programs that support default song templates.
  160. If none of the tracks in a song require any special handling, all
  161. InitBeats may be left blank. Do not delete the InitBeat measure -
  162. just leave it blank.
  163. Controller events may be spread throughout the InitBeat as desired.
  164. You may place them all on a single tick, or on separate ticks. Some
  165. instruments will behave unpredictably if all events for a track are
  166. placed on the same tick (e.g., the 5-6 events needed to adjust pitch
  167. bend parameters, especially if controllers 100 and 101 are set with
  168. value 0 and then reset with value 127 as recommended by Roland), so
  169. composer discretion is advised. At this time, simultaneous events
  170. across multiple tracks are not known to cause a problem.
  171. The InitBeat may be inserted in any way desired. If you are using
  172. Cakewalk Pro for Windows, it is simplest to make the first measure a
  173. 1/4 measure (one beat @ 4 per measure) and then switch the meter to
  174. whatever you want to use for the remainder of the song right at
  175. measure 2. Meter changes within the song are not affected by this,
  176. of course.