Quantcast
Channel: Squeezebox : Community : Forums - 3rd Party Software
Viewing all articles
Browse latest Browse all 2059

Gathering requirements for new DSP plugin - please be realistic!

$
0
0
Hi - I have been keeping Inguz DSP going for the last couple of years, and in doing so learnt a lot about the LMS plugin architecture. I am thinking of writing a new plugin based off CamillaDSP, but want to gauge the appetite before I get in too deep.

Inguz
Features
  • 32 bit audio processing engine
  • 2 to 31 frequency Equaliser using ISO standard curves
  • Retains stream frequency rate through the pipeline and will match bit depth to player (16 bit / 24 bit)
  • Channel Delay; Matrix Impulses (Think specialisation); Balance; Filter Limits; and Loudness (perversely called quietness)
  • FIR Convolution Engine
  • Cross platform using .net Core 6


Downside
  • binary size approx 30 MB
  • relatively processor intensive e.g. spikes every 10 seconds @ 2 - 25% CPU depending on processor.
  • designed to process 2 channel audio only
  • Feature locked - I consider it feature locked as I am not considering writing enhancements to the core engine.


I can add usability features to the UI, but the capability of the processing engine are not going to change.

In contrast Camilla DSP
  • 64 bit audio processing engine
  • Configurable parametric EQ, which could also be setup as 2 to 31 frequency Equaliser using ISO standard curves
  • Almost every conceivable filter type and processing is possible
  • FIR Convolution Engine
  • Cross platform using pre-compiled Rust
  • binary size approx 3 MB
  • processing is as fast (low cpu usage) as you are going to get
  • Has it's own python and web based UI
  • multi-channel


Downside
  • Would need to be at fixed sample rate across the pipeline
  • Almost every conceivable filter type and processing is possible, which may be unmanageable and I haven't checked everything!
  • multi-channel



The plugin will
Setup the audio pipeline
install the binaries appropriately
create folders for saving configuration files

For the User Interface
I had considered writing a wrapper for CamillaDSP's own UI for now and then enabling presets based off saved YAML files, but I think the install and maintenance will be a nightmare.
So I will enable the convolution engine initially off saved wav files
Enable equaliser/parametric eq.
Simple features like delay; balance etc
2 channel only
frequency rate to be set on a per player basis.

My thinking is that this will cover 80 to 90 percent of use cases, and for anything more complex the user could import a pregenerated YAML file and use that as a preset.

Any thoughts on the above. Any burning ideas for features?

Viewing all articles
Browse latest Browse all 2059

Trending Articles