home *** CD-ROM | disk | FTP | other *** search
/ Groovy Bytes: Behind the Moon / groovybytes.iso / GROOVY / MISC / TEXTE / MIDIFAQG.ZIP / MIDIFAQG.TXT
Encoding:
Text File  |  1995-06-29  |  159.6 KB  |  3,792 lines

  1. =========================================================================
  2. Hier eine Zusammenstellung von haeufigen Fragen die Midi-Themen betreffen:
  3. =========================================================================
  4.  
  5.                         Stand 7.8.94
  6.  
  7. Diese Zusammenstellung erhebt keinen Anspruch auf Vollstaendigkeit!
  8. Es sind Texte aus dem Fido-Netz sowie sonstigen Quellen, die ich Wahl- und 
  9. Wertungsfrei zusammengestellt habe. Sie soll dem MIDI-Einsteiger helfen.
  10. Vielen Dank an die Mithelfer in FIDO/MAUS/uucp/MIDILink/EMC............  
  11.  
  12. Ob die Aussagen der Texte richtig sind, kann ich im Einzelnen nicht 
  13. nachvollziehen. Also:
  14.                         ALLES OHNE GEWAEHR !
  15.  
  16. Die Fragen mit den Antworten sind durch ******** von den naechsten Fragen 
  17. getrennt. Bei mehreren Antworten sind diese durch -------- getrennt.
  18. Diese Zusammenstellung enthaelt KEINE Steuerzeichen fuer Drucker.
  19.  
  20. Viel Spass
  21. Harald Rossner 2:2490/4045.3  Fido-Home-BBS
  22.          oder  2:2480/9999.47 TBUS-BBS (MIDILink-Home-BBS)
  23.  
  24. Wuensche und Anregungen werden gerne entgegengenommen.
  25. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  26.  
  27.                                 INHALT
  28.                                 ======
  29.  1) Welche MIDI-Boxen gibt es ?
  30.  2) Was ist MIDILink ?
  31.  3) Wie ist das MIDI-Format aufgebaut ?
  32.  4) Welche Buecher oder Textquellen gibt es fuer MIDI ?
  33.  5) Info ueber Wert,Funktion und Namen der MIDI-Controller ?
  34.  6) Wie ist die Schaltung eines MIDI-Kabels fuer SoundBlaster/GUS ...-Karte? 
  35.  7) Wie sieht ein MIDI-Kabel aus, wie ist die Belegung?
  36.  8) Wie ist die Belegung der Sounds bei GM/GS ?
  37.  9) Wie sind die Hersteller ID's bei SysEx ?
  38. 10) Aufbau des "MIDI Sample Dump" Format.
  39. 11) Aufbau des "MIDI Timecode" Format.
  40.  
  41. *******************************************************************************
  42. Frage: Welche Musik- und Midi-orientierte Boxen gibt es?
  43.  
  44. Antwort: 
  45.  
  46.  
  47. Musik und MIDI-orientierte Mailboxen in Deutschland
  48. --------------------------------------------------------------------------
  49. Name           Ort            Telefon    ggf. Fido-Node
  50. --------------------------------------------------------------------------
  51. Headquarter    Duisburg       02066-7634   (2:2447/124)
  52.                (MusicNet)
  53. --------------------------------------------------------------------------
  54. KEY-Box        Dortmund       0231-7212191 (2:2444/5103.2)
  55.                (Kontakt zur Zeitschrift Keyboards)
  56. --------------------------------------------------------------------------
  57. MES            Leipzig        0341-4795879 (2:241/1101.2)
  58. --------------------------------------------------------------------------
  59. MUSIK-BOX      Bremen         0421-5669337
  60. --------------------------------------------------------------------------
  61. MIDICOM BBS    Oldenburg      0441-74563   (2:2426/2040)
  62.                (MIDILink Musicians Network)
  63. --------------------------------------------------------------------------
  64. Chocolate Hill Stuttgart      07158-60035  (2:2407/36)
  65.                (MIDILink Musicians Network)
  66. --------------------------------------------------------------------------
  67. SoundDiverBox  Markt Schwaben 08121-49912
  68.                (Kontakt zum Programmierer von Soundsurfer /
  69.                 Sounddiver)
  70. --------------------------------------------------------------------------
  71. TBUS-BBS       Muenchen       089-293881   (2:2480/9999)
  72. --------------------------------------------------------------------------
  73. MusicBox       Muenchen       089-3163154
  74.                (Mac Telefinder BBS)
  75. --------------------------------------------------------------------------
  76. KEYS-BBS       Muenchen       089-6518679  (2:2480/620)
  77.                (MIDILink Musicians Network, Kontakt zur Zeitschrift
  78.                 Keys)
  79. --------------------------------------------------------------------------
  80. MIDIGITAL Box                 09396-2113
  81. --------------------------------------------------------------------------
  82.  
  83. Diese Liste erhebt keinen Anspruch auf Vollstaendigkeit. Wer in diese
  84. Liste aufgenommen werden moechte kontaktiert Florian Anwander in der KEYS-
  85. BBS. Bitte immer die komplette Liste zwischen den beiden doppelt
  86. gestrichelten Linien weitergeben.
  87. ==========================================================================
  88. *******************************************************************************
  89.  
  90.  
  91. Frage: Was ist MIDILINK?
  92.  
  93. Antwort:
  94. ======================================================================
  95. MIDILink Musician's Network - Linking Musical Professionals worldwide!
  96. ======================================================================
  97.  Info fuer Musiker und MIDI-Anbieter, Deutsche Ausgabe (1. Quartal 94)
  98.  ====================================================================
  99.  
  100. Worum geht es?
  101. ==============
  102.  
  103. [...]
  104. Der MIDILINK verbindet weltweit Musiker und MIDIaner aller Art, welche
  105. die MIDI-Technologie nutzen und/oder vorantreiben. Angefangen hat alles
  106. 1987 in den USA, als MIDI-Anwender ein Telekommunikationsnetz unter
  107. Gleichgesinnten aufbauten, um es speziell fuer ihren Erfahrungsaustausch
  108. und ihre Zusammenarbeit zu nutzen. Nachrichten (Fragen, Infos, News,
  109. Datenfiles, etc.) wurden in verschiedenen StAedten gesammelt und ueber
  110. Nacht automatisch per BBS's (Bulletin Board Systems) in andere StAedte
  111. weitergeleitet. Heute sind weltweit mehr als 20.000 Teilnehmer im MIDILINK
  112. verbunden. In zahlreichen fachspezifischen Konferenzen werden musikalische,
  113. technische und organisatorische Fragen rund um die MIDI-Technologie
  114. diskutiert und Erfahrungen auch in Form von Datenfiles und Programmen
  115. ausgetauscht. Mehr als 50 BBS's bilden dabei das weltweite Kommunikations-
  116. netz, auf welches jeder Teilnehmer durch Anwahl des ihm naechstgelegenen
  117. MIDILINK-BBS's leicht zugreifen kann.
  118.  
  119. Anbieter von MIDI-Produkten haben inzwischen den MIDILINK auch als
  120. schnellen Draht zu ihren Kunden entdeckt, um Fragen zu Produkten und deren
  121. Anwendung auf direktem Wege zu beantworten. Einige Hersteller haben sich
  122. sogar mit einem eigenen BBS dem MIDILINK angeschlossen, um so seine
  123. Infrastruktur zu nutzen.
  124.  
  125.  
  126. Was bringt Ihnen das?
  127. =====================
  128.  
  129. Als MIDILINK-Teilnehmer koennen Sie weltweit Erfahrungen mit Anwendern
  130. Aehnlichen Equipments austauschen, Fragen stellen, von Herstellern direkten
  131. Support bekommen, etc./pp. Dafuer stehen Ihnen fachspezifische Konferenzen
  132. fuer alle MIDI-relevanten Computer (z.B. IBM, Macintosh, Atari, Amiga)
  133. sowie entsprechende Anwendungsgebiete (z.B. SoundProgramming, Sampler,
  134. Recording, MultiMedia, Video, SoundCards, Komposition, Karriere, etc.) zur
  135. Verfuegung, und zahlreiche Hersteller (z.B. Kurzweil, Music Quest, Turtle
  136. Beach, Twelve Tone, Steinberg/Jones, uam.) bieten Ihnen einen direkten
  137. 24h-Service in ihren Factory-Support Konferenzen. Zudem koennen Sie auf
  138. die reichhaltige File-Sammlung der EMC ("European MIDI Connection")
  139. zugreifen und sich Demos, frei verfuegbare Programme, Patches, Sequenzer-
  140. Dateien etc. in ihren Computer laden.
  141.  
  142. Als MIDI-Anbieter koennen Sie die MIDILINK-Infrastruktur dazu nutzen, ihren
  143. Kunden einen 24h Support-Service zu bieten und gezielt beim Fachpublikum
  144. fuerIhre Produkte zu werben. Unter Verweis Ihrer Kunden auf den MIDILINK
  145. koennen Sie sich dann den Aufbau einer entsprechenden eigenen Infrastruktur
  146. ersparen.
  147.  
  148.  
  149. [... Die Teilnahme kostet nichts (ausser Telefongebuehr) ...]
  150.  
  151. +---------------------------------------------------------------------------+
  152. | "MIDILink Musician's Network" (MMN)  &  "European Midi Connection" (EMC)  |
  153. |    Fach-Konferenzen und File-Areas fuer  ca. 20.000  MIDIaner weltweit    |
  154. |    Konferenzen & FileAreas verfuegbar bei den folgenden FidoNet-Boxen:    |
  155. +---------------------------------------------------------------------------+
  156. |MUENCHEN: TBUS-BBS        (2:2480/9999),+49-89-293881,  SO Rudolf Stricker |
  157. |MUENCHEN: KEYS-BBS        (2:2480/620) ,+49-89-6518679, SO Florian Anwander|
  158. |OLDENBURG:MIDICOM BBS     (2:2426/2040),+49-441-74563,  SO Oliver Ried     |
  159. |STUTTGART:Chocolate Hill  (2:2407/36),  +49-7158-60035, SO Michael Lederer |
  160. +---------------------------------------------------------------------------+
  161.  
  162.  
  163. Und was erwartet Sie im Detail bei diesen deutschen MIDILINK-BBS's? Hier
  164. zunAechst eine Liste der Fachkonferenzen:
  165.  
  166. ===============================================================
  167. =============== MIDILINK: Liste der MESSAGE-Areas =============
  168. ===============================================================
  169. =============== MIDI & MIDILink Musicians' Network (MMN) ======
  170. ===============================================================
  171. =======deutschsprachige Areas (in ganz Europa verfuegbar)======
  172. ===============================================================
  173. MIDILINK.MLG         allgemeine Area des deutschsprachigen MIDILink
  174. MMUSIKER.MLG         Uebers Musikhoeren und Musikmachen
  175. HARDSOFT.MLG         MIDI Hard und Software; deutsches MIDILink
  176. RECORDING.MLG        Aufnahme und Studiotechnik; deutsches MIDILink
  177. SNDCARDS.MLG         Soundkarten fuer IBM-Kompatible
  178. MBAZAR.MLG           Musiker Flohmarkt; deutsches MIDILink
  179. KEYS.MLG             Diskussions- und Informationsforum, der Zeitschrift Keys
  180. ===============================================================
  181. =========englischsprachige Areas (weltweit verfuegbar)=========
  182. ===============================================================
  183. M_MAIN-BOARD         general topics of MIDILink interntl.(english!)
  184. M_COLLAB             Area for songwriters collaboration(english!)
  185. M_CAREERS            Area for musicians carreers and education (english!)
  186. M_GENERICS           generic MIDI questions (english!)
  187. M_PROGRAM            conference on MIDI programming (english!)
  188. M_RECORDING          about recording and studio engineering (english!)
  189. M_SAMPLING           about sampler / sampling (english!)
  190. M_VIDSOUND           about video and sound (english!)
  191. M_SOUNDCRD           about pc-soundcards (english!)
  192. M_ST-ATARI           ATARI and MIDI (english!)
  193. M_APPLE              APPLE/MAC and MIDI (english!)
  194. M_COMMODORE          AMIGA / C64 and MIDI (english!)
  195. M_IBM                IBM-compatibles and MIDI (english!)
  196. M_KURZWEIL           MMN-Factory support for  KURZWEIL MUSICAL PRODUCTS(engl.)
  197. M_12TONE             MMN-Factory support for  TWELVE TONE SYSTEMS (english!)
  198. M_STEINBERG          MMN-Factory support for STEINBERG (english!)
  199. M_TURTLEBEACH        MMN-Factory support for  TURTLE BEACH SYSTEMS (english!)
  200. M_MACKIE             MMN-Factory support for  MACKIE RECORDING GEAR (english!)
  201. M_VOYETRA            MMN-Factory support from VOYETRA TECHNOLOGIES (english!)
  202. M_MQUEST             MMN-Factory support from MUSIC QUEST INC (english!)
  203. M_KEY                MMN-Factory support for  KEY MEDIATOR (english!)
  204. M_PWRCHORD           MMN-Factory support for POWERCHORDS (english!)
  205. M_COOLSHOES          MMN-Factory support from COOL SHOES INC. (english!)
  206. M_JAMMER             MMN-Factory support for SOUNDTREK's JAMMER (english!)
  207. M_TAP                MMN-Factory support for MUSIC PRINTER PLUS (english!)
  208. M_TEACH              MMN-Factory support from TEACH SERVICES LMP (english!)
  209. ===============================================================
  210. =============== MIDI & Musik aus dem UseNet ===================
  211. RMM.COMPOSE     - Usenet conf on composers & composing
  212. RMM.GUITAR      - Usenet conf on guitars & playing them
  213. RMM.GUITAR.TAB  - Usenet conf on guitar tabs, chords & lyrics
  214. RMM.BASS        - Usenet conf on basses & playing them
  215. RMM.PERCUSSION  - Usenet conf on drums & percussions
  216. RMM.SYNTH       - Usenet conf on synths & samplers
  217. ===============================================================
  218.  
  219. [...Jede Box hat dann noch jede Menge musikorientierte Fido-Areas...]
  220.  
  221. Die beiden wesentlichsten Elemente am MIDILink duerften die internationale
  222. Vernetzung sein, und die Tatsache, dass innerhalb des Netzes eine
  223. kommerzielle Nutzung zulaessig ist - das gilt aber definitiv nur fuers
  224. MIDILink nicht fuer Netmails ins oder aus dem FIDO (!!!).
  225.  
  226. ******************************************************************************
  227.  
  228.  
  229. Frage: Wie ist das Midi-Format aufgebaut?
  230. Antwort:
  231.  
  232. Physikalisch gesehen eine Stromschleife,
  233. Lowlevel-logisch 8N1, 31250 Bit/s (31,25 KBit/s)
  234.  
  235.                     MIDI 1.0 Specification:
  236.  
  237. Status       Data Byte(s)     Description
  238. D7----D0     D7----D0
  239. -------------------------------------------------------------------------
  240. Channel Voice Messages
  241. -------------------------------------------------------------------------
  242. 1000cccc     0nnnnnnn         Note Off event.
  243.              0vvvvvvv         This message is sent when a
  244.                               note is released (ended).
  245.                               (nnnnnnn) is the note number.
  246.                               (vvvvvvv) is the velocity.
  247.  
  248. 1001cccc     0nnnnnnn         Note On event.
  249.              0vvvvvvv         This message is sent when a
  250.                               note is depressed (start).
  251.                               (nnnnnnn) is the note number.
  252.                               (vvvvvvv) is the velocity.
  253.  
  254. 1010cccc     0nnnnnnn         Polyphonic Key Pressure (After-touch).
  255.              0vvvvvvv         This message is sent when the pressure
  256.                               (velocity) of a previously
  257.                               triggered note changes.
  258.                               (nnnnnnn) is the note number.
  259.                               (vvvvvvv) is the new velocity.
  260.  
  261. 1011cccc     0ccccccc         Control Change.
  262.              0vvvvvvv         This message is sent when a controller
  263.                               value changes.  Controllers include devices
  264.                               such as pedals and levers.
  265.                               Certain controller numbers are reserved
  266.                               for specific purposes. See Channel Mode Messages.
  267.                               (ccccccc) is the controller number.
  268.                               (vvvvvvv) is the new value.
  269.  
  270. 1100cccc     0ppppppp         Program Change.
  271.                               This message sent when the patch number changes.
  272.                               (ppppppp) is the new program number.
  273.  
  274. 1101nnnn     0ccccccc         Channel Pressure (After-touch).
  275.                               This message is sent when the channel pressure
  276.                               changes. Some velocity-sensing keyboards do not
  277.                               support polyphonic after-touch. Use this
  278.                               message to send the single greatest velocity
  279.                               (of all te current depressed keys).
  280.                               (ccccccc) is the channel number.
  281.  
  282. 1110nnnn     0lllllll         Pitch Wheel Change.
  283.              0mmmmmmm         This message is sent to indicate a change in the
  284.                               pitch wheel.  The pitch wheel is measured by a
  285.                               fourteen bit value. Center (no pitch change) is
  286.                               2000H.  Sensitivity is a function of the
  287.                               transmitter.
  288.                               (llllll) are the least significant 7 bits.
  289.                               (mmmmmm) are the most significant 7 bits.
  290. -------------------------------------------------------------------------
  291. Channel Mode Messages  (See also Control Change, above)
  292. -------------------------------------------------------------------------
  293. 1011nnnn     0ccccccc         Channel Mode Messages.
  294.              0vvvvvvv         This the same code as the Control
  295.                               Change (above), but implements Mode
  296.                               control by using reserved controller
  297.                               numbers.  The numbers are:
  298.  
  299.                               Local Control.
  300.                               When Local Control is Off, all devices
  301.                               on a given channel will respond only to
  302.                               data received over MIDI.  Played data, etc.
  303.                               will be ignored.  Local Control On
  304.                               restores the functions of the normal
  305.                               controllers.
  306.                               c = 122, v =   0: Local Control Off
  307.                               c = 122, v = 127: Local Control On
  308.  
  309.                               All Notes Off.
  310.                               When an All Notes Off is received,
  311.                               all oscillators will turn off.
  312.                               c = 123, v =   0: All Notes Off
  313.  
  314.                               (See text for description of actual
  315.                               mode commands.)
  316.                               c = 124, v =   0: Omni Mode Off
  317.                               c = 125, v =   0: Omni Mode On
  318.                               c = 126, v =   M: Mono Mode On (Poly Off)
  319.                               where M is the number of channels
  320.                               (Omni Off) or 0 (Omni On)
  321.                               c = 127, v =   0: Poly Mode On (Mono Off)
  322.                               (Note: These four messages also cause
  323.                               All Notes Off)
  324.  
  325. -------------------------------------------------------------------------
  326. System Common Messages
  327. -------------------------------------------------------------------------
  328. 11110000     0iiiiiii         System Exclusive.
  329.              0ddddddd         This message makes up for all that MIDI
  330.                 ..            doesn't support.  (iiiiiii) is a seven
  331.                 ..            bit Manufacturer's I.D. code.  If the
  332.              0ddddddd         synthesizer recognizes the I.D. code as
  333.              11110111         its own, it will listen to the rest of
  334.                               the message (ddddddd).  Otherwise, the
  335.                               message will be ignored.  System Exclusive
  336.                               is used to send bulk dumps such as patch
  337.                               parameters and other non-spec data.
  338.                               (Note: Real-Time messages ONLY may be
  339.                               interleaved with a System Exclusive.)
  340.  
  341. 11110001                      Undefined.
  342.  
  343. 11110010     0lllllll         Song Position Pointer.
  344.              0mmmmmmm         This is an internal 14 bit register that
  345.                               holds the number of MIDI beats (1 beat=
  346.                               six MIDI clocks) since the start of
  347.                               the song.  l is the LSB, m the MSB.
  348.  
  349. 11110011     0sssssss         Song Select.
  350.                               The Song Select specifies which sequence
  351.                               or song is to be played.
  352.  
  353. 11110100                      Undefined.
  354.  
  355. 11110101                      Undefined.
  356.  
  357. 11110110                      Tune Request.
  358.                               Upon receiving a Tune Request, all analog
  359.                               sythesizers should tune their oscillators.
  360.  
  361. 11110111                      End of Exclusive.
  362.                               Used to terminate a System Exclusive
  363.                               dump (see above).
  364.  
  365. -------------------------------------------------------------------------
  366. System Real-Time Messages
  367. -------------------------------------------------------------------------
  368. 11111000                      Timing Clock.
  369.                               Sent 24 times per quarter note when
  370.                               synchronization is required (see text).
  371.  
  372. 11111001                      Undefined.
  373.  
  374. 11111010                      Start.
  375.                               Start the current sequence playing.
  376.                               (This message will be followed with
  377.                               Timing Clocks).
  378.  
  379. 11111011                      Continue.
  380.                               Continue at the point the sequence was
  381.                               Stopped.
  382.  
  383. 11111100                      Stop.
  384.                               Stop the current sequence.
  385.  
  386. 11111101                      Undefined.
  387.  
  388. 11111110                      Active Sensing.
  389.                               Use of this message is optional.  When
  390.                               initially sent, the receiver will expect
  391.                               to receive another Active Sensing message
  392.                               each 300ms (max), or it will be assume
  393.                               that the connection has been terminated.
  394.                               At termination, the receiver will turn off
  395.                               all voices and return to normal (non-
  396.                               active sensing) operation.
  397.  
  398. 11111111                      Reset.
  399.                               Reset all receivers in the system to
  400.                               power-up status.  This should be used
  401.                               sparingly, preferably under manual
  402.                               control.  In particular, it should not
  403.                               be sent on power-up.
  404.  
  405. ---------------------------------------------------------------------------- 
  406. Weitere Infos:
  407.  
  408. To get your copy of the 1.0 spec, send a $2 check to:
  409.  
  410. International Midi Association
  411. 5316 West 57th Street
  412. Los Angeles, CA 90056
  413. (415) 321-MIDI
  414.  
  415. Make your checks payable to the IMA.  BYW, the 1.0 spec is technically
  416. identical to the .06 spec, but the description has been re-written.
  417. Since the spec has been offically approved, there shouldn't be any
  418. problem with posting this summary of the .06 spec:
  419.  
  420.  
  421. [This document is Dave Oppenheim's current version of the MIDI file
  422. specification, as sent to those who have participated in its
  423. development.  The consensus seems to be to submit this to the MIDI
  424. Manufacturers' Association as version 1.0.  I apologize for any loss of
  425. clarity that might have occurred in the conversion from a Microsoft Word
  426. document to this pure text file.  I have removed some of the discussion
  427. about recent changes to the specification in order to keep the file size
  428. reasonable.--Doug Wyatt]
  429.  
  430.  
  431.  
  432. Standard MIDI Files 0.06        March 1, 1988
  433. =============================================
  434.  
  435. 0  Introduction
  436.  
  437. This describes a proposed standard MIDI file format.  MIDI files contain
  438. one or more MIDI streams, with time information for each event.  Song,
  439. sequence, and track structures, tempo and time signature information,
  440. are all supported.  Track names and other descriptive information may be
  441. stored with the MIDI data.  This format supports multiple tracks and
  442. multiple sequences so that if the user of a program which supports
  443. multiple tracks intends to move a file to another one, this format can
  444. allow that to happen.
  445.  
  446. This spec defines the 8-bit binary data stream used in the file.  The
  447. data can be stored in a binary file, nibbleized, 7-bit-ized for
  448. efficient MIDI transmission, converted to Hex ASCII, or translated
  449. symbolically to a printable text file.  This spec addresses what's in
  450. the 8-bit stream.
  451.  
  452.  
  453. 1  Sequences, Tracks, Chunks:  File Block Structure
  454.  
  455. Sequence files are made up of chunks.  Each chunk has a 4-character type
  456. and a 32-bit length, which is the number of bytes in the chunk.  On the
  457. Macintosh, data is passed either in the data fork of a file, or on the
  458. Clipboard.  (The file type on the Macintosh for a file in this format
  459. will be "Midi".)  On any other computer, the data is simply the contents
  460. of the file.  This structure allows future chunk types to be designed
  461. which may easily be ignored if encountered by a program written before
  462. the chunk type is introduced.   Your programs should expect alien chunks
  463. and treat them as if they weren't there.
  464.  
  465. This proposal defines two types of chunks:  a header chunk and a track
  466. chunk.  A header chunk provides a minimal amount of information
  467. pertaining to the entire MIDI file.  A track chunk contains a sequential
  468. stream of MIDI data which may contain information for up to 16 MIDI
  469. channels.  The concepts of multiple tracks, multiple MIDI outputs,
  470. patterns, sequences, and songs may all be implemented using several
  471. track chunks.
  472.  
  473. A MIDI file always starts with a header chunk, and is followed by one or
  474. more track chunks.
  475.  
  476. MThd  <length of header data>
  477. <header data>
  478. MTrk  <length of track data>
  479. <track data>
  480. MTrk  <length of track data>
  481. <track data>
  482.  ...
  483.  
  484. Track Data Format (MTrk chunk type)
  485.  
  486. The MTrk chunk type is where actual song data is stored.  It is simply a
  487. stream of MIDI events (and non-MIDI events), preceded by delta-time
  488. values.
  489.  
  490. Some numbers in MTrk chunks are represented in a form called a variable-
  491. length quantity. These numbers are represented 7 bits per byte, most
  492. significant bits first.  All bytes except the last have bit 7 set, and
  493. the last byte has bit 7 clear.  If the number is between 0 and 127,  it
  494. is thus represented exactly as one byte.
  495.  
  496. Here are some examples of numbers represented as variable-length
  497. quantities:
  498.  
  499.         Number (hex)    Representation (hex)
  500.         00000000        00
  501.         00000040        40
  502.         0000007F        7F
  503.         00000080        81 00
  504.         00002000        C0 00
  505.         00003FFF        FF 7F
  506.         00004000        81 80 00
  507.         00100000        C0 80 00
  508.         001FFFFF        FF FF 7F
  509.         00200000        81 80 80 00
  510.         08000000        C0 80 80 00
  511.         0FFFFFFF        FF FF FF 7F
  512.  
  513.  
  514. The largest number which is allowed is 0FFFFFFF so that the variable-
  515. length representation must fit in 32 bits in a routine to write
  516. variable-length numbers.  Theoretically, larger numbers are possible,
  517. but 2 x 108 96ths of a beat at a fast tempo of 500 beats per minute is
  518. four days, long enough for any delta-time!
  519.  
  520. Here is the syntax of an MTrk chunk:
  521.  
  522. <track data> = <MTrk event>+
  523.  
  524. <MTrk event> = <delta-time> <event>
  525.  
  526. <delta-time> is stored as a variable-length quantity.  It represents the
  527. amount of time before the following event.  If the first event in a
  528. track occurs at the very beginning of a track, or if two events occur
  529. simultaneously, a delta-time of zero is used.  Delta-times are always
  530. present.  (Not storing delta-times of 0 requires at least two bytes for
  531. any other value, and most delta-times aren't zero.)  Delta-time is in
  532. some fraction of a beat (or a second, for recording a track with SMPTE
  533. times), as specified in the header chunk.
  534.  
  535. <event> = <MIDI event> | <sysex event> | <meta-event>
  536.  
  537. <MIDI event> is any MIDI channel message.  Running status is used:
  538. status bytes may be omitted after the first byte.  The first event in a
  539. file must specify status.  Delta-time is not  considered an event
  540. itself:  it is an integral part of the specification.  Notice that
  541. running status occurs across delta-times.
  542.  
  543. <meta-event> specifies non-MIDI information useful to this format or to
  544. sequencers, with this syntax:
  545.  
  546.         FF <type> <length> <bytes>
  547.  
  548. All meta-events begin with FF, then have an event type byte (which is
  549. always less than 128), and then have the length of the data stored as a
  550. variable-length quantity, and then the data itself.  If there is no
  551. data, the length is 0.  As with sysex events, running status is not
  552. allowed.  As with chunks, future meta-events may be designed which may
  553. not be known to existing programs, so programs must properly ignore
  554. meta-events which they do not recognize, and indeed, should expect to
  555. see them.  New for 0.06:  programs must never ignore the length of a
  556. meta-event which they do recognize, and they shouldn't be surprised if
  557. it's bigger than they expected.  If so, they must ignore everything past
  558. what they know about.  However, they must not add anything of their own
  559. to the end of a meta-event.
  560.  
  561. <sysex event> is used to specify a MIDI system exclusive message, or as
  562. an "escape" to specify any arbitrary bytes to be transmitted.
  563. Unfortunately, some synthesizer manufacturers specify that their system
  564. exclusive messages are to be transmitted as little packets.  Each packet
  565. is only part of an entire syntactical system exclusive message, but the
  566. times they are transmitted at are important.  Examples of this are the
  567. bytes sent in a CZ patch dump, or the FB-01's "system exclusive mode" in
  568. which microtonal data can be transmitted.  To be able to handle
  569. situations like these, two forms of  <sysex event> are provided:
  570.  
  571.         F0 <length> <bytes to be transmitted after F0>
  572.         F7 <length> <all bytes to be transmitted>
  573.  
  574. In both cases, <length> is stored as a variable-length quantity.  It is
  575. equal to the number of bytes following it, not including itself or the
  576. message type (F0 or F7), but all the bytes which follow, including any
  577. F7 at the end which is intended to be transmitted.  The first form, with
  578. the F0 code, is used for syntactically complete system exclusive
  579. messages, or the first packet an a series Q that is, messages in which
  580. the F0 should be transmitted.  The second form is used for the remainder
  581. of the packets within a syntactic sysex message, which do not begin with
  582. F0.  Of course, the F7 is not considered part of the system exclusive
  583. message.  Of course, just as in MIDI, running status is not allowed, in
  584. this case because the length is stored as a variable-length quantity
  585. which may or may not start with bit 7 set.
  586.  
  587. (New to 0.06)  A syntactic system exclusive message must always end with
  588. an F7, even if the real-life device didn't send one, so that you know
  589. when you've reached the end of an entire sysex message without looking
  590. ahead to the next event in the MIDI file.  This principle is repeated
  591. and illustrated in the paragraphs below.
  592.  
  593. The vast majority of system exclusive messages will just use the F0
  594. format.  For instance, the transmitted message F0 43 12 00 07 F7 would
  595. be stored in a MIDI file as F0 05 43 12 00 07 F7.  As mentioned above,
  596. it is required to include the F7 at the end so that the reader of the
  597. MIDI file knows that it has read the entire message.
  598.  
  599. For special situations when a single system exclusive message is split
  600. up, with parts of it being transmitted at different times, such as in a
  601. Casio CZ patch transfer, or the FB-01's "system exclusive mode", the F7
  602. form of sysex event is used for each packet except the first.  None of
  603. the packets would end with an F7 except the last one, which must end
  604. with an F7.  There also must not be any transmittable MIDI events in-
  605. between the packets of a multi-packet system exclusive message.  Here is
  606. an example:  suppose the bytes F0 43 12 00 were to be sent, followed by
  607. a 200-tick delay, followed by the bytes  43 12 00 43 12 00, followed by
  608. a 100-tick delay, followed by the bytes  43 12 00 F7, this would be in
  609. the MIDI File:
  610.  
  611.         F0 03 43 12 00
  612.         81 48                                   200-tick delta-time
  613.         F7 06 43 12 00 43 12 00
  614.         64                                      100-tick delta-time
  615.         F7 04 43 12 00 F7
  616.  
  617. The F7 event may also be used as an "escape" to transmit any bytes
  618. whatsoever, including real-time bytes, song pointer, or MIDI Time Code,
  619. which are not permitted normally in this specification.  No effort
  620. should be made to interpret the bytes used in this way.  Since a system
  621. exclusive message is not being transmitted, it is not necessary or
  622. appropriate to end the F7 event with an F7 in this case.
  623.  
  624.  
  625. 2    Header Chunk
  626.  
  627. The header chunk at the beginning of the file specifies some basic
  628. information about the data in the file.  The data section contains three
  629. 16-bit words, stored high byte first (of course).  Here's the syntax of
  630. the complete chunk:
  631.  
  632.         <chunk type> <length> <format> <ntrks> <division>
  633.  
  634. As described above, <chunk type> is the four ASCII characters 'MThd';
  635. <length> is a 32-bit representation of the number 6 (high byte first).
  636. The first word, format, specifies the overall organization of the file.
  637. Only three values of format are specified:
  638.  
  639.         0       the file contains a single multi-channel track
  640.         1       the file contains one or more simultaneous tracks (or MIDI
  641. outputs) of a sequence
  642.         2       the file contains one or more sequentially independent
  643. single-track patterns
  644.  
  645. The next word, ntrks, is the number of track chunks in the file.  The
  646. third word, division,  is the division of a quarter-note represented by
  647. the delta-times in the file.  (If division is negative, it represents
  648. the division of a second represented by the delta-times in the file, so
  649. that the track can represent events occurring in actual time instead of
  650. metrical time.  It is represented in the following way:  the upper byte
  651. is one of the four values -24, -25, -29, or -30, corresponding to the
  652. four standard SMPTE and MIDI time code formats, and represents the
  653. number of frames per second.  The second byte (stored positive) is the
  654. resolution within a frame:  typical values may be 4 (MIDI time code
  655. resolution), 8, 10, 80 (bit resolution), or 100.  This system allows
  656. exact specification of time-code-based tracks, but also allows
  657. millisecond-based tracks by specifying 25 frames/sec and a resolution of
  658. 40 units per frame.)
  659.  
  660. Format 0, that is, one multi-channel track, is the most interchangeable
  661. representation of data.  One application of MIDI files is a simple
  662. single-track player in a program which needs to make synthesizers make
  663. sounds, but which is primarily concerned with something else such as
  664. mixers or sound effect boxes.  It is very desirable to be able to
  665. produce such a format, even if your program is track-based, in order to
  666. work with these simple programs.  On the other hand, perhaps someone
  667. will write a format conversion from format 1 to format 0 which might be
  668. so easy to use in some setting that it would save you the trouble of
  669. putting it into your program.
  670.  
  671. Programs which support several simultaneous tracks should be able to
  672. save and read data in format 1, a vertically one-dimensional form, that
  673. is, as a collection of tracks.  Programs which support several
  674. independent patterns should be able to save and read data in format 2, a
  675. horizontally one-dimensional form.  Providing these minimum capabilities
  676. will ensure maximum interchangeability.
  677.  
  678. MIDI files can express tempo and time signature, and they have been
  679. chosen to do so for transferring tempo maps from one device to another.
  680. For a format 0 file, the tempo will be scattered through the track and
  681. the tempo map reader should ignore the intervening events; for a format
  682. 1 file, the tempo map must (starting in 0.04) be stored as the first
  683. track.  It is polite to a tempo map reader to offer your user the
  684. ability to make a format 0 file with just the tempo, unless you can use
  685. format 1.
  686.  
  687. All MIDI files should specify tempo and time signature.  If they don't,
  688. the time signature is assumed to be 4/4, and the tempo 120 beats per
  689. minute.  In format 0, these meta-events should occur at least at the
  690. beginning of the single multi-channel track.  In format 1, these meta-
  691. events should be contained in the first track.  In format 2, each of the
  692. temporally independent patterns should contain at least initial time
  693. signature and tempo information.
  694.  
  695. We may decide to define other format IDs to support other structures.  A
  696. program reading an unfamiliar format ID should return an error to the
  697. user rather than trying to read further.
  698.  
  699.  
  700. 3    Meta-Events
  701.  
  702. A few meta-events are defined herein.  It is not required for every
  703. program to support every meta-event.  Meta-events initially defined
  704. include:
  705.  
  706. FF 00 02 ssss   Sequence Number
  707. This optional event, which must occur at the beginning of a track,
  708. before any nonzero delta-times, and before any transmittable MIDI
  709. events, specifies the number of a sequence.  The number in this track
  710. corresponds to the sequence number in the new Cue message discussed at
  711. the summer 1987 MMA meeting.  In a format 2 MIDI file, it is used to
  712. identify each "pattern" so that a "song" sequence using the Cue message
  713. to refer to the patterns.  If the ID numbers are omitted, the sequences'
  714. locations in order in the file are used as defaults.  In a format 0 or 1
  715. MIDI file, which only contain one sequence, this number should be
  716. contained in the first (or only) track.  If transfer of several
  717. multitrack sequences is required, this must be done as a group of format
  718. 1 files, each with a different sequence number.
  719.  
  720. FF 01 len text  Text Event
  721. Any amount of text describing anything.  It is a good idea to put a text
  722. event right at the beginning of a track, with the name of the track, a
  723. description of its intended orchestration, and any other information
  724. which the user wants to put there.  Text events may also occur at other
  725. times in a track, to be used as lyrics, or descriptions of cue points.
  726. The text in this event should be printable ASCII characters for maximum
  727. interchange.  However, other character codes using the high-order bit
  728. may be used for interchange of files between different programs on the
  729. same computer which supports an extended character set.  Programs on a
  730. computer which does not support non-ASCII characters should ignore those
  731. characters.
  732.  
  733. (New for 0.06 ).  Meta event types 01 through 0F are reserved for
  734. various types of text events, each of which meets the specification of
  735. text events(above) but is used for a different purpose:
  736.  
  737. FF 02 len text  Copyright Notice
  738. Contains a copyright notice as printable ASCII text.  The notice should
  739. contain the characters (C), the year of the copyright, and the owner of
  740. the copyright.  If several pieces of music are in the same MIDI file,
  741. all of the copyright notices should be placed together in this event so
  742. that it will be at the beginning of the file.  This event should be the
  743. first event in the first track chunk, at time 0.
  744.  
  745.  
  746. FF 03 len text  Sequence/Track Name
  747. If in a format 0 track, or the first track in a format 1 file, the name
  748. of the sequence.  Otherwise, the name of the track.
  749.  
  750. FF 04 len text  Instrument Name
  751. A description of the type of instrumentation to be used in that track.
  752. May be used with the MIDI Prefix meta-event to specify which MIDI
  753. channel the description applies to, or the channel may be specified as
  754. text in the event itself.
  755.  
  756. FF 05 len text  Lyric
  757. A lyric to be sung.  Generally, each syllable will be a separate lyric
  758. event which begins at the event's time.
  759.  
  760. FF 06 len text  Marker
  761. Normally in a format 0 track, or the first track in a format 1 file.
  762. The name of that point in the sequence, such as a rehearsal letter or
  763. section name ("First Verse", etc.).
  764.  
  765.  
  766. FF 07 len text  Cue Point
  767. A description of something happening on a film or video screen or stage
  768. at that point in the musical score ("Car crashes into house", "curtain
  769. opens", "she slaps his face", etc.)
  770.  
  771. FF 2F 00        End of Track
  772. This event is not optional.  It is included so that an exact ending
  773. point may be specified for the track, so that it has an exact length,
  774. which is necessary for tracks which are looped or concatenated.
  775.  
  776. FF 51 03 tttttt         Set Tempo, in microseconds per MIDI quarter-note
  777. This event indicates a tempo change.  Another way of putting
  778. "microseconds per quarter-note" is "24ths of a microsecond per MIDI
  779. clock".  Representing tempos as time per beat instead of beat per time
  780. allows absolutely exact long-term synchronization with a time-based sync
  781. protocol such as SMPTE time code or MIDI time code.  This amount of
  782. accuracy provided by this tempo resolution allows a four-minute piece at
  783. 120 beats per minute to be accurate within 500 usec at the end of the
  784. piece.  Ideally, these events should only occur where MIDI clocks would
  785. be located Q this convention is intended to guarantee, or at least
  786. increase the likelihood, of compatibility with other synchronization
  787. devices so that a time signature/tempo map stored in this format may
  788. easily be transferred to another device.
  789.  
  790. FF 54 05 hr mn se fr ff SMPTE Offset  (New in 0.06 - SMPTE Format
  791. specification)
  792. This event, if present, designates the SMPTE time at which the track
  793. chunk is supposed to start.  It should be present at the beginning of
  794. the track, that is, before any nonzero delta-times, and before any
  795. transmittable MIDI events.  The hour must be encoded with the SMPTE
  796. format, just as it is in MIDI Time Code.  In a format 1 file, the SMPTE
  797. Offset must be stored with the tempo map, and has no meaning in any of
  798. the other tracks.  The ff field contains fractional frames, in 100ths of
  799. a frame, even in SMPTE-based tracks which specify a different frame
  800. subdivision for delta-times.
  801.  
  802. FF 58 04 nn dd cc bb    Time Signature
  803. The time signature is expressed as four numbers.  nn and dd represent
  804. the numerator and denominator of the time signature as it would be
  805. notated.  The denominator is a negative power of two:  2 represents a
  806. quarter-note, 3 represents an eighth-note, etc.  The cc parameter
  807. expresses the number of MIDI clocks in a metronome click.  The bb
  808. parameter expresses the number of notated 32nd-notes in a MIDI quarter-
  809. note (24 MIDI Clocks).  This was added because there are already
  810. multiple programs which allow the user to specify that what MIDI thinks
  811. of as a quarter-note (24 clocks) is to be notated as, or related to in
  812. terms of, something else.
  813.  
  814. Therefore, the complete event for 6/8 time, where the metronome clicks
  815. every three eighth-notes, but there are 24 clocks per quarter-note, 72
  816. to the bar, would be (in hex):
  817.  
  818.         FF 58 04 06 03 24 08
  819.  
  820. That is, 6/8 time (8 is 2 to the 3rd power, so this is 06 03), 32 MIDI
  821. clocks per dotted-quarter (24 hex!), and eight notated 32nd-notes per
  822. MIDI quarter note.
  823.  
  824. FF 59 02 sf mi  Key Signature
  825.         sf = -7:  7 flats
  826.         sf = -1:  1 flat
  827.         sf = 0:  key of C
  828.         sf = 1:  1 sharp
  829.         sf = 7: 7 sharps
  830.  
  831.         mi = 0:  major key
  832.         mi = 1:  minor key
  833.  
  834. FF 7F len data  Sequencer-Specific Meta-Event
  835.  
  836.         Special requirements for particular sequencers may use this
  837. event type:  the first byte or bytes of data is a manufacturer ID.
  838. However, as this is an interchange format, growth of the spec proper is
  839. preferred to use of this event type.  This type of event may be used by
  840. a sequencer which elects to use this as its only file format;
  841. sequencers with their established feature-specific formats should
  842. probably stick to the standard features when using this format.
  843.  
  844. 4   Program Fragments and Example MIDI Files
  845.  
  846. Here are some of the routines to read and write variable-length numbers
  847. in MIDI Files.  These routines are in C, and use getc and putc, which
  848. read and write single 8-bit characters from/to the files infile and
  849. outfile.
  850.  
  851. WriteVarLen (value)
  852. register long value;
  853. {
  854.         register long buffer;
  855.  
  856.         buffer = value & 0x7f;
  857.         while ((value >>= 7) > 0)
  858.         {
  859.                 buffer <<= 8;
  860.                 buffer |= 0x80;
  861.                 buffer += (value & 0x7f);
  862.         }
  863.  
  864.         while (TRUE)
  865.         {
  866.                 putc(buffer,outfile);
  867.                 if (buffer & 0x80)
  868.                         buffer >>= 8;
  869.                 else
  870.                         break;
  871.         }
  872. }
  873.  
  874. doubleword ReadVarLen ()
  875. {
  876.         register doubleword value;
  877.         register byte c;
  878.  
  879.         if ((value = getc(infile)) & 0x80)
  880.         {
  881.                 value &= 0x7f;
  882.                 do
  883.                 {
  884.                         value = (value << 7) + ((c = getc(infile)) & 0x7f);
  885.                 } while (c & 0x80);
  886.         }
  887.         return (value);
  888. }
  889.  
  890. As an example, MIDI Files for the following excerpt are shown below.
  891. First, a format 0 file is shown, with all information intermingled;
  892. then, a format 1 file is shown with all data separated into four tracks:
  893. one for tempo and time signature, and three for the notes.  A resolution
  894. of 96 "ticks" per quarter note is used.  A time signature of 4/4 and a
  895. tempo of 120, though implied, are explicitly stated.
  896.  
  897.  
  898. The contents of the MIDI stream represented by this example are broken
  899. down here:
  900.  
  901. Delta Time(decimal)  Event Code (hex)   Other Bytes (decimal)
  902.         Comment
  903.         0       FF 58   04 04 02 24 08  4 bytes: 4/4 time, 24 MIDI
  904. clocks/click,
  905.                                 8 32nd notes/24 MIDI clocks
  906.         0       FF 51   03 500000       3 bytes: 500,000 5sec per quarter-note
  907.         0       C0      5       Ch. 1, Program Change 5
  908.         0       C0      5       Ch. 1, Program Change 5
  909.         0       C1      46      Ch. 2, Program Change 46
  910.         0       C2      70      Ch. 3, Program Change 70
  911.         0       92      48  96  Ch. 3 Note On C2, forte
  912.         0       92      60  96  Ch. 3 Note On C3, forte
  913.         96      91      67  64  Ch. 2 Note On G3, mezzo-forte
  914.         96      90      76  32  Ch. 1 Note On E4, piano
  915.         192     82      48  64  Ch. 3 Note Off C2, standard
  916.         0       82      60  64  Ch. 3 Note Off C3, standard
  917.         0       81      67  64  Ch. 2 Note Off G3, standard
  918.         0       80      76  64  Ch. 1 Note Off E4, standard
  919.         0       FF 2F   00      Track End
  920.  
  921. The entire format 0 MIDI file contents in hex follow.  First, the header
  922. chunk:
  923.  
  924.                 4D 54 68 64     MThd
  925.                 00 00 00 06     chunk length
  926.                 00 00   format 0
  927.                 00 01   one track
  928.                 00 60   96 per quarter-note
  929.  
  930. Then, the track chunk.  Its header, followed by the events (notice that
  931. running status is used in places):
  932.  
  933.                 4D 54 72 6B     MTrk
  934.                 00 00 00 3B     chunk length (59)
  935.  
  936.         Delta-time      Event   Comments
  937.         00      FF 58 04 04 02 18 08    time signature
  938.         00      FF 51 03 07 A1 20       tempo
  939.         00      C0 05
  940.         00      C1 2E
  941.         00      C2 46
  942.         00      92 30 60
  943.         00      3C 60   running status
  944.         60      91 43 40
  945.         60      90 4C 20
  946.         81 40   82 30 40        two-byte delta-time
  947.         00      3C 40   running status
  948.         00      81 43 40
  949.         00      80 4C 40
  950.         00      FF 2F 00        end of track
  951.  
  952. A format 1 representation of the file is slightly different.  Its header
  953. chunk:
  954.  
  955.                 4D 54 68 64     MThd
  956.                 00 00 00 06     chunk length
  957.                 00 01   format 1
  958.                 00 04   four tracks
  959.                 00 60   96 per quarter-note
  960.  
  961. First, the track chunk for the time signature/tempo track.  Its header,
  962. followed by the events:
  963.  
  964.                 4D 54 72 6B     MTrk
  965.                 00 00 00 14     chunk length (20)
  966.  
  967.         Delta-time      Event   Comments
  968.         00      FF 58 04 04 02 18 08    time signature
  969.         00      FF 51 03 07 A1 20       tempo
  970.         83 00   FF 2F 00        end of track
  971.  
  972. Then, the track chunk for the first music track.  The MIDI convention
  973. for note on/off running status is used in this example:
  974.  
  975.                 4D 54 72 6B     MTrk
  976.                 00 00 00 10     chunk length (16)
  977.  
  978.         Delta-time      Event   Comments
  979.         00      C0 05
  980.         81 40   90 4C 20
  981.         81 40   4C 00   Running status: note on, vel = 0
  982.         00      FF 2F 00        end of track
  983.  
  984. Then, the track chunk for the second music track:
  985.  
  986.                 4D 54 72 6B     MTrk
  987.                 00 00 00 0F     chunk length (15)
  988.  
  989.         Delta-time      Event   Comments
  990.         00      C1 2E
  991.         60      91 43 40
  992.         82 20   43 00   running status
  993.         00      FF 2F 00        end of track
  994.  
  995. Then, the track chunk for the third music track:
  996.  
  997.                 4D 54 72 6B     MTrk
  998.                 00 00 00 15     chunk length (21)
  999.  
  1000.         Delta-time      Event   Comments
  1001.         00      C2 46
  1002.         00      92 30 60
  1003.         00      3C 60   running status
  1004.         83 00   30 00   two-byte delta-time, running status
  1005.         00      3C 00   running status
  1006.         00      FF 2F 00        end of track
  1007.  
  1008. 5   MIDI Transmission of MIDI Files
  1009.  
  1010. Since it is inconvenient to exchange disks between different computers,
  1011. and since many computers which will use this format will have a MIDI
  1012. interface anyway, MIDI seems like a perfect way to send these files from
  1013. one computer to another.  And, while we're going through all the trouble
  1014. to make a way of sending MIDI Files, it would be nice if they could send
  1015. any files (like sampled sound files, text files, etc.)
  1016.  
  1017. Goals
  1018. The transmission protocol for MIDI files should be reasonably efficient,
  1019. should support fast transmission for computers which are capable of it,
  1020. and slower transmission for less powerful ones.  It should not be
  1021. impossible to convert a MIDI File to or from an arbitrary internal
  1022. representation on the fly as it is transmitted, but, as long as it is
  1023. not too difficult, it is very desirable to use a generic method so that
  1024. any file type could be accommodated.
  1025.  
  1026. To make the protocol efficient, the MIDI transmission of these files
  1027. will take groups of seven 8-bit bytes and transmit them as eight 7-bit
  1028. MIDI data bytes.  This is certainly in the spirit of the rest of this
  1029. format (keep it small, because it's not that hard to do).  To
  1030. accommodate a wide range of transmission speeds, files will be
  1031. transmitted in packets with acknowledge -- this allows data to be stored
  1032. to disk as it is received.  If the sender does not receive a response
  1033. from a reader in a certain amount of time, it can assume an open-loop
  1034. situation, and then just continue.
  1035.  
  1036. The last edition of MIDI Files contained a specialized protocol for
  1037. sending just MIDI Files.  To meet a deadline, unfortunately I don't have
  1038. time right now to propose a new generalized protocol.  This will be done
  1039. within the next couple of months.  I would welcome any proposals anyone
  1040. else has, and would direct your attention to the proposal from Ralph
  1041. Muha of Kurzweil, available in a recent MMA bulletin, and also directly
  1042. from him.
  1043. --
  1044. Michael S. Czeiszperger         | "The only good composer is a dead composer"
  1045. Systems Analyst                 | Snail: 2015 Neil Avenue         (614)
  1046. The Ohio State University       |        Columbus, OH 43210          292-
  1047. ARPA:czei@accelerator.eng.ohio-state.edu  PAN:CZEI
  1048.  
  1049.  
  1050.  
  1051. *******************************************************************************
  1052.  
  1053.  
  1054. Frage: Welche Buecher und Unterlagen gibt es ueber Midi?
  1055.  
  1056. Antwort:
  1057.  
  1058. Steve De Furia & Joe Scacciaferro,   Anmerkung:"Dieses Buch ist scheinbar die
  1059. "MIDI Programmer's Handbook"                    Bibel fuer MIDI" 
  1060. M&T Books
  1061. ISBN 1-55851-068-0
  1062.  
  1063. P.Gorges und A.Merck
  1064. "Keyboards,MIDI,Homerecording"
  1065. Muenchen, 1989, GC Carstensen Verlag
  1066. ISBN 3-90802026-3-1
  1067.  
  1068. [1] Siegfried Just:  <MIDITALK - Standard  MIDI-Files>.   ST-Computer   12/90.
  1069.     Heim-Verlag, S. 144ff,
  1070.  
  1071. [2] Michael Cxelperger:  <Introducing Standard MIDI File>. Electronic Musican,
  1072.     April 1989, S. 50ff
  1073.  
  1074. [3] <Standard-MIDI-File in C / Babylon  entschlsselt>.   68000er   ST-magazin
  1075.     10/91 - 11/91. Markt & Technik.
  1076.  
  1077. [4] Kai Schwirzke:  <MIDI macht die Musik - Standard MIDI-File-Format>. c't -
  1078.      magazin fr computer technik 07/93, S.232ff Heise Verlag
  1079.  
  1080.  
  1081.  
  1082. This is a bibliography on synthesizers, midi, computer and electronic music
  1083. that I have collected from various sources. I have tried to bring some
  1084. structure into it, but not all books will fit into a single subject.
  1085. NOTE: I haven't read these books, and the comments are from other people.
  1086. On some of them I lost the original commentor's name. Sorry about that. If
  1087. you have additions or correction to this information, please mail me.  The
  1088. latest version of this file can be obtained by ftp from ftp.cs.ruu.nl
  1089. [131.211.80.17] in MIDI/DOC/bibliography or by mail from
  1090. mail-server@cs.ruu.nl (send a message with HELP in the body).
  1091.  
  1092. There is a more scientifically-oriented bibliography available in the
  1093. Computer Music Journal archives, on the ftp sites mitpress.mit.edu
  1094. /pub/Computer-Music-Journal/EdNotes or ccrma-ftp.stanford.edu
  1095. /pub/Publications/cmj/EdNotes. Some references in this file that belong in
  1096. that category will be removed in the future.
  1097.  
  1098. ------------------------------ MIDI ------------------------------
  1099.  
  1100. The most-up-to-date printed specs for General MIDI, MIDI, and the MIDI
  1101. file format can also be obtained for a few bucks from:
  1102.  
  1103.         International MIDI Association
  1104.         23634 Emelita Street
  1105.         Woodland Hills, California 91367  USA
  1106. ------------------------------------------------------------------------
  1107.     Title: Computer music in C / Phil Winsor & Gene DeLisa.
  1108. Publisher: Blue Ridge Summit, PA : TAB Books (Windcrest label), c1991.
  1109.  Subjects: Computer sound processing.
  1110.            Computer composition.
  1111.            C (Computer program language)
  1112.            Midi programming
  1113.      ISBN: 0-8306-3637-4 (p) : $22.95
  1114. It has a C source disk for the PC available for $25.
  1115. ------------------------------------------------------------------------
  1116.     Title: Mind over MIDI / edited by Dominic Milano ; by the editors
  1117.             of Keyboard magazine.
  1118. Publisher: Milwaukee, WI : H. Leonard Books, c1987.
  1119. Series Name: The Keyboard magazine basic library
  1120. Other Series Names: Keyboard synthesizer library.
  1121.  Subjects: MIDI (Standard)
  1122.            Computer sound processing.
  1123.      ISBN: 0-88188-551-7 (pbk.) : $12.95
  1124.  
  1125.   The book consists mostly of reprints of KEYBOARD magazine
  1126.   articles from the early-mid '80s plus several appendixes containing
  1127.   the MIDI 1.0 specification, a list of references, a glossary, etc.
  1128. ------------------------------------------------------------------------
  1129.     Title: MIDI- und sound-buch zum Atari ST. English
  1130.     Title: MIDI and sound book for the Atari ST / Bernd Enders and
  1131.             Wolfgang Klemme.
  1132. Publisher: Redwood City, Calif. : M & T Pub., c1989.
  1133.  Subjects: Computer music--Instruction and study.
  1134.            Computer sound processing.
  1135.            MIDI (Standard)
  1136.            Atari ST computers--Programming.
  1137.      ISBN: 1-55851-042-7 : $17.95
  1138. ------------------------------------------------------------------------
  1139.   Atari ST Introduction to MIDI Programming
  1140.   Len Dorfman and Dennis Young
  1141.   ISBN 0-916439-77-1
  1142.  
  1143.         Bantam Books,Inc.
  1144.         666 5th Avenue
  1145.         New York,New York
  1146.         10103
  1147. ------------------------------------------------------------------------
  1148.     Title: Music through MIDI : using MIDI to create your own
  1149.             electronic music system / Michael Boom.
  1150. Publisher: Redmond, Wash. : Microsoft Press, c1987.
  1151.  Subjects: MIDI (Standard)
  1152.  Subjects: Musical instruments, Electronic.
  1153.  Subjects: Electronic music--Instruction and study.
  1154.  Subjects: Computer sound processing.
  1155.      ISBN: 1-55615-026-1 (pbk.) : $19.95
  1156. ------------------------------------------------------------------------
  1157.     Title: The MIDI drummer : by a drummer for a drummer-- / by David
  1158.             Crigger.
  1159. Publisher: Newbury Park, CA : Alexander Pub., c1987.
  1160.  Subjects: Electronic percussion instruments--Instruction and study.
  1161.            MIDI (Standard)
  1162. ------------------------------------------------------------------------
  1163.     Title: MIDI for guitarists / by Bob Ward and Marty Cutler ;
  1164. Publisher: London ; New York : Amsco Publications ; New York, NY, USA
  1165.             : Exclusive distributors Music Sales Corp., c1988.
  1166.  Subjects: Electric guitar--Instruction and study.
  1167.            MIDI (Standard)
  1168.      ISBN: 0-8256-1126-1 (U.S.)
  1169. ------------------------------------------------------------------------
  1170.     Title: MIDI for musicians / by Craig Anderton.
  1171. Publisher: New York : Amsco Publications, c1986.
  1172.  Subjects: MIDI (Standard)
  1173.            Computer sound processing.
  1174.      ISBN: 0-8256-1050-8 (pbk.)
  1175.      ISBN: 0-8256-2214-X (pbk. : cover)
  1176. ------------------------------------------------------------------------
  1177.     Title: MIDI guitar : a complete applications directory for the
  1178.             modern guitarist / [by Rey Sanchez ; forward [sic] by
  1179.             Randy Bernsen].
  1180. Publisher: Miami, FL : CPP/Belwin, c1988.
  1181.  Subjects: MIDI (Standard)
  1182.            Computer sound processing.
  1183.            Electric guitar.
  1184.      ISBN: 0-89898-544-7 : $15.95
  1185. ------------------------------------------------------------------------
  1186.     Title: Midi guitar and synthesis : the basics of guitar synthesis
  1187.             / by Paul Youngblood.
  1188. Publisher: Milwaukee, WI : H. Leonard Pub. Co., c1989.
  1189.  Subjects: MIDI (Standard)
  1190.            Computer sound processing.
  1191.            Electric guitar.
  1192.      ISBN: 0-88188-886-9 : $14.95
  1193. ------------------------------------------------------------------------
  1194.     Title: The MIDI home studio / by Howard Massey.
  1195. Publisher: London ; New York : Amsco Publications ; New York, NY, USA
  1196.             : Music Sales Corp. [distributor], c1988.
  1197.      ISBN: 0-8256-1127-X (U.S.)
  1198. ------------------------------------------------------------------------
  1199.     Title: The MIDI manual / David Miles Huber.
  1200. Publisher: Carmel, Ind., USA : Howard W. Sams, c1991.
  1201.      ISBN: 0-672-22757-6, 250pp.
  1202. ------------------------------------------------------------------------
  1203.     Title: The MIDI programmer's handbook / Steve De Furia and Joe
  1204.             Scacciaferro, Ferro Technologies.
  1205. Publisher: Redwood City, Calif. : M&T Pub., c1989.
  1206.      ISBN: 1-55851-068-0, 250 pp.  Paperback. $24.95 Mix Bookshelf part # 3539C
  1207.  
  1208. *** This book is now out of print ***
  1209.  
  1210. New, advanced MIDI desk reference is perfect for programmers and MIDI power
  1211. users.  The heart of the book is a summary and explanation of every MIDI
  1212. command, in hex, binary, decimal and English.  Also features detailed
  1213. discussion of software design concerns, synchronization formats, MTC,
  1214. sample dump, MIDI files and system exclusive processing.
  1215.  
  1216. It discusses writing software to handle MIDI information at the application
  1217. level.  In other words, they assume you have already written or otherwise
  1218. obtained access to the necessary code to talk to your hardware to send and
  1219. receive the MIDI data.  This approach frees the entire discussion from
  1220. being tied to any particular hardware or programming approach.  Instead, it
  1221. spends its time on that which is valuable to the experienced programmer.
  1222. Issues such as MIDI file format, timing (SMPTE, MTC, etc), parsing MIDI
  1223. data and processing it, MIDI sample dump standard, etc. are all handled in
  1224. fine detail.
  1225. ------------------------------------------------------------------------
  1226. THE MIDI IMPLEMENTATION BOOK, Defuria & Scacciaferro
  1227. Contains complete documentation of MIDI commands implemented by more than
  1228. 200 instruments.  This data has come directly from hardware manufacturers
  1229. and allows you to find MIDI functions of specific instruments, compare
  1230. features of similar instruments and choose equipment to meet specific
  1231. applications.  A standard, one-page implementation chart is used for each
  1232. product.  ISBN ISBN 0-88188-558-4, 1986, 216 pp. $19.95
  1233.  
  1234. Mix Bookshelf, 1-800-233-9604 (US & Canada).  Doesn't say who publishes
  1235. it, and its terribly out-dated (1986), but they might have published
  1236. another addition by now.
  1237.  
  1238. The MIDI System Exclusive Book by Steve De Furia and Joe Scacciaferra,
  1239. Third Earth Productions, Pompton Lakesm N.J. Distributed by Hal
  1240. Leonard Books. ISBN ISBN 0-88188-586-x (1987)
  1241.  
  1242. The MIDI Resource Book.  Same guys. ISBN 0-88188-587-8
  1243. ------------------------------------------------------------------------
  1244.     Title: MIDI programming for the Macintosh / Steve De Furia and Joe
  1245.             Scacciaferro.
  1246. Publisher: Redwood City, CA : M&T Books, 1988.
  1247.  Subjects: MIDI (Standard)
  1248.            Computer sound processing.
  1249.            Macintosh (Computer)--Programming.
  1250.      ISBN: 1-55851-021-4 : $22.95
  1251.      ISBN: 1-55851-022-2 (book & disk) : $39.95
  1252.      ISBN: 1-55851-023-0 (disk) : $20.00
  1253. ------------------------------------------------------------------------
  1254.     Title: C Programming for MIDI / Jim Conger.
  1255. Publisher: Redwood City, Calif. : M&T Books, 1989.
  1256.                 501 Galveston Drive Redwood City, CA 94063
  1257.  Subjects: MIDI, C, sequencing
  1258. This book shows how to use the basic features of an MPU-401 interface.
  1259. Includes a disk with MS-DOS code.
  1260. ------------------------------------------------------------------------
  1261.     Title: MIDI sequencing in C / Jim Conger.
  1262. Publisher: Redwood City, Calif. : M&T Books, 1989.
  1263.                 501 Galveston Drive Redwood City, CA 94063
  1264.  Subjects: MIDI (Standard)
  1265.            C (Computer program language)
  1266.            Sequential processing (Computer science)
  1267.      ISBN: 1-55851-045-1 (book) : $24.95
  1268.      ISBN: 1-55851-047-8 (disk) : $20.00
  1269.      ISBN: 1-55851-046-X (set) : $39.95
  1270. This book continues where the provious one lefts off.
  1271. ------------------------------------------------------------------------
  1272.     Title: MIDI systems and control / Francis Rumsey.
  1273. Publisher: London ; Boston : Focal Press, 1990.
  1274.  Subjects: MIDI (Standard)
  1275.            Computer sound processing.
  1276.      ISBN: 0-240-51300-2 : $14.95 (U.S.)
  1277. ------------------------------------------------------------------------
  1278.     Title: MIDI, the ins, outs & thrus / by Jeff Rona ; edited by
  1279.             Ronny S. Schiff.
  1280. Publisher: Milwaukee, Wis. : H. Leonard Books, c1987.
  1281.     Notes: "A complete guide to the understanding, use, and buying of
  1282.             MIDI instruments"--Cover.
  1283.  Subjects: MIDI (Standard)
  1284.            Computer sound processing.
  1285.      ISBN: 0-88188-560-6 (pbk.) : $12.95
  1286. ------------------------------------------------------------------------
  1287.     Title: MIDI : a comprehensive introduction / Joseph Rothstein.
  1288. Publisher: Madison, Wis. : A-R Editions, c1992.
  1289.  Subjects: MIDI (Standard)
  1290.    Series: The Computer music and digital audio series ; v. 7
  1291.      ISBN: 0-89579-258-3 : $39.95
  1292. ------------------------------------------------------------------------
  1293.    Microsoft Press put out a book on midi programming.  I
  1294.    think that this is rather a weak book, but it might serve
  1295.    as an introduction for non-computer folk.
  1296. ------------------------------------------------------------------------
  1297.    Several other books are out that were written by musicians.
  1298.    They are interesting as a intro to using midi, but contain
  1299.    a dearth of info from my perspective.  As a programmer, I
  1300.    have the wrong perspective to sort these out.
  1301. ----------------------------------------------------------------------------
  1302.  
  1303. Die offiziziellen Spezifikationen zu MIDI gibt es mittlerweile
  1304. bei M3C Systemtechnik in Berlin (in Englisch). Die Dokumente sind vergleichbar
  1305. den DIN Blaettern zu den einzelnen DIN Vorschriften. Sehr technisch ohne
  1306. zusaetzliche Erlaeuterungen, englisch.
  1307.  
  1308. M3C Systemtechnik
  1309. GrossbeerenstraBe 51
  1310. 10965 Berlin
  1311.  
  1312.      MIDI 1.0 Spec+Addenda...79.- DM
  1313.          General MIDI Spec...25.- DM
  1314.    Standard MIDI File Spec...25.- DM
  1315.  MIDI Machine Control Spec...58.- DM
  1316.     MIDI Show Control Spec...25.- DM
  1317.  
  1318. Jeweils (etwa) DIN A4 , erster Titel geheftet, die anderen geklammert.
  1319.  
  1320. ----------------------------------------------------------------------------
  1321.  
  1322. Fast vergessen haette ich:
  1323.  
  1324. ONLINE HELP (fuer ATARI - PC - MAC)
  1325. MIDI Xplained
  1326. Sprache Englisch (Zetterquist Software)
  1327. Vertrieb Steinberg   DM 69,--
  1328.  
  1329. ----------------------------------------------------------------------------
  1330.  
  1331. WEITERE INFOS IN ANDEREN MAILBOXEN:
  1332.  
  1333. Wende Dich am besten an Alexander Weis(2:2464/112.108). Er hat eine
  1334. hervorragende MIDI-Dokumentation geschrieben (MIDITALK). Da steht alles drin,
  1335. was Du wissen musst!
  1336. .........................................
  1337.  
  1338.   In der Maus S3, 0711 2368367 (bitte nicht von 21:10-21:35 Uhr, Netz) unter 
  1339.   dem Namen MIDILIT.LZH, da sind neben Buechern ueber MIDI dann auch noch
  1340.   Quellen zu Synthesizer-Grundlagen und Computer-Musik allgemein dabei.
  1341.  
  1342.   Oder fuer die FTPler: ftp.cs.ruu.nl /pub/MIDI/DOC/bibliography
  1343.  
  1344.  
  1345. *******************************************************************************
  1346.  
  1347.  
  1348. Frage: Welche Funktion, Wert und Namen haben die MIDI-Controller ?
  1349.  
  1350. Antwort:
  1351.  
  1352. Hier die neueste Liste aus dem TSBB #18 vom Juli 92:
  1353.  
  1354. Defined Continuous Controllers:
  1355.  
  1356. 14-Bit Controllers (MSB/LSB):
  1357. dec     hex     Function:
  1358. 00/32   00/20   Bank Select
  1359. 01/33   01/21   Modulation
  1360. 02/34   02/22   Breath
  1361. 03/35   03/23   (undefined) (formerly Aftertouch)
  1362. 04/36   04/24   Foot Pedal
  1363. 05/37   05/25   Portamento Time
  1364. 06/38   06/26   Data Entry
  1365. 07/39   07/27   Main Volume
  1366. 08/40   08/28   Balance
  1367. 09/41   09/29   (undefined)
  1368. 10/42   0A/2A   Pan
  1369. 11/43   0B/2B   Expression
  1370. 12/44   0C/2C   Effect Control 1
  1371. 13/45   0D/2D   Effect Control 2
  1372. 14/46   0E/2E   (undefined)
  1373. 15/47   0F/2F   (undefined)
  1374. 16/48   10/30   General Purpose #1 (formerly Joystick X Axis)
  1375. 17/49   11/31   General Purpose #2 (formerly Joystick Y Axis)
  1376. 18/50   12/32   General Purpose #3
  1377. 19/51   13/33   General Purpose #4
  1378. 20/52   14/34   (undefined)
  1379. 21/53   15/35   (undefined)
  1380. 22/54   16/36   (undefined)
  1381. 23/55   17/37   (undefined)
  1382. 24/56   18/38   (undefined)
  1383. 25/57   19/39   (undefined)
  1384. 26/58   1A/3A   (undefined)
  1385. 27/59   1B/3B   (undefined)
  1386. 28/60   1C/3C   (undefined)
  1387. 29/61   1D/3D   (undefined)
  1388. 30/62   1E/3E   (undefined)
  1389. 31/63   1F/3F   (undefined) (formerly Damp, Pitch Bend Sensitivity)
  1390.  
  1391. 7-Bit Controllers (formerly switches):
  1392. dec hex Function:
  1393. 64  40  Damper/Sustain/Hold #1
  1394. 65  41  Portamento On/Off
  1395. 66  42  Sustenuto
  1396. 67  43  Soft Pedal
  1397. 68  44  Legato Footswitch
  1398. 69  45  Hold #2
  1399. 70  46  Sound Controller #1 (default: Sound Variation) (formerly Velocity
  1400.                              Replace)
  1401. 71  47  Sound Controller #2 (default: Timbre/Harmonic Intensity)
  1402. 72  48  Sound Controller #3 (default: Release Time)
  1403. 73  49  Sound Controller #4 (default: Attack Time)
  1404. 74  4A  Sound Controller #5 (default: Brightness)
  1405. 75  4B  Sound Controller #6 (default: undefined)
  1406. 76  4C  Sound Controller #7 (default: undefined)
  1407. 77  4D  Sound Controller #8 (default: undefined)
  1408. 78  4E  Sound Controller #9 (default: undefined)
  1409. 79  4F  Sound Controller #10 (default: undefined)
  1410. 80  50  General Purpose #5
  1411. 81  51  General Purpose #6
  1412. 82  52  General Purpose #7
  1413. 83  53  General Purpose #8
  1414. 84  54  Portamento Control
  1415. 85  55  (undefined)
  1416. 86  56  (undefined)
  1417. 87  57  (undefined)
  1418. 88  58  (undefined)
  1419. 89  59  (undefined)
  1420. 90  5A  (undefined)
  1421. 91  5B  Effect 1 Depth (formerly External Effects Depth)
  1422. 92  5C  Effect 2 Depth (formerly Tremolo Depth)
  1423. 93  5D  Effect 3 Depth (formerly Chorus Depth)
  1424. 94  5E  Effect 4 Depth (formerly Celeste Depth)
  1425. 95  5F  Effect 5 Depth (formerly Phaser Depth)
  1426. 96  60  Data Increment
  1427. 97  61  Data Decrement
  1428. 98  62  Non-Registered Parameter LSB
  1429. 99  63  Non-Registered Parameter MSB
  1430. 100 64  Registered Parameter LSB
  1431. 101 65  Registered Parameter MSB
  1432. 102 66  *Mono Pitch (proposed; pending MMA & JMSC)
  1433. 103 67  (undefined)
  1434. 104 68  (undefined)
  1435. 105 69  (undefined)
  1436. 106 6A  (undefined)
  1437. 107 6B  (undefined)
  1438. 108 6C  (undefined)
  1439. 109 6D  (undefined)
  1440. 110 6E  (undefined)
  1441. 111 6F  (undefined)
  1442. 112 70  (undefined)
  1443. 113 71  (undefined)
  1444. 114 72  (undefined)
  1445. 115 73  (undefined)
  1446. 116 74  (undefined)
  1447. 117 75  (undefined)
  1448. 118 76  (undefined)
  1449.  
  1450. Channel Mode Messages:
  1451. dec hex Function:
  1452. 119 77  *Mute Channel (proposed; pending JMSC)
  1453. 120 78  All Sound Off
  1454. 121 79  Reset All Controllers
  1455. 122 7A  Local Control On/Off
  1456. 123 7B  All Notes Off
  1457. 124 7C  Omni Mode Off
  1458. 125 7D  Omni Mode On
  1459. 126 7E  Mono Mode Off
  1460. 127 7F  Mono Mode On
  1461.  
  1462. Registered Parameters (MSB/LSB):
  1463. dec hex Function:
  1464. 00/00   00/00   Pitch bend Sensitivity
  1465. 00/01   00/01   Fine Tuning
  1466. 00/02   00/02   Coarse Tuning
  1467. 00/03   00/03   Tuning Program Select
  1468. 00/04   00/04   Tuning Bank Select
  1469. 127/127 7F/7F   *Null Controller (proposed; pending MMA)
  1470. ------------------------------------------------------------------------------
  1471.  
  1472.  
  1473. Oder in anderer Form (schon etwas aelter... muss also nicht mehr stimmen):
  1474.      
  1475.      Table 3: Status Bytes 176-191; Control and Mode Changes (per channel)
  1476.   (adapted from "MIDI by the Numbers" by D. Valenti-Electronic Musician 2/88)
  1477. ------------------------------------------------------------------------------
  1478.     2nd Byte Value |              Function                  |  3rd Byte
  1479.   Binary  |Hex|Dec |                                        | Value  |  Use
  1480.  - - - - -|- -|- - | - - - - - - - - - - - - - - - - - - - -|- - - - | - - - -
  1481.  00000000= 00=   0 | Continuous controller #0               | 0-127  |  MSB
  1482.  00000001= 01=   1 | Modulation wheel                       | 0-127  |  MSB
  1483.  00000010= 02=   2 | Breath control                         | 0-127  |  MSB
  1484.  00000011= 03=   3 | Continuous controller #3               | 0-127  |  MSB
  1485.  00000100= 04=   4 | Foot controller                        | 0-127  |  MSB
  1486.  00000101= 05=   5 | Portamento time                        | 0-127  |  MSB
  1487.  00000110= 06=   6 | Data Entry                             | 0-127  |  MSB
  1488.  00000111= 07=   7 | Main Volume                            | 0-127  |  MSB
  1489.  00001000= 08=   8 | Continuous controller #8               | 0-127  |  MSB
  1490.  00001001= 09=   9 | Continuous controller #9               | 0-127  |  MSB
  1491.  00001010= 0A=  10 | Continuous controller #10              | 0-127  |  MSB
  1492.  00001011= 0B=  11 | Continuous controller #11              | 0-127  |  MSB
  1493.  00001100= 0C=  12 | Continuous controller #12              | 0-127  |  MSB
  1494.  00001101= 0D=  13 | Continuous controller #13              | 0-127  |  MSB
  1495.  00001110= 0E=  14 | Continuous controller #14              | 0-127  |  MSB
  1496.  00001111= 0F=  15 | Continuous controller #15              | 0-127  |  MSB
  1497.  00010000= 10=  16 | Continuous controller #16              | 0-127  |  MSB
  1498.  00010001= 11=  17 | Continuous controller #17              | 0-127  |  MSB
  1499.  00010010= 12=  18 | Continuous controller #18              | 0-127  |  MSB
  1500.  00010011= 13=  19 | Continuous controller #19              | 0-127  |  MSB
  1501.  00010100= 14=  20 | Continuous controller #20              | 0-127  |  MSB
  1502.  00010101= 15=  21 | Continuous controller #21              | 0-127  |  MSB
  1503.  00010110= 16=  22 | Continuous controller #22              | 0-127  |  MSB
  1504.  00010111= 17=  23 | Continuous controller #23              | 0-127  |  MSB
  1505.  00011000= 18=  24 | Continuous controller #24              | 0-127  |  MSB
  1506.  00011001= 19=  25 | Continuous controller #25              | 0-127  |  MSB
  1507.  00011010= 1A=  26 | Continuous controller #26              | 0-127  |  MSB
  1508.  00011011= 1B=  27 | Continuous controller #27              | 0-127  |  MSB
  1509.  00011100= 1C=  28 | Continuous controller #28              | 0-127  |  MSB
  1510.  00011101= 1D=  29 | Continuous controller #29              | 0-127  |  MSB
  1511.  00011110= 1E=  30 | Continuous controller #30              | 0-127  |  MSB
  1512.  00011111= 1F=  31 | Continuous controller #31              | 0-127  |  MSB
  1513.  00100000= 20=  32 | Continuous controller #0               | 0-127  |  LSB
  1514.  00100001= 21=  33 | Modulation wheel                       | 0-127  |  LSB
  1515.  00100010= 22=  34 | Breath control                         | 0-127  |  LSB
  1516.  00100011= 23=  35 | Continuous controller #3               | 0-127  |  LSB
  1517.  00100100= 24=  36 | Foot controller                        | 0-127  |  LSB
  1518.  00100101= 25=  37 | Portamento time                        | 0-127  |  LSB
  1519.  00100110= 26=  38 | Data entry                             | 0-127  |  LSB
  1520.  00100111= 27=  39 | Main volume                            | 0-127  |  LSB
  1521.  00101000= 28=  40 | Continuous controller #8               | 0-127  |  LSB
  1522.  00101001= 29=  41 | Continuous controller #9               | 0-127  |  LSB
  1523.  00101010= 2A=  42 | Continuous controller #10              | 0-127  |  LSB
  1524.  00101011= 2B=  43 | Continuous controller #11              | 0-127  |  LSB
  1525.  00101100= 2C=  44 | Continuous controller #12              | 0-127  |  LSB
  1526.  00101101= 2D=  45 | Continuous controller #13              | 0-127  |  LSB
  1527.  00101110= 2E=  46 | Continuous controller #14              | 0-127  |  LSB
  1528.  00101111= 2F=  47 | Continuous controller #15              | 0-127  |  LSB
  1529.  00110000= 30=  48 | Continuous controller #16              | 0-127  |  LSB
  1530.  00110001= 31=  49 | Continuous controller #17              | 0-127  |  LSB
  1531.  00110010= 32=  50 | Continuous controller #18              | 0-127  |  LSB
  1532.  00110011= 33=  51 | Continuous controller #19              | 0-127  |  LSB
  1533.  00110100= 34=  52 | Continuous controller #20              | 0-127  |  LSB
  1534.  00110101= 35=  53 | Continuous controller #21              | 0-127  |  LSB
  1535.  00110110= 36=  54 | Continuous controller #22              | 0-127  |  LSB
  1536.  00110111= 37=  55 | Continuous controller #23              | 0-127  |  LSB
  1537.  00111000= 38=  56 | Continuous controller #24              | 0-127  |  LSB
  1538.  00111001= 39=  57 | Continuous controller #25              | 0-127  |  LSB
  1539.  00111010= 3A=  58 | Continuous controller #26              | 0-127  |  LSB
  1540.  00111011= 3B=  59 | Continuous controller #27              | 0-127  |  LSB
  1541.  00111100= 3C=  60 | Continuous controller #28              | 0-127  |  LSB
  1542.  00111101= 3D=  61 | Continuous controller #29              | 0-127  |  LSB
  1543.  00111110= 3E=  62 | Continuous controller #30              | 0-127  |  LSB
  1544.  00111111= 3F=  63 | Continuous controller #31              | 0-127  |  LSB
  1545.  01000000= 40=  64 | Damper pedal on/off (Sustain)          | 0=off  | 127=on
  1546.  01000001= 41=  65 | Portamento on/off                      | 0=off  | 127=on
  1547.  01000010= 42=  66 | Sustenuto on/off                       | 0=off  | 127=on
  1548.  01000011= 43=  67 | Soft pedal on/off                      | 0=off  | 127=on
  1549.  01000100= 44=  68 | Undefined on/off                       | 0=off  | 127=on
  1550.  01000101= 45=  69 | Undefined on/off                       | 0=off  | 127=on
  1551.  01000110= 46=  70 | Undefined on/off                       | 0=off  | 127=on
  1552.  01000111= 47=  71 | Undefined on/off                       | 0=off  | 127=on
  1553.  01001000= 48=  72 | Undefined on/off                       | 0=off  | 127=on
  1554.  01001001= 49=  73 | Undefined on/off                       | 0=off  | 127=on
  1555.  01001010= 4A=  74 | Undefined on/off                       | 0=off  | 127=on
  1556.  01001011= 4B=  75 | Undefined on/off                       | 0=off  | 127=on
  1557.  01001100= 4C=  76 | Undefined on/off                       | 0=off  | 127=on
  1558.  01001101= 4D=  77 | Undefined on/off                       | 0=off  | 127=on
  1559.  01001110= 4E=  78 | Undefined on/off                       | 0=off  | 127=on
  1560.  01001111= 4F=  79 | Undefined on/off                       | 0=off  | 127=on
  1561.  01010000= 50=  80 | Undefined on/off                       | 0=off  | 127=on
  1562.  01010001= 51=  81 | Undefined on/off                       | 0=off  | 127=on
  1563.  01010010= 52=  82 | Undefined on/off                       | 0=off  | 127=on
  1564.  01010011= 53=  83 | Undefined on/off                       | 0=off  | 127=on
  1565.  01010100= 54=  84 | Undefined on/off                       | 0=off  | 127=on
  1566.  01010101= 55=  85 | Undefined on/off                       | 0=off  | 127=on
  1567.  01010110= 56=  86 | Undefined on/off                       | 0=off  | 127=on
  1568.  01010111= 57=  87 | Undefined on/off                       | 0=off  | 127=on
  1569.  01011000= 58=  88 | Undefined on/off                       | 0=off  | 127=on
  1570.  01011001= 59=  89 | Undefined on/off                       | 0=off  | 127=on
  1571.  01011010= 5A=  90 | Undefined on/off                       | 0=off  | 127=on
  1572.  01011011= 5B=  91 | Undefined on/off                       | 0=off  | 127=on
  1573.  01011100= 5C=  92 | Undefined on/off                       | 0=off  | 127=on
  1574.  01011101= 5D=  93 | Undefined on/off                       | 0=off  | 127=on
  1575.  01011110= 5E=  94 | Undefined on/off                       | 0=off  | 127=on
  1576.  01011111= 5F=  95 | Undefined on/off                       | 0=off  | 127=on
  1577.                                                              -----------------
  1578.  01100000= 60=  96 | Data entry +1                          |       127
  1579.  01100001= 61=  97 | Data entry -1                          |       127
  1580.  01100010= 62=  98 | Undefined                              |        ?
  1581.  01100011= 63=  99 | Undefined                              |        ?
  1582.  01100100= 64= 100 | Undefined                              |        ?
  1583.  01100101= 65= 101 | Undefined                              |        ?
  1584.  01100110= 66= 102 | Undefined                              |        ?
  1585.  01100111= 67= 103 | Undefined                              |        ?
  1586.  01100111= 67= 103 | Undefined                              |        ?
  1587.  01100111= 67= 103 | Undefined                              |        ?
  1588.  01100111= 67= 103 | Undefined                              |        ?
  1589.  01100111= 67= 103 | Undefined                              |        ?
  1590.  01101000= 68= 104 | Undefined                              |        ?
  1591.  01101001= 69= 105 | Undefined                              |        ?
  1592.  01101010= 6A= 106 | Undefined                              |        ?
  1593.  01101011= 6B= 107 | Undefined                              |        ?
  1594.  01101100= 6C= 108 | Undefined                              |        ?
  1595.  01101101= 6D= 109 | Undefined                              |        ?
  1596.  01101110= 6E= 110 | Undefined                              |        ?
  1597.  01101111= 6F= 111 | Undefined                              |        ?
  1598.  01110000= 70= 112 | Undefined                              |        ?
  1599.  01110001= 71= 113 | Undefined                              |        ?
  1600.  01110010= 72= 114 | Undefined                              |        ?
  1601.  01110011= 73= 115 | Undefined                              |        ?
  1602.  01110100= 74= 116 | Undefined                              |        ?
  1603.  01110101= 75= 117 | Undefined                              |        ?
  1604.  01110110= 76= 118 | Undefined                              |        ?
  1605.  01110111= 77= 119 | Undefined                              |        ?
  1606.  01111000= 78= 120 | Undefined                              |        ?
  1607.  01111001= 79= 121 | Undefined                              |        ?
  1608.  01111010= 7A= 122 | Local control on/off                   | 0=off    127=on
  1609.  01111011= 7B= 123 | All notes off (!!)                     |        0
  1610.  01111100= 7C= 124 | Omni mode off (includes all notes off) |        0
  1611.  01111101= 7D= 125 | Omni mode on (includes all notes off)  |        0
  1612.  01111110= 7E= 126 | Poly mode on/off(includes all notes off)|       **
  1613.  01111111= 7F= 127 | Poly mode on(incl mono=off&all notes off)|      0
  1614.  
  1615.  **Note: This equals the number of channels, or zero if the number of channels
  1616.          equals the number of voices in the receiver.
  1617.  
  1618.  
  1619. *******************************************************************************
  1620.  
  1621.  
  1622. Frage: Wie ist die Beschaltung eines MIDI-Kabels fuer SoundBlaster/GUS ?
  1623.  
  1624. Antwort:
  1625. Vorschlag 1:        
  1626.              ╔══════════════════════════════════════════╗
  1627.              ║  Soundblaster - Card - Midi - Interface  ║
  1628.              ╚══════════════════════════════════════════╝
  1629.  
  1630.            ┌──────────────────────────────────────────┐
  1631.            │ + 5 Volt    ┌──────────────┐             │   _____
  1632.            │    O        │   ┌────────┐ │             ├──|_____|────O + 5 Volt
  1633.            │    │   ┌────│───│────┐   │ │             │    R5
  1634.            │    │  ┌┴─┐  │  ┌┴─┐  │   │ │             │  ┌───────┐
  1635.            │ ┌──┼──┼──┼──┼──┼──┼──┼─┐ │ │       ┌──┼──┼──┼──┐    │
  1636.            │ │ 14 13 12 11 10 09 08 │ │ │       │  6  5  4  │    ┴
  1637.            │ ├o      IC 1           │ │ │       │   OC 1    │   Gnd
  1638.            │ │ 01 02 03 04 05 06 07 │ │ │       │  1  2  3  │
  1639.            │ └──┼──┼──┼──┼──┼──┼──┼─┘ │ │       └──┼──┼──┼──┘
  1640.            └────┴──┘  └──┴──┘  │  ┴   │ │          │  │
  1641. RXD  15 o──────────────────────┘ Gnd  │ │          │  │
  1642.      14 o   ┌─────────────────────────┘ │          │  └───┐
  1643.      13 o   │                + 5 Volt   │          │      │
  1644. TXD  12 o───┘                    O      │          ├──|<──┤
  1645.      11 o   ┌────────────────────┤      │          │  D1  │
  1646.      10 o   │                   | |    | |        | |    | |
  1647. +5V   9 o───┤                 R4| |  R3| |      R1| |  R2| |
  1648.       8 o   │   ┌──┬──────┐     |_|    |_|        |_|    |_|
  1649.       7 o   │   │  ┴      │      │      │          │      │
  1650.       6 o   │   │ Gnd     O      O      O          O      O
  1651. Gnd   5 o─┬─│───┘        (2)    (4)    (5)        (4)    (5)
  1652.       4 o─┘ │                 Midi OUT             Midi IN
  1653.       3 o   │
  1654.       2 o   │
  1655.       1 o───┘
  1656.   Game-Port
  1657.  
  1658. Stueckliste:
  1659. ───────────
  1660.  
  1661.               R1 - R4 = 220 Ohm
  1662.               R5      = 4.7 kOhm
  1663.               D1      = 1 N 4148
  1664.               IC1     = 74LS00
  1665.               OC1     = CNY 17
  1666.  
  1667. Mehr ist nicht zum Bau der Midi - Schnittstelle fuer
  1668. die Soundblaster-Card noetig.
  1669. Natuerlich fehlen in der Stueckliste jetzt noch die diversen Stecker und
  1670. Sockel.
  1671. Diese Schnittstelle laeuft seit geraumer Zeit bei Guido Schulze (2:245/32.2)
  1672. und bei mir ohne Probleme. Die Stromversorgung fuer diese Schnittstelle
  1673. kann man getrost vom Game-Port der SB-Card abnehmen.
  1674. Diese Schaltung ist nach der Vorlage des Buches 'Midi auf dem PC XT/AT'
  1675. aus dem Markt & Technik - Verlag entwickelt worden.
  1676.  
  1677. Insgesamt kosten die Bauteile ca. 10 DM
  1678.  
  1679.            Viel Spass beim Basteln ....
  1680.  
  1681.                                 Ruediger Fuchs (2:245/32.0)
  1682.  
  1683. --------------------------------------------------------------------------
  1684. Vorschlag 2:
  1685.  
  1686. Die folgende Schaltung funktioniert fuer meine Gravis Ultrasound.
  1687. Ich ueber nehme keine Garantie, wenn nach dem Anschluss
  1688. an deine Soundkarte sich bei dir die Festplatte verbiegt,
  1689. deine Freunding schwanger wird oder sonst was passiert...
  1690.  
  1691.  
  1692. 15 pin D connector
  1693.                                           220R
  1694. pin-1 +5v ----+--------------------------/\/\/\---------------\
  1695.               |                                                \ 4
  1696.               |                                          Gnd--2      MIDI OUT
  1697.               |      |\      |\            220R                / 5
  1698. pin-12 tr >---|------| o-----| o----------/\/\/\--------------/
  1699.               |    14|/ 13 12|/ 10
  1700.               |                            220R
  1701.               +---------------------------/\/\/\-------------\
  1702.               |                                               \ 4
  1703. pin-15 rx <---|--------------------+                    Gnd--2      MIDI THRU
  1704.               |      |\      |\    |        220R              / 5
  1705.               |   +--| o-----| o---+-------/\/\/\------------/
  1706.               |   | 1|/ 2   3|/ 4
  1707.               |   |
  1708.               |   +------+
  1709.               |   270R*  |                       220R
  1710.               +--/\/\/\--+    +------+----------/\/\/\--------\
  1711.               |B         |C   |A     |                         \  4
  1712.             +-|----------|----|-+    |                                MIDI IN
  1713.             |  8        6     2 |  -----                       /  5
  1714.             |                   |   / \ IN914 or IN4148     +-/
  1715.             |      6N138**      |   ---                     |
  1716.             |                   |    |                      |
  1717.             |           5     3 |    |                      |
  1718.             +------------|----|-+    |                      |
  1719.                          |    |K     |                      |
  1720. pin-5 Gnd  --------------+    +------+----------------------+
  1721.  
  1722.  
  1723. Inverters are LS7404
  1724. Leave pin 2 of the MIDI IN unconnected (Don't connect to ground)
  1725.  
  1726. * this resistor was 5.6K in the original post, I used a the 6N138 optoisolator
  1727.   and found that this value was too high as not enough current was allowed
  1728.   to sink into the collector of the output transistor.
  1729.  
  1730. **In the original post this was 6N135, I could not readily find this here
  1731.   (Australia) so I used 6N138 which I think is funcionally the same,
  1732.   one of the catalogues stated that this is a "high speed MIDI standard"
  1733.   device.
  1734.  
  1735.  
  1736. Das ganze hat mich ca. 10,- DM gekostet, ein Gehaeuse hatte ich
  1737. noch ueber.
  1738.  
  1739. _______________________________________________________________________________
  1740.  
  1741. Vorschlag 3:
  1742.  
  1743. Da muss etwas Elektronik zwischen. Die Teile kann man aber in den Steckern
  1744. unterbringen, weil es nur wenig Bauteile sind. Am Computer ist der 15pol Sub-D
  1745. Stecker. Am Keyboard sind zwei 5pol DIN-Stecker. Der Computer ist links
  1746. gezeichnet:
  1747.  
  1748.  
  1749. Computer --> Keyboard:
  1750.  
  1751.  
  1752.                    150 Ohm
  1753. Pin 12 O-----------[===]---------+----O Pin 5
  1754.                                  |
  1755.                           220pF ===
  1756.                                  |
  1757. Pin 9  O-----------[===]---------+----O Pin 4
  1758.                    150 Ohm
  1759.  
  1760.  
  1761. Computer <-- Keyboard:
  1762.  
  1763.                Cny 17
  1764.                 ___
  1765. Pin 4  O-------|   |
  1766. Pin 15 O--+----|   |--------------+
  1767.           |    |_*_|-----+--|<|---+------+------O Pin 5
  1768.          |~|             | 1N4148        |
  1769.          |_|             |              === 220pF
  1770.           | 2,2k Ohm     |               |
  1771. Pin 8  O--+              +----[===]------+------O Pin 4
  1772.                               220 Ohm
  1773.  
  1774.  
  1775.  
  1776. Vie Spass beim Basteln. PS: Mach keinen Kurzschluss, das koennte die Soundarte
  1777. nicht moegen.
  1778.  
  1779. -------------------------------------------------------------------------------
  1780.  
  1781. Vorschlag 4:
  1782.  
  1783.   DO IT YOURSELF:  SOUND BLASTER MIDI INTERFACE
  1784.   =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1785.  
  1786. The following text explains how to build a MIDI interface for the
  1787. Sound Blaster. The circuit is my own design, but works just like
  1788. the commercially available interfaces that retails for $60-$90.
  1789.  
  1790. Here is the list of parts necessary:
  1791.  
  1792. Qty.           Part
  1793.  
  1794.  1    Sharp PC900 or HP 6N138 opto-isolator
  1795.  1    DB15P (15 pin 'D' connector, male. like joystick connector)
  1796.  
  1797.  3    220 ohm resistors (2 for input, 1 for EACH output you need)
  1798.  1    3 conductor shielded cable (length is up to you)
  1799.  2    Female 5 pin DIN connector (1 for input, 1 for each output you need)
  1800.  1    PC board with pre-drilled holes (about 2" x 2" from Radio Shack)
  1801.       A few short lengths of hook-up wire
  1802.  
  1803. All of these parts, except the first 2, are available from Radio Shack.
  1804.  
  1805. Here is a diagram of the DB15P connector (looking at the solder side).
  1806.                                           gesehen von der Loetseite
  1807.     1       5     8
  1808.     o o o o o o o o
  1809.      o o o o o o o
  1810.      9     12     15
  1811.  
  1812. Here is the 5 pin FEMALE DIN plug (solder side).
  1813.             5 polige DIN-Buchse-/(-nstecker) von der Loetseite gesehen
  1814.        2
  1815.    5   o   4
  1816.      o   o
  1817.   3  o   o  1
  1818.  
  1819.  
  1820. This is the circuit for the MIDI INPUT.
  1821.  
  1822.  
  1823.                                      +-----> To pin 5 of 'D' connector
  1824.                                      |
  1825. To pin 15 of 'D' connector <---+     |     +-------+-----> To pin 9 of 'D' con.
  1826.                                |     |     |       |
  1827.                                | 6   |5    |4      \
  1828.                              +---------------+     /  220 ohm
  1829.                              |     PC900     |     \  resistor
  1830.                              |      or       |     /
  1831.                              |   HP 6N138    |     |
  1832.                              +---------------+     +------> To pin 6 of PC 900
  1833.                                |1    |2    |3
  1834.                                |     |     |
  1835.                                \     |     +----->  No connection
  1836.                        220 ohm /     |
  1837.                       resistor \     |
  1838.                                /     +-----> To pin 5 of DIN connector
  1839.                                |
  1840. To pin 4 of DIN connector <----+
  1841.  
  1842.  
  1843. Don't overlook the two 220 ohm resistors.
  1844.  
  1845. Also, for cables longer than a few feet, connect pin 2 of the DIN to pin
  1846. 5 of the 'D' connector.
  1847.  
  1848.  
  1849. The output circuit is much simpler.
  1850.  
  1851.                                   220 ohm resistor
  1852. To pin 12 of 'D' connector <---------/\/\/\/\/---------> To pin 5 of DIN con.
  1853.  
  1854. To pin 15 of 'D' connector <---------------------------> To pin 4 of DIN con.
  1855.  
  1856. Also, for cables longer than a few feet, connect pin 2 of the DIN to pin
  1857. 5 of the 'D' connector.
  1858.  
  1859.  
  1860. This circuit has been built and tested by me, using Voyetra's SPJr, and
  1861. a cheap-o Casio keyboard. The input and output do work as shown here, but I
  1862. don't have any other MIDI devices to use to test using more than 1 output
  1863. device. Theoretically, it should work fine, but it has not been tested.
  1864.  
  1865. The chances of hurting anything by trying is slim and none.
  1866.  
  1867. This circuit DOES work, but I make no guarantees, nor will I be
  1868. held responsible for any damages you may cause from your use of
  1869. this information.
  1870.  
  1871. Diese Schaltung ist noch nicht ausprobiert.
  1872.  
  1873. *******************************************************************************
  1874.  
  1875. Frage: Wie sieht ein MIDI-Kabel aus und wie ist die Belegung?
  1876.  
  1877. Antwort:
  1878.  
  1879. Ein MIDI-Kabel besteht aus zwei 5-poligen DIN-Steckern (180 Grad) und soll
  1880. nicht laenger als 15m sein. Das Kabel ist 2 adrig mit Abschirmung. (je  
  1881. dicker - je besser....). Will man mehr als 15m ueberbruecken so muss eine
  1882. MIDI-THRU-BOX oder ein MIDI-LINE-DRIVER zwischengeschaltet werden. 
  1883.  
  1884. Belegung des Steckers auf die Loetseite gesehen:
  1885.                                                  +--------+
  1886.                    +----------  Abschirmung -----I-----+  I
  1887.                    2                             I     2  +
  1888.    +-Signal ----+5   4 +------- Signal ----------+   5    4
  1889.    I            3     1                           3  +      1
  1890.    I                                                 I
  1891.    +-------------------------------------------------+
  1892.  
  1893. 1 und 3 sind NICHT belegt. 2 geht nach 2, 4 nach 4 und 5 nach 5 des anderen
  1894. Steckers.
  1895.  
  1896. *******************************************************************************
  1897.  
  1898.  
  1899. Frage: Wie ist die Belegung der Sounds bei GM/GS ?
  1900.  
  1901. Antwort:
  1902.  
  1903. ****    Brief Overview of Proposed General MIDI Level 1 Spec   ****
  1904.  
  1905.   The heart of General MIDI (GM) is the _Instrument Patch Map_, shown in
  1906. Table 1 (see below). This is a list of 128 sounds, with corresponding
  1907. MIDI program numbers. Most of these are imitative sounds, though the
  1908. list includes synth sounds, ethnic instruments and a handful of sound
  1909. effects.
  1910.   The sounds fall roughtly into sixteen families of eight variations
  1911. each. Grouping sounds makes it easy to re-orchestrate a piece using
  1912. similar sounds. The Instrument Map isn't the final word on musical
  1913. instruments of the world, but it's pretty complete
  1914.   General MIDI also includes a _Percusssion Key Map_, show in Table 2
  1915. (see below). This mapping derives from the Roland/Sequential mapping
  1916. used on early drum machines. As with the Instrument Map, it doesn't
  1917. cover every percussive instrument in the world, but it's more than
  1918. adequate as a basic set.
  1919.   To avoid concerns with channels, GM restricts percussion to MIDI
  1920. Channel 10. Theoretically, the lower nine channels are for the
  1921. instruments, but the GM spec states that a sound module must respond
  1922. to all sixteen MIDI channels, with dynamic voice allocation and a
  1923. minimum of 24 voices.
  1924.   General MIDI doesn't mention sound quality of synthesis methods.
  1925. Discussions are under way on standardizing sound parameters such as
  1926. playable range and envelope times. This will ensure that an arrangement
  1927. that relies on phrsing and balance can play back on a variety of
  1928. modules.
  1929.   Other requirements for a GM sound module include response to velocity,
  1930. mod wheel, aftertouch, sustain and expression pedal, main volume and
  1931. pan, and the All Notes Off and Reset All Controllers messages. The
  1932. module  also must respond to both Pitch Bend and Pitch Bend Sensitivity
  1933. (a MIDI registered parameter). The default pitch bend range is +-2
  1934. semitones.
  1935.   Middle C (C3) corresponds to MIDI key 60, and master tuning must be
  1936. adjustable.  Finally, the MIDI Manufacturers Association (MMA) created a
  1937. new Universal System Exclusive message to turn General MIDI on and off
  1938. (for devices that might have "consumer" and "programmable" settings).
  1939. Table 3 (see below) summarizes these requirements.
  1940.   General MIDI has room for future expansion, including additional drum
  1941. and instrument assignments and more required controllers. Also under
  1942. discussion is an "authorizing document" that would standardize things
  1943. such as channel assignments (e.g., lead on 1, bass on 2, etc.) and setup
  1944. information in a MIDI file.
  1945.  
  1946. Copies of the Level 1 Specification documents for General MIDI ($5 each
  1947. at last notice) are available from the Internation MIDI Association,
  1948. 5316 West 57th Street Los Angeles, CA 90056, (213) 649-6434. The first
  1949. issue of the Journal of the MMA (back issues, $15 each) contains an
  1950. article by PassPort Designs and Stanley Junglieb about General MIDI.
  1951.  
  1952.  
  1953. Roland's GS Standard
  1954.  
  1955.   When Warner New Media first proposed a General MIDI standard, most MMA
  1956. members gave it little thought. As discussions proceeded, Roland
  1957. listened and developed a sound module to meet the proposed
  1958. specification. At the same NAMM show where the MMA ratified General MIDI
  1959. Level 1, Roland showed their Sound Brush and Sound Canvas, a Standard
  1960. MIDI File player and GM-compatible sound module.
  1961.   Some companies feel that General MIDI doesn't go far enough, so Roland
  1962. created a superset of General MIDI Level 1, which they call GS Standard.
  1963. It obeys all the protocols and sound maps of General MIDI and adds many
  1964. extra controllers and sounds. Some of the controllers use Unregistered
  1965. Parameter Numbers to give macro control over synth parameters such as
  1966. envelope attack and decay rates.
  1967.   The new MIDI Bank Select message provides access to extra sounds
  1968. (including variations on the stock sounds and a re-creation of the MT-32
  1969. factory patches). The programs in each bank align with the original 128
  1970. in General MIDI's Instrument Patch Map, with eight banks housing related
  1971. families. The GS Standard includes a "fall back" system. If the Sound
  1972. Canvas receives a request for a bank/program number combination that
  1973. does not exist, it will reassign it to the master instrument in that
  1974. family. A set of Roland System Exclusive messages allows reconfiguration
  1975. and customization of the sound module.
  1976.   This means that a Roland GS Standard sound module will correctly play
  1977. back any song designed for General MIDI. In addition, if the song's
  1978. creator wants to create some extra nuance, they can include the GS
  1979. Standard extensions in their sequence. None of these extensions are so
  1980. radical as to make the song unplayable on a normal GM sound module.
  1981. After all, compatibility is what MIDI - and especially General MIDI - is
  1982. all about.
  1983.   Music authors interested in the GS Standard should contact Tom White
  1984. at RolandCorp USA, 7200 Dominion Circle, Los Angeles, CA 90040, (213)
  1985. 685-5141.
  1986.  
  1987. ****     TABLE 1  -  General MIDI Instrument Patch Map      ****
  1988. (groups sounds into sixteen families, w/8 instruments in each family)
  1989.  
  1990. Prog#     Instrument               Prog#     Instrument
  1991.  
  1992.    (1-8        PIANO)                   (9-16      CHROM PERCUSSION)
  1993. 1         Acoustic Grand             9        Celesta
  1994. 2         Bright Acoustic           10        Glockenspiel
  1995. 3         Electric Grand            11        Music Box
  1996. 4         Honky-Tonk                12        Vibraphone
  1997. 5         Electric Piano 1          13        Marimba
  1998. 6         Electric Piano 2          14        Xylophone
  1999. 7         Harpsichord               15        Tubular Bells
  2000. 8         Clav                      16        Dulcimer
  2001.  
  2002.    (17-24      ORGAN)                      (25-32      GUITAR)
  2003. 17        Drawbar Organ             25        Acoustic Guitar(nylon)
  2004. 18        Percussive Organ          26        Acoustic Guitar(steel)
  2005. 19        Rock Organ                27        Electric Guitar(jazz)
  2006. 20        Church Organ              28        Electric Guitar(clean)
  2007. 21        Reed Organ                29        Electric Guitar(muted)
  2008. 22        Accoridan                 30        Overdriven Guitar
  2009. 23        Harmonica                 31        Distortion Guitar
  2010. 24        Tango Accordian           32        Guitar Harmonics
  2011.  
  2012.    (33-40      BASS)                        (41-48     STRINGS)
  2013. 33        Acoustic Bass             41        Violin
  2014. 34        Electric Bass(finger)     42        Viola
  2015. 35        Electric Bass(pick)       43        Cello
  2016. 36        Fretless Bass             44        Contrabass
  2017. 37        Slap Bass 1               45        Tremolo Strings
  2018. 38        Slap Bass 2               46        Pizzicato Strings
  2019. 39        Synth Bass 1              47        Orchestral Strings
  2020. 40        Synth Bass 2              48        Timpani
  2021.  
  2022.    (49-56     ENSEMBLE)                      (57-64      BRASS)
  2023. 49        String Ensemble 1         57        Trumpet
  2024. 50        String Ensemble 2         58        Trombone
  2025. 51        SynthStrings 1            59        Tuba
  2026. 52        SynthStrings 2            60        Muted Trumpet
  2027. 53        Choir Aahs                61        French Horn
  2028. 54        Voice Oohs                62        Brass Section
  2029. 55        Synth Voice               63        SynthBrass 1
  2030. 56        Orchestra Hit             64        SynthBrass 2
  2031.  
  2032.    (65-72      REED)                         (73-80      PIPE)
  2033. 65        Soprano Sax               73        Piccolo
  2034. 66        Alto Sax                  74        Flute
  2035. 67        Tenor Sax                 75        Recorder
  2036. 68        Baritone Sax              76        Pan Flute
  2037. 69        Oboe                      77        Blown Bottle
  2038. 70        English Horn              78        Skakuhachi
  2039. 71        Bassoon                   79        Whistle
  2040. 72        Clarinet                  80        Ocarina
  2041.  
  2042.    (81-88      SYNTH LEAD)                   (89-96      SYNTH PAD)
  2043. 81        Lead 1 (square)           89        Pad 1 (new age)
  2044. 82        Lead 2 (sawtooth)         90        Pad 2 (warm)
  2045. 83        Lead 3 (calliope)         91        Pad 3 (polysynth)
  2046. 84        Lead 4 (chiff)            92        Pad 4 (choir)
  2047. 85        Lead 5 (charang)          93        Pad 5 (bowed)
  2048. 86        Lead 6 (voice)            94        Pad 6 (metallic)
  2049. 87        Lead 7 (fifths)           95        Pad 7 (halo)
  2050. 88        Lead 8 (bass+lead)        96        Pad 8 (sweep)
  2051.  
  2052.    (97-104     SYNTH EFFECTS)                (105-112     ETHNIC)
  2053.  97        FX 1 (rain)              105       Sitar
  2054.  98        FX 2 (soundtrack)        106       Banjo
  2055.  99        FX 3 (crystal)           107       Shamisen
  2056. 100        FX 4 (atmosphere)        108       Koto
  2057. 101        FX 5 (brightness)        109       Kalimba
  2058. 102        FX 6 (goblins)           110       Bagpipe
  2059. 103        FX 7 (echoes)            111       Fiddle
  2060. 104        FX 8 (sci-fi)            112       Shanai
  2061.  
  2062.    (113-120    PERCUSSIVE)                  (121-128     SOUND EFFECTS)
  2063. 113        Tinkle Bell              121       Guitar Fret Noise
  2064. 114        Agogo                    122       Breath Noise
  2065. 115        Steel Drums              123       Seashore
  2066. 116        Woodblock                124       Bird Tweet
  2067. 117        Taiko Drum               125       Telephone Ring
  2068. 118        Melodic Tom              126       Helicopter
  2069. 119        Synth Drum               127       Applause
  2070. 120        Reverse Cymbal           128       Gunshot
  2071.  
  2072.  
  2073. ****    TABLE 2  -  General MIDI Percussion Key Map    ****
  2074. (assigns drum sounds to note numbers. MIDI Channel 10 is for percussion)
  2075.  
  2076. MIDI   Drum Sound                MIDI    Drum Sound
  2077. Key                              Key
  2078.  
  2079. 35     Acoustic Bass Drum        59      Ride Cymbal 2
  2080. 36     Bass Drum 1               60      Hi Bongo
  2081. 37     Side Stick                61      Low Bongo
  2082. 38     Acoustic Snare            62      Mute Hi Conga
  2083. 39     Hand Clap                 63      Open Hi Conga
  2084. 40     Electric Snare            64      Low Conga
  2085. 41     Low Floor Tom             65      High Timbale
  2086. 42     Closed Hi-Hat             66      Low Timbale
  2087. 43     High Floor Tom            67      High Agogo
  2088. 44     Pedal Hi-Hat              68      Low Agogo
  2089. 45     Low Tom                   69      Cabasa
  2090. 46     Open Hi-Hat               70      Maracas
  2091. 47     Low-Mid Tom               71      Short Whistle
  2092. 48     Hi-Mid Tom                72      Long Whistle
  2093. 49     Crash Cymbal 1            73      Short Guiro
  2094. 50     High Tom                  74      Long Guiro
  2095. 51     Ride Cymbal 1             75      Claves
  2096. 52     Chinese Cymbal            76      Hi Wood Block
  2097. 53     Ride Bell                 77      Low Wood Block
  2098. 54     Tambourine                78      Mute Cuica
  2099. 55     Splash Cymbal             79      Open Cuica
  2100. 56     Cowbell                   80      Mute Triangle
  2101. 57     Crash Cymbal 2            81      Open Triangle
  2102. 58     Vibraslap
  2103.  
  2104.  
  2105. ****     TABLE 3  -   General MIDI minimum sound module specs    ****
  2106.  
  2107. Voices:
  2108. A minimum of either 24 fully dynamically allocated voices
  2109. available simultaneously for both melodic and percussive sounds or 16
  2110. dynamically allocated voices for melody plus eight for percussion.
  2111.  
  2112. Channels:
  2113. General MIDI mode supports all sixteen MIDI channels. Each channel can
  2114. play a variable number of voices (polyphony). Each channel can play a
  2115. different instrument (timbre). Keybased Percussion is always on
  2116. Channel 10.
  2117.  
  2118. Instruments:
  2119. A minimum of sixteen different timbres playing various instrument
  2120. sounds. A minimum of 128 preset for Intruments (MIDI program numbers).
  2121.  
  2122. Note on/Note off:
  2123. Octabe Registration: Middle C(C3) = MIDI key 60. All Voices including
  2124. percussion respond to velocity.
  2125.  
  2126. Controllers:
  2127. Controller #   Description
  2128.   1             Modulation
  2129.   7             Main Volume
  2130.  10             Pan
  2131.  11             Expression
  2132.  64             Sustain
  2133. 121             Reset All Controllers
  2134. 123             All Notes Off
  2135.  
  2136. Registered      Description
  2137. Parameter #
  2138. 0               Pitch Bend Sensitivity
  2139. 1               Fine Tuning
  2140. 2               Coarse Tuning
  2141.  
  2142. Additional Channel Messages:
  2143. Channel Pressure (Aftertouch)
  2144. Pitch Bend
  2145.  
  2146. Power-Up Defaults:
  2147. Pitch Bend Amount = 0
  2148. Pitch Bend Sensitivity = +-2 semitones
  2149. Volume = 90
  2150. All Other Controllers = reset
  2151.  
  2152. (after Electronic Musician, 8/91 issue)
  2153. -------------------------------------------------------------------------------
  2154.  
  2155. Der General Midi (GM) Standard und seine Sounds mit Klangbeschreibung:
  2156.  
  2157. 01-08 Piano
  2158.  
  2159. Nr.    Name                       Beschreibung
  2160.  
  2161. O1     Acoustic Grand Piano       normaler akustischer Fluegel
  2162. 02     Bright Acoustic Piano      hellerer Fluegelsound
  2163. 03     Electric Grand Piano       elektrischer Fluegel
  2164. 04     Honky-tonk                 verstimmtes Honky-Tonk-Piano
  2165. 05     Electric Piano 1           voller E-Piano-Sound
  2166. 06     Electric Piano 2           brillanter E-Piano-Sound
  2167. 07     Haxpsichord                Cembalo
  2168. 08     Clavi                      Clavinet
  2169.  
  2170. 09-16 Chromatic Percussion - Gestimmte Percussion
  2171.  
  2172. 09     Celesta                    Celesta
  2173. 10     Glockenspiel               Glockenspiel
  2174. 11     Music Box                  Spieluhr
  2175. 12     Vibraphone                 Vibraphon
  2176. 13     Marimba                    Marimba
  2177. 14     Xylophone                  Xylophon
  2178. 15     Tubular Bells              Roehrenglocken
  2179. 16     Dulcimer                   Laute
  2180.  
  2181. 17-25 Organ - Orgeln und Akkordeons
  2182.  
  2183. 17     Drawbar Organ              normaler Hammond-Sound
  2184. 18     Percussive Organ           perkussiver Hammond-Sound
  2185. 19     Rock Organ                 rockiger, leicht angezerrter Hammond-Sound
  2186. 20     Church Organ               Kirchenorgel, volles Werk
  2187. 21     Reed Organ                 Harmonium
  2188. 22     Accordion                  Akkordeon
  2189. 23     Harmonica                  Mundharmonika
  2190. 24     Tango Accordion            Musette-Akkordeon
  2191.  
  2192. 25-32 Guitar - Gitarren
  2193.  
  2194. 25     Acoustic Guitar (nylon)    akustische Gitarre mit Nylonsaiten
  2195. 26     Acoustic Guitar (steel)    akustische Gitarre mit Stahlsaiten
  2196. 27     Electric Guitar (jazz)     Jazz-Gitarre
  2197. 28     Electric Guitar (clean)    normaler E-Gitarrensound
  2198. 29     Electric Guitar (muted)    E-Gitarre,abgedaempft
  2199. 30     Overdrive Guitar           verzerrte Gitarre (Roehrenverzerrung)
  2200. 31     Distortion Guitar          verzerrte Gitarre (Transistorverzerrung)
  2201. 32     Guitar harmonics           E-Gitarre,Flageolet-Toene
  2202.  
  2203. 33-40 Bass - Baesse
  2204.  
  2205. 33     Acoustic Bass              gezupfter Kontrabass
  2206. 34     Electric Bass (finger)     gezupfter E-Bass
  2207. 35     Electric Bass (pick)       E-Bass mit Plektrum
  2208. 36     Fretless Bass              bundloser Bass
  2209. 37     Slap Bass 1                E-Bass,mit dem Daumen gespielt
  2210. 38     Slap Bass 2                E-Bass,mit dem Daumen gespielt
  2211. 39     Synth Bass 1               metallischer Sequenzerbass
  2212. 40     Synth Bass 2               analoger Sequenzerbass
  2213.  
  2214. 41-48 Strings - Streichinstrumente
  2215.  
  2216. 41     Violin                     Geige
  2217. 42     Viola                      Bratsche
  2218. 43     Cello                      Cello
  2219. 44     Contrabass                 gestrichener Kontrabass
  2220. 45     Tremolo Strings            tremolierende Streicher
  2221. 45     Pizzicato Strings          Pizzicato-Streicher
  2222. 47     Orchestral Harp            Harfe
  2223. 48     Timpani                    Pauken
  2224.  
  2225. 49-56 Ensemble - Orchester und Ensembles
  2226.  
  2227. 49     String-Ensemble 1          helle,staccato spielbare Streicher
  2228. 50     String Ensemble            Legato-Streicher
  2229. 51     SynthStrings 1             Synthesizer-Strings
  2230. 52     SynthStrings 2             Synthesizer-Strings mit Phaser
  2231. 53     Choir Aahs                 Ah-Chor
  2232. 54     Voice Oohs                 Ohh-Stimme
  2233. 55     Synth Voice                Synthesizer-Chor
  2234. 56     Orchestra Hit              Orchester-Abschlag
  2235.  
  2236. 57-64 Brass - Blechblasinstrumente
  2237.  
  2238. 57     Trumpet                    Trompete
  2239. 58     Trombone                   Posaune
  2240. 59     Tuba                       Tuba
  2241. 60     Muted Trumpet              gestopfte Trompete
  2242. 61     French Horn                Horn
  2243. 62     Brass Section              Blechblaeser
  2244. 63     SynthBrass 1               Oberheim-Brass
  2245. 64     SynthBrass 2               Prophet-Brass
  2246.  
  2247. 65-72 Reed - Holzblasinstrumente
  2248.  
  2249. 65     Soprano Sax                Sopransaxophon
  2250. 66     Alto Sax                   Altsaxophon
  2251. 67     Tenor Sax                  Tenorsaxophon
  2252. 68     Baritone Sax               Baritonsaxophon
  2253. 69     Oboe                       Oboe
  2254. 70     English Hom                Englischhorn
  2255. 71     Bassoon                    Fagott
  2256. 72     Clarinet                   Klarinette
  2257.  
  2258. 73-80 Pipe - Floeten und Pfeifen
  2259.  
  2260. 73     Piccolo                    Piccolofloete
  2261. 74     Flute                      Querfloete
  2262. 75     Recorder                   Blockfloete
  2263. 76     Pan Flute                  Panfloete
  2264. 77     Blown Bottle               angeblasene Flasche
  2265. 78     Shakuhachi                 asiatische Floete
  2266. 79     Whistle                    Pfeifen
  2267. 80     Ocarina                    Ocarina
  2268.  
  2269. 81-88 Synth Lead - Synthesizer-Solosounds
  2270.  
  2271. 81     Lead 1 (square)            Synthesizer-Solosound (Rechteck)
  2272. 82     Lead 2 (sawtooth)          Synthesizer-Solosound (Saegezahn)
  2273. 83     Lead 3 (calliope)          Synthesizer-Solosound (panfloetenaehnlich)
  2274. 84     Lead 4 (Chiff)             Synthesizer-Solosound
  2275. 85     Lead 5 (charang)           Synthesizer-Solosound
  2276. 86     Lead 6 (voice)             Synthesizer-Solosound (Yo-Voice)
  2277. 87     Lead 7 (fifths)            Synthesizer-Solosound (Quinten)
  2278. 88     Lead 8 (Bass + lead)       Synthesizer-Solosound (Bass + Solo)
  2279.  
  2280. 89-96 Synth Pad - Flaechensounds
  2281.  
  2282. 89     Pad 1 (new age)            sphaerischer Flaechensound
  2283. 90     Pad 2 (warm)               warmer Flaechensound
  2284. 91     Pad 3 (polysynth)          Synthesizer-Flaeche
  2285. 92     Pad 4 (choir)              Flaechensound: Chor
  2286. 93     Pad 5 (bowed)              Flaechensound (glasharfenartig)
  2287. 94     Pad 6 (metallic)           metallischer Flaechensound
  2288. 95     Pad 7 (halo)               Synthesizer-Flaeche
  2289. 96     Pad 8 (sweep)              Synthesizer-Flaeche
  2290.  
  2291. 97-104 Synth Effects - Synthesizereffekte
  2292.  
  2293. 97     FX 1 (rain)                Effekt: Regen
  2294. 98     FX 2 (soundtrack)          Effekt: Soundtrack-Sound (D-50)
  2295. 99     FX 3 (crystal)             Effekt: Klirren
  2296. 100    FX 4 (atmosphere)          atmosphaerischer Sound
  2297. 101    FX 5 (brightness)          heller Digitalsound
  2298. 102    FX 6 (goblins)             Effekt: Gnome
  2299. 103    FX 7 (echoes)              Effekt: Echos
  2300. 104    FX 8 (sci-fi)              Effekt: Computersound
  2301.  
  2302. 105-112 Ethnic - Ethnische Instrumente
  2303.  
  2304. 105    Sitar                      Sitar
  2305. 106    Banjo                      Banjo
  2306. 107    Shamisen                   Shamisen
  2307. 108    Koto                       harfenaehnliches Instrument
  2308. 109    Kalimba                    Kalimba
  2309. 110    Bag pipe                   Dudelsack
  2310. 111    Fiddle                     Fiedel
  2311. 112    Shanai                     Shanai
  2312.  
  2313. 113-120 Percussive - Percussion-Instrumente
  2314.  
  2315. 113    Tinkle Bell                metallischer Gloeckchensound
  2316. 114    Agogo                      Agogo-Bell
  2317. 115    Steel Drums                Oelfaesser
  2318. 116    Woodbloek                  Holzblock
  2319. 117    Taiko Drum                 paukenaehnlicher Drumsound
  2320. 118    Melodic Tom                gestimmtes Tom
  2321. 119    Synth Drum                 Simmons-Tom
  2322. 120    Reverse Cymbal             Crash-Becken mit Rueckwaerts-Effekt
  2323.  
  2324. 121-128 Sound Effects - Soundeffekte
  2325.  
  2326. 121    Guitar Fret Noise          Griffgeraeusche der Gitarre
  2327. 122    Breath Noise               Atemgeraeusch
  2328. 123    Seashore                   Wellenrauschen
  2329. 124    Bird Tweet                 Vogelzwitschern
  2330. 125    Telephone Ring             Telefonsignal
  2331. 126    Helicopter                 Hubschrauber
  2332. 127    Applause                   Applaus
  2333. 128    Gunshot                    Gewehrschuss
  2334.  
  2335. *******************************************************************************
  2336.  
  2337. Frage: Wie sind die Hersteller ID's bei SysEx ?
  2338.  
  2339. Antwort:
  2340.  
  2341.         >>>>>>>>>>>>>>>>>>>>>>>>>>>
  2342.         > SysEx - Hersteller ID's >
  2343.         >>>>>>>>>>>>>>>>>>>>>>>>>>>
  2344.  
  2345.         Amerikanische Hersteller
  2346.         ************************
  2347.  
  2348.         ID(hex)         Hersteller      
  2349.         -------         ----------
  2350.         01              Sequential
  2351.         02              IDP
  2352.         03              Voyetra/Octave-Plateau
  2353.         04              Moog
  2354.         05              Passport Desings
  2355.         06              Lexicon
  2356.         07              Kurzweil
  2357.         08              Fender
  2358.         09              Gulbransen
  2359.         0A              AKG Acuostics
  2360.         0B              Voyce Music
  2361.         0C              Waveframe Corp.
  2362.         0D              ADA Signal Processors
  2363.         0E              Garfield Electronics (good morning monday)
  2364.         0F              Ensoniq
  2365.         10              Oberheim
  2366.         11              Apple
  2367.         12              Grey Matter Response
  2368.         13              Digidesign
  2369.         14              Palm Tree Instruments
  2370.         15              JL Cooper
  2371.         16              Lowrey
  2372.         17              Adams-Smith
  2373.         18              Emu Systems
  2374.         19              Harmony Systems
  2375.         1A              ART
  2376.         1B              Baldwin
  2377.         1C              Eventide
  2378.         1D              Inventronics
  2379.         1F              Clarity
  2380.         00 00 01        Warner New Media
  2381.         00 00 07        Digital Music Corp.        
  2382.         00 00 08        IOTA Systems        
  2383.         00 00 09        New England Digital        
  2384.         00 00 0A        Artisyn
  2385.         00 00 0B        IVL Technologies
  2386.         00 00 0C        Southern Music Systems
  2387.         00 00 0D        Lake Butler Sound Company
  2388.         00 00 0E        Alesis
  2389.         00 00 10        DOD Electronics
  2390.         00 00 11        Studer - Editech
  2391.         00 00 14        Jeff Tripp/Perfect Fretworks
  2392.         00 00 15        KAT
  2393.         00 00 16        Opcode
  2394.         00 00 17        Rank Corp.
  2395.         00 00 18        Spatial Sound / Anadi Inc.
  2396.         00 00 19        KMX (Ken Yprilla)
  2397.         00 00 1A        Allen & Heath Brenell
  2398.         00 00 1B        Peavy Electronics
  2399.         00 00 1C        360 Spectrum
  2400.         00 00 1D        Spectrum Design and Development
  2401.         00 00 1E        Marquis Musi
  2402.         00 00 1F        Zeta Systems
  2403.         00 00 20        Axxes (Brian Parsonett)
  2404.         00 00 21        Orban
  2405.         00 00 24        KTI
  2406.         00 00 25        Breakaway Technilogies
  2407.         00 00 26        CAE        
  2408.         00 00 29        Rocktron Corp.
  2409.         00 00 2A        PianoDisc
  2410.         00 00 2B        Cannon Research Group
  2411.         00 00 2D        Rogers Instrument Corp.
  2412.         00 00 2E        Blue Sky Logic
  2413.         00 00 2F        Encore Electronics
  2414.         00 00 30        Uptown
  2415.         00 00 31        Voce
  2416.         00 00 32        CTI Audio Inc.
  2417.         00 00 33        S&S Research
  2418.         00 00 34        Brotherbound Software Inc.
  2419.         00 00 35        Allen Organ Co.
  2420.         00 00 37        Music Quest
  2421.         00 00 38        APHEX
  2422.         00 00 39        Gallien Krueger
  2423.         00 00 3A        Big Brother..........
  2424.         00 00 3C        Hotz Instruments Technologies
  2425.         00 00 3D        ETA Lightning
  2426.         00 00 3E        NSI Corporation
  2427.         00 00 3F        Ad Lib Inc.
  2428.         00 00 40        Richmond Sound Design
  2429.         00 00 41        Microsoooooooooooooooft
  2430.         00 00 42        Theo Software Toolworks (Anne Graham)
  2431.         00 00 43        RJMG / Niche
  2432.         00 00 44        Intonic
  2433.         00 00 47        GT Electronics / Groove Tubes
  2434.         00 00 4F        InterMIDI Inc.
  2435.         00 00 55        Lone Wolf
  2436.         00 00 64        Musonix
  2437.  
  2438.  
  2439.         Europaeische Hersteller
  2440.         ***********************
  2441.         
  2442.         ID(hex)         Hersteller
  2443.         -------         ----------
  2444.         20              Passac
  2445.         21              Siel (I)
  2446.         22              Synthaxe (GB)
  2447.         24              Hohner (D)
  2448.         25              Twister
  2449.         26              Solton
  2450.         27              Jellinghaus (D)
  2451.         28              Southworth Music Systems
  2452.         29              PPG (D)
  2453.         2A              JEN
  2454.         2B              SSL Limited (GB)
  2455.         2C              Audio Vertrieb P.Struven
  2456.         2F              Elka / General Music
  2457.         30              Dynacord (D)
  2458.         33              Clavia Digital Instruments
  2459.         34              Audio Architecture
  2460.         35              General Music Corp.
  2461.         39              Soundcraft Electronics
  2462.         3B              WERSI
  2463.         3C              Avab Electrinik AB (S)
  2464.         3D              Digigram
  2465.         3E              Waldorf Electronics GmbH (D)
  2466.         3F              Quasimidi
  2467.         00 20 00        Dream
  2468.         00 20 01        Strand Lightning
  2469.         00 20 02        Amek Systems Ltd.
  2470.         00 20 04        Dr. Böhm / Musican International
  2471.         00 20 06        Trident Audio
  2472.         00 20 07        Real World Studio
  2473.         00 20 09        Yes Technoligy
  2474.         00 20 0A        Audiomatica
  2475.         00 20 0B        Bontempi / Farfisa
  2476.         00 20 0C        FBT Elettronica
  2477.         00 20 0E        LA Audio (Larking Audio)
  2478.         00 20 0F        Zero 88 Lighting Ltd.
  2479.         00 20 10        Micon Audio Electronics GmbH
  2480.         00 20 11        Forefront Technology
  2481.         00 20 13        Kenton Electronics
  2482.         00 20 15        ADB
  2483.         00 20 16        Jim Marshall Procducts Ltd.
  2484.         00 20 17        DDA
  2485.         00 20 1F        TC Electronics
  2486.  
  2487.  
  2488.         Japanische Hersteller
  2489.         *********************
  2490.  
  2491.         ID(hex)         Hersteller
  2492.         -------         ----------
  2493.         40              Kawai
  2494.         41              Roland
  2495.         42              Korg
  2496.         43              Yamaha
  2497.         44              Casio
  2498.         46              Kamiya Studio
  2499.         47              Akai
  2500.         48              Japan Victor
  2501.         49              Mesosha
  2502.         4A              Hoshino Gakki
  2503.         4B              Fujitsu Electric
  2504.         4C              Sony
  2505.         4D              Nisshin Onpa
  2506.         4E              TEAC
  2507.         50              Matsushita Electric
  2508.         51              Fostex
  2509.         52              Zoom
  2510.         53              Midori Electronics
  2511.         54              Mtsushita Communication Industrial
  2512.         55              Suzuki Musical Instrument Manufact.
  2513.  
  2514.  
  2515. -------------------------------------------------------------------------------
  2516.  
  2517. Das Ganze noch in anderer Form:
  2518.  
  2519. Die 1-Byte-IDs haben die Werte $01 (1) bis $7F (127). Wenn das
  2520. Manufacturer-Byte $00 (0) ist, folgen zwei weitere Bytes.
  2521. Somit hat man 127 + 128*128 moegliche ID's.
  2522.  
  2523. Hier die Liste, die in SoundDiver eingebaut ist:
  2524.  
  2525. 01 Sequential
  2526. 02 IDP
  2527. 03 Voyetra/Octave-Plateau
  2528. 04 Moog
  2529. 05 Passport Designs
  2530. 06 Lexicon
  2531. 07 Kurzweil
  2532. 08 Fender
  2533. 09 Gulbransen
  2534. 0A AKG
  2535. 0B Voyce Music
  2536. 0C Waveframe
  2537. 0D ADA
  2538. 0E Garfield
  2539. 0F Ensoniq
  2540. 10 Oberheim
  2541. 11 Apple
  2542. 12 Grey Matter Response
  2543. 13 Digidesign
  2544. 14 Palm Tree Instruments
  2545. 15 JL Cooper
  2546. 16 Lowrey
  2547. 17 Adams-Smith
  2548. 18 Emu
  2549. 19 Harmony Systems
  2550. 1A ART
  2551. 1B Baldwin
  2552. 1C Eventide
  2553. 1D Inventronics
  2554. 1E Key Concepts
  2555. 1F Clarity
  2556. 20 Passac
  2557. 21 Siel
  2558. 22 Synthaxe
  2559. 23 Stepp
  2560. 24 Hohner
  2561. 25 Crumar
  2562. 26 Solton
  2563. 27 Jellinghaus
  2564. 28 Southworth
  2565. 29 PPG
  2566. 2A JEN
  2567. 2B SSL Limited
  2568. 2C P. Strueven
  2569. 2D Neve
  2570. 2E Soundtracs
  2571. 2F Elka/General Music
  2572. 30 Dynacord
  2573. 31 Intercontinental
  2574. 32 Drawmer
  2575. 33 t.c. electronic
  2576. 34 Audio Architecture
  2577. 35 General Music
  2578. 36 Cheetah
  2579. 37 C.T.M.
  2580. 38 Simmons
  2581. 39 Soundcraft
  2582. 3A Steinberg
  2583. 3B Wersi
  2584. 3C Avab Electronik Ab
  2585. 3D Digigram
  2586. 3E Waldorf
  2587. 3F Quasimidi
  2588. 40 Kawai
  2589. 41 Roland
  2590. 42 Korg
  2591. 43 Yamaha
  2592. 44 Casio
  2593. 45 Moridaira
  2594. 46 Kamiya Studio
  2595. 47 Akai
  2596. 48 Japan Victor
  2597. 49 Meisosha
  2598. 4A Hoshino Gakki
  2599. 4B Fujitsu
  2600. 4C Sony
  2601. 4D Nisshin Onpa
  2602. 4E TEAC
  2603. 4F System Product
  2604. 50 Matsushita
  2605. 51 Fostex
  2606. 52 Zoom
  2607. 53 Midori
  2608. 54 Matsushita
  2609. 55 Suzuki
  2610. 7D Non-Commercial SysEx
  2611. 7E Non-Real-Time SysEx
  2612. 7F Real-Time SysEx
  2613.  
  2614. Mb: *** 3-Byte
  2615. 00 01 Warner New Media
  2616. 00 02 Music Logic Systems
  2617. 00 03 PAIA
  2618. 00 04 Othertech
  2619. 00 05 K-Muse
  2620. 00 06 Stypher
  2621. 00 07 Digital Music
  2622. 00 08 IOTA Systems
  2623. 00 09 New England Digital
  2624. 00 0A Artisyn
  2625. 00 0B IVL
  2626. 00 0C Southern Music Systems
  2627. 00 0D Lake Butler Sound
  2628. 00 0E Alesis
  2629. 00 0F Sound Creation
  2630. 00 10 DOD/Digitech
  2631. 00 11 Studer-Editech
  2632. 00 12 Sonus
  2633. 00 13 Temporal Acuity Prod.
  2634. 00 14 Jeff Tripp/Perfect Fretworks
  2635. 00 15 KAT
  2636. 00 16 Opcode
  2637. 00 17 Rane Corp.
  2638. 00 18 Spatial Sound/Anadi Inc.
  2639. 00 19 KMX
  2640. 00 1A Allen & Heath Brenell
  2641. 00 1B Peavey Electronics
  2642. 00 1C 360 Systems
  2643. 00 1D Spectrum Design and Dev.
  2644. 00 1E Marquis Music
  2645. 00 1F Zeta Systems
  2646. 00 20 Axxes (Brian Parsonett)
  2647. 00 21 Orban
  2648. 00 22 Indian Valley Mnfg.
  2649. 00 23 Triton
  2650. 00 24 KTI
  2651. 00 25 Breakaway Technologies
  2652. 00 26 CAE
  2653. 00 27 Harrison
  2654. 00 28 Future Lab
  2655. 00 29 Rocktron
  2656. 00 2A PianoDisc
  2657. 00 2B Cannon Research Group
  2658. 00 2D Rogers Instrument Corp.
  2659. 00 2E Blue Sky Logic
  2660. 00 2F Encore Electronics
  2661. 00 30 Uptown
  2662. 00 31 Voce
  2663. 00 33 S&S Research
  2664. 00 34 Broderbund
  2665. 00 35 Allen Organ Co.
  2666. 00 37 Music Quest
  2667. 00 38 APHEX
  2668. 00 39 Gallien Krueger
  2669. 00 3A IBM
  2670. 00 3C Hotz
  2671. 00 3D ETA Lighting
  2672. 00 3E NSI
  2673. 00 3F Ad Lib
  2674. 00 40 Richmond Sound Design
  2675. 00 41 Microsoft
  2676. 00 42 The Software Toolworks
  2677. 00 43 RJMG/Niche
  2678. 00 44 Intone
  2679. 00 47 GT Electronics/Groove Tubes
  2680. 00 55 Lone Wolf
  2681. 00 64 Musonix
  2682. 20 00 Dream
  2683. 20 01 Strand Lighting
  2684. 20 02 Amek Systems, Ltd.
  2685. 20 04 Dr. Boehm/Musican International
  2686. 20 06 Trident Audio
  2687. 20 07 Real World Studio
  2688. 20 0A Audiomatica
  2689. 20 0B Bontempi/Farfisa
  2690. 20 10 Micon Audio
  2691. 20 16 Marshall
  2692.  
  2693.  
  2694. ******************************************************************************
  2695.  
  2696. Frage: Wie ist der MIDI Sample Dump Standard ?
  2697.  
  2698. Antwort:
  2699.                            
  2700.                            MIDI SAMPLE DUMP STANDARD
  2701.  
  2702. 1) INTRODUCTION
  2703.  
  2704.      The  MIDI  SDS  was  adopted  in  January  1986   by   the   MIDI
  2705. Manufacturers  Association  and the Japanese MIDI Standards Committee.
  2706. The SDS defines the standard method for transfer of sound sample  data
  2707. between  MIDI-equipped devices.  Sample dumps may be accomplished with
  2708. either an 'open loop' or 'closed loop' system.  The open  loop  method
  2709. simply  involves  the straight dump of all sample data from its source
  2710. to the destination, with no timeouts, packet acknowledgements,  or any
  2711. other form of handshaking, much as in the manner of a sysex bulk dump,
  2712. usually intiated at the source.  The closed loop method allows the use
  2713. of handshaking messages between the dump source and  destination,  and
  2714. usually  places  the  dump process under the control of the slave,  to
  2715. allow it time to process the incoming data as necessary.  As with  any
  2716. standard, it can not be assumed that a device adheres to it unless the
  2717. accompanying documentation specifically indicates it. Even then, it is
  2718. best to check its conformity with non-critical data.
  2719.  
  2720. 2) SPEC: SAMPLE DUMP FORMATS
  2721.  
  2722.      DUMP HEADER:
  2723.  
  2724. F0 7E cc 01 ss ss ee ff ff ff gg gg gg hh hh hh ii ii ii jj F7
  2725.  
  2726. where
  2727.  
  2728. cc       =     channel number
  2729. ss ss    =     sample number (LSB first)
  2730. ee       =     sample format (number of significant bits; 8->28)
  2731. ff ff ff =     sample period (1/sample rate) in nanoseconds (LSB first)
  2732. gg gg gg =     sample length, in words
  2733. hh hh hh =     sustain loop start point (word number) (LSB first)
  2734. ii ii ii =     sustain loop end point (word number) (LSB first)
  2735. jj       =     loop type (00:forwards only; 01:alternating)
  2736.  
  2737.      DATA PACKET:
  2738.  
  2739. F0 7E cc 02 kk <120 bytes> mm F7
  2740.  
  2741. where
  2742.  
  2743. cc       =     channel number
  2744. kk       =     running packet count (00->7F)
  2745. mm       =     checksum (XOR of 7E, cc, 02, kk <120 bytes>)
  2746.  
  2747.      The  total  size of a data packet is 127 bytes.  This is to avoid
  2748. overflow of the MIDI input buffer of a device that may want to receive
  2749. an entire packet before processing it.
  2750.      A data packet consists of its own header,  a packet  number,  120
  2751. bytes of data, a checksum, and an EOX.  The packet number begins at 00
  2752. and increments with each new packet.  It resets to 00 after it reaches
  2753. 7F, and continues counting.  The packet number is used by the receiver
  2754. to distinguish between a new data packet,  or a resend of  a  previous
  2755. packet. The packet number is followed by 120 bytes of data, which form
  2756. 60,  40,  or 30 words (MSB first for multiword samples),  depending on
  2757. the length of a single data sample.
  2758.      Each data byte hold seven bits,  with the msb in each byte set to
  2759. 0,  in order to conform to the requirements of MIDI data transmission.
  2760. Information is left justified within the 7-bit bytes,  and unused bits
  2761. are filled with 0.
  2762.      Example:  Assume  a data point in the memory of a 16-bit sampler,
  2763. with the value 87E5. In binary, that would be
  2764.  
  2765.                           1000 0111 1110 0101
  2766.  
  2767. and would be encoded as the following MIDI data stream:
  2768.  
  2769.                       01000011 01111001 00100000
  2770.  
  2771.      The checksum is the running XOR of all the data after  the  SYSEX
  2772. byte, up to but not including the checksum itself.
  2773.  
  2774. 3) SPEC: SAMPLE DUMP MESSAGES
  2775.  
  2776.      DUMP REQUEST:
  2777.  
  2778. F0 7E cc 03 ss ss F7
  2779.  
  2780. where
  2781.  
  2782. cc       =     channel number
  2783. ss ss    =     sample number requested (LSB first)
  2784.  
  2785.      Upon receiving the request,  the sampler checks the sample number
  2786. to see if it is within legal range.  If it  is  not,  the  request  is
  2787. ignored. If it is, the sample dump is started. One packet at a time is
  2788. sent, under control of the handshaking messages outlined below.
  2789.  
  2790.      HANDSHAKING MESSAGES:
  2791.  
  2792.      For all below:
  2793.  
  2794. cc       =     channel number
  2795. pp       =     packet number
  2796.  
  2797.      Packet  numbers  are  included  in  the  handshaking  messages to
  2798. accomodate machines that have the intelligence to re-transmit specific
  2799. packets after an entire dump is finished,  or  if  synchronization  is
  2800. lost.
  2801.  
  2802.      ACK :     F0 7E cc 7F pp F7
  2803.  
  2804.      Means  last  packet  was  recieved correctly (checksum OK,  etc),
  2805. please send next one.  Packet number is packet being  acknowledged  as
  2806. correct.
  2807.  
  2808.      NAK :     F0 7E cc 7E pp F7
  2809.  
  2810.      Means  last  packet  not  received correctly,  please send again.
  2811. Packet number is packet being rejected.
  2812.  
  2813.      CANCEL :  F0 7E cc 7D pp F7
  2814.  
  2815.      Means abort dump immediately.  Packet number is packet  on  which
  2816. abort occurs.
  2817.  
  2818.      WAIT   :  F0 7E cc 7C pp F7
  2819.  
  2820.      Means pause dump indefinitely, until next message is sent. Allows
  2821. the  unit  recieving the dump to perform other functions (disk access,
  2822. etc), before receiving the remainder of the dump.  The next message it
  2823. sends (eg ACK, ABORT) will determine if the dump continues or aborts.
  2824.  
  2825. 4) DUMP PROCEDURE: MASTER (DUMP SOURCE)
  2826.  
  2827.      Once  a  dump has been requested,  either via MIDI or through the
  2828. front panel,  the DUMP HEADER is sent.  After sending the header,  the
  2829. master  must time out for at least two seconds,  to allow the receiver
  2830. to decide if it will accept this sample (has enough memory, etc).
  2831.      If it receives a  CANCEL,  within  this  time,  it  should  abort
  2832. immediately.  If  it  receives  an CAK,  it will start sending packets
  2833. immediately. If it receives a WAIT, it pauses until another message is
  2834. received,  and then processes that  mesage  normally.  If  nothing  is
  2835. recieved  within  the timeout,  an open loop is assumed,  and the dump
  2836. starts with the first packet.
  2837.      After sending each packet,  the master should  time  out  for  at
  2838. least 20 milliseconds and watch its MIDI In. If an ACK is received, it
  2839. sends  the  next  packet immediately.  If it receives an NAK,  and the
  2840. packet number matches the number of the last packet  sent,  it  resend
  2841. that  packet  If  the  packet  numbers don't match,  and the device is
  2842. incapable of sending packets out of order, the NAK will be ignored.
  2843.      If a WAIT is received,  the master should watch its MIDI In  port
  2844. indefinitely for another ACK,  NAK, or CANCEL message, which it should
  2845. then process normally.
  2846.      If no  messages  are  received  within  20  milliseconds  of  the
  2847. transmission  of  a  packet,  the  master  may  assume  an  open  loop
  2848. configuration, and send the next packet.
  2849.      This process continues until there are less than 121  data  bytes
  2850. to send. The final packet will still consist of 120n bytes, regardless
  2851. of  how  many significant bytes actually remain,  and the unused bytes
  2852. will be filled  with  zeroes.  The  receiver  should  handshake  after
  2853. receiving the last packet.
  2854.  
  2855. 5) DUMP PROCEDURE: SLAVE (DUMP DESTINATION)
  2856.  
  2857.      When  receiving  a  sample  dump,  a device should keep a running
  2858. checksum during reception. If its checksum matches the checksum in the
  2859. data packet,  it will send an ACK and wait for the next packet.  If it
  2860. does  not  match,  it  will  send  an NAK containing the number of the
  2861. packet that caused the error, and wait for the next packet.  If, after
  2862. sending an NAK, the packet number of the next packet doesn't match the
  2863. previous  packet number (the one that was NAK'd),  and the unit is not
  2864. capable of accepting packets out of order,  the error is  ignored  and
  2865. the dump continues as if the checksums had matched.
  2866.      If  a  receiver runs out of memory before the dumpo is completed,
  2867. it should send a CANCEL to stop the dump.
  2868.  
  2869. 6) SDS OVERVIEW
  2870.  
  2871.      SAMPLE DUMP DATA FORMAT: DUMP HEADER:
  2872.  
  2873.      Sysex
  2874.          ID: Universal Non-Real Time
  2875.          Channel Number
  2876.          Sub ID: Header
  2877.          Sample Number (2 bytes, LSB first)
  2878.          Sample Format
  2879.          Sample Period (3 bytes, LSB first)
  2880.          Sample Length (3 bytes, LSB first)
  2881.          Sustain Loop Start Point (3 bytes, LSB first)
  2882.          Sustain Loop End Point (3 bytes, LSB first)
  2883.          Loop Type
  2884.      Eox
  2885.  
  2886.      SAMPLE DUMP DATA FORMAT: DATA PACKET:
  2887.  
  2888.      Sysex
  2889.          ID: Universal Non-Real Time
  2890.          Channel Number
  2891.          Sub ID: Data Packet
  2892.          Packet Number
  2893.          Sample Data (120 bytes)
  2894.          Checksum
  2895.      Eox
  2896.  
  2897.      SAMPLE DUMP MESSAGES: DUMP REQUEST:
  2898.  
  2899.      Sysex
  2900.          ID: Universal Non-Real Time
  2901.          Channel Number
  2902.          Sub ID: Dump Request
  2903.          Sample Number (2 bytes, LSB first)
  2904.      Eox
  2905.  
  2906.      SAMPLE DUMP MESSAGES: HANDSHAKING FLAGS:
  2907.  
  2908.      Sysex
  2909.          ID: Universal Non-Real Time
  2910.          Channel Number
  2911.          Sub ID: ACK or NAK or CANCEL or WAIT
  2912.          Packet Number
  2913.      Eox
  2914.  
  2915. *******************************************************************************
  2916.  
  2917. Frage: Wie ist der MIDI Time Code aufgebaut?
  2918.  
  2919. Antwort:
  2920.  
  2921. Detailed Specification
  2922. (Supplement to MIDI 1.0)
  2923. 12 February 1987
  2924.  
  2925. Justification For  MIDI Time Code and Cueing
  2926. --------------------------------------------
  2927.  
  2928.      The merit of implementing the MIDI Time Code proposal within the current
  2929. MIDI specification is as follows:
  2930.  
  2931.      SMPTE has become the de facto  timing reference standard in the
  2932. professional audio world and in almost the entire video world.  SMPTE is also
  2933. seeing more and more use in the semi-professional audio area.  We hope to
  2934. combine this universal timing reference, SMPTE, with the de facto  standard
  2935. for controlling musical equipment, MIDI.
  2936.  
  2937.      Encoding SMPTE over MIDI allows a person to work with one timing
  2938. reference throughout the entire system.  For example, studio engineers are
  2939. more familiar with the idea of telling a multitrack recorder to punch in and
  2940. out of record mode at specific SMPTE times, as opposed to a specific beat in a
  2941. specific bar.  To force a musician or studio engineer to convert back and
  2942. forth between a SMPTE time and a specific bar number is tedious and should not
  2943. be necessary (one would have to take into account tempo and tempo changes,
  2944. etc.).
  2945.  
  2946.      Also, some operations are referenced only as SMPTE times, as opposed to
  2947. beats in a bar.  For example, creating audio and sound effects for video
  2948. requires that certain sounds and sequences be played at specific SMPTE times.
  2949. There is no other easy way to do this with Song Position Pointers, etc., and
  2950. even if there was, it would be an unnatural way for a video or recording
  2951. engineer to work.
  2952.  
  2953.      MIDI Time Code is an absolute timing reference, whereas MIDI Clock and
  2954. Song Position Pointer are relative timing references.  In virtually all audio
  2955. for film/video work, SMPTE is already being used as the main time base, and
  2956. any musical passages which need to be recorded are usually done by getting a
  2957. MIDI-based sequencer to start at a pre-determined SMPTE time code.  In most
  2958. cases, though, it is SMPTE which is the Master timing reference being used.
  2959. In order for MIDI-based devices to operate on an absolute time code which is
  2960. independent of tempo, MIDI Time Code must be used. Existing devices merely
  2961. translate SMPTE into MIDI Clocks and Song Position Pointers based upon a given
  2962. tempo.  This is not absolute time, but relative time, and all of the SMPTE cue
  2963. points will change if the tempo changes.  The majority of sound effects work
  2964. for film and video does not involve musical passages with tempos, rather it
  2965. involves individual sound effect "events" which must occur at specific,
  2966. absolute times, not relative to any "tempo".
  2967.  
  2968.  
  2969. MIDI Time Code System Components
  2970.  
  2971.  
  2972. SMPTE to MTC Converter
  2973.  
  2974.      This box would either convert longitudinal (audio-type) or vertical
  2975. (video-type) SMPTE time code from a master timing device into MTC. The
  2976. function could be integrated into video tape recorders (VTRs) or
  2977. syncronization units that control audio tape recorders (ATRs). Alternately, a
  2978. stand-alone box would do the conversion, or simply generate MTC directly.
  2979. Note that conversion from MTC to SMPTE time code is not envisioned, as it is
  2980. of little practical value.
  2981.  
  2982.  
  2983. Cue List Manager
  2984.  
  2985.      This would be a device or computer program that would maintain a cue list
  2986. of desired events, and send the list to the slaves. For performance, the
  2987. manager might pass the Time Code from the SMPTE-MTC converter through to the
  2988. slaves, or, in a stand-alone system it might generate Time Code itself. This
  2989. "central controller" would presumably also contain all library functions for
  2990. downloading sound programs, samples, sequences, patterns, and so on, to the
  2991. slaves. A Cue List Manager would pre-load intelligent MTC peripherals (see
  2992. below) with this data.
  2993.  
  2994.  
  2995. MTC Sequencer
  2996.  
  2997.      To control existing equipment or any device which does not recognize MTC
  2998. in an MTC system, this device would be needed. It would receive the cue list
  2999. from the manager, and convert the cues into normal MIDI commands.   At the
  3000. specified SMPTE times, the sequencer would then send the MIDI commands to the
  3001. specific devices. For example, for existing MIDI equipment it might provide
  3002. MIDI messages such as Note On, Note Off, Song Select, Start, Stop, Program
  3003. Changes, etc. Non-MIDI equipment (such as CD players, mixing consoles,
  3004. lighting, sound effects cartridge units and ATRs) may also be controlled if
  3005. such a device had relay controls.
  3006.  
  3007.  
  3008. Intelligent MTC Peripheral
  3009.  
  3010.      In this category belong devices capable of receiving an MTC Cue List from
  3011. the manager, and triggering themselves appropriately when the correct Time
  3012. Code (SMPTE or MIDI) has been received.  Above this minimum, the device might
  3013. be able to change its programming in response to the Cue List, or prepare
  3014. itself for ensuing events.
  3015.  
  3016.      For example, an intelligent MTC-equipped analog multitrack tape machine
  3017. might read in a list of punch in/punch out cues from the Cue List Manager, and
  3018. then alter then to internally compensate for its bias current rise and fall
  3019. times. A sampling-based sound effects device might preload samples from its
  3020. own disk drive into a RAM buffer, in anticipation of needing them for cues
  3021. later on in the cue list.
  3022.  
  3023.      It should be mentioned that while these functions are separately
  3024. described, actual devices may incorporate a mixture of these functions, suited
  3025. to specific applications in their market.
  3026.  
  3027.  
  3028. A MIDI Time Code System
  3029.  
  3030.      The MIDI Time Code format contains two parts: Time Code and Set Up. Time
  3031. Code is relatively straightforward: hours, minutes, seconds and frame numbers
  3032. (approximately 1/30 of a second) are encoded and distributed throughout the
  3033. MIDI system so that all the units know exactly what time it is.
  3034.  
  3035.      Set Up, however, is where MTC gains its power. It is a format for
  3036. informing MIDI devices of events to be performed at specific times.
  3037. Ultimately, this aspect of MTC will lead to the creation of an entirely new
  3038. class of production equipment. Before getting into the nuts and bolts of the
  3039. spec itself, let's talk about some of the uses and features of forthcoming
  3040. devices that have been envisioned.
  3041.  
  3042.      Set Up begins with the concept of a cue list. In video editing, for
  3043. example, it is customary to transfer the video master source tapes, which may
  3044. be on expensive, two-inch recorders, to less-expensive recorders. The editing
  3045. team then works over this copy, making a list of all the segments that they
  3046. want to piece together as they are defined by their SMPTE times.
  3047.  
  3048.      For example, the first scene starts at time A and ends at time B, the
  3049. next scene starts at time C and ends at time D. A third scene may even lie
  3050. between the first two. When done, they feed this cue list time information
  3051. into the editing system of the master recorder(s) or just give the cue list to
  3052. an editor who does the work manually. The editing system or editor then
  3053. locates the desired segments and assembles them in the proper sequence.
  3054.  
  3055.  
  3056.      Now suppose that instead of one or two video recorders, we have twenty
  3057. devices that will play a part in our audio/video or film production:  special
  3058. effects generators for fades and superimpositions, additional decks with
  3059. background scenery, live cameras, MIDI sequencers, drum machines,
  3060. synthesizers, samplers, DDLs, soundtrack decks, CDs, effects devices, and so
  3061. on. As it stands now, each of these devices must be handled more or less
  3062. separately, with painstaking and time-consuming assembly editing or multitrack
  3063. overdubs. And when a change in the program occurs (which always happens),
  3064. anywhere from just a few items to the whole system may need to be reprogrammed
  3065. by hand.
  3066.  
  3067.  
  3068.      This is where MIDI Time Code comes in. It can potentially control all of
  3069. these individual production elements so that they function together from a
  3070. single cue list. The master controller which would handle this function is
  3071. described as a Cue List Manager. On such a console, you would list what you
  3072. want each device to do, and when to do it. The manager would then send the cue
  3073. list to the various machines via the MTC Set Up protocol. Each unit would then
  3074. react as programmed when the designated MIDI Time Code (or conventional SMPTE
  3075. Time Code) appears. Changes? No problem. Simply edit the cue list using simple
  3076. word-processing functions, then run the tape again.
  3077.  
  3078.  
  3079.      MTC thus integrates into a manageable system all of the diverse tools at
  3080. our disposal. It would drastically reduce the time, money and frustration
  3081. needed to produce a film or video.
  3082.  
  3083.  
  3084.      Having covered the basic aspects of a MIDI Time Code system, as well as
  3085. examples of how an overall system might function, we will now take a look at
  3086. the actual MIDI specification itself.
  3087.  
  3088.  
  3089. MIDI Time Code
  3090.  
  3091.  
  3092.      For device synchronization, MIDI Time Code uses two basic types of
  3093. messages, described as Quarter Frame and Full. There is also a third, optional
  3094. message for encoding SMPTE user bits.
  3095.  
  3096.  
  3097. Quarter Frame Messages
  3098.  
  3099.  
  3100.      Quarter Frame messages are used only while the system is running. They
  3101. are rather like the PPQN or MIDI clocks to which we are accustomed. But there
  3102. are several important ways in which Quarter Frame messages differ from the
  3103. other systems.
  3104.  
  3105.  
  3106.      As their name implies, they have fine resolution. If we assume 30 frames
  3107. per second, there will be 120 Quarter Frame messages per second. This
  3108. corresponds to a maximum latency  of 8.3 milliseconds (at 30 frames per
  3109. second), with accuracy greater than this possible within the specific device
  3110. (which may interpolate inbetween quarter frames to "bit" resolution).  Quarter
  3111. Frame messages serve a dual purpose: besides providing the basic timing pulse
  3112. for the system, each message contains a unique nibble (four bits) defining a
  3113. digit of a specific field of the current SMPTE time.
  3114.  
  3115.  
  3116.      Quarter frames messages should be thought of as groups of eight messages.
  3117. One of these groups encodes the SMPTE time in hours, minutes, seconds, and
  3118. frames. Since it takes eight quarter frames for a complete time code message,
  3119. the complete SMPTE time is updated every two frames.  Each quarter frame
  3120. message contains two bytes. The first byte is F1,  the Quarter Frame System
  3121. Common byte. The second byte contains a nibble that represents the message
  3122. number (0 through 7), and a nibble for one of the digits of a time field
  3123. (hours, minutes, seconds or frames).
  3124.  
  3125.  
  3126. Quarter Frame Messages (2 bytes):
  3127.  
  3128.  
  3129.      F1  <message>
  3130.  
  3131.  
  3132.           F1 = Currently unused and undefined System Common status byte
  3133.  
  3134.           <message> = 0nnn dddd
  3135.  
  3136.  
  3137.                dddd = 4 bits of binary data for this Message Type
  3138.  
  3139.                nnn =  Message Type:
  3140.  
  3141.                     0 = Frame count LS nibble
  3142.  
  3143.                     1 = Frame count MS nibble
  3144.  
  3145.                     2 = Seconds count LS nibble
  3146.  
  3147.                     3 = Seconds count MS nibble
  3148.  
  3149.                     4 = Minutes count LS nibble
  3150.  
  3151.                     5 = Minutes count MS nibble
  3152.  
  3153.                     6 = Hours count LS nibble
  3154.  
  3155.                     7 = Hours count MS nibble and SMPTE Type
  3156.  
  3157.  
  3158.      After both the MS nibble and the LS nibble of the above counts are
  3159. assembled, their bit fields are assigned as follows:
  3160.  
  3161.  
  3162. FRAME COUNT:  xxx yyyyy
  3163.  
  3164.  
  3165.                xxx = undefined and reserved for future use.  Transmitter
  3166.  
  3167.                     must set these bits to 0 and receiver should ignore!
  3168.  
  3169.                yyyyy = Frame number (0-29)
  3170.  
  3171.  
  3172. SECONDS COUNT:  xx yyyyyy
  3173.  
  3174.  
  3175.                xx = undefined and reserved for future use.  Transmitter
  3176.  
  3177.                      must set these bits to 0 and receiver should ignore!
  3178.  
  3179.                yyyyyy = Seconds Count  (0-59)
  3180.  
  3181.  
  3182. MINUTES COUNT:  xx yyyyyy
  3183.  
  3184.  
  3185.                xx = undefined and reserved for future use.  Transmitter
  3186.  
  3187.                      must set these bits to 0 and receiver should ignore!
  3188.  
  3189.                yyyyyy = Minutes Count  (0-59)
  3190.  
  3191.  
  3192. HOURS COUNT:  x yy zzzzz
  3193.  
  3194.  
  3195.                x = undefined and reserved for future use.  Transmitter
  3196.  
  3197.                      must set this bit to 0 and receiver should ignore!
  3198.  
  3199.  
  3200.                yy = Time Code Type:
  3201.  
  3202.                     0 = 24 Frames/Second
  3203.  
  3204.                     1 = 25 Frames/Second
  3205.  
  3206.                     2 = 30 Frames/Second (Drop-Frame)
  3207.  
  3208.                     3 = 30 Frames/Second (Non-Drop)
  3209.  
  3210.  
  3211.                zzzzz = Hours Count  (0-23)
  3212.  
  3213.  
  3214.  
  3215.      When time code is running in the forward direction, the device producing
  3216. the MIDI Time Code will send Quarter Frame messages at quarter frame intervals
  3217. in the following order:
  3218.  
  3219.  
  3220.                     F1 0X
  3221.  
  3222.                     F1 1X
  3223.  
  3224.                     F1 2X
  3225.  
  3226.                     F1 3X
  3227.  
  3228.                     F1 4X
  3229.  
  3230.                     F1 5X
  3231.  
  3232.                     F1 6X
  3233.  
  3234.                     F1 7X
  3235.  
  3236.  
  3237. after which the sequence repeats itself, at a rate of one complete 8-message
  3238. sequence every 2 frames (8 quarter frames).  When time code is running in
  3239. reverse, the quarter frame messages are sent in reverse order, starting with
  3240. F1 7X and ending with F1 0X.  Again, at least 8 quarter frame messages must be
  3241. sent.  The arrival of the F1 0X and F1 4X messages always denote frame
  3242. boundaries.
  3243.  
  3244.  
  3245.      Since 8 quarter frame messages are required to definitely establish the
  3246. actual SMPTE time, timing lock cannot be achieved until the reader has read a
  3247. full sequence of 8 messages, from first message to last.  This will take from
  3248. 2 to 4 frames to do, depending on when the reader comes on line.
  3249.  
  3250.  
  3251.      During fast forward, rewind or shuttle modes, the time code generator
  3252. should stop sending quarter frame messages, and just send a Full Message once
  3253. the final destination has been reached.  The generator can then pause for any
  3254. devices to shuttle to that point, and resume by sending quarter frame messages
  3255. when play mode is resumed.  Time is considered to be "running" upon receipt of
  3256. the first quarter frame message after a Full Message.
  3257.  
  3258.  
  3259.      Do not send quarter frame messages continuously in a shuttle mode at high
  3260. speed, since this unnecessarily clogs the MIDI data lines.  If you must
  3261. periodically update a device's time code during a long shuttle, then send a
  3262. Full Message every so often.
  3263.  
  3264.  
  3265.      The quarter frame message F1 0X (Frame Count LS nibble) must be sent on a
  3266. frame boundary.  The frame number indicated by the frame count is the number
  3267. of the frame which starts on that boundary.  This follows the same convention
  3268. as normal SMPTE longitudinal time code, where bit 00 of the 80-bit message
  3269. arrives at the precise time that the frame it represents is actually starting.
  3270. The SMPTE time will be incremented by 2 frames for each 8-message sequence,
  3271. since an 8-message sequence will take 2 frames to send.
  3272.  
  3273.  
  3274.      Another way to look at it is:  When the last quarter frame message (F1
  3275. 7X) arrives and the time can be fully assembled, the information is now
  3276. actually 2 frames old.  A receiver of this time must keep an internal offset
  3277. of +2 frames for displaying. This may seem unusual, but it is the way normal
  3278. SMPTE is received and also makes backing up (running time code backwards) less
  3279. confusing - when receiving the 8 quarter frame messages backwards, the F1 0X
  3280. message still falls on the boundary of the frame it represents.
  3281.  
  3282.  
  3283.      Each quarter frame message number (0->7) indicates which of the 8 quarter
  3284. frames of the 2-frame sequence we are on.  For example, message 0 (F1 0X)
  3285. indicates quarter frame 0 of frame #1 in the sequence, and message 4 (F1 4X)
  3286. indicates quarter frame 1 of frame #2 in the sequence.  If a reader receives
  3287. these message numbers in descending sequence, then it knows that time code is
  3288. being sent in the reverse direction.  Also, a reader can come on line at any
  3289. time and know exactly where it is in relation to the 2-frame sequence, down to
  3290. a quarter frame accuracy.
  3291.  
  3292.  
  3293.      It is the responsibility of the time code reader to insure that MTC is
  3294. being properly interpreted.  This requires waiting a sufficient amount of time
  3295. in order to achieve time code lock, and maintaining that lock until
  3296. synchronization is dropped. Although each passing quarter frame message could
  3297. be interpreted as a relative quarter frame count, the time code reader should
  3298. always verify the actual complete time code after every 8-message sequence (2
  3299. frames) in order to guarantee a proper lock.
  3300.  
  3301.  
  3302.      For example, let's assume the time is 01:37:52:16 (30 frames per second,
  3303. non-drop).  Since the time is sent from least to most significant digit, the
  3304. first two Quarter Frame messages will contain the data 16 (frames), the second
  3305. two will contain the data 52 (seconds), the third two will represent 37
  3306. (minutes), and the final two encode the 1 (hours and SMPTE Type).  The Quarter
  3307. Frame Messages description defines how the binary data for each time field is
  3308. spread across two nibbles. This scheme (as opposed to simple BCD) leaves some
  3309. extra bits for encoding the SMPTE type (and for future use).
  3310.  
  3311.  
  3312.      Now, let's convert our example time of 01:37:52:16 into Quarter Frame
  3313. format, putting in the correct hexadecimal conversions:
  3314.  
  3315.  
  3316.      F1 00
  3317.  
  3318.      F1 11     10H = 16 decimal
  3319.  
  3320.  
  3321.      F1 24
  3322.  
  3323.      F1 33     34H = 52 decimal
  3324.  
  3325.  
  3326.      F1 45
  3327.  
  3328.      F1 52     25H = 37 decimal
  3329.  
  3330.  
  3331.      F1 61
  3332.  
  3333.      F1 76     01H = 01 decimal (SMPTE Type is 30 frames/non-drop)
  3334.  
  3335.  
  3336.      (note:  the value transmitted is "6" because the SMPTE Type (11 binary) is
  3337. encoded in bits 5 and 6)
  3338.  
  3339.  
  3340.      For SMPTE Types of 24, 30 drop frame, and 30 non-drop frame, the frame
  3341. number will always be even.  For SMPTE Type of 25, the frame number may be
  3342. even or odd, depending on which frame number the 8-message sequence had
  3343. started.  In this case, you can see where the MIDI Time Code frame number
  3344. would alternate between even and odd every second.
  3345.  
  3346.  
  3347.      MIDI Time Code will take a very small percentage of the MIDI bandwidth.
  3348. The fastest SMPTE time rate is 30 frames per second.  The specification is to
  3349. send 4 messages per frame - in other words, a 2-byte message (640
  3350. microseconds) every 8.333 milliseconds.  This takes 7.68 % of the MIDI
  3351. bandwidth - a reasonably small amount.  Also, in the typical MIDI Time Code
  3352. systems we have imagined, it would be rare that normal MIDI and MIDI Time Code
  3353. would share the same MIDI bus at the same time.
  3354.  
  3355.  
  3356. Full Message
  3357.  
  3358.  
  3359.      Quarter Frame messages handle the basic running work of the system. But
  3360. they are not suitable for use when equipment needs to be fast-forwarded or
  3361. rewound, located or cued to a specific time, as sending them continuously at
  3362. accelerated speeds would unnecessarily clog up or outrun the MIDI data lines.
  3363. For these cases, Full Messages are used, which encode the complete time into a
  3364. single message. After sending a Full Message, the time code generator can
  3365. pause for any mechanical devices to shuttle (or "autolocate") to that point,
  3366. and then resume running by sending quarter frame messages.
  3367.  
  3368.  
  3369. Full Message - (10 bytes)
  3370.  
  3371.  
  3372.      F0 7F <chan> 01 <sub-ID 2> hr mn sc fr F7
  3373.  
  3374.  
  3375.           F0 7F = Real Time Universal System Exclusive Header
  3376.  
  3377.           <chan> = 7F (message intended for entire system)
  3378.  
  3379.           01 = <sub-ID 1>, 'MIDI Time Code'
  3380.  
  3381.           <sub-ID 2> = 01, Full Time Code Message
  3382.  
  3383.           hr = hours and type: 0 yy zzzzz
  3384.  
  3385.                yy = type:
  3386.  
  3387.                     00 = 24 Frames/Second
  3388.  
  3389.                     01 = 25 Frames/Second
  3390.  
  3391.                     10 = 30 Frames/Second (drop frame)
  3392.  
  3393.                     11 = 30 Frames/Second (non-drop frame)
  3394.  
  3395.                zzzzz = Hours (00->23)
  3396.  
  3397.           mn = Minutes (00->59)
  3398.  
  3399.           sc = Seconds (00->59)
  3400.  
  3401.           fr = Frames (00->29)
  3402.  
  3403.           F7 = EOX
  3404.  
  3405.  
  3406.       Time is considered to be "running" upon receipt of the first Quarter
  3407. Frame message after a Full Message.
  3408.  
  3409.  
  3410. User Bits
  3411.  
  3412.  
  3413.      "User Bits" are 32 bits provided by SMPTE for special functions which
  3414. vary with the application, and which can be programmed only from equipment
  3415. especially designed for this purpose. Up to four characters or eight digits
  3416. can be written. Examples of use are adding a date code or reel number to the
  3417. tape.  The User Bits tend not to change throughout a run of time code.
  3418.  
  3419.  
  3420. User Bits Message - (15 bytes)
  3421.  
  3422.  
  3423.      F0 7F <chan> 01 <sub-ID 2> u1 u2 u3 u4 u5 u6 u7 u8 u9 F7
  3424.  
  3425.  
  3426.           F0 7F = Real Time Universal System Exclusive Header
  3427.  
  3428.           <chan> = 7F (message intended for entire system)
  3429.  
  3430.           01 = <sub-ID 1>, MIDI TIme Code
  3431.  
  3432.           <sub-id 2> = 02, User Bits Message
  3433.  
  3434.           u1 = 0000aaaa
  3435.  
  3436.           u2 = 0000bbbb
  3437.  
  3438.           u3 = 0000cccc
  3439.  
  3440.           u4 = 0000dddd
  3441.  
  3442.           u5 = 0000eeee
  3443.  
  3444.           u6 = 0000ffff
  3445.  
  3446.           u7 = 0000gggg
  3447.  
  3448.           u8 = 0000hhhh
  3449.  
  3450.           u9 = 000000ii
  3451.  
  3452.           F7 = EOX
  3453.  
  3454.  
  3455.      These nibble fields decode in an 8-bit format:  aaaabbbb ccccdddd
  3456. eeeeffff gggghhhh ii.  It forms 4  8-bit characters,  and a 2 bit Format Code.
  3457. u1 through u8 correspond to SMPTE Binary Groups 1 through 8.  u9 are the two
  3458. Binary Group Flag Bits, as defined by SMPTE.
  3459.  
  3460.  
  3461.      This message can be sent whenever the User Bits values must be
  3462. transferred to any devices down the line.  Note that the User Bits Message may
  3463. be sent by the MIDI Time Code Converter at any time.  It is not sensitive to
  3464. any mode.
  3465.  
  3466.  
  3467.      MIDI Cueing uses Set-Up Messages to address individual units in a system.
  3468. (A "unit" can be be a multitrack tape deck, a VTR, a special effects
  3469. generator, MIDI sequencer, etc.)
  3470.  
  3471.  
  3472.      Of 128 possible event types, 19 are currently defined.
  3473.  
  3474.  
  3475. Set-Up Messages (13 bytes plus any additional information):
  3476.  
  3477.  
  3478.      F0 7E <chan> 04 <sub-ID 2> hr mn sc fr ff sl sm <add. info> F7
  3479.  
  3480.  
  3481.           F0 7E = Non-Real Time Universal System Exclusive Header
  3482.  
  3483.           <chan> = Channel number
  3484.           04 = <sub-ID 1>, MIDI Time Code
  3485.  
  3486.           <sub-ID 2> = Set-Up Type
  3487.                00 = Special
  3488.                01 = Punch In points
  3489.                02 = Punch Out points
  3490.                03 = Delete Punch In point
  3491.                04 = Delete Punch Out point
  3492.                05 = Event Start points
  3493.                06 = Event Stop points
  3494.                07 = Event Start points with additional info.
  3495.                08 = Event Stop points with additional info.
  3496.                09 = Delete Event Start point
  3497.                0A = Delete Event Stop point
  3498.                0B = Cue points
  3499.                0C = Cue points with additional info
  3500.                0D = Delete Cue point
  3501.                0E = Event Name in additional info
  3502.  
  3503.           hr = hours and type: 0 yy zzzzz
  3504.  
  3505.                yy = type:
  3506.                     00 = 24 Frames/Second
  3507.                     01 = 25 Frames/Second
  3508.                     10 = 30 Frames/Second drop frame
  3509.                     11 = 30 Frames/Second non-drop frame
  3510.                zzzzz = Hours (00-23)
  3511.  
  3512.           mn = Minutes (00-59)
  3513.  
  3514.           sc = Seconds (00-59)
  3515.  
  3516.           fr = Frames (00-29)
  3517.  
  3518.           ff = Fractional Frames (00-99)
  3519.  
  3520.           sl, sm = Event Number (LSB first)
  3521.  
  3522.           <add. info.>
  3523.  
  3524.           F7 = EOX
  3525.  
  3526.  
  3527. Description of Set-Up Types:
  3528.  
  3529.  
  3530.      00          Special refers to the set-up information that affects a unit
  3531.                  globally (as opposed to individual tracks, sounds, programs,
  3532.                  sequences, etc.). In this case, the Special Type takes the
  3533.                  place of the Event Number. Five are defined.  Note that types
  3534.                  01 00 through 04 00 ignore the event time field.
  3535.  
  3536.  
  3537.           00 00     Time Code Offset refers to a relative Time Code offset for
  3538. each unit. For example, a piece of video and a piece of music that are
  3539. supposed to go together may be created at different times, and more than
  3540. likely have different absolute time code positions - therefore, one must be
  3541. offset from the other so that they will match up. Just like there is one
  3542. master time code for an entire system, each unit only
  3543. needs one offset value per unit.
  3544.  
  3545.  
  3546.           01 00     Enable Event List means for a unit to enable execution of
  3547. events in its list if the appropriate MTC or SMPTE time occurs.
  3548.  
  3549.  
  3550.           02 00     Disable Event List means for a unit to disable execution
  3551. of its event list but not to erase it. This facilitates an MTC Event Manager
  3552. in muting particular devices in order to concentrate on others in a complex
  3553. system where many events occur simultaneously.
  3554.  
  3555.  
  3556.           03 00     Clear Event List means for a unit to erase its entire
  3557. event list.
  3558.  
  3559.  
  3560.           04 00     System Stop refers to a time when the unit may shut down.
  3561. This serves as a protection against Event Starts without matching Event Stops,
  3562. tape machines running past the end of the reel, and so on.
  3563.  
  3564.  
  3565.           05 00     Event List Request is sent by a master to an MTC
  3566. peripheral. If the device ID (Channel Number) matches that of the peripheral,
  3567. the peripheral responds by transmitting its entire cue list as a sequence of
  3568. Set Up Messages, starting from the SMPTE time indicated in the Event List
  3569. Request message.
  3570.  
  3571.  
  3572.      01/02     Punch In and Punch Out refer to the enabling and disabling of
  3573. record mode on a unit. The Event Number refers to the track to be recorded.
  3574. Multiple punch in/punch out points (and any of the other event types below)
  3575. may be specified by sending multiple Set-Up messages with different times.
  3576.  
  3577.  
  3578.      03/04     Delete Punch In or Out deletes the matching point (time and
  3579. event number) from the Cue List.
  3580.  
  3581.  
  3582.      05/06     Event Start and Stop refer to the running or playback of an
  3583. event, and imply that a large sequence of events or a continuous event is to
  3584. be started or stopped. The event number refers to which event on the targeted
  3585. slave is to be played. A single event (ie. playback of a specific sample, a
  3586. fader movement on an automated console, etc.) may occur several times
  3587. throughout a given list of cues.  These events will be represented by the same
  3588. event number, with different Start and Stop times.
  3589.  
  3590.  
  3591.      07/08     Event Start and Stop with Additional Information refer to an
  3592. event (as above) with additional parameters transmitted in the Set Up message
  3593. between the Time and EOX. The additional parameters may take the form of an
  3594. effects unit's internal parameters, the volume level of a sound effect, etc.
  3595. See below for a description of additional information.
  3596.  
  3597.  
  3598.      09/0A     Delete Event Start/Stop means to delete the matching (event
  3599. number and time) event (with or without additional information) from the Cue
  3600. List.
  3601.  
  3602.  
  3603.      0B          Cue Point refers to individual event occurences, such as
  3604. marking "hit" points for sound effects, reference points for editing, and so
  3605. on.  Each Cue number may be assigned to a specific reaction, such as a
  3606. specific one-shot sound event (as opposed to a continuous event, which is
  3607. handled by Start/Stop).  A single cue may occur several times throughout a
  3608. given list of cues.  These events will be represented by the same event
  3609. number, with different Start and Stop times.
  3610.  
  3611.  
  3612.      0C          Cue Point with Additional Information is exactly like Event
  3613. Start/Stop with Additional Information, except that the event represents a Cue
  3614. Point rather than a Start/Stop Point.
  3615.  
  3616.  
  3617.      0D          Delete Cue Point means to Delete the matching (event number
  3618. and time) Cue Event with or without additional information from the Cue List.
  3619.  
  3620.  
  3621.      0E          Event Name in Additional Information.  This merely assigns a
  3622. name to a given event number.  It is for human logging purposes.  See
  3623. Additional Information description.
  3624.  
  3625.  
  3626. Event Time
  3627.  
  3628.  
  3629.      This is the SMPTE/MIDI Time Code time at which the given event is
  3630. supposed to occur.  Actual time is in 1/100th frame resoultion, for those
  3631. units capable of handling bits or some other form of sub-frame resolution, and
  3632. should otherwise be self-explanatory.
  3633.  
  3634.  
  3635. Event Number
  3636.  
  3637.  
  3638.      This is a fourteen-bit value, enabling 16,384 of each of the above types
  3639. to be individually addressed. "sl" is the 7 LS bits, and "sm" is the 7 MS
  3640. bits.
  3641.  
  3642.  
  3643. Additional Information description
  3644.  
  3645.  
  3646.      Additional information consists of a nibblized MIDI data stream, LS
  3647. nibble first.  The exception is Set-Up Type OE, where the additional
  3648. information is nibblized ASCII, LS nibble first.  An ASCII newline is
  3649. accomplished by sending CR and LF in the ASCII. CR alone functions solely as a
  3650. carriage return, and LF alone functions solely as a Line-Feed.
  3651.  
  3652.  
  3653.      For example, a MIDI Note On message such as 91 46 7F would be nibblized
  3654. and sent as 01 09  06 04 0F 07.  In this way, any device can decode any
  3655. message regardless of who it was intended for.  Device-specific messages
  3656. should be sent as nibblized MIDI System Exclusive messages.
  3657.  
  3658.  
  3659. Potential Problems
  3660.  
  3661.  
  3662.      There is a possible problem with MIDI merger boxes improperly handling
  3663. the F1 message, since they do not currently know how many bytes  are
  3664. following. However, in typical MIDI Time Code systems, we do not anticipate
  3665. applications where the MIDI Time Code must be merged with other MIDI signals
  3666. occuring at the same time.
  3667.  
  3668.  
  3669.      Please note that there is plenty of room for additional set-up types,
  3670. etc., to cover unanticipated situations and configurations.
  3671.  
  3672.  
  3673.      It is recommended that each MTC peripheral power up with its MIDI
  3674. Manufacturer's System Exclusive ID number as its default channel/device ID.
  3675. Obviously, it would be preferable to allow the user to change this number from
  3676. the device's front panel, so that several peripherals from the same
  3677. manufacturer may have unique IDs within the same MTC system.
  3678.  
  3679.  
  3680. Signal Path Summary
  3681.  
  3682.  
  3683.      Data sent between the Master Time Code Source (which may be, for example,
  3684. a Multitrack Tape Deck with a SMPTE Synchronizer) and the MIDI Time Code
  3685. Converter is always SMPTE Time Code.
  3686.  
  3687.  
  3688.      Data sent from the MIDI Time Code Converter to the Master Control/Cue
  3689. Sheet (note that this may be a MTC-equipped tape deck or mixing console as
  3690. well as a cue-sheet) is always MIDI Time Code.  The specific MIDI Time Code
  3691. messages which are used depend on the current operating mode, as explained
  3692. below:
  3693.  
  3694.  
  3695.       Play Mode:  The Master Time Code Source (tape deck) is in normal PLAY
  3696.                   MODE at normal or vari-speed rates.  The MIDI Time Code
  3697.                   Converter is transmitting Quarter Frame ("F1") messages to
  3698.                   the Master Control/Cue Sheet.  The frame messages are in
  3699.                   ASCENDING order, starting with "F1 0X" and ending with "F1
  3700.                   7X". If the tape machine is capable of play mode in REVERSE,
  3701.                   then the frame messages will be transmitted in REVERSE
  3702.                   sequence, starting with "F1 7X" and ending with "F1 0X".
  3703.  
  3704.  
  3705.       Cue Mode:   The Master Time Code Source is being "rocked", or "cued" by
  3706.                   hand.  The  tape is still contacting the playback head so
  3707.                   that the listener can cue, or preview the    contents of the
  3708.                   tape slowly. The MIDI Time Code Converter is transmitting
  3709.                   FRAME ("F1") messages to the Master Control/Cue Sheet.  If
  3710.                   the tape is being played in the FORWARD direction, the frame
  3711.                   messages are sent in ASCENDING order, starting with "F1 0X"
  3712.                   and ending with "F1 7X". If the tape machine is played in
  3713.                   the REVERSE direction, then the frame messages will be
  3714.                   transmitted in REVERSE sequence, starting with "F1 7X" and
  3715.                   ending with "F1 0X".
  3716.  
  3717.  
  3718.                   Because the tape is being moved by hand in Cue Mode, the
  3719.                   tape direction can change quickly and often.  The order of
  3720.                   the Frame Message sequence must change along with the tape
  3721.                   direction.
  3722.  
  3723.  
  3724.        Fast-Forward/Rewind Mode:  In this mode, the tape is in a
  3725.                   high-speed wind or  rewind, and is not touching the playback
  3726.                   head.  No "cueing" of the taped material is going on.  Since
  3727.                   this is a "search" mode, synchronization of the Master
  3728.                   Control/Cue Sheet is not as important as in the Play or Cue
  3729.                   Mode.  Thus, in this mode, the MIDI Time Code Converter only
  3730.                   needs to send a "Full Message" every so often to the Cue
  3731.                   Sheet.  This acts as a rough indicator of the Master's
  3732.                   position.  The SMPTE time indicated by the "Full Message"
  3733.                   actually takes effect upon the reception of the next "F1"
  3734.                   quarter frame message (when "Play Mode" has resumed).
  3735.  
  3736.  
  3737.       Shuttle Mode:  This is just another expression for "Fast-Forward/Rewind
  3738.                   Mode".
  3739.  
  3740.  
  3741. References and Credits
  3742.  
  3743.  
  3744.      SMPTE 12M (ANSI V98.12M-1981).
  3745.  
  3746.  
  3747.      MIDI Time Code specification created by Chris Meyer and Evan Brooks of
  3748. Digidesign. Thanks to Stanley Jungleib of Sequential for additional text.
  3749. Also many thanks to all of the MMA and JMSC members for their suggestions and
  3750. contributions to the spec.
  3751.  
  3752.  
  3753. *********** Addition: MIDI bar numbers ********************
  3754.  
  3755.  
  3756. F0 7F <dev-id> ni 01 aa aa F7
  3757.  
  3758.   FO 7F     Universal real-time sys-ex header
  3759.   <dev-id>  ID of target device (default=7f=all)
  3760.   ni        sub ID #1 = Notation information (03)
  3761.   01        sub ID #2 = Bar Marker Message
  3762.   aa aa     bar number; LSB first
  3763.              [00 40] = not running
  3764.              [01 40] .. [00 00] = count in
  3765.              [01 00] .. [7E 3F] = bar number in song
  3766.   F7        End of sys-ex
  3767.  
  3768. A maximum neg number indicates not running
  3769. A maximum positive value indicates running (but no idea about bar number)
  3770.  
  3771.  
  3772. F0 7F <dev-id> ni ts ln nn dd cc bb [nn dd ...] F7
  3773.  
  3774.   F0 7F     Universal real-time sys-ex header
  3775.   <dev-id>  ID of target machine (see above)
  3776.   ni        SUB ID #1 = Notation info (03)
  3777.   ts        SUB ID #2 = Time signature message
  3778.              02=change now; 42=change next bar
  3779.   ln        Number of data bytes following
  3780.   nn        Numerator of time signature
  3781.   dd        Denumiroator (neg. power of 2)
  3782.   cc        Number of notated 32 notes in a MIDI quarter note
  3783.   [nn cc..] Additional pairs of num/denom (to define a
  3784.             compound time signature within the same bar)
  3785.    F7       End of sys-ex
  3786.  
  3787.  
  3788. Gruss, Carsten
  3789. * Origin: MAUS Koeln-Porz: 02203-962008 (2:2452/101.6)
  3790.  
  3791. *******************************************************************************
  3792.