Player#
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.
-
namespace YSE
Public API of libYSE — sound playback, mixing, and 3D positional audio.
Entry points:
YSE::System(lifecycle and audio device),YSE::Listener(3D origin),YSE::sound(a playable source),YSE::channel(mixing tree),YSE::reverb(positioned reverb zone),YSE::patcher(modular DSP graph),YSE::player(note sequencer). Sub-namespaces group domain-specific types:YSE::DSPfor signal processing,YSE::MIDIfor MIDI I/O,YSE::MUSICfor note / chord / motif primitives.Note
Apart from their constructors, the oscillator and
vcfclasses must only be invoked from inside a DSP callback /processbody.-
class player#
Generative note sequencer.
Plays random notes within configurable pitch / velocity / gap / length ranges, optionally constrained to a
scale, optionally drawing from one or more weightedmotifpatterns instead of pure randomness. All numeric setters accept an optionaltimeparameter that linearly interpolates from the current value to the target over that many seconds.See also
See also
Public Functions
-
player()#
-
~player()#
-
player &create(synth &instrument)#
Connect this player to a
synthand register it with the engine.Every note the player generates is delivered to
instrumentthrough its public note API (the synth’s lock-free inbox), so the same synth must not be driven concurrently from another source. Must be called beforeplay()or any setter; calling those first is a no-op that logs a warning rather than crashing.instrumentmust outlive this player. Callingcreatetwice is a no-op.
-
Bool isPlaying()#
Whether the player is currently producing notes.
-
player &setMinimumPitch(Flt target, Flt time = 0)#
Set the lowest pitch the player may produce.
Range [0, 126].
-
player &setMaximumPitch(Flt target, Flt time = 0)#
Set the highest pitch the player may produce.
Range [1, 127].
-
player &setMaximumVelocity(Flt target, Flt time = 0)#
Set the highest velocity.
Range [0.000001, 1].
-
player &setMinimumGap(Flt target, Flt time = 0)#
Set the minimum gap between successive notes / motifs, in seconds.
-
player &setMaximumGap(Flt target, Flt time = 0)#
Set the maximum gap between successive notes / motifs, in seconds.
-
player &setMinimumLength(Flt target, Flt time = 0)#
Set the minimum note length, in seconds.
Used when no motif is active.
-
player &setMaximumLength(Flt target, Flt time = 0)#
Set the maximum note length, in seconds.
Used when no motif is active.
-
player &setScale(scale &scale, Flt time = 0)#
Constrain generated pitches to a scale.
Note
The player keeps its own copy — modifying
scaleafter this call has no effect on the player.
-
player &addMotif(motif &motif, UInt weight = 1)#
Add a motif to the player’s pool.
When the player decides to play a motif (see
playMotifs) it picks one weighted byweight.
-
player &adjustMotifWeight(motif &motif, UInt weight)#
Adjust the selection weight of an already-added motif.
-
player &playPartialMotifs(Flt target, Flt time = 0)#
Probability that the player plays only part of a motif.
target == 0always plays full motifs,target == 1always plays partial motifs, values in between mix the two.
Private Functions
-
bool checkCreated() const#
-
player()#
-
class player#