123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- =============================================================
- | Apogee Expanded MIDI (EMIDI) API v1.0 |
- =============================================================
- Specifications created by Lee Jackson and Jim DosŠ
- Support coded by Jim DosŠ
- FOR INTERNAL USE ONLY. ACCESS OR USE WITHOUT EXPRESS WRITTEN
- PERMISSION FROM APOGEE SOFTWARE, LTD., 3D REALMS ENTERTAINMENT, OR
- ACTION ENTERTAINMENT, INC., IS STRICTLY PROHIBITED.
- Copyright (c) 1995 Apogee Software Ltd. All Rights Reserved.
- =============================================================
- | Contents |
- =============================================================
- I. Instrument Definitions
- II. Controller Definitions
- III. InitBeat Format
- =============================================================
- | I. Instrument Definitions |
- =============================================================
- The following instruments are currently defined as valid for data
- entry events:
- 0 - General MIDI
- 1 - Roland Sound Canvas (GM and GS)
- 2 - Sound Blaster AWE32
- 3 - Wave Blaster and Compatibles (SCD-10, etc.)
- 4 - Sound Blaster and Compatibles (OPL-2 and OPL-3)
- 5 - Media Vision Pro Audio series
- 6 - Logitech Sound Man 16
- 7 - Adlib and Compatibles
- 8 - Ensoniq Soundscape
- 9 - Gravis Ultrasound, Ultrasound Max, Ultrasound ACE
- 127 - All (see Controller Definitions)
- =============================================================
- | II. Controller Definitions |
- =============================================================
- The following controllers are currently defined as valid:
- 110 - Track Designation
- Required: Yes
- Multiples allowed: Yes
- Format: 110 nn
- (where nn is a defined instrument)
- Controller 110 determines which instruments will receive data for
- this track. Multiple instances may be used to designate multiple
- instruments. If the track is designated for all instruments,
- Instrument 127 may be used. This instrument may also be used in
- conjunction with Controller 111 to exclude a single instrument or
- group of instruments.
- 111 - Track Exclusion
- Required: No
- Multiples allowed: Yes
- Format: 111 nn
- (where nn is a defined instrument -
- instrument 127 is invalid)
- Controller 111 excludes an instrument from receiving the data for
- this track. Multiple instances may be used to exclude multiple
- instruments. Instrument 127 is not valid for this controller.
- 112 - Program Change
- Required: No
- Multiples allowed: Yes
- Format: 112 nn
- (where nn is a GM program change)
- Controller 112 is the same as the standard MIDI program change
- event. It may be inserted at any point a program change is
- required. If it does not exist, standard MIDI program change events
- will be recognized for this track. If it does exist, standard MIDI
- program change events will not be recognized for this track, and all
- program changes for the track must be entered using Controller 112.
- 113 - Volume
- Required: No
- Multiples allowed: Yes
- Format: 113 nn
- (where nn is between 0 and 127)
- Controller 113 allows different volumes to be inserted in the same
- manner as Controller 7. It should be used only if
- designation/exclusion groups exist on the same MIDI channel. If
- Controller 113 does not exist at the beginning of the track,
- Controller 7 events will be recognized. If Controller 113 does
- exist at the beginning of the track, Controller 7 events will be
- ignored.
- 116 - Loop Begin
- Required: Yes
- Multiples allowed: Yes (see below)
- Format: 116 nn
- (see below for definition)
- Controller 116 indicates the beginning of a sequence to be looped.
- Values for this controller are as follows:
- 0 - infinite loop
- 1 - loop once
- 2 - loop twice
- x - loop x times
- A song should have a Master Start point and a Master End point. The
- start point should occur after the InitBeat (see section III) and
- after any introduction you wish to have played only once. Any
- controller information (patch changes, pitch bend info, etc.)
- required for the loop should be entered and/or repeated after the
- loop's Master Start event (see also Section III, "InitBeat", below).
- Likewise, any "reset" events required should be entered either just
- after the loop's Master Start event or just before the loop's Master
- End event.
- Multiple non-infinite loop start/end pairs (see Controller 117
- below) may occur at any point inside the Master Loop. Only one
- infinite loop may be defined per song. Nested loops are not yet
- supported.
- IMPORTANT: Any event to be included within the loop must fall after
- the Loop Begin point and end before the Loop End point.
- If you are using Cakewalk Pro for Windows, you can
- verify this by looking at the Event List view.
- SIMULTANEOUS TIMES FOR LOOP POINTS AND EVENT DATA DO NOT
- GUARANTEE THAT AN EVENT IS INSIDE THE LOOP. If in
- doubt, set the event one tick after the Loop Begin or
- have it end one tick before the Loop End.
- 117 - Loop End
- Required: Yes
- Multiples allowed: Yes (see below)
- Format: 117 127
- Controller 117 indicates the end of a looped segment of a song, or
- in the case of a Master Loop, the end of the entire song. This
- controller signals that the Apogee Sound System should immediately
- loop back to the nearest non-resolved loop begin event (i.e., the
- nearest Controller 116 event that does not have a matching
- Controller 117 event).
- Loop End events should not occur at the exact time of a Loop Begin
- event.
- Note: Loop Begin/End pairs only affect the track they are placed
- on. If an entire song is to be looped through a segment, all
- tracks must contain Loop Begin events and Loop End events
- which occur on the same tick across all tracks. Be careful
- how you use non-synchronous single track loops - the composer
- is responsible for making sure that everything stays in sync.
- See Controller 116 above for important information regarding
- placements of events to be included within loops.
- =============================================================
- | III. InitBeat Format |
- =============================================================
- Each song should begin with an InitBeat. In terms of standard
- musical notation, an example of this would be a single 1/4 measure
- where the rest of the song is in 4/4, or a single 1/8 measure when
- the rest of the song is in 6/8. In MIDI terms, this is equivalent
- to one full cycle of the current timebase (e.g., for timebase 120, a
- single beat, 120 ticks long). Each track used should have its own
- InitBeat. This beat should not contain any note on/off data, sysex
- dump data, Loop Begin/End events (Controllers 116 and/or 117), or
- other non-Controller events. It may, however, contain MetaEvents
- such as text, copyrights, markers, program changes (normal or
- Controller 112), and the like.
- The InitBeat should contain any needed Controller 110, 111, 112, or
- 113 events needed to set up each track for the song. It may also
- contain other Controllers (pitch wheel, modulation, RPN/NRPN data,
- etc.) as desired. Keep in mind that you will need to repeat these
- controller values at some point within the Master Loop if you change
- them at any point in the song (and you rely on the original values
- when the song goes back to the Master Start point).
- If no special handling is required for a track (i.e., the track is
- to be played by all instruments and no Controller resets/setups are
- desired), the InitBeat for that track may be left blank. It is
- advisable, however, to at least insert a single Controller 110 event
- with value 127, indicating that the track is to be played by all
- instruments. This is more a matter of personal preference, but it
- can come in handy for setting up templates with Cakewalk Pro for
- Windows and other programs that support default song templates.
- If none of the tracks in a song require any special handling, all
- InitBeats may be left blank. Do not delete the InitBeat measure -
- just leave it blank.
- Controller events may be spread throughout the InitBeat as desired.
- You may place them all on a single tick, or on separate ticks. Some
- instruments will behave unpredictably if all events for a track are
- placed on the same tick (e.g., the 5-6 events needed to adjust pitch
- bend parameters, especially if controllers 100 and 101 are set with
- value 0 and then reset with value 127 as recommended by Roland), so
- composer discretion is advised. At this time, simultaneous events
- across multiple tracks are not known to cause a problem.
- The InitBeat may be inserted in any way desired. If you are using
- Cakewalk Pro for Windows, it is simplest to make the first measure a
- 1/4 measure (one beat @ 4 per measure) and then switch the meter to
- whatever you want to use for the remainder of the song right at
- measure 2. Meter changes within the song are not affected by this,
- of course.
|