generate

fun generate(frequencyHz: Float, durationMs: Int, sampleRate: Int = 44100, waveType: WaveType = WaveType.SINE, amplitude: Float = 0.8f): AudioRawData

Generate a tone as AudioRawData.

Usage

Kotlin

val tone = SonixToneGenerator.generate(440f, durationMs = 1000)
val triangle = SonixToneGenerator.generate(
frequencyHz = 261.63f,
durationMs = 500,
waveType = WaveType.TRIANGLE,
amplitude = 0.5f
)

Swift

let tone = SonixToneGenerator.generate(frequencyHz: 440, durationMs: 1000)
let triangle = SonixToneGenerator.generate(
frequencyHz: 261.63,
durationMs: 500,
waveType: .triangle,
amplitude: 0.5
)

Return

AudioRawData containing the generated tone as mono 16-bit PCM.

Parameters

frequencyHz

Tone frequency in Hz (must be positive).

durationMs

Duration in milliseconds (must be positive).

sampleRate

Sample rate in Hz (default: 44100).

waveType

Waveform type (default: WaveType.SINE).

amplitude

Peak amplitude in 0..1 range (default: 0.8).

Throws

if parameters are out of valid range.