Sonix Mixer Config
data class SonixMixerConfig(val loopCount: Int = 1, val onPlaybackComplete: () -> Unit? = null, val onLoopComplete: (loopIndex: Int) -> Unit? = null, val onError: (error: String) -> Unit? = null)
Configuration for SonixMixer.
What is SonixMixer?
A multi-track audio mixer that plays multiple audio files synchronized. Use it for:
Karaoke apps (backing track + vocal guide)
Practice apps (instrument tracks + drone)
Any scenario requiring independent volume control per track
When to Use
| Scenario | Use This? | Why |
|---|---|---|
| Play multiple tracks together | Yes | Core use case |
| Karaoke with vocal muting | Yes | Fade vocal track |
| Single audio file playback | No | Use SonixPlayer (simpler) |
| Metronome click track | No | Use SonixMetronome |
Usage Tiers
Tier 1: Presets (80% of users)
val mixer = SonixMixer.create() // Uses DEFAULT
val mixer = SonixMixer.create(SonixMixerConfig.LOOPING)Content copied to clipboard
Tier 2: Builder (15% of users)
val config = SonixMixerConfig.Builder()
.preset(SonixMixerConfig.LOOPING)
.loopCount(3)
.onPlaybackComplete { println("Done!") }
.build()
val mixer = SonixMixer.create(config)Content copied to clipboard
Tier 3: .copy() (5% of users)
val config = SonixMixerConfig.LOOPING.copy(loopCount = 3)Content copied to clipboard