Queues

class alsa_midi.Queue(client, queue_id, *, _own=None)[source]

Sequencer queue.

Variables
  • client – client object this queue belongs to

  • queue_id – queue identifier

  • _own – Ownership flag. True for queues owned by the client, False

Parameters

for queues owned by other client and None for no ownership management (no release or free on close).

close()[source]

Close the queue, freeing any resources.

Wraps snd_seq_free_queue().

continue_()[source]

Continue running the queue.

drain_output() needs to be called for actual effect.

control(event_type, value=0)[source]

Queue control (start/stop/continue).

Parameters
  • event_type (EventType) – queue control event type

  • value (int) – value for the event

Creates and sends (to the output buffer) queue control event. drain_output() needs to be called for the event to actually be sent and executed.

Wraps snd_seq_control_queue().

get_info()[source]

Obtain queue attributes.

Wraps snd_seq_get_queue_info().

Return type

QueueInfo

get_status()[source]

Obtain queue attributes.

Wraps snd_seq_get_queue_status().

Return type

QueueStatus

get_tempo()[source]

Get the tempo of the queue.

Wraps snd_seq_get_queue_tempo().

get_timer()[source]

Obtain queue timer parameters.

Wraps snd_seq_get_queue_timer().

Return type

QueueTimer

get_usage()[source]

Get the queue usage flag.

Wraps snd_seq_get_queue_usage().

Returns

True if the queue is considered in use by the current client.

Return type

bool

set_info(info)[source]

Change queue attributes.

Parameters

info (QueueInfo) – new values

Wraps snd_seq_set_queue_info().

set_tempo(tempo=None, ppq=None, skew=None, skew_base=None, bpm=None)[source]

Set the tempo of the queue.

Parameters
  • tempo (Optional[Union[int, QueueTempo]]) – MIDI tempo – microseconds per quarter note

  • ppq (Optional[int]) – MIDI pulses per quarter note (default: 96)

  • skew – timer skew value

  • skew_base – timer skew base value

Wraps snd_seq_set_queue_tempo().

set_timer(timer)[source]

Change queue timer parameters.

Wraps snd_seq_get_queue_timer().

Parameters

timer (QueueTimer) –

set_usage(usage)[source]

Marks the queue in use by the current client.

Wraps snd_seq_set_queue_usage().

This flag is normally automatically managed for Queue objects obtained via SequencerClient.

Parameters

usage (bool) – True to enable queue usage

start()[source]

Start the queue.

drain_output() needs to be called for actual effect.

stop()[source]

Stop the queue.

drain_output() needs to be called for actual effect.

class alsa_midi.QueueInfo(queue_id=0, name='', owner=0, locked=False, flags=0)[source]

Sequencer queue information.

Represents snd_seq_queue_info_t.

Parameters
  • queue_id (int) – queue identifier

  • name (str) – queue name

  • owner (int) – client id of the queue owner

  • locked (bool) – queue locked flag

  • flags (int) – conditional bit flags

Variables
  • queue_id – queue identifier

  • name – queue name

  • owner – client id of the queue owner

  • locked – queue locked flag

  • flags – conditional bit flags

Return type

None

class alsa_midi.QueueStatus(queue_id=0, events=0, tick_time=0, real_time=RealTime(seconds=0, nanoseconds=0), status=0)[source]

Queue status.

Represents data from snd_seq_queue_status_t

Variables
  • queue_id – queue id

  • events – number of events

  • tick_time – queue time in ticks

  • real_time – queue time in seconds and nanoseconds

  • status – running status bits

Parameters
Return type

None

property running

Whether the queue is running.

class alsa_midi.QueueTempo(tempo=500000, ppq=96, skew=None, skew_base=None)[source]

Queue tempo.

Represents data from snd_seq_queue_tempo_t

Parameters
  • tempo (int) – MIDI tempo (microseconds per quarter note)

  • ppq (int) – MIDI pulses per quarter note

  • skew (Optional[int]) – timer skew value

  • skew_base (Optional[int]) – timer skew base value (only allowed value is 0x10000).

Variables
  • tempo – MIDI tempo (microseconds per quarter note)

  • ppq – MIDI pulses per quarter note

  • skew – timer skew value

  • skew_base – timer skew base value (only allowed value is 0x10000).

Return type

None

property bpm

Approximate beats per minute value for the selected tempo.

class alsa_midi.QueueTimer(id=TimerId(dev_class=0, dev_sclass=0, card=0, device=0, subdevice=0), queue_id=0, type=QueueTimerType.ALSA, resolution=0)[source]

Queue timer.

Represents data from snd_seq_queue_timer_t

Parameters
  • id (TimerId) – timer device identification

  • queue_id (int) – queue id

  • type (QueueTimerType) – timer type

  • resolution (int) – timer resolution

Variables
  • id – timer device identification

  • queue_id – queue id

  • type – timer type

  • resolution – timer resolution

Return type

None

class alsa_midi.QueueTimerType(value)[source]

Queue timer type.

class alsa_midi.queue.TimerId(dev_class, dev_sclass, card, device, subdevice)[source]

Queue timer identification (named tuple).

Points to a specific timer device.

Variables
  • dev_class – timer class

  • dev_sclass – timer subclass

  • card – timer card

  • device – timer device

  • subdevice – timer subdevice

Parameters
  • dev_class (int) –

  • dev_sclass (int) –

  • card (int) –

  • device (int) –

  • subdevice (int) –

card: int

Alias for field number 2

dev_class: int

Alias for field number 0

dev_sclass: int

Alias for field number 1

device: int

Alias for field number 3

subdevice: int

Alias for field number 4