scamp.playback_implementations.PlaybackImplementation
- class scamp.playback_implementations.PlaybackImplementation[source]
Bases:
SavesToJSON
Abstract base class for playback implementations, which do the actual work of playback, either by playing sounds or by sending messages to external synthesizers to play sounds.
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)Method that sets the max pitch bend for MIDI-based playback implementations This is only relevant when playback is happening via the MIDI protocol.
start_note
(note_id, pitch, volume, ...)Method that implements the start of a note
Inherited Methods
Returns a copy of this object by serializing to and from JSON.
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.
- abstract 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)
- abstract 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
- abstract 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
- abstract 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
- abstract 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
- abstract set_max_pitch_bend(semitones: int) None [source]
Method that sets the max pitch bend for MIDI-based playback implementations This is only relevant when playback is happening via the MIDI protocol.
- Parameters:
semitones – unique identifier of the note to effect
- 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