Containers

MIDI containers — Pattern and Track.

A MIDI file is represented as a hierarchical set of objects: a Pattern holds one or more Track objects, and each Track holds a sequence of MIDI events. Both implement MutableSequence so they behave like lists.

Pattern

class midi.Pattern(tracks=None, resolution=220, format=1, tick_relative=True)

Bases: MutableSequence[Track]

Top-level MIDI container holding one or more tracks.

Implements MutableSequence — supports indexing, iteration, append, slicing, etc.

Parameters:
  • tracks (Iterable[Track] | None) – Initial tracks to include.

  • resolution (int) – Pulses Per Quarter note (PPQ / ticks per beat).

  • format (int) – MIDI file format (0 = single track, 1 = multi-track).

  • tick_relative (bool) – Whether event ticks are delta times (True) or absolute (False).

__init__(tracks=None, resolution=220, format=1, tick_relative=True)
Parameters:
Return type:

None

insert(index, value)

S.insert(index, value) – insert value before index

Return type:

None

Parameters:
make_ticks_abs()

Convert all tracks from relative (delta) ticks to absolute.

Return type:

None

make_ticks_rel()

Convert all tracks from absolute ticks to relative (delta).

Return type:

None

Track

class midi.Track(events=None, tick_relative=True)

Bases: MutableSequence[AbstractEvent]

An ordered sequence of MIDI events forming a single track.

Implements MutableSequence — supports indexing, iteration, append, slicing, etc.

Parameters:
  • events (Iterable[AbstractEvent] | None) – Initial events to include.

  • tick_relative (bool) – Whether event ticks are delta times (True) or absolute (False).

__init__(events=None, tick_relative=True)
Parameters:
Return type:

None

insert(index, value)

S.insert(index, value) – insert value before index

Return type:

None

Parameters:
make_ticks_abs()

Convert event ticks from relative (delta) to absolute.

Each event’s tick becomes the cumulative sum of all preceding delta ticks. Has no effect if ticks are already absolute.

Return type:

None

make_ticks_rel()

Convert event ticks from absolute to relative (delta).

Each event’s tick becomes the difference from the previous event. Has no effect if ticks are already relative.

Return type:

None