flutter_soloud
Flutter low-level audio plugin using SoLoud C++ library and FFI
git clone https://github.com/alnitak/flutter_soloud.gitalnitak/flutter_soloudA low-level audio plugin for Flutter.
| Linux | Windows | Android | macOS | iOS | Web | |
|---|---|---|---|---|---|---|
| Support | 💙 | 💙 | 💙 | 💙 | 💙 | 💙 |
| Minimum Version | Any | Any | 21+ | 10.15+ | 13.0+ | iOS 16.4+ Safari 16.4+ Chrome 91+ Edge 91+ Firefox 89+ |
Overview
A high-performance audio plugin designed primarily for games and immersive applications, providing low latency and advanced features.
Key Features
- ⚡ Low latency, high performance audio
- ⏱️ Sample-accurate scheduled playback:
playClockedfor sub-millisecond spaced playback regardless of buffer size, andplayScheduledfor score/manifest-style scheduling of whole batches of sounds on the engine's own clock (with optional scheduled stop/fade). Perfect for metronomes, music sequencers, rhythm games and precisely timed audio cues - 🎮 3D positional audio with Doppler effect
- 🔄 Gapless looping with half-open
[start, end)loop regions - 🔄 Stream audio with auto-pause for buffering, support for PCM, MP3, WAV, Ogg with Opus, Vorbis and FLAC containers
- 📥 Pull-buffer streaming: the engine requests encoded data on demand (MP3, WAV, FLAC, Ogg Opus/Vorbis/FLAC), with seek support and callbacks for buffering, metadata, duration and data requests — ideal for network streams and custom data sources
- 🚌 Mixing buses: group voices (music, SFX, UI...) into sub-mixes with their own volume, filters and visualization
- 📊 Get audio wave and/or FFT audio data in real-time (useful for visualization)
- 🎛️ Rich effects system (reverb, echo, limiter, parametric equalizer, pitch shift, etc.)
- ⚙️ Faders for attributes (e.g. fade out for 2 seconds, then stop)
- 🎚️ Oscillators for attributes
- 🌊 Waveform generation and visualization
- 🔊 Multiple voices, playing different or even the same sound multiple times
- 🎵 Support for MP3, WAV, OGG, and FLAC
- 🔴 Capture the master mixer output as a stream for recording, processing, or streaming (with different PCM formats and Opus, Vorbis, FLAC, WAV encoded stream formats)
- ⏱️ Read audio data samples from a file with a given time range
- 🌊 Generate waveforms in real-time with various types (sine, square, saw, triangle, etc.)
Whether you are building a game (3D positional SFX, mixing buses, low-latency playback) or any other kind of audio app — music tools, metronomes, radio/streaming apps, visualizers, recorders — the plugin exposes the low-level control you need.
Getting Started
- Watch the Flutter Package of the Week video.
- Especially for web use, please look at the setup guide docs.
If you are looking for a package to visualize audio using shaders or CustomPainter, please check out audio_flux. It uses this plugin for output and flutter_recorder for input.
Also, if you are building using Swift Package Manager (SPM), please check out iOS and macOS Configuration.
Documentation
Simple Example
import 'package:flutter_soloud/flutter_soloud.dart';
void example() async {
final soloud = SoLoud.instance;
await soloud.init();
await soloud.playSource(asset: 'assets/sound.mp3');
// or
final sound = await soloud.loadAsset('assets/sound.mp3');
final handle = soloud.play(sound);
[...]
soloud.deinit();
}
Apps & Games Using flutter_soloud
A showcase of apps and games built with this plugin:
| App/Game | Developer | Description |
|---|---|---|
| GPhil web macOS Windows |
Vyacheslav Gryaznov | Innovative app designed for musicians to play instrumental concertos with flexible virtual orchestral accompaniment. |
| Forcebar | Doug Todd | Forcebar is a pure reflex game. |
| RadioVisualizer | Marco Bavagnoli | Stream over 35,000 live radio stations from every corner of the globe. |
| Stellar Bastion web Android iOS |
Coconut Island Apps | 2D Tower Defense game. |
| Mortigen web Android iOS |
Luis Enrique Ruiz | Roguelite survival shooter. |
| SUMOJI web Android iOS |
Valentin Martinet | Fun Emoji-based Sudoku. |
| GuanDan web macOS Windows Android iOS |
yangyuan | GuanDan (掼蛋) is a popular four-player Chinese card game. |
Want to add your app? Feel free to open a PR!
License
The Dart plugin is covered by the MIT license. For information about the underlying SoLoud engine license, see the documentation.
more like this
svelte-audio-waveform
Generate stunning audio waveforms with Svelte 5 and Canvas. Transform an array of peak data into beautifully rendered,…
habitonic
Habit Tracker helps you build positive habits and keeps track of your day-to-day habits and routines. Made with Clean a…