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

phofman, thanks for helping us :)

Donno if this is possible in the .yml config ?

---
devices:
samplerate: 44100
buffersize: 4096 #8192
target_level: 2048 #4096
adjust_period: 5

capture:
type: Alsa
channels: 2
device: "camilla_in"
format: S32LE
playback:
type: Alsa
channels: 2
device: "plughw:CARD=DAC8PRO,DEV=0"
format: S32LE
instead of using "sound_out" ?

Jesper.
 

TNT

Member
Joined 2003
Paid Member
There is no easy place to insert CamillaDSP in that chain unfortunately. The best place is just before the sound card. But that's in the SB touch, so not really an option. But if LMS can use pipes to pass the sound via an external program it could probably be made to work.

OK (sad face..) Its a 2 channel device so if one could just re-route out and back for a detour in Camilla it would be enough. If I had the coding skill I would go for it myself but alas, my track record is poor.

DeveloperGuide - SqueezeboxWiki

There was a FIR plugin (brutfir) at one time but it seems eol.. Brutefir filters not working

But I can see why this platform don't attract that much anylonger.

Guess I might have to build a new player on Pi....

//
 
Thanks everyone for your input on this. I think I have camilla running now without error now. Its playing sound. I changed asound.conf as follows :

# Loopback device 0
pcm.squeeze {
type hw
card "Loopback"
device 0
format S32_LE
channels 2
}

# Loopback device 1
pcm.camilla_in {
type hw
card "Loopback"
device 1
format S32_LE
channels 2
}

# "sound_out" is the "real" hardware card (usbdac, soundcard etc...)
pcm.sound_out {
#type hw
#card 0
#device 0
type plug
slave {
pcm "hw:0,0"
rate 44100
}
}


ctl.sound_out {
type hw
card 0
}

I will try to tidy up and implement my own filters now. Does camilla support .dbl as generated by rephase?
 
Last edited:
Its working! I had to change the config file as per my filters :

---
devices:
samplerate: 44100
buffersize: 4096 #8192
target_level: 2048 #4096
adjust_period: 5

capture:
type: Alsa
channels: 2
device: "camilla_in"
format: S32LE
playback:
type: Alsa
channels: 2
device: "sound_out"
format: S32LE

filters:
l_fir:
type: Conv
parameters:
type: File
filename: /home/tc/DSP_Engine/filters/44100/filterL44.dbl
format: FLOAT64LE

r_fir:
type: Conv
parameters:
type: File
filename: /home/tc/DSP_Engine/filters/44100/filterR44.dbl
format: FLOAT64LE

clipgain_L:
type: Gain
parameters:
gain: -12.0
inverted: false

clipgain_R:
type: Gain
parameters:
gain: -12.0
inverted: false

pipeline:
- type: Filter
channel: 0
names:
- l_fir
- type: Filter
channel: 1
names:
- r_fir

- type: Filter
channel: 0
names:
- clipgain_L
- type: Filter
channel: 1
names:
- clipgain_R
 
Perfect wineds :)

I have created some scripts to use for easy changing of filters when testing etc...
They can be downloaded (git clone ...) from my Git.

GitHub - Lykkedk/SuperPlayer: Hacking software & scripts to play music and then transfer them to the pCP.

For now there resides two files there (CamillaDSP.sh & filter.sh)
The idea is to just execute /home/tc/filter.sh nofilter or filter_1 ... filter_2 etc...

Then the script kills CamillaDSP and squeezelite and restart's them with the right parameters (you ofcause have to change the settings inside the scripts)

I even use my phone with some ssh app. on to change filters :D... very easy from my comfy couch.

README.md file :
Squeezelite with camillaDSP integration setup The two script's make it possible to easy change filters when running the squeezelite / CamillaDSP combo.

Place CamillaDSP.sh and filter.sh in /home/tc directory

Chmod +x both files to make them executeable

Execute filter.sh like this :

/home/tc/filter.sh nofilter Start's squeezelite without filter

/home/tc/filter.sh filter_1 Start's squeezelite & CamillaDSP with filter_1

/home/tc/filter.sh filter_2 ....

/home/tc/filter.sh filter_3 ...

/home/tc/filter.sh filter_4 ..

/home/tc/filter.sh filter_5 .

The stuff is working here, but haven't testet on other setup's
Script's are pretty simple so easy to investigate & change for use!
* OPENSOURCE * Do whatever you like with them ;)

Jesper.
 
Last edited:
Great that you got it working!



Perfect wineds :)

I have created some scripts to use for easy changing of filters when testing etc...
They can be downloaded (git clone ...) from my Git.

GitHub - Lykkedk/SuperPlayer: Hacking software & scripts to play music and then transfer them to the pCP.

For now there resides two files there (CamillaDSP.sh & filter.sh)
The idea is to just execute /home/tc/filter.sh nofilter or filter_1 ... filter_2 etc...

Then the script kills CamillaDSP and squeezelite and restart's them with the right parameters (you ofcause have to change the settings inside the scripts)

I even use my phone with some ssh app. on to change filters :D... very easy from my comfy couch.

README.md file :


The stuff is working here, but haven't testet on other setup's
Script's are pretty simple so easy to investigate & change for use!
* OPENSOURCE * Do whatever you like with them ;)

Jesper.
Ah so you have a github account. I thik this would be a great place for the instructions you wrote in the word file! Just switch to the markdown format and upload. And then I can link to that from the CamillaDSP readme.


I looked quickly at the scripts, good job! The filter.sh could use some indentation to be easier to read though. I would also suggest putting the path to the custom squeezelite in a variable at the top (I mean "/mnt/mmcblk0p2/tce/squeezelite-custom", it's written many times and someone else may put it somewhere else)
 
Thanks @HenrikEnquist for your great contribution with this package.

I tried to change to 192khz sample rate by editing asound.conf and @lykkedk config file and adding suitable filters. DAC was playing at 192khz with music but it was like a 33RPM LP playing at 45. So I guess I need to add proper upstaging in the chain somewhere?

By the way thanks @phofman for the tip about the plug plugin!

And thanks to @lykkedk for his script and howto.
 
so you have a github account. I thik this would be a great place for the instructions you wrote in the word file! Just switch to the markdown format and upload. And then I can link to that from the CamillaDSP readme.


I looked quickly at the scripts, good job! The filter.sh could use some indentation to be easier to read though. I would also suggest putting the path to the custom squeezelite in a variable at the top (I mean "/mnt/mmcblk0p2/tce/squeezelite-custom", it's written many times and someone else may put it somewhere else)

:p ... I'am all new into using my Github, but i will try to rewrite and markdown if this function is there on Libreoffice, let's see...

Regarding the script's i will look at them and adjust & make some more comments so they are easier to read :D ... Just need some little more time to do it.

I would also like to make an complete description howto archive my setup with the hacked squeezelite i've got to automatically change samplerates.
I just have to test it on an "empty" rpi i have to verify it is working.

Jesper.
 
:p ... I'am all new into using my Github, but i will try to rewrite and markdown if this function is there on Libreoffice, let's see...

Regarding the script's i will look at them and adjust & make some more comments so they are easier to read :D ... Just need some little more time to do it.

I would also like to make an complete description howto archive my setup with the hacked squeezelite i've got to automatically change samplerates.
I just have to test it on an "empty" rpi i have to verify it is working.

Jesper.
I don't think you can export directly to markdown, but the syntax is very easy so just copy-paste to a new filename.md and fix the formatting. There are plenty of guides, this one for example: Mastering Markdown * GitHub Guides


Edit: Looking at the document I think if you save it as plain txt, change the name to .md and mark the code sections as code with:
Code:
```
blabla
```
you will be done in no time :) And check the CamillaDSP readme for what to do with the picture.
 
Last edited:
Hello :)

I have updated my github GitHub - Lykkedk/SuperPlayer: Hacking software & scripts to play music

Inside there is an .pdf with full instructions howto setup the piCorePlayer to integrate CamillaDSP with automatic filterswitching when samplerate change is detected.
I have tested it with the newest piCorePlayer image on an fresh RaspberryPi 3B+ and it's working as expected.

I have created and included a websocket.tcz extension along with the hacked squeezelite player among all other files needed to make it work.

I hope i can figure out howto write an real github .md file, nice and clean marked down version, but not there yet sry. Henrik :eek:

Jesper.
 
Hello :)

I have updated my github GitHub - Lykkedk/SuperPlayer: Hacking software & scripts to play music

Inside there is an .pdf with full instructions howto setup the piCorePlayer to integrate CamillaDSP with automatic filterswitching when samplerate change is detected.
I have tested it with the newest piCorePlayer image on an fresh RaspberryPi 3B+ and it's working as expected.

I have created and included a websocket.tcz extension along with the hacked squeezelite player among all other files needed to make it work.

I hope i can figure out howto write an real github .md file, nice and clean marked down version, but not there yet sry. Henrik :eek:

Jesper.
For some inspiration I converted the first few sections :) readme * GitHub
 
Hi here...

I finally made it :)

I have created an good enough README.md file on my GitHub :
GitHub - Lykkedk/SuperPlayer: Hacking software & scripts to play music

Properly lot's of gramma's and misspelling, sry... i'am non native English :eek:
It should be good, but if i get corrections or maybe some advise i can correct it pretty easy now :D

I did not touch the instructions.pdf for now; which are included when an git clone is executed

Jesper.