Sonix Tone Generator
object SonixToneGenerator
Generates raw audio waveforms as AudioRawData.
Use this for synthesizing simple tones (sine, square, sawtooth, triangle) at a specific frequency and duration. Useful for tuning references, test signals, and note playback.
When to Use
| Scenario | Use This? | Why |
|---|---|---|
| Generate a tuning reference tone | Yes | generate(440f, durationMs = 1000) |
| Synthesize a test signal | Yes | Sine, square, sawtooth, triangle |
| Play a MIDI note with SoundFont | No | Use SonixMidiSynthesizer |
| Play back an audio file | No | Use SonixPlayer |
Quick Start
Kotlin
// Generate a 440 Hz sine tone for 1 second
val tone = SonixToneGenerator.generate(440f, durationMs = 1000)
// Generate a square wave at C4 (261.63 Hz)
val square = SonixToneGenerator.generate(
frequencyHz = 261.63f,
durationMs = 500,
waveType = WaveType.SQUARE
)Content copied to clipboard
Swift
// Generate a 440 Hz sine tone for 1 second
let tone = SonixToneGenerator.generate(frequencyHz: 440, durationMs: 1000)
// Generate a square wave at C4 (261.63 Hz)
let square = SonixToneGenerator.generate(
frequencyHz: 261.63,
durationMs: 500,
waveType: .square
)Content copied to clipboard
Common Pitfalls
Amplitude clipping: Keep amplitude <= 1.0 to avoid distortion
Nyquist limit: Frequencies above
sampleRate / 2will produce aliasing artifactsZero-duration: Very short durations at low sample rates may produce 0 samples
See also
For MIDI-based synthesis from SoundFont files
For available waveform types
Functions
Link copied to clipboard
fun generate(frequencyHz: Float, durationMs: Int, sampleRate: Int = 44100, waveType: WaveType = WaveType.SINE, amplitude: Float = 0.8f): AudioRawData
Generate a tone as AudioRawData.