Agent skill

flutter_soloud Mixing Buses

by alnitak in alnitak/flutter_soloud

Teaches flutter_soloud mixing buses for routing groups of sounds through shared sub-mixes with collective volume and filters, such as separate music, SFX and UI sliders.

MITAuto-check passedMobile

Install flutter_soloud Mixing Buses

skills CLI
$ npx skills add alnitak/flutter_soloud --skill flutter-soloud-mixing-bus -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install alnitak/flutter_soloud flutter-soloud-mixing-bus --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/alnitak/flutter_soloud.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/flutter-soloud-mixing-bus .claude/skills/flutter-soloud-mixing-bus && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
flutter-soloud-mixing-bus
GitHub stars
425
Token cost
~1.7k tokens
SKILL.md length
678 words
Files
2 (incl. references)
Skills in repo
14
Repo updated
First seen
Licence
MIT

At a glance

Teaches flutter_soloud mixing buses for routing groups of sounds through shared sub-mixes with collective volume and filters, such as separate music, SFX and UI sliders.

  • Adding separate music, SFX and UI volume sliders
  • SKILL.md covers Minimal example, The API shape, Traps and More depth, plus 1 more section
  • Calls dart
  • Applying one filter to a whole category of sounds

What it does

A Bus is a virtual mixer channel: sounds routed through it share one volume and one set of filters. The skill covers creating a bus with `SoLoud.instance.createMixingBus`, looking buses up through the `Buses()` registry, playing the bus itself on the engine with `playOnEngine` and then playing sounds onto it, either with the bus's own play methods or by passing a `busId` to `SoLoud.instance.play`. Bus id 0 always means the main engine output.

It also covers moving a live sound onto a bus with `annexSound`, scoping filters to one bus through `bus.filters` and setting the channel count with `setChannels`. There is no `bus.volume` property, so bus volume is changed through the SoLoud volume functions on the bus's sound handle. The skill contrasts this explicit routing with players that use one player per sound and have no sub-mix concept, and `references/api.md` holds the API details. The excerpt ends within the API list.

When your agent uses it

  • Adding separate music, SFX and UI volume sliders
  • Applying one filter to a whole category of sounds
  • Ducking music under voice or re-routing sounds at runtime

Example prompts

  • “Add Music, SFX and UI buses to my Flutter game with a volume slider for each.”
  • “Put a low-pass filter on the music bus only.”
  • “Move the currently playing ambience loop onto a new filtered bus.”

Requirements

  • A Flutter app that uses the `flutter_soloud` package

What it can do on your machine

Read from SKILL.md and the folder at commit 8419081. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • dart

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • solhsa.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

flutter_soloud Mixing Buses loads about 1.7k tokens when it runs, and up to ~2.8k if it reads all its reference files. Until then it costs about 102 tokens; SKILL.md has 678 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~102
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from alnitak/flutter_soloud at commit 8419081, republished under its MIT licence (© alnitak). 678 words, ~1,749 tokens.

Download SKILL.mdSave it as .claude/skills/flutter-soloud-mixing-bus/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
flutter-soloud-mixing-bus
description
Teaches how to use flutter_soloud mixing buses (Bus/Buses) to route groups of sounds through a shared sub-mix for collective volume control and shared filters. Use when the user asks for separate music/SFX/UI volume sliders, grouped effects, ducking music under voice, routing sounds between categories at runtime, or a per-category audio mixer in a game or app using flutter_soloud.
version
1

Mixing buses (sub-mixes) in flutter_soloud

A Bus is a virtual mixer channel: sounds are routed through it, so one volume change or one filter affects everything on the bus. The canonical use is separate Music / SFX / UI buses behind user volume sliders. Unlike audioplayers/just_audio (one player per sound, no sub-mix concept), routing is explicit: you create a bus, play the bus itself on the engine, then play sounds onto it.

Minimal example

dart
import 'package:flutter_soloud/flutter_soloud.dart';

Future<void> main() async {
  await SoLoud.instance.init();

  // 1. Create the bus (synchronous, cheap).
  final sfxBus = SoLoud.instance.createMixingBus(name: 'SFX');

  // 2. REQUIRED: play the bus on the engine. Until this call, the bus
  //    (and everything routed through it) is silent.
  sfxBus.playOnEngine();

  // 3. Route sounds through the bus.
  final explosion = await SoLoud.instance.loadAsset('assets/explosion.mp3');
  sfxBus.play(explosion); // synchronous, returns SoundHandle

  // 4. Collective volume: set it on the bus's own handle, not per-sound.
  SoLoud.instance.setVolume(sfxBus.soundHandle!, 0.5);

  // 5. Shared filter on everything routed through the bus.
  sfxBus.filters.echoFilter.activate();

  // Cleanup: stops all sounds playing through the bus.
  sfxBus.dispose();
}

The API shape

  • SoLoud.instance.createMixingBus({String name = ''}) → Bus. Synchronous; registers the bus in the Buses() registry. First bus gets busId == 1; busId == 0 always means "the main engine output".
  • Buses() singleton registry: Buses().buses (list of all live buses), Buses().byName('SFX'), Buses().byId(1). Both lookups throw if not found unless you pass orElse.
  • bus.playOnEngine({double volume = 1.0, bool paused = false}) → SoundHandle. Makes the bus audible; stores the handle in bus.soundHandle. Calling it again on the same bus stops the earlier instance (only one bus voice at a time).
  • Playing onto a bus — two equivalent ways:
    • bus.play(sound, {volume, pan, paused, looping, ...}) and its siblings bus.playClocked, bus.playScheduled, bus.play3d, bus.play3dClocked, bus.play3dScheduled — thin wrappers that forward to the SoLoud method of the same name with busId set.
    • SoLoud.instance.play(sound, busId: sfxBus.busId) — every SoLoud play method takes an int busId = 0 parameter.
  • bus.annexSound(handle) — re-parent a live voice (by its SoundHandle) into this bus, e.g. move a sound already playing on the engine onto a filtered bus mid-playback.
  • Bus volume: there is no bus.volume property. Use SoLoud.instance.setVolume(bus.soundHandle!, v) / SoLoud.instance.getVolume(bus.soundHandle!). This scales every voice routed through the bus on top of each voice's own volume.
  • bus.filters — a FiltersSingle scoped to this bus; filters activated here apply to all routed sounds only (engine-wide filters live on SoLoud.instance.filters). See skill flutter-soloud-filters.
  • bus.setChannels({Channels channels = Channels.stereo}) — bus output channel count (Channels.mono/stereo/quad/surround51/dolby71).
  • bus.getChannelVolume(channel) — approximate per-channel output level for VU meters. Requires SoLoud.instance.setVisualizationEnabled(true) first; returns 0 for out-of-range channels.
  • bus.getActiveVoiceCount() — voices currently playing through the bus; returns 0 if the bus isn't playing on the engine.
  • bus.isActive — true once playOnEngine() succeeded.
  • bus.dispose() — destroys the bus and stops all sounds routed through it; removes it from Buses().

Everything above (except createMixingBus lookups and dispose) is synchronous and returns SoundHandle directly — do not await them.

Show full SKILL.md (323 more words)Show less

Traps

  • Silent bus: forgetting playOnEngine() is the #1 failure. Sounds "play" (handles are created, voices count up) but nothing is heard. bus.soundHandle stays null until then, so guard with if (bus.soundHandle != null) before volume/filter-parameter calls.
  • Do not invent bus.volume / bus.setVolume(): they don't exist. Volume goes through SoLoud.instance.setVolume(bus.soundHandle!, v). Models coming from audioplayers habitually look for a per-player volume setter — route them to the bus handle instead.
  • No await on bus play methods: bus.play(...) returns SoundHandle, not a Future. SoLoud.instance.loadAsset is the async part; playback is synchronous.
  • Disposed bus throws: every Bus method throws SoLoudBusDisposedDartException after dispose(). Double-dispose also throws — null out your reference after disposing.
  • Create buses after await SoLoud.instance.init(): the constructor calls into the native engine, and playOnEngine() throws SoLoudBackendNotInitedException when the engine isn't up.
  • byName/byId throw when missing: they use firstWhere; pass orElse or check Buses().buses first if the bus may not exist.
  • Voice limit: bus voices count against the engine's active-voice cap (default 16, raise with SoLoud.instance.setMaxActiveVoiceCount). Hitting it is not an error — the new sound just doesn't play.
  • annexSound needs a live handle: annexing a finished/invalid handle is a no-op on the native side; check sound.handles / isActive first.
  • Filters need the bus handle for per-instance parameters: e.g. bus.filters.pitchShiftFilter.shift(soundHandle: bus.soundHandle).value = 2.5; after activate(). Plain .shift.value targets the global filter, not the bus voice.

More depth

  • references/api.md — full signatures of all six bus play variants, the Buses registry, exceptions, and the AudioManager (music/SFX/voice + ducking) pattern.
  • Runnable demo: example/lib/mixing_bus/mixing_bus.dart in this repo — creates buses, plays/annexes sounds, per-bus volume slider, pitch-shift filter toggle, live voice counts.
  • Upstream concepts: https://solhsa.com/soloud/mixbus.html

Keeping this skill current

This skill ships inside the flutter_soloud package, so upgrading flutter_soloud can carry a newer revision of it than the copy installed in the project. To check, run:

sh
dart run flutter_soloud:skills --check

It reports the installed and bundled skill versions and exits non-zero when an update is available. Offer to update with dart run flutter_soloud:skills (which touches only the skills, never pubspec or build files).

© alnitak, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in skills/flutter-soloud-mixing-bus of alnitak/flutter_soloud.

  • SKILL.md
  • references/api.md

Open the folder on GitHubat commit 8419081

Compare with similar skills

flutter_soloud Mixing Buses next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

flutter_soloud Mixing Buses compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
flutter_soloud Mixing Buses this skillalnitak/flutter_soloud425—~1.7kAutomated safety check: PassMIT
Engine Whats Newflutter/flutter179k—~978Automated safety check: PassBSD-3-Clause
Flutter Cherry Pickflutter/flutter179k—~1.8kAutomated safety check: PassBSD-3-Clause
Upgrade Browserflutter/flutter179k—~1.1kAutomated safety check: PassBSD-3-Clause
Bump Dartflutter/flutter179k—~1.2kAutomated safety check: PassBSD-3-Clause
Run Devicelab With Ledflutter/flutter179k—~852Automated safety check: PassBSD-3-Clause

Similar skills

  • Engine Whats New

    flutter/flutter

    Generates the "what's new" release summary and diff file for changes in the Flutter engine (//engine/src/flutter) between two releases (e.g., 3.47 vs 3.44).

    179k GitHub stars~978 tokensUpdated today
    MobileAuto-check passed
  • Flutter Cherry Pick

    flutter/flutter

    How to land a formal cherry-pick of a merged PR for the flutter/flutter repo stable or beta channel.

    179k GitHub stars~1.8k tokensUpdated today
    MobileAuto-check passed
  • Upgrade Browser

    flutter/flutter

    Upgrade browser versions (Chrome or Firefox) in the Flutter Web Engine and/or Framework tests.

    179k GitHub stars~1.1k tokensUpdated today
    MobileAuto-check passed
  • Bump Dart

    flutter/flutter

    Do not trigger automatically; only run when a user runs /bump-dart.

    179k GitHub stars~1.2k tokensUpdated today
    MobileAuto-check passed
  • Run Devicelab With Led

    flutter/flutter

    Run DeviceLab tests for Flutter PRs using LUCI's led CLI tool.

    179k GitHub stars~852 tokensUpdated today
    MobileAuto-check passed
  • Shepherd PRs

    flutter/flutter

    Automate shepherding, checking status, updating branches, and landing open PRs or approved third-party contributor PRs in the flutter/flutter repository using the gh CLI.

    179k GitHub stars~1.7k tokensUpdated today
    MobileAuto-check passed

More from alnitak/flutter_soloud

All 14 skills in this repo
  • Flutter SoLoud Audio Filters

    alnitak/flutter_soloud

    Explains how to add and tune flutter_soloud's 13 audio filters at global, per-sound and mixing-bus level, including activation order and parameter fades.

    425 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • flutter_soloud Setup

    alnitak/flutter_soloud

    Walks through adding the flutter_soloud audio engine to a Flutter app, with per-platform setup, initialization, binary-size and logging options, and output device switching.

    425 GitHub stars~3.6k tokensUpdated today
    Auto-check: notes
  • Teaches the push buffer-stream API of flutter_soloud for playing audio that arrives in chunks, such as icecast radio, WebSocket PCM feeds or streaming TTS, instead of a complete file.

    425 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Shows how to build audio visualizers in Flutter with flutter_soloud, using live FFT and wave data or offline waveform extraction, plus volume readings for level meters.

    425 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Flutter Soloud 3D Audio

    alnitak/flutter_soloud

    Teaches positional (3D) audio in fluttersoloud — play3d/play3dClocked/play3dScheduled, listener position/orientation/velocity, per-source attenuation and Doppler, and the per-frame update pattern.

    425 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • flutter_soloud Idioms

    alnitak/flutter_soloud

    Explains the mental model for the flutter_soloud audio plugin: the SoLoud.instance singleton, AudioSource versus SoundHandle, synchronous play and platform limits.

    425 GitHub stars~2.3k tokensUpdated today
    Auto-check passed

Works with

Questions about flutter_soloud Mixing Buses

What does flutter_soloud Mixing Buses do?

Teaches flutter_soloud mixing buses for routing groups of sounds through shared sub-mixes with collective volume and filters, such as separate music, SFX and UI sliders. A Bus is a virtual mixer channel: sounds routed through it share one volume and one set of filters.play`.

When should I use flutter_soloud Mixing Buses?

flutter_soloud Mixing Buses fits situations like: adding separate music, SFX and UI volume sliders; applying one filter to a whole category of sounds; ducking music under voice or re-routing sounds at runtime.

How do I install flutter_soloud Mixing Buses in Claude Code?

Run `npx skills add alnitak/flutter_soloud --skill flutter-soloud-mixing-bus -a claude-code`. Or copy the skill folder (skills/flutter-soloud-mixing-bus in alnitak/flutter_soloud) into .claude/skills/flutter-soloud-mixing-bus in your project. Claude Code loads it when a task matches its description.

How do I install flutter_soloud Mixing Buses in Codex?

Run `npx skills add alnitak/flutter_soloud --skill flutter-soloud-mixing-bus -a codex`. Or copy the skill folder (skills/flutter-soloud-mixing-bus in alnitak/flutter_soloud) into .agents/skills/flutter-soloud-mixing-bus in your project. Codex loads it when a task matches its description.

Can I use flutter_soloud Mixing Buses in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add alnitak/flutter_soloud --skill flutter-soloud-mixing-bus -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/flutter-soloud-mixing-bus, .gemini/skills/flutter-soloud-mixing-bus, .github/skills/flutter-soloud-mixing-bus and .opencode/skills/flutter-soloud-mixing-bus in your project.

What does flutter_soloud Mixing Buses need to run?

Going by SKILL.md and its folder, flutter_soloud Mixing Buses needs the command-line tools its instructions call (dart). Our summary lists: A Flutter app that uses the `flutter_soloud` package.

Does flutter_soloud Mixing Buses access the network?

SKILL.md names 1 domain. As links in the text: solhsa.com. This is read from the text; nothing was executed.

Is flutter_soloud Mixing Buses safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does flutter_soloud Mixing Buses use?

flutter_soloud Mixing Buses is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does flutter_soloud Mixing Buses use?

About 1.7k tokens (SKILL.md is roughly 7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.1k tokens, read only when the agent opens those files.

What are the alternatives to flutter_soloud Mixing Buses?

Skills that share tags, products or a category with flutter_soloud Mixing Buses: Engine Whats New (flutter/flutter, 179k stars), Flutter Cherry Pick (flutter/flutter, 179k stars), Upgrade Browser (flutter/flutter, 179k stars) and Bump Dart (flutter/flutter, 179k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains flutter_soloud Mixing Buses?

alnitak (a GitHub user) maintains it in alnitak/flutter_soloud, which has 425 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 9, 2026.

Source: alnitak/flutter_soloud on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.