Module mididings.event

This module defines classes and functions for dealing with MIDI events in Python code, e.g. when using Process() or Call().

class MidiEvent(type, port=0, channel=0, data1=0, data2=0, sysex=None)

A MIDI event, as seen by Python code.

Each event has these attributes:


The event type, one of the Event Types constants.


The port number.


The channel number.


The first data byte, meaning depends on event type.


The second data byte, meaning depends on event type.

The following attributes are only valid for certain event types, and accessing them will raise an error otherwise:


The note number, stored in data1.


The velocity value, stored in data2.


The controller number, stored in data1.


The controller value, stored in data2.


The program number, stored in data2. Unlike data2, this attribute observes the data_offset setting.


SysEx data.

Several utility functions are defined to simplify the creation of event objects. Each of these functions returns a newly created object of type MidiEvent:

NoteOnEvent(port, channel, note, velocity)

Create a new note-on event object.

NoteOffEvent(port, channel, note, velocity=0)

Create a new note-off event object.

CtrlEvent(port, channel, ctrl, value)

Create a new control change event object.

PitchbendEvent(port, channel, value)

Create a new pitch bend event object.

AftertouchEvent(port, channel, value)

Create a new aftertouch event object.

PolyAftertouchEvent(port, channel, note, value)

Create a new polyphonic aftertouch event object.

ProgramEvent(port, channel, program)

Create a new program change event object.

SysExEvent(port, sysex)

Create a new sysex event object.