home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaDemoCD2.iso / ASCII / TEXTE / MISC / MIDIFAQG.TXT < prev    next >
Encoding:
Text File  |  1994-03-26  |  160.2 KB  |  3,807 lines

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