Media
vaudio
Synthesizes and analyzes mono audio, held as a plain list of samples.
Released v1.0.0 · 2026-09-28use "stdlib/audio.ven"
Generates and analyzes mono audio held as a plain list of samples: waveforms, sampling and sample clamping.
print clamp_sample(1.5)
Reference (14 functions)
API reference
clamp_sample(x)
clamp_sample(1.5)sine_wave(frequency, duration_seconds, sample_rate)
Generates a pure sine tone as a List of samples.
sine_wave(440.0, 0.01, 44100.0)square_wave(frequency, duration_seconds, sample_rate)
Generates a hard-edged square wave as a List of samples.
square_wave(220.0, 0.01, 8000.0)sawtooth_wave(frequency, duration_seconds, sample_rate)
Generates a linear ramp sawtooth wave as a List of samples.
sawtooth_wave(110.0, 0.01, 8000.0)mix(a, b)
Mixes two of equal length sample lists by adding them sample by sample.
mix([0.5, 0.5], [0.5, -0.5])apply_gain(samples, decibels)
Scales every sample in samples by a decibel gain factor.
apply_gain([0.5, -0.5], 6.0206)fade_in(samples, duration_samples)
Applies a linear fade-in over the first duration_samples samples.
fade_in([1.0, 1.0, 1.0, 1.0], 4)fade_out(samples, duration_samples)
Applies a linear fade-out over the last duration_samples samples.
fade_out([1.0, 1.0, 1.0, 1.0], 4)rms_level(samples)
Computes the root-mean-square amplitude of samples.
rms_level([1.0, -1.0, 1.0, -1.0])WAV encoding
repeated_char(ch, count)
Repeats a single character count times, building a fixed-width Text.
repeated_char("h", 3)to_wav_bytes(samples, sample_rate)
length(to_wav_bytes([0.0, 0.5, -0.5], 44100.0))from_wav_bytes(data)
from_wav_bytes(to_wav_bytes([0.0, 0.5], 8000.0))Pitch detection
autocorrelation_at_lag(samples, lag)
Computes the raw autocorrelation of samples against itself, shifted by lag.
autocorrelation_at_lag([1.0, 0.0, 1.0, 0.0], 2)detect_pitch(samples, sample_rate)
Estimates the fundamental frequency of samples by autocorrelation.
detect_pitch(sine_wave(220.0, 0.05, 8000.0), 8000.0)