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

Hi - the comp idiot here :)

How do I upgrade the GUI on my mac?

//
I'll update the script, give me a few days!

Does it matter if the GUI shows
Code:
Config has errors
and in the Rate adjust there is
Code:
0 is less than or equal to the minimum of 0

Should I define the target_level? And why is it 0, should not it be the same as chunsize? I have
Code:
chunksize: 16384
Oops, there is a mistake! "target_level" = 0 should be allowed, which means it gets set to chunksize. I'll fix asap. For now, you can put the chunksize value there to get around it.
 
Validation Check fails

Hi Henrik,

camilladsp -c doesn't give an error. But in the Webinterface validation fails.
An idea what this might cause?

My config.yml:
Code:
devices:
  adjust_period: 10
  capture:
    avoid_blocking_read: false
    channels: 2
    device: hw:2,0
    format: S16LE
    retry_on_error: false
    type: Alsa
  capture_samplerate: 96000
  chunksize: 2560
  enable_rate_adjust: true
  enable_resampling: false
  playback:
    channels: 8
    device: hw:0,0
    format: S16LE
    type: Alsa
  queuelimit: 4
  resampler_type: FastAsync
  samplerate: 96000
  silence_threshold: -90
  silence_timeout: 30
  target_level: 1024
filters:
  gain-2:
    parameters:
      gain: -2
      inverted: false
      mute: false
    type: Gain
  hp80:
    parameters:
      filename: /home/pi/camilla/coeffs/hp80.txt
      format: TEXT
      read_bytes_lines: 0
      skip_bytes_lines: 0
      type: Raw
    type: Conv
  lp80:
    parameters:
      filename: /home/pi/camilla/coeffs/lp80.txt
      format: TEXT
      read_bytes_lines: 0
      skip_bytes_lines: 0
      type: Raw
    type: Conv
mixers:
  8_Channels:
    channels:
      in: 2
      out: 8
    mapping:
    - dest: 0
      mute: false
      sources:
      - channel: 0
        gain: 0
        inverted: false
        mute: false
    - dest: 1
      mute: false
      sources:
      - channel: 1
        gain: 0
        inverted: false
        mute: false
    - dest: 2
      mute: false
      sources:
      - channel: 0
        gain: 0
        inverted: false
        mute: false
    - dest: 3
      mute: false
      sources:
      - channel: 1
        gain: 0
        inverted: false
        mute: false
    - dest: 4
      mute: false
      sources:
      - channel: 0
        gain: 0
        inverted: false
        mute: false
    - dest: 5
      mute: false
      sources:
      - channel: 1
        gain: 0
        inverted: false
        mute: false
    - dest: 6
      mute: false
      sources:
      - channel: 0
        gain: 0
        inverted: false
        mute: false
    - dest: 7
      mute: false
      sources:
      - channel: 1
        gain: 0
        inverted: false
        mute: false
pipeline:
- name: 8_Channels
  type: Mixer
- channel: 0
  names:
  - lp80
  type: Filter
- channel: 1
  names:
  - lp80
  type: Filter
- channel: 2
  names:
  - hp80
  - gain-2
  type: Filter
- channel: 3
  names:
  - hp80
  - gain-2
  type: Filter


Best regards
Olaf
 

Attachments

  • validation_check.PNG
    validation_check.PNG
    4 KB · Views: 396
Re: Validation Error

Hi Henrik,

the hint about the filter .txt files had been helpful.
I converted the lineends to UNIX format, reloaded the webfrontend and the error disappeared.

I used Rephase to generate the filter Files, hence the DOS carriage return in the filter files.

Thanks for your nice tool and your support

Ah, forgot to ask; mute and volume doesn't work for me. An idea :)
 

Attachments

  • mute.PNG
    mute.PNG
    2.3 KB · Views: 382
Last edited:
Ah thanks (hint for me; better read the manuals...)

I solved my problem; Python3 main.py was started as a daemon under root, changed it to User in /etc/systemd/system/camillagui.service:
Code:
[Unit]
Description=CamillaDSP Webservice
After=syslog.target
#StartLimitIntervalSec=10
#StartLimitBurst=10

[Service]
Type=forking
ExecStart=/usr/bin/camillagui
#Restart=always
#RestartSec=1
#StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=camillagui
[COLOR="Red"]User=pi
Group=users[/COLOR]
#CPUSchedulingPolicy=fifo
#CPUSchedulingPriority=10

[Install]
WantedBy=multi-user.target
 
New version: 0.5.2!
New features:
- Peaking, Notch, Bandpass and Allpass filters can be defined with bandwidth.
- Highshelf and Lowshelf can be defined with Q-value.


Get it from here: Release v0.5.2 * HEnquist/camilladsp * GitHub


There are also matching versions of the libraries and the gui.
Use these:
Gui:

Release v0.7.1 * HEnquist/camillagui-backend * GitHub
pyamilladsp (unchanged):

Release v0.5.0 * HEnquist/pycamilladsp * GitHub
pycamilladsp-plot:
Release v0.5.3 * HEnquist/pycamilladsp-plot * GitHub


The next version will be 0.6.0, with proper Wasapi support. That includes support for exclusive mode! The first beta will be up very soon.
 
- Peaking, Notch, Bandpass and Allpass filters can be defined with bandwidth.

Very nice!!! Will make things easier. How is BW defined?
Same way as "everyone else" does it: bandwidth in octaves. For bandpass and notch it's the width between the -3 dB frequencies. For peaking it's between the midpoint (gain(in dB)/2) frequencies.

- Highshelf and Lowshelf can be defined with Q-value.

Wasn't this already available...?

//
Nope! Those had only slope, in dB/octave.
 
How about an early preview of the new Wasapi backend?
Release v0.6.0 beta1 * HEnquist/camilladsp * GitHub

The Wasapi capture and playback devices now have a new optional parameter "exclusive" to enable exclusive mode. In that mode, the Windows mixer etc are bypassed. The sample format must be one that the device driver supports directly. Try S16LE or S24LE3 first.

This is using a new Wasapi binding I built using the Rust for Windows crate: https://crates.io/crates/windows
I haven't worked with any Windows api before, and I must say it has been a quite positive experience. The Wasapi api is nice and easy to use and the documentation is quite good.
 
Housecurve

Henrik,
Is it possibble, to build a shelving filter in camilladsp according attached REW screenshot (the falling part starting at 1kHz)?
The plot looks rather strange (I didn't measure yet); the slope starts quite early, but not at 1 kHz.
 

Attachments

  • rew_eq.PNG
    rew_eq.PNG
    52 KB · Views: 239
  • housecurve.PNG
    housecurve.PNG
    19.8 KB · Views: 233
  • housecurve_parameters.PNG
    housecurve_parameters.PNG
    5.3 KB · Views: 228
Last edited:
Is it possibble, to build a shelving filter in camilladsp according attached REW screenshot (the falling part starting at 1kHz)?
The plot looks rather strange (I didn't measure yet); the slope starts quite early, but not at 1 kHz.
The frequency setting of a shelving filter means the middle of the slope, not where it starts or stops. To make something similar to that curve, try for example frequency = 4000, slope = 1.0, gain = -4.0. You will have to play around a bit until you find a good match. Also note that at such low slopes, the sloping part gets a bit wiggly.