scamp.playback_implementations.OSCPlaybackImplementation

class scamp.playback_implementations.OSCPlaybackImplementation(port: int, ip_address: str = '127.0.0.1', message_prefix: str = 'scamp', osc_message_addresses: dict = 'default')[source]

Bases: PlaybackImplementation

Playback implementation that sends outgoing OSC messages to an external synthesizer / program

Parameters:
  • port – OSC port to use for playback

  • ip_address – ip_address to send OSC messages to

  • message_prefix – prefix used in the address of all messages sent. Defaults to the name of the instrument

  • osc_message_addresses – dictionary mapping the kind of the message to the address for that message. Defaults to playback_settings.osc_message_addresses

Methods

change_note_parameter(note_id, ...)

Method that implements the change of a parameter other than pitch or volume

change_note_pitch(note_id, new_pitch)

Method that implements the change of a note's pitch

change_note_volume(note_id, new_volume)

Method that implements the change of a note's volume

end_note(note_id)

Method that implements the end of a note

set_max_pitch_bend(semitones)

This method does nothing in the case of an OSC-based implementation

start_note(note_id, pitch, volume, ...)

Method that implements the start of a note

Inherited Methods

duplicate()

Returns a copy of this object by serializing to and from JSON.

json_dumps()

Dump this object as a JSON string.

json_loads(s)

Load this object from a JSON string.

load_from_json(file_path)

Load this object from a JSON file with the given path.

save_to_json(file_path)

Save this object to a JSON file using the given path.

start_note(note_id: int, pitch: float, volume: float, properties: NoteProperties, note_info_dict: dict) None[source]

Method that implements the start of a note

Parameters:
  • note_id – unique identifier for the note we are starting

  • pitch – floating-point MIDI pitch value

  • volume – floating-point volume value (from 0 to 1)

  • properties – a NotePropertiesDictionary

  • other_parameter_values – dictionary mapping parameter name to parameter value for parameters other than pitch and volume. (This information was extracted from the properties dictionary.)

  • note_info_dict – dictionary with auxiliary info about this note (e.g. the clock it’s running on, time stamp, various flags)

end_note(note_id: int) None[source]

Method that implements the end of a note

Parameters:

note_id – unique identifier of the note to end

change_note_pitch(note_id: int, new_pitch: float) None[source]

Method that implements the change of a note’s pitch

Parameters:
  • note_id – unique identifier of the note whose pitch to change

  • new_pitch – new (floating-point) MIDI pitch value

change_note_volume(note_id: int, new_volume: float) None[source]

Method that implements the change of a note’s volume

Parameters:
  • note_id – unique identifier of the note whose volume to change

  • new_volume – new floating point volume value from 0 to 1

change_note_parameter(note_id: int, parameter_name: str, new_value: float) None[source]

Method that implements the change of a parameter other than pitch or volume

Parameters:
  • note_id – unique identifier of the note to effect

  • parameter_name – name of the parameter to change

  • new_value – new floating-point value of that parameter

set_max_pitch_bend(semitones: int) None[source]

This method does nothing in the case of an OSC-based implementation

duplicate() T

Returns a copy of this object by serializing to and from JSON.

json_dumps() str

Dump this object as a JSON string. This uses a custom encoder that recognizes and appropriately converts any attributes that are object inheriting from SavesToJSON.

classmethod json_loads(s: str) T

Load this object from a JSON string. This uses a custom decoder that looks for a “_type” key in any object/dictionary being parsed and converts it to the class specified (assuming it a subclass of SavesToJSON).

Parameters:

s – a string representing this object in JSON format

classmethod load_from_json(file_path: str) T

Load this object from a JSON file with the given path. This uses a custom decoder that looks for a “_type” key in any object/dictionary being parsed and converts it to the class specified (assuming it a subclass of SavesToJSON).

Parameters:

file_path – path for loading the file

save_to_json(file_path: str) None

Save this object to a JSON file using the given path. This uses a custom encoder that recognizes and appropriately converts any attributes that are object inheriting from SavesToJSON.

Parameters:

file_path – path for saving the file