Sequencer Event Definitions
MIDI Sequencer
Collaboration diagram for Sequencer Event Definitions:

## Data Structures

struct | snd_seq_addr_t
struct | snd_seq_connect_t
struct | snd_seq_real_time_t
union | snd_seq_timestamp_t
struct | snd_seq_ev_note_t
struct | snd_seq_ev_ctrl_t
struct | snd_seq_ev_raw8_t
struct | snd_seq_ev_raw32_t
struct | snd_seq_ev_ext_t
struct | snd_seq_result_t
struct | snd_seq_queue_skew_t
struct | snd_seq_ev_queue_control_t
struct | snd_seq_event_t

## Macros

#define | SND_SEQ_TIME_STAMP_TICK (0<<0)
#define | SND_SEQ_TIME_STAMP_REAL (1<<0)
#define | SND_SEQ_TIME_STAMP_MASK (1<<0)
#define | SND_SEQ_TIME_MODE_ABS (0<<1)
#define | SND_SEQ_TIME_MODE_REL (1<<1)
#define | SND_SEQ_TIME_MODE_MASK (1<<1)
#define | SND_SEQ_EVENT_LENGTH_FIXED (0<<2)
#define | SND_SEQ_EVENT_LENGTH_VARIABLE (1<<2)
#define | SND_SEQ_EVENT_LENGTH_VARUSR (2<<2)
#define | SND_SEQ_EVENT_LENGTH_MASK (3<<2)
#define | SND_SEQ_PRIORITY_NORMAL (0<<4)
#define | SND_SEQ_PRIORITY_HIGH (1<<4)
#define | SND_SEQ_PRIORITY_MASK (1<<4)

## Typedefs

typedef unsigned char | snd_seq_event_type_t
typedef unsigned int | snd_seq_tick_time_t
typedef snd_seq_ev_ext | snd_seq_ev_ext_t

## Enumerations

enum

snd_seq_event_type {
SND_SEQ_EVENT_SYSTEM = 0, SND_SEQ_EVENT_RESULT, SND_SEQ_EVENT_NOTE = 5, SND_SEQ_EVENT_NOTEON,
SND_SEQ_EVENT_NOTEOFF, SND_SEQ_EVENT_KEYPRESS, SND_SEQ_EVENT_CONTROLLER = 10, SND_SEQ_EVENT_PGMCHANGE,
SND_SEQ_EVENT_CHANPRESS, SND_SEQ_EVENT_PITCHBEND, SND_SEQ_EVENT_CONTROL14, SND_SEQ_EVENT_NONREGPARAM,
SND_SEQ_EVENT_REGPARAM, SND_SEQ_EVENT_SONGPOS = 20, SND_SEQ_EVENT_SONGSEL, SND_SEQ_EVENT_QFRAME,
SND_SEQ_EVENT_TIMESIGN, SND_SEQ_EVENT_KEYSIGN, SND_SEQ_EVENT_START = 30, SND_SEQ_EVENT_CONTINUE,
SND_SEQ_EVENT_STOP, SND_SEQ_EVENT_SETPOS_TICK, SND_SEQ_EVENT_SETPOS_TIME, SND_SEQ_EVENT_TEMPO,
SND_SEQ_EVENT_CLOCK, SND_SEQ_EVENT_TICK, SND_SEQ_EVENT_QUEUE_SKEW, SND_SEQ_EVENT_SYNC_POS,
SND_SEQ_EVENT_TUNE_REQUEST = 40, SND_SEQ_EVENT_RESET, SND_SEQ_EVENT_SENSING, SND_SEQ_EVENT_ECHO = 50,
SND_SEQ_EVENT_OSS, SND_SEQ_EVENT_CLIENT_START = 60, SND_SEQ_EVENT_CLIENT_EXIT, SND_SEQ_EVENT_CLIENT_CHANGE,
SND_SEQ_EVENT_PORT_START, SND_SEQ_EVENT_PORT_EXIT, SND_SEQ_EVENT_PORT_CHANGE, SND_SEQ_EVENT_PORT_SUBSCRIBED,
SND_SEQ_EVENT_PORT_UNSUBSCRIBED, SND_SEQ_EVENT_USR0 = 90, SND_SEQ_EVENT_USR1, SND_SEQ_EVENT_USR2,
SND_SEQ_EVENT_USR3, SND_SEQ_EVENT_USR4, SND_SEQ_EVENT_USR5, SND_SEQ_EVENT_USR6,
SND_SEQ_EVENT_USR7, SND_SEQ_EVENT_USR8, SND_SEQ_EVENT_USR9, SND_SEQ_EVENT_SYSEX = 130,
SND_SEQ_EVENT_BOUNCE, SND_SEQ_EVENT_USR_VAR0 = 135, SND_SEQ_EVENT_USR_VAR1, SND_SEQ_EVENT_USR_VAR2,
SND_SEQ_EVENT_USR_VAR3, SND_SEQ_EVENT_USR_VAR4, SND_SEQ_EVENT_NONE = 255
}

## Functions

struct snd_seq_ev_ext | __attribute__ ((packed))

## Detailed Description

Sequencer Event Definitions

## Macro Definition Documentation

## SND_SEQ_EVENT_LENGTH_FIXED

#define SND_SEQ_EVENT_LENGTH_FIXED (0<<2)

fixed event size

## SND_SEQ_EVENT_LENGTH_MASK

#define SND_SEQ_EVENT_LENGTH_MASK (3<<2)

mask for event length bits

## SND_SEQ_EVENT_LENGTH_VARIABLE

#define SND_SEQ_EVENT_LENGTH_VARIABLE (1<<2)

variable event size

## SND_SEQ_EVENT_LENGTH_VARUSR

#define SND_SEQ_EVENT_LENGTH_VARUSR (2<<2)

variable event size - user memory space

## SND_SEQ_PRIORITY_HIGH

#define SND_SEQ_PRIORITY_HIGH (1<<4)

event should be processed before others

## SND_SEQ_PRIORITY_MASK

#define SND_SEQ_PRIORITY_MASK (1<<4)

mask for priority bits

## SND_SEQ_PRIORITY_NORMAL

#define SND_SEQ_PRIORITY_NORMAL (0<<4)

normal priority

## SND_SEQ_TIME_MODE_ABS

#define SND_SEQ_TIME_MODE_ABS (0<<1)

absolute timestamp

## SND_SEQ_TIME_MODE_MASK

#define SND_SEQ_TIME_MODE_MASK (1<<1)

mask for time mode bits

## SND_SEQ_TIME_MODE_REL

#define SND_SEQ_TIME_MODE_REL (1<<1)

relative to current time

## SND_SEQ_TIME_STAMP_MASK

#define SND_SEQ_TIME_STAMP_MASK (1<<0)

mask for timestamp bits

## SND_SEQ_TIME_STAMP_REAL

#define SND_SEQ_TIME_STAMP_REAL (1<<0)

timestamp in real time

## SND_SEQ_TIME_STAMP_TICK

#define SND_SEQ_TIME_STAMP_TICK (0<<0)

Event mode flags

NOTE: only 8 bits available! timestamp in clock ticks

## Typedef Documentation

## snd_seq_ev_ext_t

typedef struct snd_seq_ev_ext snd_seq_ev_ext_t

external stored data

## snd_seq_event_type_t

typedef unsigned char snd_seq_event_type_t

Sequencer event data type

## snd_seq_tick_time_t

typedef unsigned int snd_seq_tick_time_t

(MIDI) Tick-time data record

## Enumeration Type Documentation

## snd_seq_event_type

enum snd_seq_event_type

Sequencer event type

Enumerator
SND_SEQ_EVENT_SYSTEM | system status; event data type = snd_seq_result_t
SND_SEQ_EVENT_RESULT | returned result status; event data type = snd_seq_result_t
SND_SEQ_EVENT_NOTE | note on and off with duration; event data type = snd_seq_ev_note_t
SND_SEQ_EVENT_NOTEON | note on; event data type = snd_seq_ev_note_t
SND_SEQ_EVENT_NOTEOFF | note off; event data type = snd_seq_ev_note_t
SND_SEQ_EVENT_KEYPRESS | key pressure change (aftertouch); event data type = snd_seq_ev_note_t
SND_SEQ_EVENT_CONTROLLER | controller; event data type = snd_seq_ev_ctrl_t
SND_SEQ_EVENT_PGMCHANGE | program change; event data type = snd_seq_ev_ctrl_t
SND_SEQ_EVENT_CHANPRESS | channel pressure; event data type = snd_seq_ev_ctrl_t
SND_SEQ_EVENT_PITCHBEND | pitchwheel; event data type = snd_seq_ev_ctrl_t; data is from -8192 to 8191)
SND_SEQ_EVENT_CONTROL14 | 14 bit controller value; event data type = snd_seq_ev_ctrl_t
SND_SEQ_EVENT_NONREGPARAM | 14 bit NRPN; event data type = snd_seq_ev_ctrl_t
SND_SEQ_EVENT_REGPARAM | 14 bit RPN; event data type = snd_seq_ev_ctrl_t
SND_SEQ_EVENT_SONGPOS | SPP with LSB and MSB values; event data type = snd_seq_ev_ctrl_t
SND_SEQ_EVENT_SONGSEL | Song Select with song ID number; event data type = snd_seq_ev_ctrl_t
SND_SEQ_EVENT_QFRAME | midi time code quarter frame; event data type = snd_seq_ev_ctrl_t
SND_SEQ_EVENT_TIMESIGN | SMF Time Signature event; event data type = snd_seq_ev_ctrl_t
SND_SEQ_EVENT_KEYSIGN | SMF Key Signature event; event data type = snd_seq_ev_ctrl_t
SND_SEQ_EVENT_START | MIDI Real Time Start message; event data type = snd_seq_ev_queue_control_t
SND_SEQ_EVENT_CONTINUE | MIDI Real Time Continue message; event data type = snd_seq_ev_queue_control_t
SND_SEQ_EVENT_STOP | MIDI Real Time Stop message; event data type = snd_seq_ev_queue_control_t
SND_SEQ_EVENT_SETPOS_TICK | Set tick queue position; event data type = snd_seq_ev_queue_control_t
SND_SEQ_EVENT_SETPOS_TIME | Set real-time queue position; event data type = snd_seq_ev_queue_control_t
SND_SEQ_EVENT_TEMPO | (SMF) Tempo event; event data type = snd_seq_ev_queue_control_t
SND_SEQ_EVENT_CLOCK | MIDI Real Time Clock message; event data type = snd_seq_ev_queue_control_t
SND_SEQ_EVENT_TICK | MIDI Real Time Tick message; event data type = snd_seq_ev_queue_control_t
SND_SEQ_EVENT_QUEUE_SKEW | Queue timer skew; event data type = snd_seq_ev_queue_control_t
SND_SEQ_EVENT_SYNC_POS | Sync position changed; event data type = snd_seq_ev_queue_control_t
SND_SEQ_EVENT_TUNE_REQUEST | Tune request; event data type = none
SND_SEQ_EVENT_RESET | Reset to power-on state; event data type = none
SND_SEQ_EVENT_SENSING | Active sensing event; event data type = none
SND_SEQ_EVENT_ECHO | Echo-back event; event data type = any type
SND_SEQ_EVENT_OSS | OSS emulation raw event; event data type = any type
SND_SEQ_EVENT_CLIENT_START | New client has connected; event data type = snd_seq_addr_t
SND_SEQ_EVENT_CLIENT_EXIT | Client has left the system; event data type = snd_seq_addr_t
SND_SEQ_EVENT_CLIENT_CHANGE | Client status/info has changed; event data type = snd_seq_addr_t
SND_SEQ_EVENT_PORT_START | New port was created; event data type = snd_seq_addr_t
SND_SEQ_EVENT_PORT_EXIT | Port was deleted from system; event data type = snd_seq_addr_t
SND_SEQ_EVENT_PORT_CHANGE | Port status/info has changed; event data type = snd_seq_addr_t
SND_SEQ_EVENT_PORT_SUBSCRIBED | Ports connected; event data type = snd_seq_connect_t
SND_SEQ_EVENT_PORT_UNSUBSCRIBED | Ports disconnected; event data type = snd_seq_connect_t
SND_SEQ_EVENT_USR0 | user-defined event; event data type = any (fixed size)
SND_SEQ_EVENT_USR1 | user-defined event; event data type = any (fixed size)
SND_SEQ_EVENT_USR2 | user-defined event; event data type = any (fixed size)
SND_SEQ_EVENT_USR3 | user-defined event; event data type = any (fixed size)
SND_SEQ_EVENT_USR4 | user-defined event; event data type = any (fixed size)
SND_SEQ_EVENT_USR5 | user-defined event; event data type = any (fixed size)
SND_SEQ_EVENT_USR6 | user-defined event; event data type = any (fixed size)
SND_SEQ_EVENT_USR7 | user-defined event; event data type = any (fixed size)
SND_SEQ_EVENT_USR8 | user-defined event; event data type = any (fixed size)
SND_SEQ_EVENT_USR9 | user-defined event; event data type = any (fixed size)
SND_SEQ_EVENT_SYSEX | system exclusive data (variable length); event data type = snd_seq_ev_ext_t
SND_SEQ_EVENT_BOUNCE | error event; event data type = snd_seq_ev_ext_t
SND_SEQ_EVENT_USR_VAR0 | reserved for user apps; event data type = snd_seq_ev_ext_t
SND_SEQ_EVENT_USR_VAR1 | reserved for user apps; event data type = snd_seq_ev_ext_t
SND_SEQ_EVENT_USR_VAR2 | reserved for user apps; event data type = snd_seq_ev_ext_t
SND_SEQ_EVENT_USR_VAR3 | reserved for user apps; event data type = snd_seq_ev_ext_t
SND_SEQ_EVENT_USR_VAR4 | reserved for user apps; event data type = snd_seq_ev_ext_t
SND_SEQ_EVENT_NONE | NOP; ignored in any case