home *** CD-ROM | disk | FTP | other *** search
- -MIDIPEEK-
-
- MidiPeek is a greatly expanded and improved version of my program
- Peek, which first appeared in the February 1986 issue of Keyboard
- magazine.
-
- MidiPeek is a monitor for the Roland MPU-401 MIDI interface,
- and equivalents (including the Voyetra OP-4001 and the Music
- Quest MCC). It displays MIDI activity on the computer screen.
- MidiPeek has these features:
-
- - displays in hexadecimal, decimal, or English format.
- - filters of types of MIDI messages.
- - 32K buffer
- - can save of buffer contents to a diskfile
- - can send diskfile data over MIDI
-
- MidiPeek can be used just by typing midipeek at a DOS prompt.
- The program will ask you some terse but (I hope) self-explanatory
- questions. If you need further guidance, or are curious about
- MIDI internals, you may want to read the following topics.
-
-
- ----------------------------------------------------------------
-
- -What's in the MIDI data stream?-
-
- MIDI messages consist of status bytes and data bytes. The status
- bytes tell what kind of data is coming next; the data bytes
- following (usually one or two in number) are that data. Status
- bytes always have their high bit set -- that is, their value is
- equal to or greater than 128 decimal, $80 hexadecimal. Data
- bytes are always less than 128 decimal, $80 hex.
-
- Here follows a list of MIDI status bytes, with their definitions,
- given in hexadecimal notation, e.g. $8n -- where $ indicates
- hexadecimal, 8 is the type of status byte, and n is the MIDI
- channel.
-
- The types of message (defined by status bytes) are these:
-
- - $8n. Note-off. 2 data bytes follow. The first byte is
- the MIDI note number, the second is its off velocity.
- Equipment that generates genuine note-off messages is rare.
- Usually a "note-off" actually generates a "note-on" message
- with velocity of zero.
-
- - $9n. Note-on. 2 data bytes follow. First is note number,
- second velocity.
-
- - $An. Polyphonic key pressure. 2 data bytes follow. First
- is note number, second is pressure data. (Rare.)
-
- - $Bn. Continuous controller. 2 data bytes follow. First is
- controller number, second is controller data. There are
- many continuous controllers defined in the MIDI spec,
- including sustain pedal, modulation wheel, MIDI volume
- control, data sliders, and much more. Consult a recent
- version of the MIDI specification for details.
-
- - $Cn. Program (patch) change. 1 data byte follows,
- specifying which of 128 possible patches will be selected.
-
- - $Dn. Aftertouch. 1 data byte follows, giving the
- instantaneous value of pressure on the keyboard. (Not all
- devices send this.)
-
- - $En. Pitch wheel. 2 data bytes follow. First is the least
- significant byte of the data, second is the most significant
- byte. In practice, although they send and receive both
- bytes, most synthesizers ignore the first, least significant
- byte.
-
- - $Fn. System messages. A variety of little-used messages
- lurk under this heading. The "n" of $Fn in this case does
- not indicate the MIDI channel -- are system messages are
- sent and received to all equipment regardless of channel
- setting. See the MIDI spec for further details. $F0 is the
- most important system message, that being "system
- exclusive", the mechanism whereby remote data dumps and
- parameter changes are performed.
-
- -Display formats-
-
- The bulk of the MidiPeek screen is given over to displaying data.
- It does so in three formats: hexadecimal, decimal, and "English".
- Hexadecimal is base-16, beloved of computer persons and some spec
- sheets. Decimal is normal base ten. "English" translates status
- bytes into their definitions as given above, and puts every
- message on its own line; this format is much the easiest to read,
- but suffers in terms of efficient use of screen space. (Data may
- scroll off before you want it to). "English" is also somewhat
- slower than the other formats, and may lose some data when
- pressed (e.g. by system-exclusive or continuous controllers).
-
- In any format, status bytes are always highlighted.
-
- -Filtering-
-
- MidiPeek lets you strip whole classes of data from the
- display (and files). This can make the display much more
- legible. For example, wind and guitar controllers generate a
- great deal of continuous controller data; if you only want to
- view their note-ons, you'd do well to filter the other stuff.
-
- -Save to Disk-
-
- MidiPeek saves the last 32,000 MIDI data bytes in its buffer,
- even after they've scrolled off the screen. When you're done
- viewing MIDI data, you can save the entire buffer to a disk file
- if you like. MidiPeek will always ask you for a filename to save
- to; if you don't want to save, just hit Return.
-
- This is useful for two reasons. 1) If you want to view a long
- session later, outside of the screen constraints of MidiPeek, you
- can. MidiPeek saves MIDI data in binary format, not text format,
- so you'll need a binary file viewer. Vernon Buerg's shareware
- LIST program (use the Alt-H option) is highly recommended for
- this purpose. 2) It can be used, in conjunction with MidiPeek's
- "send" function, as a crude generic librarian for system-
- exclusive data. You can dump a patch, or a bank, to MidiPeek,
- save it to disk, and then later restore it using "send". (Note:
- it's possible to overrun MidiPeek's capacities in terms of speed
- and storage. This function is an added "goodie", not an
- intrinsic, robust part of the program. It works with my
- equipment, but may or may not work on yours. And it won't work
- on equipment that plays handshaking tricks with system-exclusive,
- such as the Casio CZ series. A reliable generic librarian,
- MidiSave, is available from Carter Scholz for $15.)
-
- -Send-
-
- Reciprocates the "save" function, by sending out everything in a
- specified disk file over MIDI. No timing information is stored;
- it all goes out at speed. That is, if there are note-ons in the
- file, they'll all sound at once.
-
-
- -----------------------------------------
-
- --MINIPEEK--
-
- MiniPeek is a stripped-down version of MidiPeek. It's a smaller
- file, and it runs faster. It doesn't allow filtering, or
- selection of display format: everything is displayed in hex. It
- doesn't allow saves or sends. Its advantage is that it asks no
- questions -- if you just want a quick, raw, hex display of all
- MIDI data, you may want to use this.
-
- --MPU.PAS--
-
- This file contains the primitives for the MPU-401. Note that no
- checking is done for the MPU's presence in this version. If your
- system doesn't have this MIDI interface connected when you run
- either PEEK, your computer will hang.
-
- --REGISTRATION--
-
- The $15 shareware fee entitles you to upgrades, printed docs, and
- so forth.
-
- ------------------------------------------
-
- Carter Scholz
- 2665 Virginia St.
- Berkeley CA 94709
-
- ...{hplabs/dual/glacier/seismo/lll-crg}!well!csz
- well!csz@ucbvax.berkeley.edu