ipytone.Sampler#

class ipytone.Sampler(**kwargs: Any)#

Bases: AudioNode

A polyphonic instrument based on samples.

The playback rate (or pitch) of the loaded samples is mapped to notes.

__init__(urls, base_url='', volume=0, **kwargs)#

Public constructor

Methods

add(note, url)

Add a player.

chain(*nodes)

Connect the output of this audio node to the other audio nodes in series.

connect(destination[, output_number, ...])

Connect the output of this audio node to the input of another node.

disconnect(destination[, output_number, ...])

Disconnect the ouput of this audio node from a connected node.

dispose()

Dispose and disconnect this audio node (as well as its input/output).

fan(*destinations)

Connect the output of this audio node to the destinations audio nodes in parallel.

release_all([time])

Trigger the release of all currently playing samples.

to_destination()

Convenience method to directly connect the output of this audio node to the main output (speakers) node.

trigger_attack(notes[, time, velocity])

Trigger the attack portion of one or more notes.

trigger_attack_release(notes, duration[, ...])

Play one or more notes with given duration(s).

trigger_note(note[, time])

Trigger a note.

trigger_release(notes[, time])

Trigger the release of one or more notes.

Attributes

attack

Envelope attack

channel_count

An int trait.

channel_count_mode

An enum whose value must be in a given sequence.

channel_interpretation

An enum whose value must be in a given sequence.

curve

envelope curve

disposed

Returns True if the node was disposed (i.e., disconnected and web audio node freed for garbage collection).

input

Returns the input node, or None if this node is a source.

loaded

Returns True if all audio buffers are loaded.

log

A trait whose value must be an instance of a specified class.

name

A trait for unicode strings.

number_of_inputs

Returns the number of input slots for the input node (0 for source nodes).

number_of_outputs

Returns the number of output slots for the output node (0 for sink nodes).

output

Returns the output node, or None if this node is a sink.

release

Envelope release

volume

The volume parameter.

add(note, url)#

Add a player.

Parameters:
  • note (str) – Buffer key (must be a midi note).

  • url (str or AudioBuffer.) – Buffer file URL (str) or AudioBuffer object.

attack#

Envelope attack

chain(*nodes)#

Connect the output of this audio node to the other audio nodes in series.

connect(destination, output_number=0, input_number=0)#

Connect the output of this audio node to the input of another node.

Parameters:
  • destination (AudioNode or NativeAudioNode or Param or NativeAudioParam) – The destination node.

  • output_number (int) – The channel number of the output of this node (default: 0).

  • input_number (int) – The channel number of the input of the destination node (default: 0).

curve#

envelope curve

disconnect(destination, output_number=0, input_number=0)#

Disconnect the ouput of this audio node from a connected node.

Parameters:
  • destination (AudioNode or NativeAudioNode or Param or NativeAudioParam) – The connected destination node.

  • output_number (int) – The channel number of the output of this node (default: 0).

  • input_number (int) – The channel number of the input of the destination node (default: 0).

dispose()#

Dispose and disconnect this audio node (as well as its input/output).

property disposed#

Returns True if the node was disposed (i.e., disconnected and web audio node freed for garbage collection).

fan(*destinations)#

Connect the output of this audio node to the destinations audio nodes in parallel.

property input#

Returns the input node, or None if this node is a source.

property loaded#

Returns True if all audio buffers are loaded.

property number_of_inputs#

Returns the number of input slots for the input node (0 for source nodes).

property number_of_outputs#

Returns the number of output slots for the output node (0 for sink nodes).

property output#

Returns the output node, or None if this node is a sink.

release#

Envelope release

release_all(time=None)#

Trigger the release of all currently playing samples.

Parameters:

time (float or str, optional) – The time at which all active samples are silenced (default: now).

to_destination()#

Convenience method to directly connect the output of this audio node to the main output (speakers) node.

trigger_attack(notes, time=None, velocity=1)#

Trigger the attack portion of one or more notes.

Parameters:
  • notes (float or str or list) – The frequency(ies) or note(s) to play.

  • time (float or str, optional) – The time at which the note attack is triggered (default: now).

  • velocity (float, optional) – The velocity of the note(s) (any value between 0 and 1).

trigger_attack_release(notes, duration, time=None, velocity=1)#

Play one or more notes with given duration(s).

Parameters:
  • notes (float or str or list) – The frequency(ies) or note(s) to play. Unlike monophonic instruments, all notes are triggered at the same time.

  • duration (float or str or list) – The duration(s) of (each of) the note to play.

  • time (float or str, optional) – The time at which the note attack is triggered (default: now).

  • velocity (float, optional) – The velocity of all of the notes (any value between 0 and 1).

trigger_note(note, time=None)#

Trigger a note.

Parameters:
  • note (Note) – The note object to play. Depending on its trigger_type attribute, this method dispatches either to trigger_attack, trigger_release or trigger_attack_relase using the the other attribute values.

  • time (float or str, optional) – The time at which the note attack or release is triggered (default: now). This overrides the time attribute of the note object.

trigger_release(notes, time=None)#

Trigger the release of one or more notes.

Parameters:
  • notes (float or str or list) – The frequency(ies) or note(s) to release.

  • time (float or str, optional) – The time at which the note(s) are released (default: now).

property volume: Param#

The volume parameter.