Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fwcd/bassbox
Embeddable audio graph player with JSON-RPC interface written in Rust
https://github.com/fwcd/bassbox
audio backend json-rpc
Last synced: 14 days ago
JSON representation
Embeddable audio graph player with JSON-RPC interface written in Rust
- Host: GitHub
- URL: https://github.com/fwcd/bassbox
- Owner: fwcd
- License: mit
- Created: 2019-08-23T00:27:38.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-09-26T00:17:44.000Z (over 5 years ago)
- Last Synced: 2024-12-13T22:42:09.715Z (21 days ago)
- Topics: audio, backend, json-rpc
- Language: Rust
- Homepage:
- Size: 201 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bassbox
An experimental audio graph player written in Rust that can either be [used as a library](core/README.md) or [controlled via JSON-RPC](app/README.md).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:```json
{"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
```json
{"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.