Thank you for your reply and great program!Thanks for the feedback!
The clipping you see is actually completely normal, but quite counter intuitive! When you apply filtering, the peak amplitude of the signal can go up, even if all your filters have only zero or negative gain. It's mentioned here in the faq: https://github.com/HEnquist/camilladsp/blob/master/FAQ.md#filtering
A short version is that filtering with only negative or zero gain filters will decrease the average power in the signal. But the filtering also shuffles the various frequency components of the signal around, which makes them sum up in a new way. This tends to produce some new peaks up to a few dB above the original signal.
Hi
Are the different firmware versions for any board, or are they specific to a version of the board?
I have an original red board. Do I have to use 1.1, or can I use 1.3 or 1.5?
Thanks
Are the different firmware versions for any board, or are they specific to a version of the board?
I have an original red board. Do I have to use 1.1, or can I use 1.3 or 1.5?
Thanks
If anyone want to hear if their system is distorting bacause of this type of overload:Thanks for the feedback!
The clipping you see is actually completely normal, but quite counter intuitive! When you apply filtering, the peak amplitude of the signal can go up, even if all your filters have only zero or negative gain. It's mentioned here in the faq: https://github.com/HEnquist/camilladsp/blob/master/FAQ.md#filtering
A short version is that filtering with only negative or zero gain filters will decrease the average power in the signal. But the filtering also shuffles the various frequency components of the signal around, which makes them sum up in a new way. This tends to produce some new peaks up to a few dB above the original signal.
The zipped files in this post
Thread 'Software to detect +0dBFS waveforms and overload times'
https://www.diyaudio.com/community/...ct-0dbfs-waveforms-and-overload-times.281811/
contain some signals where distortion is easily heard if the dacs or oversampling do not handle it with grace
Be aware of LOUD signal and dont destroy your tweeters!!!
Last edited:
I measured with an oscilloscope noise and music fragments from the line outputs of my ASUS Xonar D1 sound card, those that have an overload indication in Camilladsp. The output level of the signals is not limited by the sound card. I have noticed that the Camilladsp overload appears on impulse signals very close to, but not exceeding 0db at the output of the sound card. By ear, everything is fine, the overload is not audible.
And yes, I read https://github.com/HEnquist/camilladsp/blob/master/FAQ.md#filtering
And yes, I read https://github.com/HEnquist/camilladsp/blob/master/FAQ.md#filtering
All the same, can anyone know how to better and more correctly organize the output from MPD to Camilladsp?
For some reason, the MPD + Camilladsp bundle worked for me only if the output in MPD is this:
audio_output {
type "alsa"
name "Loopback"
device "hw:Loopback,1"
mixer_type "software"
And in Camilladsp the capture is like this:
capture:
channels: 2
device:hw:Loopback,0
format: S32LE
This is contrary to the instructions from Henrik.
For some reason, the MPD + Camilladsp bundle worked for me only if the output in MPD is this:
audio_output {
type "alsa"
name "Loopback"
device "hw:Loopback,1"
mixer_type "software"
And in Camilladsp the capture is like this:
capture:
channels: 2
device:hw:Loopback,0
format: S32LE
This is contrary to the instructions from Henrik.
bgv: Where is actually a problem? Either Loopback,0 -> Loopback,1 or Loopback,1 -> Loopback,0. IMO the mpd output should be constrained to S32LE with the format param. Otherwise if MPD opens the loopback device with a different format first, camilladsp will fail to capture at S32LE.
Debian 11 server without GUI. There is no pulseaudio in the system. I don't need him.@bgv: do you have pulseaudio running? I had the problem where pulseaudio would grab hw:Loopback,0 for playback unless the device ("card") was disabled in the PA config..
I thought that there is a more correct version of the output from the MPD.bgv: Where is actually a problem? Either Loopback,0 -> Loopback,1 or Loopback,1 -> Loopback,0. IMO the mpd output should be constrained to S32LE with the format param. Otherwise if MPD opens the loopback device with a different format first, camilladsp will fail to capture at S32LE.
This post was meant for a different thread, right?Hi
Are the different firmware versions for any board, or are they specific to a version of the board?
I have an original red board. Do I have to use 1.1, or can I use 1.3 or 1.5?
Thanks
Your config looks fine, apart from the comment from @phofman that it's a good idea to configure MPD to output S32LE.I thought that there is a more correct version of the output from the MPD.
If you want your dac to switch samplerate to match the material you are playing, you can look at the alsa-cdsp plugin: https://github.com/scripple/alsa_cdsp
Hi Henrik! ,
Thanks for the help!
My music library consists of files of different bitness and frequency, usually in FLAC (44.1-16bit, 96-24bit, 44.1-24bit, 88-24bit ... zoo 🙂 ). And, I would like my MPD to play music files as is (no resampling). For dividing the channels into MF, HF, LF bands and additional DSP processing, I used ecasound + sox in the MPD pipe according to the guide from (http://rtaylor.sites.tru.ca/2013/06/25/digital-crossovereq-with -open-source-software-howto/). For example, part of the setup in MPD:
audio_output { type "pipe" name "EMU1820M crossover/eq 3-way" format "44100:32:2" mixer_type "software" command "ecasound -q -z:nodb -z:mixmode,sum -a😛re -f:s32_le,2,44100 -i:stdin -pf:/home/pre1.ecp -o:loop,1 -a😛re2 ,woofer -i:loop,1 -a:mid,tweeter -i:loop,2 -a😛re2 -pf:/home/pre2.ecp -o loop,2 -a:woofer -pf:/home/woofer. ecp -chorder:0,0,1,2,0,0,0,0 -a:mid -pf:/home/mid.ecp -chorder:1,2,0,0,0,0,0,0 -a:tweeter -pf:/home/tweeter.ecp -chorder:0,0,0,0,1,2,0,0 -a:woofer,mid,tweeter -f:f32,8,44100 -o: stdout | sox -q -c 8 -r 44100 -b 32 -e float -L -t raw - -e signed -c 8 -b 16 -t alsa surround71:EMU1010 dither -s" }
As can be seen from the MPD config, it forces all reproducible files to be played in the format "44100:32:2" (automatically adapts everything that is not 44100). This is due to limitations in ecasound. I want to avoid unnecessary conversion and degradation of a higher quality file (24bit-96000). I hope that Camilladsp accepts the file without resampling and processes it further with its algorithm.
Thanks for the help!
My music library consists of files of different bitness and frequency, usually in FLAC (44.1-16bit, 96-24bit, 44.1-24bit, 88-24bit ... zoo 🙂 ). And, I would like my MPD to play music files as is (no resampling). For dividing the channels into MF, HF, LF bands and additional DSP processing, I used ecasound + sox in the MPD pipe according to the guide from (http://rtaylor.sites.tru.ca/2013/06/25/digital-crossovereq-with -open-source-software-howto/). For example, part of the setup in MPD:
audio_output { type "pipe" name "EMU1820M crossover/eq 3-way" format "44100:32:2" mixer_type "software" command "ecasound -q -z:nodb -z:mixmode,sum -a😛re -f:s32_le,2,44100 -i:stdin -pf:/home/pre1.ecp -o:loop,1 -a😛re2 ,woofer -i:loop,1 -a:mid,tweeter -i:loop,2 -a😛re2 -pf:/home/pre2.ecp -o loop,2 -a:woofer -pf:/home/woofer. ecp -chorder:0,0,1,2,0,0,0,0 -a:mid -pf:/home/mid.ecp -chorder:1,2,0,0,0,0,0,0 -a:tweeter -pf:/home/tweeter.ecp -chorder:0,0,0,0,1,2,0,0 -a:woofer,mid,tweeter -f:f32,8,44100 -o: stdout | sox -q -c 8 -r 44100 -b 32 -e float -L -t raw - -e signed -c 8 -b 16 -t alsa surround71:EMU1010 dither -s" }
As can be seen from the MPD config, it forces all reproducible files to be played in the format "44100:32:2" (automatically adapts everything that is not 44100). This is due to limitations in ecasound. I want to avoid unnecessary conversion and degradation of a higher quality file (24bit-96000). I hope that Camilladsp accepts the file without resampling and processes it further with its algorithm.
If I understand the work of alsa_cdsp correctly, then this plugin will solve the problem of playing MPD files with different bit depths and sampling rates?This post was meant for a different thread, right?
Your config looks fine, apart from the comment from @phofman that it's a good idea to configure MPD to output S32LE.
If you want your dac to switch samplerate to match the material you are playing, you can look at the alsa-cdsp plugin: https://github.com/scripple/alsa_cdsp
Now my settings work and look like this:
MPD config:
audio_output { type "alsa" name "Loopback" device "hw:Loopback,1" mixer_type "software" }
Camilladsp config snippet:
devices: adjust_period: 10 capture: channels: 2 device:hw:Loopback,0 format: S32LE type: Alsa capture_samplerate: 96000 chunksize: 4096 enable_rate_adjust: true enable_resampling: false playback: channels: 8 device: hw😀1,0 format: S32LE type: Alsa queuelimit: 4 rate_measure_interval: 1 resampler_type: Synchronous samplerate: 96000 silence_threshold: -80 silence_timeout: 3 stop_on_rate_change: true target_level: 0 filters: ...................
With these settings, all sample rates are played from MPD without any problems!
And Camilladsp captures everything with capture_samplerate: 96000.
It somehow works without alsa_cdsp! But why?
I don't understand... where's the catch?
MPD config:
audio_output { type "alsa" name "Loopback" device "hw:Loopback,1" mixer_type "software" }
Camilladsp config snippet:
devices: adjust_period: 10 capture: channels: 2 device:hw:Loopback,0 format: S32LE type: Alsa capture_samplerate: 96000 chunksize: 4096 enable_rate_adjust: true enable_resampling: false playback: channels: 8 device: hw😀1,0 format: S32LE type: Alsa queuelimit: 4 rate_measure_interval: 1 resampler_type: Synchronous samplerate: 96000 silence_threshold: -80 silence_timeout: 3 stop_on_rate_change: true target_level: 0 filters: ...................
With these settings, all sample rates are played from MPD without any problems!
And Camilladsp captures everything with capture_samplerate: 96000.
It somehow works without alsa_cdsp! But why?
I don't understand... where's the catch?
for reference
Valid playback and capture parameters ASUS Xonar D1:
root@Camilladsp:~# aplay -v -D hw😀1 /dev/zero --dump-hw-params
Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw😀1":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S16_LE S32_LE
SUBFORMAT: STD
SAMPLE_BITS: [16 32]
FRAME_BITS: [32 256]
CHANNELS: [2 8]
RATE: [32000 192000]
PERIOD_TIME: (10 8192000]
PERIOD_SIZE: [2 262144]
PERIOD_BYTES: [64 8388608]
PERIODS: [1 131072]
BUFFER_TIME: (10 8192000]
BUFFER_SIZE: [2 262144]
BUFFER_BYTES: [64 1048576]
TICK_TIME: ALL
--------------------
aplay: set_params:1343: Sample format non available
Available formats:
root@Camilladsp:~# arecord -D hw😀1 /dev/null --dump-hw-params
Recording WAVE '/dev/null' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw😀1":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S16_LE S32_LE
SUBFORMAT: STD
SAMPLE_BITS: [16 32]
FRAME_BITS: [32 64]
CHANNELS: 2
RATE: [32000 192000]
PERIOD_TIME: (41 1024000]
PERIOD_SIZE: [8 32768]
PERIOD_BYTES: [64 262144]
PERIODS: [1 4096]
BUFFER_TIME: (41 1024000]
BUFFER_SIZE: [8 32768]
BUFFER_BYTES: [64 131072]
TICK_TIME: ALL
--------------------
arecord: set_params:1343: Sample format non available
Available formats:
Valid playback and capture parameters ASUS Xonar D1:
root@Camilladsp:~# aplay -v -D hw😀1 /dev/zero --dump-hw-params
Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw😀1":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S16_LE S32_LE
SUBFORMAT: STD
SAMPLE_BITS: [16 32]
FRAME_BITS: [32 256]
CHANNELS: [2 8]
RATE: [32000 192000]
PERIOD_TIME: (10 8192000]
PERIOD_SIZE: [2 262144]
PERIOD_BYTES: [64 8388608]
PERIODS: [1 131072]
BUFFER_TIME: (10 8192000]
BUFFER_SIZE: [2 262144]
BUFFER_BYTES: [64 1048576]
TICK_TIME: ALL
--------------------
aplay: set_params:1343: Sample format non available
Available formats:
- S16_LE
- S32_LE
root@Camilladsp:~# arecord -D hw😀1 /dev/null --dump-hw-params
Recording WAVE '/dev/null' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw😀1":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S16_LE S32_LE
SUBFORMAT: STD
SAMPLE_BITS: [16 32]
FRAME_BITS: [32 64]
CHANNELS: 2
RATE: [32000 192000]
PERIOD_TIME: (41 1024000]
PERIOD_SIZE: [8 32768]
PERIOD_BYTES: [64 262144]
PERIODS: [1 4096]
BUFFER_TIME: (41 1024000]
BUFFER_SIZE: [8 32768]
BUFFER_BYTES: [64 131072]
TICK_TIME: ALL
--------------------
arecord: set_params:1343: Sample format non available
Available formats:
- S16_LE
- S32_LE
IMO because you specified to MPD not only the sample format, but also the samplerate. As a result MPD resamples everything to 96k and the subsequent chain runs always at fixed 96k.It somehow works without alsa_cdsp! But why?
I don't understand... where's the catch?
I would recommend to put your code/listings into the code tag so that it's legible 🙂
It will not adapt to incoming speeds....I hope that Camilladsp accepts the file without resampling and processes it further with its algorithm.
//
MPD doesn't do resampling unless explicitly told to do so. My MPD config doesn't do resampling.IMO because you specified to MPD not only the sample format, but also the samplerate. As a result MPD resamples everything to 96k and the subsequent chain runs always at fixed 96k.
I would recommend to put your code/listings into the code tag so that it's legible 🙂
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/tag_cache"
log_file "/var/log/mpd/mpd.log"
pid_file "/run/mpd/pid"
state_file "/var/lib/mpd/state"
sticker_file "/var/lib/mpd/sticker.sql"
user "mpd"
bind_to_address "localhost"
input {
plugin "curl"
}
decoder {
plugin "hybrid_dsd"
enabled "no"
# gapless "no"
}
audio_output {
type "alsa"
name "Xonar D1"
device "hw😀1,0" # optional
mixer_type "software"
}
audio_output {
type "alsa"
name "Intel"
device "hw:Intel,0"
mixer_type "software"
}
audio_output {
type "alsa"
name "Loopback"
device "hw:Loopback,1"
mixer_type "software"
}
filesystem_charset "UTF-8"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/tag_cache"
log_file "/var/log/mpd/mpd.log"
pid_file "/run/mpd/pid"
state_file "/var/lib/mpd/state"
sticker_file "/var/lib/mpd/sticker.sql"
user "mpd"
bind_to_address "localhost"
input {
plugin "curl"
}
decoder {
plugin "hybrid_dsd"
enabled "no"
# gapless "no"
}
audio_output {
type "alsa"
name "Xonar D1"
device "hw😀1,0" # optional
mixer_type "software"
}
audio_output {
type "alsa"
name "Intel"
device "hw:Intel,0"
mixer_type "software"
}
audio_output {
type "alsa"
name "Loopback"
device "hw:Loopback,1"
mixer_type "software"
}
filesystem_charset "UTF-8"
root@Camilladsp:~# /root/camilladsp/camilladsp -p 1234 /root/camilladsp/configs/default_config.yml -v
2022-05-17 12:21:01.155731 INFO [src/bin.rs:711] CamillaDSP version 1.0.0
2022-05-17 12:21:01.155916 INFO [src/bin.rs:712] Running on linux, x86_64
2022-05-17 12:21:01.156135 DEBUG [src/bin.rs:754] Read config file Some("/root/camilladsp/configs/default_config.yml")
2022-05-17 12:21:01.159027 DEBUG [src/biquad.rs:43] a1=-1.9938068489191403 a2=0.9938377030850478 b0=1 b1=-1.9938068489191403 b2=0.9938377030850478
2022-05-17 12:21:01.159220 DEBUG [src/biquad.rs:43] a1=-1.406966855562149 a2=0.5446511509927457 b0=1 b1=-1.406966855562149 b2=0.5446511509927457
2022-05-17 12:21:01.159391 DEBUG [src/biquad.rs:43] a1=-1.9938068489191403 a2=0.9938377030850478 b0=1 b1=-1.9938068489191403 b2=0.9938377030850478
2022-05-17 12:21:01.159555 DEBUG [src/biquad.rs:43] a1=-1.406966855562149 a2=0.5446511509927457 b0=1 b1=-1.406966855562149 b2=0.5446511509927457
2022-05-17 12:21:01.159759 DEBUG [src/bin.rs:773] Config is valid
2022-05-17 12:21:01.159922 DEBUG [src/socketserver.rs:260] Start websocket server on 127.0.0.1:1234
2022-05-17 12:21:01.160330 DEBUG [src/bin.rs:857] Wait for config
2022-05-17 12:21:01.160497 DEBUG [src/bin.rs:890] Config ready
2022-05-17 12:21:01.161321 DEBUG [src/filters.rs:450] Build new pipeline
2022-05-17 12:21:01.161321 DEBUG [src/bin.rs:213] Using channels [true, true]
2022-05-17 12:21:01.161561 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.161561 DEBUG [src/alsadevice.rs:903] Buffer frames 8192
2022-05-17 12:21:01.161729 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=1 b1=-1.6782776702280775 b2=0.7232953503772571
2022-05-17 12:21:01.161921 DEBUG [src/biquad.rs:43] a1=-1.9935208182718362 a2=0.9935417404997461 b0=1 b1=-1.9935208182718362 b2=0.9935417404997461
2022-05-17 12:21:01.162126 DEBUG [src/biquad.rs:43] a1=-1.9938068489191403 a2=0.9938377030850478 b0=1 b1=-1.9938068489191403 b2=0.9938377030850478
2022-05-17 12:21:01.162290 DEBUG [src/biquad.rs:43] a1=-1.406966855562149 a2=0.5446511509927457 b0=1 b1=-1.406966855562149 b2=0.5446511509927457
2022-05-17 12:21:01.162513 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.162716 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=1 b1=-1.6782776702280775 b2=0.7232953503772571
2022-05-17 12:21:01.162880 DEBUG [src/biquad.rs:43] a1=-1.9935208182718362 a2=0.9935417404997461 b0=1 b1=-1.9935208182718362 b2=0.9935417404997461
2022-05-17 12:21:01.163032 DEBUG [src/biquad.rs:43] a1=-1.9938068489191403 a2=0.9938377030850478 b0=1 b1=-1.9938068489191403 b2=0.9938377030850478
2022-05-17 12:21:01.163175 DEBUG [src/biquad.rs:43] a1=-1.406966855562149 a2=0.5446511509927457 b0=1 b1=-1.406966855562149 b2=0.5446511509927457
2022-05-17 12:21:01.163349 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.163482 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.163627 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.00009506002944924774 b1=0.00019012005889849549 b2=0.00009506002944924774
2022-05-17 12:21:01.163800 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.00009506002944924774 b1=0.00019012005889849549 b2=0.00009506002944924774
2022-05-17 12:21:01.164009 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.164148 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.164292 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.00009506002944924774 b1=0.00019012005889849549 b2=0.00009506002944924774
2022-05-17 12:21:01.164449 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.00009506002944924774 b1=0.00019012005889849549 b2=0.00009506002944924774
2022-05-17 12:21:01.164629 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.164766 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.164910 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.9862119246270822 b1=-1.9724238492541644 b2=0.9862119246270822
2022-05-17 12:21:01.165069 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.9862119246270822 b1=-1.9724238492541644 b2=0.9862119246270822
2022-05-17 12:21:01.165233 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.011254420037294922 b1=0.022508840074589843 b2=0.011254420037294922
2022-05-17 12:21:01.165386 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.011254420037294922 b1=0.022508840074589843 b2=0.011254420037294922
2022-05-17 12:21:01.165610 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.165797 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.165959 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.9862119246270822 b1=-1.9724238492541644 b2=0.9862119246270822
2022-05-17 12:21:01.166133 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.9862119246270822 b1=-1.9724238492541644 b2=0.9862119246270822
2022-05-17 12:21:01.166307 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.011254420037294922 b1=0.022508840074589843 b2=0.011254420037294922
2022-05-17 12:21:01.166462 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.011254420037294922 b1=0.022508840074589843 b2=0.011254420037294922
2022-05-17 12:21:01.166645 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.166809 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.166959 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.8503932551513337 b1=-1.7007865103026674 b2=0.8503932551513337
2022-05-17 12:21:01.167105 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.8503932551513337 b1=-1.7007865103026674 b2=0.8503932551513337
2022-05-17 12:21:01.167293 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.167440 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.167600 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.8503932551513337 b1=-1.7007865103026674 b2=0.8503932551513337
2022-05-17 12:21:01.167762 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.8503932551513337 b1=-1.7007865103026674 b2=0.8503932551513337
2022-05-17 12:21:01.167942 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.168082 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.168257 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.168411 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.168590 DEBUG [src/processing.rs:19] build filters, waiting to start processing loop
2022-05-17 12:21:01.169025 DEBUG [src/alsadevice.rs:406] Capture: supported channels, min: 2, max: 2, list: [2]
2022-05-17 12:21:01.169134 DEBUG [src/alsadevice.rs:407] Capture: setting channels to 2
2022-05-17 12:21:01.169238 DEBUG [src/alsadevice.rs:411] Capture: supported samplerates: Discrete([96000])
2022-05-17 12:21:01.169334 DEBUG [src/alsadevice.rs:412] Capture: setting rate to 96000
2022-05-17 12:21:01.169434 DEBUG [src/alsadevice.rs:416] Capture: supported sample formats: [S32LE]
2022-05-17 12:21:01.169614 DEBUG [src/alsadevice.rs:417] Capture: setting format to S32LE
2022-05-17 12:21:01.170009 DEBUG [src/alsadevice.rs:448] Opening audio device "hw:Loopback,0" with parameters: HwParams { channels: Ok(2), rate: "Ok(96000) Hz", format: Ok(S32LE), access: Ok(RWInterleaved), period_size: "Ok(2048) frames", buffer_size: "Ok(16384) frames" }, SwParams(avail_min: Ok(4096) frames, start_threshold: Ok(0) frames, stop_threshold: Ok(16384) frames)
2022-05-17 12:21:01.170164 DEBUG [src/alsadevice.rs:453] Audio device "hw:Loopback,0" successfully opened
2022-05-17 12:21:01.170348 DEBUG [src/bin.rs:333] Capture thread ready to start
2022-05-17 12:21:01.182427 DEBUG [src/alsadevice.rs:406] Playback: supported channels, min: 2, max: 8, list: [2, 4, 6, 8]
2022-05-17 12:21:01.182588 DEBUG [src/alsadevice.rs:407] Playback: setting channels to 8
2022-05-17 12:21:01.182800 DEBUG [src/alsadevice.rs:411] Playback: supported samplerates: Discrete([32000, 44100, 48000, 64000, 88200, 96000, 176400, 192000])
2022-05-17 12:21:01.182896 DEBUG [src/alsadevice.rs:412] Playback: setting rate to 96000
2022-05-17 12:21:01.183011 DEBUG [src/alsadevice.rs:416] Playback: supported sample formats: [S16LE, S32LE]
2022-05-17 12:21:01.183102 DEBUG [src/alsadevice.rs:417] Playback: setting format to S32LE
2022-05-17 12:21:01.183489 DEBUG [src/alsadevice.rs:448] Opening audio device "hw😀1,0" with parameters: HwParams { channels: Ok(8), rate: "Ok(96000) Hz", format: Ok(S32LE), access: Ok(RWInterleaved), period_size: "Ok(1024) frames", buffer_size: "Ok(8192) frames" }, SwParams(avail_min: Ok(4096) frames, start_threshold: Ok(3072) frames, stop_threshold: Ok(8192) frames)
2022-05-17 12:21:01.183705 DEBUG [src/alsadevice.rs:453] Audio device "hw😀1,0" successfully opened
2022-05-17 12:21:01.183885 DEBUG [src/bin.rs:323] Playback thread ready to start
2022-05-17 12:21:01.183986 DEBUG [src/bin.rs:326] Both capture and playback ready, release barrier
2022-05-17 12:21:01.184141 DEBUG [src/alsadevice.rs:944] Starting captureloop
2022-05-17 12:21:01.184141 DEBUG [src/bin.rs:328] Supervisor loop starts now!
2022-05-17 12:21:01.184373 DEBUG [src/processing.rs:21] Processing loop starts now!
2022-05-17 12:21:01.184598 DEBUG [src/alsadevice.rs:850] Starting playback loop
2022-05-17 12:21:01.185017 INFO [src/alsadevice.rs:582] Capture device supports rate adjust
2022-05-17 12:21:01.185172 DEBUG [src/alsadevice.rs:244] Starting capture from state: SND_PCM_STATE_PREPARED, Ready to start
2022-05-17 12:21:01.261431 INFO [src/alsadevice.rs:156] Starting playback from Prepared state
2022-05-17 12:21:01.547226 DEBUG [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/tungstenite-0.16.0/src/handshake/server.rs:282] Server handshake done.
2022-05-17 12:21:01.550693 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetVersion)
2022-05-17 12:21:01.594663 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetState)
2022-05-17 12:21:01.596226 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetCaptureSignalRms)
2022-05-17 12:21:01.597844 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetCaptureSignalPeak)
2022-05-17 12:21:01.599435 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetPlaybackSignalRms)
2022-05-17 12:21:01.601096 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetPlaybackSignalPeak)
2022-05-17 12:21:01.602810 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetCaptureRate)
2022-05-17 12:21:01.604234 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetRateAdjust)
2022-05-17 12:21:01.605947 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetBufferLevel)
2022-05-17 12:21:01.607362 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetClippedSamples)
2022-05-17 12:21:01.618705 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetVolume)
2022-05-17 12:21:02.604302 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetState)
2022-05-17 12:21:01.155731 INFO [src/bin.rs:711] CamillaDSP version 1.0.0
2022-05-17 12:21:01.155916 INFO [src/bin.rs:712] Running on linux, x86_64
2022-05-17 12:21:01.156135 DEBUG [src/bin.rs:754] Read config file Some("/root/camilladsp/configs/default_config.yml")
2022-05-17 12:21:01.159027 DEBUG [src/biquad.rs:43] a1=-1.9938068489191403 a2=0.9938377030850478 b0=1 b1=-1.9938068489191403 b2=0.9938377030850478
2022-05-17 12:21:01.159220 DEBUG [src/biquad.rs:43] a1=-1.406966855562149 a2=0.5446511509927457 b0=1 b1=-1.406966855562149 b2=0.5446511509927457
2022-05-17 12:21:01.159391 DEBUG [src/biquad.rs:43] a1=-1.9938068489191403 a2=0.9938377030850478 b0=1 b1=-1.9938068489191403 b2=0.9938377030850478
2022-05-17 12:21:01.159555 DEBUG [src/biquad.rs:43] a1=-1.406966855562149 a2=0.5446511509927457 b0=1 b1=-1.406966855562149 b2=0.5446511509927457
2022-05-17 12:21:01.159759 DEBUG [src/bin.rs:773] Config is valid
2022-05-17 12:21:01.159922 DEBUG [src/socketserver.rs:260] Start websocket server on 127.0.0.1:1234
2022-05-17 12:21:01.160330 DEBUG [src/bin.rs:857] Wait for config
2022-05-17 12:21:01.160497 DEBUG [src/bin.rs:890] Config ready
2022-05-17 12:21:01.161321 DEBUG [src/filters.rs:450] Build new pipeline
2022-05-17 12:21:01.161321 DEBUG [src/bin.rs:213] Using channels [true, true]
2022-05-17 12:21:01.161561 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.161561 DEBUG [src/alsadevice.rs:903] Buffer frames 8192
2022-05-17 12:21:01.161729 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=1 b1=-1.6782776702280775 b2=0.7232953503772571
2022-05-17 12:21:01.161921 DEBUG [src/biquad.rs:43] a1=-1.9935208182718362 a2=0.9935417404997461 b0=1 b1=-1.9935208182718362 b2=0.9935417404997461
2022-05-17 12:21:01.162126 DEBUG [src/biquad.rs:43] a1=-1.9938068489191403 a2=0.9938377030850478 b0=1 b1=-1.9938068489191403 b2=0.9938377030850478
2022-05-17 12:21:01.162290 DEBUG [src/biquad.rs:43] a1=-1.406966855562149 a2=0.5446511509927457 b0=1 b1=-1.406966855562149 b2=0.5446511509927457
2022-05-17 12:21:01.162513 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.162716 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=1 b1=-1.6782776702280775 b2=0.7232953503772571
2022-05-17 12:21:01.162880 DEBUG [src/biquad.rs:43] a1=-1.9935208182718362 a2=0.9935417404997461 b0=1 b1=-1.9935208182718362 b2=0.9935417404997461
2022-05-17 12:21:01.163032 DEBUG [src/biquad.rs:43] a1=-1.9938068489191403 a2=0.9938377030850478 b0=1 b1=-1.9938068489191403 b2=0.9938377030850478
2022-05-17 12:21:01.163175 DEBUG [src/biquad.rs:43] a1=-1.406966855562149 a2=0.5446511509927457 b0=1 b1=-1.406966855562149 b2=0.5446511509927457
2022-05-17 12:21:01.163349 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.163482 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.163627 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.00009506002944924774 b1=0.00019012005889849549 b2=0.00009506002944924774
2022-05-17 12:21:01.163800 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.00009506002944924774 b1=0.00019012005889849549 b2=0.00009506002944924774
2022-05-17 12:21:01.164009 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.164148 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.164292 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.00009506002944924774 b1=0.00019012005889849549 b2=0.00009506002944924774
2022-05-17 12:21:01.164449 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.00009506002944924774 b1=0.00019012005889849549 b2=0.00009506002944924774
2022-05-17 12:21:01.164629 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.164766 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.164910 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.9862119246270822 b1=-1.9724238492541644 b2=0.9862119246270822
2022-05-17 12:21:01.165069 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.9862119246270822 b1=-1.9724238492541644 b2=0.9862119246270822
2022-05-17 12:21:01.165233 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.011254420037294922 b1=0.022508840074589843 b2=0.011254420037294922
2022-05-17 12:21:01.165386 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.011254420037294922 b1=0.022508840074589843 b2=0.011254420037294922
2022-05-17 12:21:01.165610 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.165797 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.165959 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.9862119246270822 b1=-1.9724238492541644 b2=0.9862119246270822
2022-05-17 12:21:01.166133 DEBUG [src/biquad.rs:43] a1=-1.9722337291952659 a2=0.9726139693130631 b0=0.9862119246270822 b1=-1.9724238492541644 b2=0.9862119246270822
2022-05-17 12:21:01.166307 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.011254420037294922 b1=0.022508840074589843 b2=0.011254420037294922
2022-05-17 12:21:01.166462 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.011254420037294922 b1=0.022508840074589843 b2=0.011254420037294922
2022-05-17 12:21:01.166645 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.166809 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.166959 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.8503932551513337 b1=-1.7007865103026674 b2=0.8503932551513337
2022-05-17 12:21:01.167105 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.8503932551513337 b1=-1.7007865103026674 b2=0.8503932551513337
2022-05-17 12:21:01.167293 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.167440 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.167600 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.8503932551513337 b1=-1.7007865103026674 b2=0.8503932551513337
2022-05-17 12:21:01.167762 DEBUG [src/biquad.rs:43] a1=-1.6782776702280775 a2=0.7232953503772571 b0=0.8503932551513337 b1=-1.7007865103026674 b2=0.8503932551513337
2022-05-17 12:21:01.167942 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.168082 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.168257 DEBUG [src/filters.rs:355] Build from config
2022-05-17 12:21:01.168411 DEBUG [src/basicfilters.rs:261] Building delay filter 'Deley-1ms' with delay 96 samples
2022-05-17 12:21:01.168590 DEBUG [src/processing.rs:19] build filters, waiting to start processing loop
2022-05-17 12:21:01.169025 DEBUG [src/alsadevice.rs:406] Capture: supported channels, min: 2, max: 2, list: [2]
2022-05-17 12:21:01.169134 DEBUG [src/alsadevice.rs:407] Capture: setting channels to 2
2022-05-17 12:21:01.169238 DEBUG [src/alsadevice.rs:411] Capture: supported samplerates: Discrete([96000])
2022-05-17 12:21:01.169334 DEBUG [src/alsadevice.rs:412] Capture: setting rate to 96000
2022-05-17 12:21:01.169434 DEBUG [src/alsadevice.rs:416] Capture: supported sample formats: [S32LE]
2022-05-17 12:21:01.169614 DEBUG [src/alsadevice.rs:417] Capture: setting format to S32LE
2022-05-17 12:21:01.170009 DEBUG [src/alsadevice.rs:448] Opening audio device "hw:Loopback,0" with parameters: HwParams { channels: Ok(2), rate: "Ok(96000) Hz", format: Ok(S32LE), access: Ok(RWInterleaved), period_size: "Ok(2048) frames", buffer_size: "Ok(16384) frames" }, SwParams(avail_min: Ok(4096) frames, start_threshold: Ok(0) frames, stop_threshold: Ok(16384) frames)
2022-05-17 12:21:01.170164 DEBUG [src/alsadevice.rs:453] Audio device "hw:Loopback,0" successfully opened
2022-05-17 12:21:01.170348 DEBUG [src/bin.rs:333] Capture thread ready to start
2022-05-17 12:21:01.182427 DEBUG [src/alsadevice.rs:406] Playback: supported channels, min: 2, max: 8, list: [2, 4, 6, 8]
2022-05-17 12:21:01.182588 DEBUG [src/alsadevice.rs:407] Playback: setting channels to 8
2022-05-17 12:21:01.182800 DEBUG [src/alsadevice.rs:411] Playback: supported samplerates: Discrete([32000, 44100, 48000, 64000, 88200, 96000, 176400, 192000])
2022-05-17 12:21:01.182896 DEBUG [src/alsadevice.rs:412] Playback: setting rate to 96000
2022-05-17 12:21:01.183011 DEBUG [src/alsadevice.rs:416] Playback: supported sample formats: [S16LE, S32LE]
2022-05-17 12:21:01.183102 DEBUG [src/alsadevice.rs:417] Playback: setting format to S32LE
2022-05-17 12:21:01.183489 DEBUG [src/alsadevice.rs:448] Opening audio device "hw😀1,0" with parameters: HwParams { channels: Ok(8), rate: "Ok(96000) Hz", format: Ok(S32LE), access: Ok(RWInterleaved), period_size: "Ok(1024) frames", buffer_size: "Ok(8192) frames" }, SwParams(avail_min: Ok(4096) frames, start_threshold: Ok(3072) frames, stop_threshold: Ok(8192) frames)
2022-05-17 12:21:01.183705 DEBUG [src/alsadevice.rs:453] Audio device "hw😀1,0" successfully opened
2022-05-17 12:21:01.183885 DEBUG [src/bin.rs:323] Playback thread ready to start
2022-05-17 12:21:01.183986 DEBUG [src/bin.rs:326] Both capture and playback ready, release barrier
2022-05-17 12:21:01.184141 DEBUG [src/alsadevice.rs:944] Starting captureloop
2022-05-17 12:21:01.184141 DEBUG [src/bin.rs:328] Supervisor loop starts now!
2022-05-17 12:21:01.184373 DEBUG [src/processing.rs:21] Processing loop starts now!
2022-05-17 12:21:01.184598 DEBUG [src/alsadevice.rs:850] Starting playback loop
2022-05-17 12:21:01.185017 INFO [src/alsadevice.rs:582] Capture device supports rate adjust
2022-05-17 12:21:01.185172 DEBUG [src/alsadevice.rs:244] Starting capture from state: SND_PCM_STATE_PREPARED, Ready to start
2022-05-17 12:21:01.261431 INFO [src/alsadevice.rs:156] Starting playback from Prepared state
2022-05-17 12:21:01.547226 DEBUG [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/tungstenite-0.16.0/src/handshake/server.rs:282] Server handshake done.
2022-05-17 12:21:01.550693 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetVersion)
2022-05-17 12:21:01.594663 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetState)
2022-05-17 12:21:01.596226 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetCaptureSignalRms)
2022-05-17 12:21:01.597844 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetCaptureSignalPeak)
2022-05-17 12:21:01.599435 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetPlaybackSignalRms)
2022-05-17 12:21:01.601096 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetPlaybackSignalPeak)
2022-05-17 12:21:01.602810 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetCaptureRate)
2022-05-17 12:21:01.604234 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetRateAdjust)
2022-05-17 12:21:01.605947 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetBufferLevel)
2022-05-17 12:21:01.607362 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetClippedSamples)
2022-05-17 12:21:01.618705 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetVolume)
2022-05-17 12:21:02.604302 DEBUG [src/socketserver.rs:340] parsed command: Ok(GetState)
devices:
adjust_period: 10
capture:
channels: 2
device: hw:Loopback,0
format: S32LE
type: Alsa
capture_samplerate: 96000
chunksize: 4096
enable_rate_adjust: true
enable_resampling: false
playback:
channels: 8
device: hw😀1,0
format: S32LE
type: Alsa
queuelimit: 4
rate_measure_interval: 1
resampler_type: Synchronous
samplerate: 96000
silence_threshold: -80
silence_timeout: 3
stop_on_rate_change: true
target_level: 0
filters:
Bass:
parameters:
freq: 85
gain: 0
q: 0.9
type: Lowshelf
type: Biquad
Deley-1ms:
parameters:
delay: 1
subsample: false
unit: ms
type: Delay
Dither-Lipshiz441:
parameters:
bits: 16
type: Lipshitz441
type: Dither
Dither-Shibata441:
parameters:
bits: 16
type: Shibata441
type: Dither
Dither-simple:
parameters:
bits: 16
type: Simple
type: Dither
Gane_-1db:
parameters:
gain: -1
inverted: false
mute: false
type: Gain
LR4-HP-300:
parameters:
freq: 300
order: 4
type: LinkwitzRileyHighpass
type: BiquadCombo
LR4-HP-3500:
parameters:
freq: 3500
order: 4
type: LinkwitzRileyHighpass
type: BiquadCombo
LR4-LP-300:
parameters:
freq: 300
order: 4
type: LinkwitzRileyLowpass
type: BiquadCombo
LR4-LP-3500:
parameters:
freq: 3500
order: 4
type: LinkwitzRileyLowpass
type: BiquadCombo
LR4-LP-80:
parameters:
freq: 80
order: 4
type: LinkwitzRileyLowpass
type: BiquadCombo
Loudness:
parameters:
high_boost: 10
low_boost: 20
ramp_time: 200
reference_level: 0
type: Loudness
Treble:
parameters:
freq: 6500
gain: 0
q: 0.7
type: Highshelf
type: Biquad
volume:
parameters:
ramp_time: 200
type: Volume
mixers:
2in-2out:
channels:
in: 2
out: 2
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
in2out8:
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:
- channel: 0
names:
- Loudness
- Bass
- Treble
type: Filter
- channel: 1
names:
- Loudness
- Bass
- Treble
type: Filter
- name: 2in-2out
type: Mixer
- name: in2out8
type: Mixer
- channel: 4
names:
- Deley-1ms
- LR4-LP-300
- Dither-Shibata441
type: Filter
- channel: 5
names:
- Deley-1ms
- LR4-LP-300
- Dither-Shibata441
type: Filter
- channel: 6
names:
- Deley-1ms
- LR4-HP-300
- LR4-LP-3500
- Dither-Shibata441
type: Filter
- channel: 7
names:
- Deley-1ms
- LR4-HP-300
- LR4-LP-3500
- Dither-Shibata441
type: Filter
- channel: 2
names:
- Deley-1ms
- LR4-HP-3500
- Dither-Shibata441
type: Filter
- channel: 3
names:
- Deley-1ms
- LR4-HP-3500
- Dither-Shibata441
type: Filter
- channel: 0
names:
- Deley-1ms
type: Filter
- channel: 1
names:
- Deley-1ms
type: Filter
adjust_period: 10
capture:
channels: 2
device: hw:Loopback,0
format: S32LE
type: Alsa
capture_samplerate: 96000
chunksize: 4096
enable_rate_adjust: true
enable_resampling: false
playback:
channels: 8
device: hw😀1,0
format: S32LE
type: Alsa
queuelimit: 4
rate_measure_interval: 1
resampler_type: Synchronous
samplerate: 96000
silence_threshold: -80
silence_timeout: 3
stop_on_rate_change: true
target_level: 0
filters:
Bass:
parameters:
freq: 85
gain: 0
q: 0.9
type: Lowshelf
type: Biquad
Deley-1ms:
parameters:
delay: 1
subsample: false
unit: ms
type: Delay
Dither-Lipshiz441:
parameters:
bits: 16
type: Lipshitz441
type: Dither
Dither-Shibata441:
parameters:
bits: 16
type: Shibata441
type: Dither
Dither-simple:
parameters:
bits: 16
type: Simple
type: Dither
Gane_-1db:
parameters:
gain: -1
inverted: false
mute: false
type: Gain
LR4-HP-300:
parameters:
freq: 300
order: 4
type: LinkwitzRileyHighpass
type: BiquadCombo
LR4-HP-3500:
parameters:
freq: 3500
order: 4
type: LinkwitzRileyHighpass
type: BiquadCombo
LR4-LP-300:
parameters:
freq: 300
order: 4
type: LinkwitzRileyLowpass
type: BiquadCombo
LR4-LP-3500:
parameters:
freq: 3500
order: 4
type: LinkwitzRileyLowpass
type: BiquadCombo
LR4-LP-80:
parameters:
freq: 80
order: 4
type: LinkwitzRileyLowpass
type: BiquadCombo
Loudness:
parameters:
high_boost: 10
low_boost: 20
ramp_time: 200
reference_level: 0
type: Loudness
Treble:
parameters:
freq: 6500
gain: 0
q: 0.7
type: Highshelf
type: Biquad
volume:
parameters:
ramp_time: 200
type: Volume
mixers:
2in-2out:
channels:
in: 2
out: 2
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
in2out8:
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:
- channel: 0
names:
- Loudness
- Bass
- Treble
type: Filter
- channel: 1
names:
- Loudness
- Bass
- Treble
type: Filter
- name: 2in-2out
type: Mixer
- name: in2out8
type: Mixer
- channel: 4
names:
- Deley-1ms
- LR4-LP-300
- Dither-Shibata441
type: Filter
- channel: 5
names:
- Deley-1ms
- LR4-LP-300
- Dither-Shibata441
type: Filter
- channel: 6
names:
- Deley-1ms
- LR4-HP-300
- LR4-LP-3500
- Dither-Shibata441
type: Filter
- channel: 7
names:
- Deley-1ms
- LR4-HP-300
- LR4-LP-3500
- Dither-Shibata441
type: Filter
- channel: 2
names:
- Deley-1ms
- LR4-HP-3500
- Dither-Shibata441
type: Filter
- channel: 3
names:
- Deley-1ms
- LR4-HP-3500
- Dither-Shibata441
type: Filter
- channel: 0
names:
- Deley-1ms
type: Filter
- channel: 1
names:
- Deley-1ms
type: Filter
Last edited:
MPD doesn't do resampling unless explicitly told to do so. My MPD config doesn't do resampling.music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/tag_cache"
log_file "/var/log/mpd/mpd.log"
pid_file "/run/mpd/pid"
state_file "/var/lib/mpd/state"
sticker_file "/var/lib/mpd/sticker.sql"
user "mpd"
bind_to_address "localhost"
input {
plugin "curl"
}
decoder {
plugin "hybrid_dsd"
enabled "no"
# gapless "no"
}
audio_output {
type "alsa"
name "Xonar D1"
device "hw😀1,0" # optional
mixer_type "software"
}
audio_output {
type "alsa"
name "Intel"
device "hw:Intel,0"
mixer_type "software"
}
audio_output {
type "alsa"
name "Loopback"
device "hw:Loopback,1"
mixer_type "software"
}
filesystem_charset "UTF-8"
I do not think that is true. I believe the default is auto_resample = yes which will cause ALSA to resample if your output device (in this case ALSA loopback set to 96 kHz by CamillaDSP) does not support your intended rate.
Michael
Last edited:
I do not think that is true. I believe the default is auto_resample = yes which will cause ALSA to resample if your output device (in this case ALSA loopback set to 96 kHz by CamillaDSP) does not support your intended rate.
View attachment 1055091
Michael
Please can you link directly to this document! It looks like an outdated User's Manual MPD.
Last edited:
- Home
- Source & Line
- PC Based
- CamillaDSP - Cross-platform IIR and FIR engine for crossovers, room correction etc