SignalSmith
Inherits: RefCounted < Object
Performs time-stretching and pitch-shifting on raw audio buffers using Signalsmith.
Description
SignalSmith is a low-level audio processing utility which wraps the Signalsmith time-stretching library. It operates on raw interleaved floating-point PCM audio buffers and allows independent control of playback tempo and pitch.
Methods
change_tempo(path: String, tempo: float, pitch: float = 1.0) |
|
get_last_channels() const |
|
get_last_sample_rate() const |
|
process(input: PackedFloat32Array) |
|
void |
reset() |
void |
set_channels(channels: int) |
void |
|
void |
set_sample_rate(rate: int) |
void |
Method Descriptions
AudioStreamWAV change_tempo(path: String, tempo: float, pitch: float = 1.0) 🔗
Loads an MP3 file, applies time-stretching and pitch-shifting using the Signalsmith engine, and returns a streamable AudioStreamWAV.
The tempo parameter controls playback speed without affecting pitch. A value of 1.0 preserves the original speed.
The pitch parameter is a transpose factor. A value of 1.0 preserves pitch, 2.0 raises pitch by one octave,
and 0.5 lowers pitch by one octave.
int get_last_channels() const 🔗
There is currently no description for this method. Please help us by contributing one!
int get_last_sample_rate() const 🔗
There is currently no description for this method. Please help us by contributing one!
PackedFloat32Array process(input: PackedFloat32Array) 🔗
Processes a block of interleaved audio samples and returns a new buffer containing the time-stretched and pitch-shifted result.
The effective playback speed is determined by the ratio of input samples to output samples, as influenced by the current tempo setting. The input buffer must contain 32-bit floating-point PCM data and be interleaved according to the configured channel count.
void reset() 🔗
Resets the internal processing state.
This should be called when restarting playback or discontinuously changing input streams.
void set_channels(channels: int) 🔗
Sets the number of audio channels.
Input and output buffers are expected to be interleaved according to this channel count.
void set_pitch(pitch: float) 🔗
Sets the pitch transpose factor.
A value of 1.0 leaves pitch unchanged. Values greater than 1.0 raise pitch, while values less than 1.0 lower pitch.
void set_sample_rate(rate: int) 🔗
Sets the sample rate, in Hz, used by the internal processing engine.
Changing the sample rate resets the internal state.
void set_tempo(tempo: float) 🔗
Sets the tempo multiplier used during processing.
This value influences the ratio between input and output buffer sizes during time-stretching. A value of 1.0 preserves the original tempo, values greater than 1.0 speed up playback, and values less than 1.0 slow it down.