1 unstable release

0.1.4 Jan 15, 2022

#434 in Audio

23 downloads per month
Used in 2 crates (via minidsp)

Apache-2.0

470KB
12K SLoC

MiniDSP Controller

GitHub release Documentation Discord

minidsp-rs is an alternative control software for certain MiniDSP products. It exposes most (if not all) of the available configuration parameters in a command line package, with an optional HTTP API in order to integrate with custom DIY audio projects. It can run on a variety of systems with a minimal memory footprint.

Installation

Pre-built packages and binaries are available in the project's releases section.

Debian (.deb) packages are available for:

  • armhf: Tested on raspbian (Raspberry PI, including the rpi0)
  • x86_64 Debian / Ubuntu variants

Single binary builds are also provided for common operating systems:

  • Linux: minidsp.x86_64-unknown-linux-gnu.tar.gz
  • MacOS: minidsp.x86_64-apple-darwin.tar.gz
  • Windows: minidsp.x86_64-pc-windows-msvc.zip

Building from source

This is only required if you want to make changes to minidsp-rs. If you're just trying to control your device, use one of the pre-built packages

If you don't have rust setup, the quickest way to get started is with rustup. This is preferred over install rust via your distro's package manager because these are often out of date and will have issues compiling recent code.

cargo build --release --bin minidsp
# The binary will then available as target/release/minidsp

# If you want to build a debian package
cargo install cargo-deb
cargo deb
# Then look under target/debian/

Usage

See the complete documentation for more examples.

Running the command without any parameters will return a status summary, in this form:

$ minidsp 
MasterStatus { preset: 0, source: Toslink, volume: Gain(-8.0), mute: false, dirac: false }
Input levels: -61.6, -57.9
Output levels: -67.9, -71.6, -120.0, -120.0

Useful commands

# Set input source to toslink
minidsp source toslink

# Set master volume to -30dB
minidsp gain -- -30

# Activate the 2nd configuration setting (indexing starts at 0)
minidsp config 1

Supported devices

These device support the full feature set. See the documentation for a more complete list.

  • miniDSP 2x4HD
  • miniDSP Flex
  • DDRC-24
  • DDRC-88A/D
  • miniSHARC series
  • miniDSP 2x8/8x8/4x10/10x10
  • nanoDIGI 2x8
  • SHD series
  • C-DSP 8x12 v2

lib.rs:

Main protocol implementation.

This crate provides the basic components in order to be able to send and receive commands and events from a device.

It is meant to be as lean as possible in order to run in restricted environments. For this reason, it doesn't include any transport implementations.

Dependencies

~0.5–1.3MB
~27K SLoC