Command line interface

The CLI allows you to view and change DSP settings. If you've installed through the debian package, a local service has been enabled and will expose local and network devices through a unix socket. minidsp automatically detects and uses the local service if it is running

Use minidsp probe in order to list the detected device:

$ minidsp probe
Found 2x4HD with serial 91234 at ws://localhost/devices/0/ws [hw_id: 10, dsp_version: 100]

It's possible to use a specific device using the --url option, or by setting the MINIDSP_URL environment variable.

Status summary

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

If calling this programmaticallly (and not using the HTTP API), the -o json and -o jsonline option will output a machine parsable status.

$ minidsp -o json
{
  "master": {
    "preset": 0,
    "source": "Toslink",
    "volume": -8.0,
    "mute": false
  },
  "input_levels": [
    -131.36298,
    -131.36298
  ],
  "output_levels": [
    -140.21962,
    -139.85617,
    -120.0,
    -120.0
  ]
}

Attention

The changes done through this command will not be visible from the minidsp app, as it cannot read the settings back from the device. The following settings will be visible after changing them from any source:

  • Master Gain
  • Master Mute
  • Configuration preset
  • Active Source
  • Dirac Live status

The rest of the settings (filters, delays, routing) will not be reflected in the app.

Running multiple commands at once

For the purposes of organizing configurations, a file can be created with commands to run sequentially. It's an easy way to recall a certain preset without changing the device config preset.

Lines are using the same format at the command line, without the minidsp command.

Example:

# Comments are allowed and skipped
# So are empty lines

mute on
config 3
input 0 peq all bypass off
output 0 peq all bypass off
gain -- -30
mute off

The command list can be ran using minidsp -f ./file.txt

Usage

$ minidsp --help
Usage: minidsp [OPTIONS] [COMMAND]

Commands:
  probe   Try to find reachable devices
  status  Prints the master status and current levels
  gain    Set the master output gain [-127, 0]
  mute    Set the master mute status
  source  Set the active input source
  config  Set the current active configuration,
  dirac   Sets whether Dirac Live is enabled
  input   Control settings regarding input channels
  output  Control settings regarding output channels
  server  (deprecated) Launch a server usable with `--tcp`, the mobile application, and the official client
  debug   Low-level debug utilities
  help    Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose...
          Verbosity level. -v display decoded commands and responses -vv display decoded commands including readfloats -vvv display hex data frames
  -o, --output <OUTPUT_FORMAT>
          Output response format (text (default), json, jsonline) [default: text]
      --log <LOG>
          Log commands and responses to a file [env: MINIDSP_LOG=]
      --all-local-devices
          Apply the given commands to all matching local usb devices
  -d, --device-index <device-index>
          Use the given device 0-based index (use minidsp probe for a list of available devices) [env: MINIDSP_INDEX=]
      --usb <usb>
          The USB vendor and product id (2752:0011 for the 2x4HD) [env: MINIDSP_USB=]
      --tcp <tcp>
          The target address of the server component [env: MINIDSP_TCP=]
      --force-kind <force-kind>
          Force the device to a specific product instead of probing its hardware id. May break things, use at your own risk
      --url <URL>
          Directly connect to this transport url [env: MINIDSP_URL=]
      --daemon-url <DAEMON_URL>
          Discover devices that are managed by the remote instance of minidspd [env: MINIDSPD_URL=]
      --daemon-sock <DAEMON_SOCK>
          Discover devices that are managed by the local instance of minidspd [env: MINIDSP_SOCK=]
  -f <FILE>
          Read commands to run from the given filename (use - for stdin)
  -h, --help
          Print help information
  -V, --version
          Print version information