Skip to content

fwcd/bassbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bassbox

An experimental audio graph player written in Rust that can either be used as a library or controlled via JSON-RPC.

By using a graph as the central structure data structure, Bassbox can serve as a flexible backend for many audio-related applications, including:

  • Audio players
  • Mixers/DJing software
  • Remote speakers
  • DAWs

Try it

Build and run the application using cargo run -- -e speaker and play a song by entering:

{"jsonrpc":"2.0","id":0,"method":"audioGraph.addNode","params":[{"type":"File","filePath":"path/to/song.mp3"}]}
{"jsonrpc":"2.0","id":0,"method":"audioGraph.addEdge","params":[{"src":1,"dest":0}]}

You can fetch the audio graph using

{"jsonrpc":"2.0","id":0,"method":"audioGraph.get"}

Architecture

On a high level, the application launches an engine on a background thread and starts RPC services, which control what the engine plays by mutating an audio graph.

About

Embeddable audio graph player with JSON-RPC interface written in Rust

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages