Media

vaudio

Synthesizes and analyzes mono audio, held as a plain list of samples.

Released v1.0.0 · 2026-09-28
Import
use "stdlib/audio.ven"

Generates and analyzes mono audio held as a plain list of samples: waveforms, sampling and sample clamping.

vaudio.ven
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)

Get notified when vaudio changes

Get notified about

New versions and security advisories.

New and updated packages, once a day.

News on the math model built in Venutian.