CamillaDSP - Cross-platform IIR and FIR engine for crossovers, room correction etc.

v0.4.0-beta4 is up! Get it from here: Release v0.4.0 beta 4 * HEnquist/camilladsp * GitHub
Changes since beta3:
New features:
  • Added an option to generate arbitrary length filters for testing convolution cpu load.
  • Possible to use Reload command to restart from inactive state.
  • Handle quirks of the USB audio gadget when used as Alsa capture source.
Bugfixes:

  • Fix 100% cpu when Stdin doesn't provide any data.
  • Reduce cpu usage when using PulseAudio.




The readme here: GitHub - HEnquist/camilladsp at develop has also been updated to include a "Related projects" section. If you know of somehting else that could be useful to add there, please let me know!
 
Thank you for your efforts, Henrik.
Ran windows compiled version of the 0.4.0
Code:
  adjust_period: 60
  enable_rate_adjust: true
  enable_resampling: true

The asus U7 works very well with resampling, really small adjustments. Need really good ears to hear that pitchshift:happy1:
 

Attachments

  • config.zip
    588 bytes · Views: 38
  • 040b.JPG
    040b.JPG
    227.5 KB · Views: 213
Use the Stdout playback device on the first instance, and Stdin capture device on the second. Then in the terminal window you connect them with a pipe character, |.
Code:
camilladsp config1.yml | camilladsp config2.yml
Yes! Managed to start to instanses:)
C:\Users\Torgeir\cam\camilladsp -v configPart1.yml | C:\Users\Torgeir\cam\camilladsp -v configPart2.yml

But Stdout and Stdin not found.
Example:"ERROR Playback error: could not find device"
Don't have virtual sound card. Is it needed?
 

Attachments

  • Serial.JPG
    Serial.JPG
    221.9 KB · Views: 206
Last edited:
Yes! Managed to start to instanses:)
C:\Users\Torgeir\cam\camilladsp -v configPart1.yml | C:\Users\Torgeir\cam\camilladsp -v configPart2.yml

But Stdout and Stdin not found.
Example:"ERROR Playback error: could not find device"
Don't have virtual sound card. Is it needed?
You don't need a virtual sound card for this. Can you attach the two config files?
 
See enclosed files.
(That was fast support!)
On part1, change to:
Code:
  enable_rate_adjust: false
  enable_resampling: false
  playback:
    type: Stdout
    channels: 2
    format: FLOAT32LE

and on part2, change to:
Code:
  capture:
    type: Stdin
    channels: 2
    format: FLOAT32LE
Should do it :)
The Stdout device can't send the commands for rate adjust, so you can just as well disable that on part1.
 
Instead I do now get this on stdout from beta 4 (no -v option):
Code:
[2020-10-19T21:06:57Z INFO  camillalib::alsadevice] Starting playback from Prepared state
[2020-10-19T21:11:11Z INFO  camillalib::alsadevice] Starting playback from Prepared state
[2020-10-19T21:14:35Z INFO  camillalib::alsadevice] Starting playback from Prepared state
[2020-10-19T21:17:44Z INFO  camillalib::alsadevice] Starting playback from Prepared state
[2020-10-19T21:18:30Z INFO  camillalib::alsadevice] Starting playback from Prepared state
It's from every time a new track starts, and a I sends a new request to reload the config.
(Using stdout from squeezelite, and not a alsa loopback, there are no specific log messages to capture when sample rate changes. Only when a new track starts...)

By the way... The timestamps in camilladsp log is GMT?
It's -2 hours off for me. System time is adjusted for time zone and summertime, and shows correct time.
It's a little bit annoying... Easy fix..?
 
Last edited:
Yeah, yeah... GMT, UTC, whatever... its annoying when you actually have to read it.

Not a big issue at all, and quite doable. But in this application, there are no references to any global instance. So using UTC don't really have any benefits..?

It's just a little bit annoying... :p
 
Instead I do now get this on stdout from beta 4 (no -v option):
Code:
[2020-10-19T21:06:57Z INFO  camillalib::alsadevice] Starting playback from Prepared state
[2020-10-19T21:11:11Z INFO  camillalib::alsadevice] Starting playback from Prepared state
[2020-10-19T21:14:35Z INFO  camillalib::alsadevice] Starting playback from Prepared state
[2020-10-19T21:17:44Z INFO  camillalib::alsadevice] Starting playback from Prepared state
[2020-10-19T21:18:30Z INFO  camillalib::alsadevice] Starting playback from Prepared state
It's from every time a new track starts, and a I sends a new request to reload the config.
(Using stdout from squeezelite, and not a alsa loopback, there are no specific log messages to capture when sample rate changes. Only when a new track starts...)

By the way... The timestamps in camilladsp log is GMT?
It's -2 hours off for me. System time is adjusted for time zone and summertime, and shows correct time.
It's a little bit annoying... Easy fix..?
Do you really get that on stdout? Not on stderr?


The timestamps are UTC yes, and I agree it's a bit annoying. It comes from the logging library I use. It's meant to be slim and fast so has only limited options. At a glance it doesn't seem easy to fix but I'll take a proper look.