Copyright ©1995 by NeXT Computer, Inc.  All Rights Reserved.




Types and Constants



Defined Types


MIDIAlarmReplyFunction

typedef void (*MIDIAlarmReplyFunction)(port_t replyPort, int requestedTime,
int actualTime)



MIDIDataReplyFunction

typedef void (*MIDIDataReplyFunction)(port_t replyPort, short unit, MIDIRawEvent *events,
unsigned int count)



MIDIExceptionReplyFunction

typedef void (*MIDIExceptionReplyFunction)(port_t replyPort, int exception)



MIDIQueueReplyFunction

typedef void (*MIDIQueueReplyFunction)(port_t replyPort, short unit)



MIDIRawEvent

typedef struct {
int  time;
unsigned char byte;
} MIDIRawEvent



MIDIReplyFunctions

typedef struct _MIDIReplyFunctions {
MIDIDataReplyFunction  dataReply;
MIDIAlarmReplyFunction  alarmReply;
MIDIExceptionReplyFunction  exceptionReply;
MIDIQueueReplyFunction  queueReply;
} MIDIReplyFunctions;



Symbolic Constants


Clock Modes

MIDI_CLOCK_MODE_INTERNAL
MIDI_CLOCK_MODE_MTC_SYNC



Controller Definitions

MIDI_EXTERNALEFFECTSDEPTH
MIDI_TREMELODEPTH
MIDI_CHORUSDEPTH
MIDI_DETUNEDEPTH
MIDI_PHASERDEPTH
(from original 1.0 MIDI spec)

MIDI_EFFECTS1
MIDI_EFFECTS2
MIDI_EFFECTS3
MIDI_EFFECTS4
MIDI_EFFECTS5
MIDI_DATAINCREMENT
MIDI_DATADECREMENT
(From June 1990 spec)



Error Codes

MIDI_ERROR_BUSY
MIDI_ERROR_NOT_OWNER
MIDI_ERROR_QUEUE_FULL
MIDI_ERROR_BAD_MODE
MIDI_ERROR_UNIT_UNAVAILABLE
MIDI_ERROR_ILLEGAL_OPERATION
MIDI_ERROR_UNKNOWN_ERROR


Event Count Value
MIDI_MAX_EVENT 100
Event Size Value
MIDI_MAX_MSG_SIZE 1024


Exception Codes

MIDI_EXCEPTION_MTC_STOPPED
MIDI_EXCEPTION_MTC_STARTED_FORWARD
MIDI_EXCEPTION_MTC_STARTED_REVERSE



General MIDI Constants

MIDI_RESETCONTROLLERS
MIDI_LOCALCONTROL
MIDI_ALLNOTESOFF
MIDI_OMNIOFF
MIDI_OMNION
MIDI_MONO
MIDI_POLY
MIDI_NOTEOFF
MIDI_NOTEON
MIDI_POLYPRES
MIDI_CONTROL
MIDI_PROGRAM
MIDI_CHANPRES
MIDI_PITCH
MIDI_CHANMODE
MIDI_CONTROL
MIDI_SYSTEM
MIDI_SYSEXCL
MIDI_TIMECODEQUARTER
MIDI_SONGPOS
MIDI_SONGSEL
MIDI_TUNEREQ
MIDI_EOX
MIDI_CLOCK
MIDI_START
MIDI_CONTINUE
MIDI_STOP
MIDI_ACTIVE
MIDI_RESET
MIDI_MAXDATA
MIDI_MAXCHAN
MIDI_NUMCHANS
MIDI_NUMKEYS
MIDI_ZEROBEND
MIDI_DEFAULTVELOCITY



Ignores

MIDI_IGNORE_CLOCK
MIDI_IGNORE_START
MIDI_IGNORE_CONTINUE
MIDI_IGNORE_STOP
MIDI_IGNORE_ACTIVE
MIDI_IGNORE_RESET
MIDI_IGNORE_REAL_TIME



Least Significant Bit for Controller Numbers

MIDI_MODWHEELLSB
MIDI_BREATHLSB
MIDI_FOOTLSB
MIDI_PORTAMENTOTIMELSB
MIDI_DATAENTRYLSB
MIDI_MAINVOLUMELSB
MIDI_BALANCELSB
MIDI_PANLSB
MIDI_EXPRESSIONLSB
MIDI_DAMPER
MIDI_PORTAMENTO
MIDI_SOSTENUTO
MIDI_SOFTPEDAL
MIDI_HOLD2



Masks for MIDI Status Bytes

MIDI_STATUSBIT
MIDI_STATUSMASK
MIDI_SYSRTBIT



Miscellaneous

MIDI_NO_TIMEOUT



MIDI Controller Numbers

MIDI_MODWHEEL
MIDI_BREATH
MIDI_FOOT
MIDI_PORTAMENTOTIME
MIDI_DATAENTRY
MIDI_MAINVOLUME
MIDI_BALANCE
MIDI_PAN
MIDI_EXPRESSION
MIDI_EFFECTCONTROL1
MIDI_EFFECTCONTROL2



Port Constants

MIDI_PORT_A_UNIT
MIDI_PORT_B_UNIT