Skip to content

Ports

Warning

These ports require the special Ableton Live user remote script installed.

The remote script can be installed using action in the Help section of MIDI Scripter GUI's menubar.

The MIDI Scripter user remote script should be assigned to proxy_midi_port_name MIDI ports in Ableton Live settings.

AbletonIO

AbletonIO(proxy_midi_port_name: str, *, virtual: bool = False)

Bases: MidiIO

Parameters:

  • port_name (str) –

    MIDI port name

  • virtual (bool, default: False ) –

    Create virtual input and output ports

  • loopback (bool, default: False ) –

    Immediately send the messages received by the input port with the output port

is_opened

is_opened: bool

True if port is listening messages / ready to send messages

passthrough_out

passthrough_out(midi_output: MidiOut) -> None

Attach MidiOut as a pass-through port to send all incoming messages as soon as they arrive, before sending them to calls. This can greatly reduce latency.

Parameters:

subscribe

subscribe(
    type: None | Container[AbletonEvent] | AbletonEvent = None,
    index: (
        None | Container[int, tuple[int, int]] | int | tuple[int, int]
    ) = None,
    value: None | Container[int] | int | bool = None,
) -> Callable

Decorator to subscribe a callable to all the wrapped inputs' messages.

Decorator without arguments subscribes a callable to all the input's messages.

Decorator with arguments subscribes a callable to the input's messages that match conditions set by arguments. It works the same way as message's matches method:

  1. If condition is None or omitted it matches anything.

  2. If condition equals the message's attribute value it matches the attribute.

  3. If condition is a container (list, tuple) and contains the message's attribute value, it matches the attribute.

Examples
  1. Calls function for all MIDI port's messages:
    @midi_input_instance.subscribe
    def function(msg: MidiMsg) -> None:
        pass
    
  2. Calls function for OSC messages from specific address:
    @osc_input_instance.subscribe(address='/live/song/get/track_data')
    def function(msg: OscMsg) -> None:
        pass
    
  3. Call object instance method for MIDI port's "note on" and "note off" messages:
    midi_input_instance.subscribe((MidiType.NOTE_ON, MidiType.NOTE_OFF))(object.method)
    

Returns:

  • Callable

    Subscribed callable.

send

send(msg: AbletonMsg | ChannelMsg) -> None

Send message to Ableton remote script.

Parameters:

AbletonIn

AbletonIn(proxy_midi_port_name: str, *, virtual: bool = False)

Bases: MidiIn

Receives MIDI messages from Ableton Live remote script and produces AbletonMsg objects.

Parameters:

  • proxy_midi_port_name (str) –

    The name of proxy MIDI input port enabled in Ableton Live

  • virtual (bool, default: False ) –

    Create virtual MIDI port

is_opened

is_opened: bool

True if port is listening messages / ready to send messages

passthrough_out

passthrough_out(midi_output: MidiOut) -> None

Attach MidiOut as a pass-through port to send all incoming messages as soon as they arrive, before sending them to calls. This can greatly reduce latency.

Parameters:

subscribe

subscribe(
    type: None | Container[AbletonEvent] | AbletonEvent = None,
    index: (
        None | Container[int, tuple[int, int]] | int | tuple[int, int]
    ) = None,
    value: None | Container[int] | int | bool = None,
) -> Callable

Decorator to subscribe a callable to the input's messages.

Decorator without arguments subscribes a callable to all the input's messages.

Decorator with arguments subscribes a callable to the input's messages that match conditions set by arguments. It works the same way as message's matches method:

  1. If condition is None or omitted it matches anything.

  2. If condition equals the message's attribute value it matches the attribute.

  3. If condition is a container (list, tuple) and contains the message's attribute value, it matches the attribute.

Examples
  1. Calls function for all MIDI port's messages:
    @midi_input_instance.subscribe
    def function(msg: MidiMsg) -> None:
        pass
    
  2. Calls function for OSC messages from specific address:
    @osc_input_instance.subscribe(address='/live/song/get/track_data')
    def function(msg: OscMsg) -> None:
        pass
    
  3. Call object instance method for MIDI port's "note on" and "note off" messages:
    midi_input_instance.subscribe((MidiType.NOTE_ON, MidiType.NOTE_OFF))(object.method)
    

Returns:

  • Callable

    Subscribed callable.

AbletonOut

AbletonOut(proxy_midi_port_name: str, *, virtual: bool = False)

Bases: MidiOut

Sends AbletonMsg objects as MIDI message to Ableton Live remote script.

Parameters:

  • proxy_midi_port_name (str) –

    The name of proxy MIDI output port enabled in Ableton Live

  • virtual (bool, default: False ) –

    Create virtual MIDI port

is_opened

is_opened: bool

True if port is listening messages / ready to send messages

send

send(msg: AbletonMsg | ChannelMsg) -> None

Send message to Ableton remote script.

Parameters: