Here's a summary of commands available in HyperMIDI:

 Opening and closing HyperMIDI

hmOpenMIDI

Open HyperMIDI (call before using other commands).

hmCloseMIDI

Close HyperMIDI (call when done using HyperMIDI).

 Reading and writing MIDI

hmReadMIDI

Read a sequence from an input buffer. You can have up to 32 independent input buffers, fed from up to 6 independent MIDI Manager ports (or direct from modem or printer port).

hmWriteMIDI

Write a sequence to output—there is no limit to the number of simultaneous sequences you can write, and you can address them to any of up to six MIDI Manager output ports (or modem or printer port). You can set a sequence to loop any number of times (over four billion times).

hmPlay

Play a MIDI file from disk or memory (combines hmMIDIFiler and hmWriteMIDI for the convenience of a single command).

 Realtime input processing functions

hmSetZone
hmGetZone

Set (or get) the zone specification of any of the 32 input buffers. With a zone, you can specify the MIDI channels, note range, and velocity range that the input will accept.

hmSetFilter
hmGetFilter

Set (or get) the MIDI filter settings of any of the 32 input buffers. You can enable or disable any type of MIDI message (note one, note off, sysex, program change...)

hmSetEcho
hmGetEcho

Set (or get) the MIDI echo paths of any of the 32 input buffers. Each input can echo its filtered and zoned MIDI data directly to up to six outputs, where they can be modified (transposed, velocity scaled, etc.) in real time.

 Realtime output processing functions

hmSetChannel
hmGetChannel

Set (or get) the channel map for any of up to 32 output paths. You can map any channel to any other, or disable any channel.

hmSetTranspose
hmGetTranspose

Set (or get) the transpose map for any of up to 32 output paths. Transpose maps can change any note to any other, or disable individual notes. This lets you do diatonic (scale-based) transposition and other complex effects in addition to simple chromatic transposition.

hmSetVelocity
hmGetVelocity

Set (or get) the velocity map for any of up to 32 output paths. This lets you scale the playback velocity response to any possible curve, and do velocity cross-fading.

hmSetOffset
hmGetOffset

Set (or get) the time offset for any of up to 32 output paths. When input are echo to output, this lets you add MIDI delay effects in real time.

 Control Utilities

hmUtility

Utility functions to find out whether a sequence is still playing, how many notes or other MIDI events remain to be played, for terminating a sequence, muting a sequence or individual channels in a sequence, adjusting the loop time of a playing sequence, and finding out the length of a sequence.

hmClock

Sequence clock functions: start and stop the clock, set or read the current time, the tempo in beats-per-minute (optionally overriding a sequence's tempo map, the playback rate by percent, the clock format (bpm, SMPTE, or milliseconds), and the synchronization (internal or external).

 File handling

hmMIDIFiler

Read and write both type 0 (single track) and type 1 (multitrack) MIDI files. Handles all MIDI and meta (track names, markers, comments, tempo, time signature, etc.) events.

hmFiler

Reads or writes any type of binary data file (you can use this to read or write specific sysex editor formats, for instance).

 User Interface

hmSlider

For MIDI data sliders. (HyperCard only.)

 Clients, ports, and patching

hmPatcher
hmClients

For scripting MIDI Manager connections. (Note: HyperMIDI handles MIDI Manager connections automatically. These commands are for the rare cases in which you want to make patches under script control.)

return