Skip to main content

A small webapp which can send beqcatalogue filters to a DSP device

Project description

ezbeq

A simple web browser for beqcatalogue which integrates with minidsp-rs for local remote control of a minidsp or HTP-1.

Setup

Windows / MacOS

Python is required so use an appropriate package manager to install it.

chocolatey is a convenient choice for Windows homebrew is the equivalent for MacOS

Linux

Use your distro package manager to install python.

Installation

Example is provided for rpi users

$ ssh pi@myrpi
$ sudo apt install python3 python3-venv python3-pip libyaml-dev
$ mkdir python
$ cd python
$ python3 -m venv ezbeq
$ cd ezbeq
$ . bin/activate
$ pip install ezbeq

Using with a Minidsp

Install minidsp-rs as per the provided instructionshttps://github.com/mrene/minidsp-rs#installation

Using with a Monolith HTP-1

See the configuration section below

Upgrade

$ ssh pi@myrpi
$ cd python/ezbeq
$ . bin/activate
$ pip install --upgrade --force-reinstall ezbeq

then restart the app

Running the app manually

$ ssh pi@myrpi
$ cd python/ezbeq
$ . bin/activate
$ ./bin/ezbeq
  Loading config from /home/pi/.ezbeq/ezbeq.yml
  2021-01-16 08:43:15,374 - twisted - INFO - __init__ - Serving ui from /home/pi/python/ezbeq/lib/python3.8/site-packages/ezbeq/ui

Now open http://youripaddress:8080/index.html in your browser

Configuration

See $HOME/.ezbeq/ezbeq.yml

The only intended option for override is the port option which sets the port the UI and API is accessible on. This defaults to 8080.

Configuring Devices

The devices section contains a list of supported device, the format varies by the type of device and each item is a named device with the name subsequently appearing the UI (if multiple devices are listed)

Minidsp

Default values are shown, the only required value is the type field

  minidsp:
    cmdTimeout: 10
    exe: minidsp
    ignoreRetcode: false
    options: ''
    type: minidsp
  • cmdTime: default timeout in seconds for a command sent to minidsp-rs to complete
  • exe: location of the minidsp-rs executable
  • ignoreRetcode: if true, errors generated by minidsp-rs will be ignored (for debugging/local testing only)
  • options: additional command line switches to pass to minidsp-rs (refer to minidsp-rs docs for details)
  • type: minidsp

Monolith HTP1

  htp1:
    ip: 192.168.1.181
    channels:
    - sub1
  • ip: ip address of the HTP1
  • channels: list of channels to apply filters to (sub1, sub2 and sub3 are the standard subwoofer channels in the HTP1)

JRiver Media Center

NB: Media Network must be enabled

  jriver:
    address: 192.168.1.181:52199
    auth:
      user: foo
      pass: thisismypass
    secure: true  
    channels:
    - SW
    - C9
    - C10
    block: 2
  • address: the ip and port on which the Media Center media network is listening
  • auth is optional, leave this out if MCWS is not secured
  • secure is optional, leave this out if SSL is not used
  • supported channels are L R C SW SL SR RL RR and C9 upto C32 (if more than 8 channel output is used)
  • block is 1 or 2 and refers to the dsp slots Parametric Equalizer and Parametric Equalizer 2 respectively

This information is not validated, it is left to the user to configure the output format on the zone to match the supplied configuration.

Starting ezbeq on bootup

This is optional but recommended, it ensures the app starts automatically whenever the rpi boots up and makes sure it restarts automatically if it ever crashes.

We will achieve this by creating and enabling a systemd service.

  1. Create a file ezbeq.service in the appropriate location for your distro (e.g. /etc/systemd/system/ for debian)::
[Unit]
Description=ezbeq
After=network.target

[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi
ExecStart=/home/pi/python/ezbeq/bin/ezbeq
Restart=always
RestartSec=1

[Install]
WantedBy=multi-user.target
  1. enable the service and start it up::
$ sudo systemctl enable ezbeq.service
$ sudo service ezbeq start
$ sudo journalctl -u ezbeq.service
-- Logs begin at Sat 2019-08-17 12:17:02 BST, end at Sun 2019-08-18 21:58:43 BST. --
Aug 18 21:58:36 swoop systemd[1]: Started ezbeq.
  1. reboot and repeat step 2 to verify the recorder has automatically started

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ezbeq-0.9.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ezbeq-0.9.0-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file ezbeq-0.9.0.tar.gz.

File metadata

  • Download URL: ezbeq-0.9.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for ezbeq-0.9.0.tar.gz
Algorithm Hash digest
SHA256 fee3b029a9a59f04cfb71cc08038390916ea9e6ccd4ee2a86a9280fb78ad9d00
MD5 5ca8ae34020ff3649b8e99f8a5949c39
BLAKE2b-256 8055ef6b31b5e1455ff627806ccc7298a9d6cae9bb8ac2eff304a25fabfb3acf

See more details on using hashes here.

File details

Details for the file ezbeq-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: ezbeq-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for ezbeq-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4578936bb74fb0e5d2545ee0622871aacc660cee90291d87e9ef72b67081c733
MD5 fa3605de903dcbf5423acc922f1468f3
BLAKE2b-256 437eb4d4e1377268e8e7c23bdc20e997fed6daccda8fcc0cb32f973451dfa2cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page