pub fn square_wave<T>(
frequency: f64,
duration: Duration,
sample_rate: NonZeroU32,
amplitude: f64,
) -> AudioSamples<'static, T>where
T: StandardSample,Expand description
Generates a square wave with the specified parameters.
Each sample is +amplitude when sin(2π · frequency · t) ≥ 0 and −amplitude
otherwise, producing an ideal (non-band-limited) square wave. The duty cycle is fixed
at 50%.
§Arguments
frequency– Frequency of the square wave in Hz.duration– Duration of the generated signal.sample_rate– Sampling rate in Hz.amplitude– Peak amplitude.
§Returns
A mono AudioSamples buffer containing the generated square wave.
§Examples
use audio_samples::utils::generation::square_wave;
use audio_samples::sample_rate;
use std::time::Duration;
let wave = square_wave::<f32>(440.0, Duration::from_millis(10), sample_rate!(44100), 1.0);
assert_eq!(wave.num_channels().get(), 1);