Common Lisp Package: MIDI

README:

FUNCTION

Public

READ-MIDI-FILE (FILENAME)

read an entire Midifile from the file with name given as argument

Undocumented

WRITE-MIDI-FILE (MIDIFILE FILENAME)

Private

READ-FIXED-LENGTH-QUANTITY (NB-BYTES)

read an unsigned integer of nb-bytes bytes from *midi-input*

READ-MESSAGE

read a message without time indication from *midi-input*

READ-TIMED-MESSAGE

read a message preceded with a delta-time indication

READ-TRACK

read a track as a list of timed messages, excluding the end-of-track message

READ-VARIABLE-LENGTH-QUANTITY

read a MIDI variable length quantity from *midi-input*

UNREAD-BYTE (BYTE)

unread a byte from *midi-input*

WRITE-BYTES (&REST BYTES)

write an arbitrary number of bytes to *midi-output*

WRITE-FIXED-LENGTH-QUANTITY (QUANTITY NB-BYTES)

write an unsigned integer of nb-bytes bytes to *midi-output*

WRITE-TIMED-MESSAGE (MESSAGE)

write a message preceded with a delta-time indication

WRITE-TRACK (TRACK)

write a track (which does not contain the end-of-track message

Undocumented

CHANGE-TO-FORMAT-0 (MIDIFILE)

CHANGE-TO-FORMAT-1 (MIDIFILE)

FORMAT0-TRACKS-TO-FORMAT1-TRACKS (TRACKS)

FORMAT1-TRACKS-TO-FORMAT0-TRACKS (TRACKS)

LENGTH-OF-VARIABLES-LENGTH-QUANTITY (QUANTITY)

REGISTER-CLASS (CLASS SUPERCLASS STATUS-MIN STATUS-MAX DATA-MIN DATA-MAX)

WRITE-VARIABLE-LENGTH-QUANTITY (QUANTITY &OPTIONAL (TERMINATION 0))

MACRO

Private

WITH-MIDI-INPUT ((PATHNAME &REST OPEN-ARGS &KEY &ALLOW-OTHER-KEYS) &BODY BODY)

execute body with *midi-input* assigned to a stream from pathname

WITH-MIDI-OUTPUT ((PATHNAME &REST OPEN-ARGS &KEY &ALLOW-OTHER-KEYS) &BODY BODY)

execute body with *midi-output* assigned to a stream from pathname

Undocumented

DEFINE-MIDI-MESSAGE (NAME SUPERCLASSES &KEY SLOTS FILLER (LENGTH 0) WRITER STATUS-MIN STATUS-MAX DATA-MIN DATA-MAX)

GENERIC-FUNCTION

Public

Undocumented

DATA-BYTE (CONDITION)

HEADER-TYPE (CONDITION)

SETFMIDIFILE-FORMAT (FORMAT MIDIFILE)

STATUS (CONDITION)

Private

Undocumented

FILL-MESSAGE (MESSAGE)

LENGTH-MESSAGE (MESSAGE)

WRITE-MESSAGE (MESSAGE)

SLOT-ACCESSOR

Public

Undocumented

MESSAGE-CHANNEL (MESSAGE)

MESSAGE-DENOMINATOR (MESSAGE)

MESSAGE-KEY (MESSAGE)

MESSAGE-MI (MESSAGE)

MESSAGE-NUMERATOR (MESSAGE)

MESSAGE-PROGRAM (MESSAGE)

MESSAGE-SF (MESSAGE)

MESSAGE-TEMPO (MESSAGE)

MESSAGE-TIME (MESSAGE)

SETFMESSAGE-TIME (TIME MESSAGE)

MESSAGE-VALUE (OBJECT)

MESSAGE-VELOCITY (MESSAGE)

MIDIFILE-DIVISION (MIDIFILE)

MIDIFILE-FORMAT (MIDIFILE)

MIDIFILE-TRACKS (MIDIFILE)

Private

Undocumented

MESSAGE-STATUS (MESSAGE)

VARIABLE

Private

*DATA-MAX*

given a class name, find the maximum data1 value for the type of message

*DATA-MIN*

given a class name, find the minimum data1 value for the type of message

*DISPATCH-TABLE*

given values of status (and perhaps data1), find a class to create

*INPUT-BUFFER*

used for unreading bytes from *midi-input

*MIDI-INPUT*

stream for reading a Midifile

*MIDI-OUTPUT*

stream for writing a Midifile

*RUNNING-STATUS*

the running status while reading an event

*STATUS*

the status while reading an event

*STATUS-MAX*

given a class name, find the maximum status value for the type of message

*STATUS-MIN*

given a class name, find the minimum status value for the type of message

*TIME*

accumulated time from the start of the track

CLASS

Public

MIDIFILE

the class that represents a Midifile in core

Undocumented

KEY-SIGNATURE-MESSAGE

MESSAGE

NOTE-OFF-MESSAGE

NOTE-ON-MESSAGE

PITCH-BEND-MESSAGE

PROGRAM-CHANGE-MESSAGE

SEQUENCE/TRACK-NAME-MESSAGE

SMPTE-OFFSET-MESSAGE

TEMPO-MESSAGE

TIME-SIGNATURE-MESSAGE

Private

Undocumented

ACTIVE-SENSING-MESSAGE

ALL-NOTES-OFF-MESSAGE

AUTHORIZATION-SYSTEM-EXCLUSIVE-MESSAGE

CHANNEL-MESSAGE

CHANNEL-PREFIX-MESSAGE

CHANNEL-PRESSURE-MESSAGE

COMMON-MESSAGE

CONTINUE-SEQUENCE-MESSAGE

CONTROL-CHANGE-MESSAGE

CUE-POINT-MESSAGE

DEVICE-NAME-MESSAGE

END-OF-TRACK-MESSAGE

GENERAL-TEXT-MESSAGE

INSTRUMENT-MESSAGE

LOCAL-CONTROL-MESSAGE

LYRIC-MESSAGE

MARKER-MESSAGE

META-MESSAGE

MIDI-PORT-MESSAGE

MODE-MESSAGE

MONO-MODE-ON-MESSAGE

OMNI-MODE-OFF-MESSAGE

OMNI-MODE-ON-MESSAGE

POLY-MODE-ON-MESSAGE

POLYPHONIC-KEY-PRESSURE-MESSAGE

PROGRAM-NAME-MESSAGE

PROPRIETARY-EVENT

REAL-TIME-MESSAGE

RESET-ALL-CONTROLLERS-MESSAGE

SEQUENCE-NUMBER-MESSAGE

SONG-POSITION-POINTER-MESSAGE

SONG-SELECT-MESSAGE

START-SEQUENCE-MESSAGE

STOP-SEQUENCE-MESSAGE

SYSTEM-EXCLUSIVE-MESSAGE

SYSTEM-MESSAGE

TEMPO-MAP-MESSAGE

TEXT-MESSAGE

TIMING-CLOCK-MESSAGE

TIMING-CODE-MESSAGE

TUNE-REQUEST-MESSAGE

VOICE-MESSAGE

CONDITION

Public

UNKNOWN-EVENT

condition when the event does not exist in the library

CONSTANT

Private

+HEADER-MTHD-LENGTH+

value of the header MThd data's length

Undocumented

+HEADER-MTHD+

+HEADER-MTRK+