SEQUENCER


3.2 Event types

3.2.1 Note events

	SND_SEQ_EVENT_NOTE     1	/* note with pitch, velocity and duration		*/	
	SND_SEQ_EVENT_NOTEON   2	/* Note On with pitch, velocity 				*/
	SND_SEQ_EVENT_NOTEOFF  3	/* Note Off with pitch, velocity 				*/
Data structure used for note events:

        /* note event */
	typedef struct {
	        unsigned char note;
	        unsigned char velocity;
	        unsigned int duration;
	} snd_seq_ev_note;

3.2.2 Controller

	SND_SEQ_EVENT_KEYPRESS          10	/* Poly Key Pressure with pitch and pressure	*/
	SND_SEQ_EVENT_CONTROLLER        11	/* Control Change with controller ID and value	*/
	SND_SEQ_EVENT_PGMCHANGE         12	/* Program Change with program ID number	*/
	SND_SEQ_EVENT_CHANPRESS         13	/* Channel Pressure with pressure value		*/
	SND_SEQ_EVENT_PITCHBEND         14	/* Pitch Bend Change with LSB and MSB values	*/
	SND_SEQ_EVENT_CONTROL14         15	/* controller no. 0..31, 14 bit value
	SND_SEQ_EVENT_NONREGPARAM       16	/* 14 bit controller, 14 bit value
	SND_SEQ_EVENT_REGPARAM          17	/* 14 bit controller, 14 bit value */
Data structure used for controller events:

        /* controller event */
	typedef struct {
	        unsigned int param;
	        signed int value;
	} snd_seq_ev_ctrl;

3.2.3 Synchronisation

\#define typeSongPos		8 	/* Song Position Pointer with LSB and MSB values
\#define typeSongSel		9 	/* Song Select with song ID number
\#define typeClock		10 	/* midi Real Time Clock message
\#define typeStart		11 	/* midi Real Time Start message
\#define typeContinue		12 	/* midi Real Time Continue message
\#define typeStop		13	/* midi Real Time Stop message

\#define typeQuarterFrame	130	/* Midi time code quarter frame

3.2.4 Sysex

\#define typeSysEx		17 	/* System Exclusive (only data bytes)

3.2.5 Misc

\#define typeTune		14 	/* midi Real Time Tune Request	(who uses this these days???)
\#define typeActiveSens		15	/* Active Sensing
\#define typeReset		16	/* midi Real Time Reset

\#define typeStream		18 	/* arbitrary stream of bytes

\#define typeApplication	xxx	/* used for applications internal use, eg. generating delayed call-backs

3.2.6 SMF - Standard MIDI File events

These are events from the MidiFile 1.0 specification

\#define typeSeqNum		134	/* SMF sequence number (0..65535)
\#define typeTextual		135	/* SMF text event
\#define typeCopyright		136	/* SMF copyright message
\#define typeSeqName		137	/* SMF sequence name event
\#define typeInstrName		138	/* SMF instrument name
\#define typeLyric		139	/* SMF lyric event
\#define typeMarker		140	/* SMF marker
\#define typeCuePoint		141	/* SMF cue point
\#define typeChanPrefix		142	/* SMF Midi Channel Prefix
\#define typeEndTrack		143	/* SMF end of track event
\#define typeSMPTEOffset	145	/* SMF SMPTE offset 

\#define typeSpecific		148	/* SMF sequencer specific meta event

\#define typeTempo		144	/* SMF Tempo event
\#define typeTimeSign		146	/* SMF Time Signature event
\#define typeKeySign		147	/* SMF Key Signature event

3.2.7 Patch download

- sds (how to handle multi-samples???)
- riff


Version 0.036, April 2nd, 1999Usage:
Copyright (c) 1998 by Frank van de Pol, NetherlandsAdvanced Linux Sound Architecture