home *** CD-ROM | disk | FTP | other *** search
/ Sound Sensations! / sound_sensations.iso / demos / midif / demo.doc next >
Text File  |  1988-09-03  |  6KB  |  137 lines

  1. cMIDI Function Library Description
  2. ==================================
  3.  
  4. The cMIDI function library is a set of over 50 C functions designed
  5. for controlling MIDI equipment via an IBM PC equipped with a Roland
  6. MPU-401 MIDI interface.  The cMIDI function library is versatile, yet
  7. simple to use.  For example, the nine MIDI applications in this
  8. demonstration were written using the cMIDI function library.  Each of
  9. these applications required less than a page of source code.  We
  10. invite you to examine this source code (included on this
  11. demonstration diskette).
  12.  
  13. The cMIDI function can control up to 255 track pointers.  A track
  14. pointer is analogous to a multitrack recorder's play/record head. 
  15. However, instead of just a volume control, each track pointer has a
  16. set of controls that allow you to adjust note transposition, time
  17. delay, MIDI channel, and note on and off velocities.  The cMIDI
  18. function library can also read and write tracks of MIDI data in
  19. several different file formats (including Standard MIDI Files).
  20.  
  21. The cMIDI function library supports the small, medium, compact, and
  22. large memory models and can be executed within the Microsoft QuickC
  23. environment.  The library's manual is over 100 pages long and
  24. includes 17 sample applications.
  25.  
  26. Below is a short description of each of the 52 functions in the 
  27. cMIDI function library:
  28.  
  29. 1)  "CmidiClose" removes the cMIDI interrupt service routine.
  30. 2)  "CmidiOpen" installs the cMIDI interrupt service routine.
  31. 3)  "ErrorDump" displays the run-time errors detected by the cMIDI
  32.      function library.
  33. 4)  "ErrorPop" gets the last run-time error logged by the cMIDI function
  34.      library.
  35. 5)  "ErrorPush" logs a run-time error number.
  36. 6)  "ErrorSetFatal" defines which run-time errors halt execution of the
  37.      application.
  38. 7)  "ErrorSetNonfatal" defines which run-time errors do not halt execution
  39.      of the application.
  40. 8)  "MpuRead" reads a byte of data (e.g., tempo) maintained by the
  41.      MPU-401.
  42. 9)  "MpuReset" resets the MPU-401.
  43. 10) "MpuSet" sets a byte of data (e.g., acceptable MIDI channels)
  44.      maintained by the MPU-401.
  45. 11) "MpuSwitch" toggles a switch (e.g., metronome on/off) maintained by
  46.      the MPU-401.
  47. 12) "MpuUartModeRx" receives data from the MPU-401 while in UART mode.
  48. 13) "MpuUartModeTx" transmits data to the MPU-401 while in UART mode.
  49. 14) "QueueMidiChan" enables/disables the receiving of channel MIDI
  50.      messages.
  51. 15) "QueueMidiSysCom" enables/disables the receiving of system common MIDI
  52.      messages.
  53. 16) "QueueMidiSysEx" enables/disables the receiving of system exclusive
  54.      MIDI messages.
  55. 17) "RxMidiChan" retrieves a channel MIDI message from the receive
  56.      buffer.
  57. 18) "RxMidiSysCom" retrieves a system common MIDI message from the receive
  58.      buffer.
  59. 19) "RxMidiSysEx" retrieves a system exclusive MIDI message from the
  60.      receive buffer.
  61. 20) "TxMidiChan" transmits a channel MIDI message.
  62. 21) "TxMidiSysCom" transmits a system common MIDI message.
  63. 22) "TxMidiSysEx" transmits a system exclusive MIDI message.
  64. 23) "TrackLength" determines the size of a track.
  65. 24) "TrackPlay" starts track pointers playing.
  66. 25) "TrackPlayAndRecord" starts track pointers playing and recording.
  67. 26) "TrackReadCmidiData" reads a track from a cMIDI data file.
  68. 27) "TrackReadCmidiText" reads a track from a cMIDI text file.
  69. 28) "TrackReadMidiFile" reads a track from a Standard MIDI file.
  70. 29) "TrackReadSeqPlus" reads a track from a Sequencer Plus MKIII file.
  71. 30) "TrackRecord" starts track pointer recording.
  72. 31) "TrackStop" stops track pointers playing or recording.
  73. 32) "TrackTempo" specifies the record and play tempo.
  74. 33) "TrackWriteCmidiData" writes a track to a cMIDI data file.
  75. 34) "TrackWriteCmidiText" writes a track to a cMIDI text file.
  76. 35) "TrackWriteMidiFile" writes a track to a Standard MIDI file.
  77. 36) "TrackWriteSeqPlus" writes a track to a Sequencer Plus MKIII file.
  78. 37) "TrackPtrChannel" specifies the MIDI channel on which a track
  79.      pointer's data is played.
  80. 38) "TrackPtrCopy" makes a copy of a track pointer.
  81. 39) "TrackPtrDec" decrements a track pointer to the previous message in
  82.      its track.
  83. 40) "TrackPtrDelay" delays the data played by a track pointer.
  84. 41) "TrackPtrInc" increments a track pointer to the next message in its
  85.      track.
  86. 42) "TrackPtrMute" mutes the notes played by a track pointer.
  87. 43) "TrackPtrPlayListDelete" removes a track pointer from the list of
  88.      track pointers to be played.
  89. 44) "TrackPtrPlayListInsert" adds a track pointer to the list of track
  90.      pointers to be played.
  91. 45) "TrackPtrRead" reads the message from the location pointed to by a
  92.      track pointer.
  93. 46) "TrackPtrRegister" associates a handle with a track pointer.
  94. 47) "TrackPtrReset" moves a track pointer to the beginning of its track.
  95. 48) "TrackPtrTranspose" transposes the pitch of note messages played by a
  96.      track pointer.
  97. 49) "TrackPtrUnmute" unmutes the notes played by a track pointer.
  98. 50) "TrackPtrVelocityOff" adjusts the velocity of note off messages played
  99.      by a track pointer.
  100. 51) "TrackPtrVelocityOn" adjusts the velocity of note on messages played
  101.      by a track pointer.
  102. 52) "TrackPtrWrite" writes a message to the location pointed to by a track
  103.      pointer.
  104.  
  105.  
  106. Hardware/Software Requirements
  107. ==============================
  108.  
  109. 1) an IBM PC/XT/AT (or compatible)
  110. 2) a Roland MPU-401 (or compatible) MIDI interface
  111. 3) Dos 2.1 (or higher)
  112. 4) Microsoft's C or QuickC, or Borland's TurboC compiler
  113.  
  114.  
  115.  
  116.  
  117. Authors
  118. =======
  119.  
  120. Greg Sepesi (MS Electrical Engineering, Syracuse University)
  121. Rex Lau (MS Computer Science, Michigan State University)
  122.  
  123.         cMIDI
  124.         P.O. Box 4903
  125.         East Lansing, MI  48823
  126.         (517) 337-2569
  127.  
  128.  
  129. Price (until 01 Nov 88)
  130. =======================
  131.  
  132. cMIDI Function Library                  $79 (30 day satisfaction guarantee)
  133. cMIDI Function Library Source Code    $79
  134.  
  135.  
  136.  
  137.