quasimoto.sampler package#
Submodules#
quasimoto.sampler.channel module#
A module implementing a signal channel.
- class quasimoto.sampler.channel.SignalChannel(time_keeper: TimeKeeper, params: SourceParameters = (None, None, 261.62556800000067, 1.0, WaveShape.SINE, True))[source]#
Bases:
SourceInterfaceA signal channel that allows an arbitrary number of sources to contribute to it.
- register_dynamic(name: str, factory: type[SourceInterface] | str, data: dict[str, Any] = None) SignalOperationResult[source]#
Register a dynamic source.
- register_factory(source: type[SourceInterface]) SignalOperationResult[source]#
Attempt to register a source type.
- register_source(name: str, source: SourceInterface) SignalOperationResult[source]#
Attempt to register a signal source.
- remove_source(name: str) SignalOperationResult[source]#
Attempt to register a signal source.
quasimoto.sampler.frequency module#
A module implementing a simple frequency interface class.
- class quasimoto.sampler.frequency.HasFrequencyMixin(frequency: float = 261.62556800000067, shape: WaveShape | int | str = WaveShape.SINE)[source]#
Bases:
objectA simple mixin class for classes that have some frequency component.
- quasimoto.sampler.frequency.proportion_pool(step: float, *instances: HasFrequencyMixin) None[source]#
Handle updating instance proportions.
quasimoto.sampler.notes module#
A module implementing an interface to musical notes.
quasimoto.sampler.parameters module#
A module implementing a sampler-creation-parameter interface.
- class quasimoto.sampler.parameters.SourceParameters(stop_time: float | None = None, duration: float | None = None, frequency: float = 261.62556800000067, amplitude: float = 1.0, shape: WaveShape = WaveShape.SINE, enabled: bool = True)[source]#
Bases:
NamedTupleA container for parameters used to instantiate sources.
- amplitude: float#
Alias for field number 3
- duration: float | None#
Alias for field number 1
- enabled: bool#
Alias for field number 5
- frequency: float#
Alias for field number 2
- static from_dict(data: dict[str, Any]) SourceParameters[source]#
Get source parameters from dictionary data.
- static from_index(index: int, **kwargs) SourceParameters[source]#
Create source parameters from a note index.
- static from_note(note: Note, octave_offset: int = 0, **kwargs) SourceParameters[source]#
Create parameters from a given note.
- stop_time: float | None#
Alias for field number 0
quasimoto.sampler.signature module#
A module implementing a simple time-signature interface.
quasimoto.sampler.source module#
A module implementing a sound-source interface base class.
- class quasimoto.sampler.source.SourceInterface(time_keeper: TimeKeeper, params: SourceParameters = (None, None, 261.62556800000067, 1.0, WaveShape.SINE, True))[source]#
Bases:
HasFrequencyMixin,Iterable[int],ABCA class implementing a sound-source interface.
- classmethod create(time_keeper: TimeKeeper, data: dict[str, Any] = None) T[source]#
Create a source instance from dictionary data.
quasimoto.sampler.time module#
A module implementing a simple time-keeper interface.
- class quasimoto.sampler.time.PeriodMixin(sample_rate: int = 48000)[source]#
Bases:
objectA simple class mixin for other classes that have a time-period component.
- class quasimoto.sampler.time.TimeKeeper(time: float = 0.0, sample_rate: int = 48000)[source]#
Bases:
PeriodMixinA class for keeping time.
- call_at(time: float, callback: Callable[[float], None]) None[source]#
Register a callback that runs at the specified time.
- call_in(time: float, callback: Callable[[float], None]) float[source]#
Register a callback for some relative amount of time in the future.
Module contents#
A module implementing sampler interfaces.
- class quasimoto.sampler.Sampler(time_keeper: TimeKeeper, params: SourceParameters = (None, None, 261.62556800000067, 1.0, WaveShape.SINE, True), num_bits: int = 16)[source]#
Bases:
SourceInterfaceA base class for iterable sampler interfaces.