dorkhub

flutter_soloud

Flutter low-level audio plugin using SoLoud C++ library and FFI

alnitak
C41188 forksMITupdated 1 day ago
git clone https://github.com/alnitak/flutter_soloud.gitalnitak/flutter_soloud

A low-level audio plugin for Flutter.

Pub Version style: very good analysis

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: playClocked for sub-millisecond spaced playback regardless of buffer size, and playScheduled for 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

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,…

Svelte51

habitonic

Habit Tracker helps you build positive habits and keeps track of your day-to-day habits and routines. Made with Clean a…

Dart52

search

search projects, people, and tags