I totally agree, that´s a sacrilege!
Debian Linux (no GUI) on an cheap Intel Board with SOtM USB Card & a SOtM clock, a cheap USB to SPDIF box from China, digitally to active speakers.
CPU load is 5% with convolution
kr
j
I'll make the target bit depth a parameter, so dither for 24-bit will be there. Not sure it makes sense though with the best DACs having a SNR corresponding to about 21 bits. The dither will just be lost deep down in the noise.Thumbs up on the dither. As it works on floats internally, dithering would also make sense for 24bit output IMHO.
Compiling alsa-sys v0.2.0
Compiling quote v1.0.2
warning: redundant linker flag specified for library `pulse`
Compiling signal-hook-registry v1.2.0
Compiling libpulse-binding v2.15.0
warning: redundant linker flag specified for library `pulse-simple`
Compiling signal-hook v0.1.13
Compiling rustfft v3.0.1
Compiling libpulse-simple-binding v2.15.0
Compiling alsa v0.4.1
Compiling serde_derive v1.0.104
Compiling serde_yaml v0.8.11
Compiling camilladsp v0.0.5 (/home/pi/camilladsp)
error[E0308]: mismatched types
--> src/alsadevice.rs:112:29
|
112 | hwp.set_buffer_size(bufsize)?;
| ^^^^^^^ expected i32, found i64
error[E0308]: mismatched types
--> src/alsadevice.rs:113:29
|
113 | hwp.set_period_size(bufsize / 8, alsa::ValueOr::Nearest)?;
| ^^^^^^^^^^^ expected i32, found i64
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0308`.
error: Could not compile `camilladsp`.
I think a RPi 4 should handle this fine, but I haven't actually tried that. Where in your chain do you want to place the new Pi? Instead of the 3+?Hi here 🙂
Lately i had been reading a lot about DRC stuff, finding it very interesting and for me a must try also i guess. I'am new into digital filtering and software optimising room correction stuff, so please bare with me if you think some quistions are to light.
My stereo in a midsize livingroom (all diy except speakers) is used as follows : i have all my old cd's on a NAS, where the Logitech media server (LMS) also resides for now. On the LMS i have "plugins" for Tidal / Qobus and Paradise radio etc... I mostly stream. The stream is feed into via Picoreplayer (Squeezelite) on a RPI 3B+ into an USB Amanero DAC, then preamp and last my poweramp, so pretty normal for 2020 i guess.
Also i would like to tell that i ordered the UMIK-1 usb mic. the other day, waiting for it to arrive within the next few day's.
I plan to if possible to run the DRC filters on an Raspberry Pi 4 (4Gb), and have digital filters/room correction applied in realtime for if possible all rates (44.1Khz... 192Khz...)
So, after i read a lot for day's as i wrote i tried to install the LMS on my RPI4 along with BrutefirDRC (plugin for lms which should do realtime DRC) for having some more computerpower than my old NAS have.
The BrutefirDrc plugin was not the easiest part to get running, but without any special filters i got it up and running partially.
I hope it is possible to have Camilladsp within this chain somehow, but not sure how; this is ofcause depending on if i can make it run on the RPI.
So, finding it hard to find information on the net about the hole process, i hope someone can help clear out if this is the right way to handle such Room correction setup ?
(Not specific.)
1. Setup a mic. on software which measure impulses etc... from the room (e.g. REW / roomeqwizard).
2. Take measurements on left spk., right spk.. and export the data into another program which can generate FIR & IIR filters (one for each samplerate i guess?)
3. Load the filters on the convolver (Camilladsp in this case) and stream / play my music through the hole chain in realtime.
Rgds; Jesper.
Yes, just add a separate "Delay" filter in the pipeline for that channel.Delay on a particular channel - is that available?
//
Compiling yaml-rust v0.4.3
warning: redundant linker flag specified for library `pulse`
Compiling signal-hook-registry v1.2.0
Compiling quote v1.0.3
Compiling libpulse-binding v2.15.0
warning: redundant linker flag specified for library `pulse-simple`
Compiling rustfft v3.0.1
Compiling signal-hook v0.1.13
Compiling libpulse-simple-binding v2.15.0
Compiling alsa v0.4.1
Compiling serde_derive v1.0.104
Compiling serde_yaml v0.8.11
Compiling camilladsp v0.0.5 (/home/pi/camilladsp)
error[E0502]: cannot borrow `**filter` as immutable because it is also borrowed as mutable
--> src/filters.rs:83:57
|
83 | filter.update_parameters(filterconfigs[&filter.name()].clone());
| ------ ^^^^^^ - mutable borrow ends here
| | |
| mutable borrow occurs here immutable borrow occurs here
error[E0502]: cannot borrow `mix.name` as immutable because `*mix` is also borrowed as mutable
--> src/filters.rs:144:60
|
144 | mix.update_parameters(conf.mixers[&mix.name].clone());
| --- ^^^^^^^^ - mutable borrow ends here
| | |
| mutable borrow occurs here immutable borrow occurs here
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0502`.
error: Could not compile `camilladsp`.
This is strange, it's not related to the Pi so I should get the same error. What version of rustc are you using?