Events
MIDI event types — channel messages, meta events, and system messages.
All event classes inherit from AbstractEvent and are automatically
registered in EventRegistry via __init_subclass__.
Base Classes
- class midi.AbstractEvent(**kw)
Bases:
objectBase class for all MIDI events.
Every event has a
tick(timing), adataproperty, and is orderable by tick. Construct events using keyword arguments:NoteOnEvent(tick=0, pitch=60, velocity=100, channel=0)
- Parameters:
kw (object)
- tick
Tick offset — relative (delta) or absolute depending on the containing Track.
- data
Event payload as a tuple of ints. Subclasses provide typed properties (e.g.
pitch,velocity) that read/write the underlying data.
- class midi.Event(**kw)
Bases:
AbstractEventBase class for MIDI channel messages (status
0x80–0xEF).- Parameters:
kw (object)
- channel
MIDI channel (0–15).
- class midi.MetaEvent(**kw)
Bases:
AbstractEventBase class for MIDI meta events (status
0xFF).Meta events carry non-performance data such as tempo, time signature, track names, and lyrics. Each subclass has a unique
metacommandbyte.- Parameters:
kw (object)
Note Events
- class midi.NoteOnEvent(**kw)
Bases:
NoteEventNote On message (status
0x90).A velocity of 0 is equivalent to a
NoteOffEvent.- Parameters:
kw (object)
Channel Events
- class midi.AfterTouchEvent(**kw)
Bases:
EventPolyphonic aftertouch / key pressure (status
0xA0).- Parameters:
kw (object)
- pitch
Note number (0–127).
- value
Pressure value (0–127).
- class midi.ControlChangeEvent(**kw)
Bases:
EventControl Change message (status
0xB0).- Parameters:
kw (object)
- control
Controller number (0–127).
- value
Controller value (0–127).
- class midi.ProgramChangeEvent(**kw)
Bases:
EventProgram Change message (status
0xC0).- Parameters:
kw (object)
- value
Program number (0–127).
- class midi.ChannelAfterTouchEvent(**kw)
Bases:
EventChannel aftertouch / pressure (status
0xD0).- Parameters:
kw (object)
- value
Pressure value (0–127).
System Real-Time Events
- class midi.SystemRealTimeEvent(**kw)
Bases:
AbstractEventMIDI System Real-Time messages (single status byte, no data).
- Parameters:
kw (object)
- class midi.ClockEvent(**kw)
Bases:
SystemRealTimeEventMIDI Clock pulse (status
0xF8). 24 per quarter note.- Parameters:
kw (object)
- class midi.StartEvent(**kw)
Bases:
SystemRealTimeEventStart playback (status
0xFA).- Parameters:
kw (object)
- class midi.ContinueEvent(**kw)
Bases:
SystemRealTimeEventContinue playback (status
0xFB).- Parameters:
kw (object)
- class midi.StopEvent(**kw)
Bases:
SystemRealTimeEventStop playback (status
0xFC).- Parameters:
kw (object)
- class midi.SongPositionPointerEvent(**kw)
Bases:
AbstractEventSong Position Pointer (0xF2). Position in sixteenth notes.
- Parameters:
kw (object)
Tempo and Time
- class midi.SetTempoEvent(**kw)
Bases:
MetaEventSet Tempo meta event (
0x51).- Parameters:
kw (object)
- bpm
Tempo in beats per minute (read/write convenience).
- mpqn
Microseconds per quarter note (the raw MIDI encoding).
- class midi.TimeSignatureEvent(**kw)
Bases:
MetaEventTime Signature meta event (
0x58).- Parameters:
kw (object)
- numerator
Beats per bar (e.g. 4 for 4/4 time).
- denominator
Beat unit as a note value (e.g. 4 = quarter note). Stored internally as a power of 2.
- metronome
MIDI clocks per metronome click.
- thirtyseconds
Number of 32nd notes per MIDI quarter note.
Track Metadata
- class midi.TrackNameEvent(**kw)
Bases:
MetaEventWithTextTrack or sequence name (
0x03).- Parameters:
kw (object)
- class midi.InstrumentNameEvent(**kw)
Bases:
MetaEventWithTextInstrument name (
0x04).- Parameters:
kw (object)
Text Events
- class midi.TextMetaEvent(**kw)
Bases:
MetaEventWithTextGeneral text annotation (
0x01).- Parameters:
kw (object)
- class midi.CopyrightMetaEvent(**kw)
Bases:
MetaEventWithTextCopyright notice (
0x02).- Parameters:
kw (object)
- class midi.LyricsEvent(**kw)
Bases:
MetaEventWithTextLyrics text (
0x05).- Parameters:
kw (object)
- class midi.MarkerEvent(**kw)
Bases:
MetaEventWithTextMarker / rehearsal point (
0x06).- Parameters:
kw (object)
- class midi.CuePointEvent(**kw)
Bases:
MetaEventWithTextCue point for synchronization (
0x07).- Parameters:
kw (object)
- class midi.ProgramNameEvent(**kw)
Bases:
MetaEventWithTextProgram / patch name (
0x08).- Parameters:
kw (object)
Other Meta Events
- class midi.SequenceNumberMetaEvent(**kw)
Bases:
MetaEventSequence Number meta event (
0x00).- Parameters:
kw (object)
- class midi.ChannelPrefixEvent(**kw)
Bases:
MetaEventChannel Prefix meta event (
0x20).- Parameters:
kw (object)
- class midi.PortEvent(**kw)
Bases:
MetaEventMIDI Port / Cable meta event (
0x21).- Parameters:
kw (object)
- class midi.TrackLoopEvent(**kw)
Bases:
MetaEventTrack Loop meta event (
0x2E).- Parameters:
kw (object)
- class midi.SmpteOffsetEvent(**kw)
Bases:
MetaEventSMPTE Offset meta event (
0x54).- Parameters:
kw (object)
- class midi.SequencerSpecificEvent(**kw)
Bases:
MetaEventSequencer-specific meta event (
0x7F).- Parameters:
kw (object)
- class midi.UnknownMetaEvent(**kw)
Bases:
MetaEventPlaceholder for unrecognized meta events.
- Parameters:
kw (object)
- property metacommand: int
int([x]) -> integer int(x, base=10) -> integer
Convert a number or string to an integer, or return 0 if no arguments are given. If x is a number, return x.__int__(). For floating-point numbers, this truncates towards zero.
If x is not a number or if base is given, then x must be a string, bytes, or bytearray instance representing an integer literal in the given base. The literal can be preceded by ‘+’ or ‘-’ and be surrounded by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to interpret the base from the string as an integer literal. >>> int(‘0b100’, base=0) 4