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

Is anyone brave enough to try out the gui? I have just written a (very) brief instruction here:
GitHub - HEnquist/camillagui-backend: Backend server for camillagui


It needs the latest CamillaDSP from the develop branch to work.


I haven't had time to try following my own instructions to set it up on a new machine yet. So there is high risk something is wrong or missing. So does anyone feel like potentially wasting some time? :D

Any feedback is appreciated!
Tried to install on a second computer now, and realized the build artefacts are only available to logged in github users. If you are not logged in, you can't download the build.zip file. I'll have to make proper releases and update the instructions. For now, the zip is attached here:

View attachment build.zip
 
Thanks Henrik. I have tried to install it but didn't get very far. Problem is installing the dependencies on PiCorePlayer which is based on TinyCore Linux. viz :

python 3.6 or later
numpy
matplotlib
aiohttp

Python seems to be installed already but not sure if its a "mini" version. Numpy I think I have located but mathplotlib and aiohttp seem elusive (limited TonyCore repository) unless maybe I can get pip working. Of course there is no apt update and apt get on TinyCore!
 
Last edited:
Thanks Henrik. I have tried to install it but didn't get very far. Problem is installing the dependencies on PiCorePlayer which is based on TinyCore Linux. viz :

python 3.6 or later
numpy
matplotlib
aiohttp

Python seems to be installed already but not sure if its a "mini" version. Numpy I think I have located but mathplotlib and aiohttp seem elusive (limited TonyCore repository) unless maybe I can get pip working. Of course there is no apt update and apt get on TinyCore!
Right, it's probably a lot of work to make it run on TinyCore. You could try running the gui on another machine, maybe a VM or another raspberry running raspbian. The downside is that the gui backend won't be able to access files on the TinyCore system for plotting FIR filters and loading configs from disk.
 
I downloaded https://www.diyaudio.com/forums/pc-...crossovers-correction-etc-73.html#post6324577
and satisfied requirements. Downloaded, compiled camilladsp with alsa (I run ubuntu 18.04, which has PA 11.x so it does not compile with PA) and websocket. I launched camilladsp like this
sudo ./camilladsp /home/osho/camilladsp-develop/exampleconfigs/stdio_inout.yml



But I am getting error when running the gui



osho@dtk:~/camillagui$ sudo python3.6 main.py
Traceback (most recent call last):
File "main.py", line 11, in <module>
camillaconnection.connect()
File "/home/osho/.local/lib/python3.6/site-packages/camilladsp/camilladsp.py", line 52, in connect
"ws://{}:{}".format(self._host, self._port)
File "/home/osho/.local/lib/python3.6/site-packages/websocket/_core.py", line 515, in create_connection
websock.connect(url, **options)
File "/home/osho/.local/lib/python3.6/site-packages/websocket/_core.py", line 223, in connect
options.pop('socket', None))
File "/home/osho/.local/lib/python3.6/site-packages/websocket/_http.py", line 121, in connect
sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
File "/home/osho/.local/lib/python3.6/site-packages/websocket/_http.py", line 201, in _open_socket
raise err
File "/home/osho/.local/lib/python3.6/site-packages/websocket/_http.py", line 176, in _open_socket
sock.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused


It is clear, there is not service listening on 1234

The Readme mentions pycamilladsp, but what should be done? Thanks
 
I downloaded https://www.diyaudio.com/forums/pc-...crossovers-correction-etc-73.html#post6324577
and satisfied requirements. Downloaded, compiled camilladsp with alsa (I run ubuntu 18.04, which has PA 11.x so it does not compile with PA) and websocket. I launched camilladsp like this
sudo ./camilladsp /home/osho/camilladsp-develop/exampleconfigs/stdio_inout.yml



But I am getting error when running the gui



osho@dtk:~/camillagui$ sudo python3.6 main.py
Traceback (most recent call last):
File "main.py", line 11, in <module>
camillaconnection.connect()
File "/home/osho/.local/lib/python3.6/site-packages/camilladsp/camilladsp.py", line 52, in connect
"ws://{}:{}".format(self._host, self._port)
File "/home/osho/.local/lib/python3.6/site-packages/websocket/_core.py", line 515, in create_connection
websock.connect(url, **options)
File "/home/osho/.local/lib/python3.6/site-packages/websocket/_core.py", line 223, in connect
options.pop('socket', None))
File "/home/osho/.local/lib/python3.6/site-packages/websocket/_http.py", line 121, in connect
sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
File "/home/osho/.local/lib/python3.6/site-packages/websocket/_http.py", line 201, in _open_socket
raise err
File "/home/osho/.local/lib/python3.6/site-packages/websocket/_http.py", line 176, in _open_socket
sock.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused


It is clear, there is not service listening on 1234

The Readme mentions pycamilladsp, but what should be done? Thanks
Ok you are very close! The only thing left is to start camilladsp with the websocket server enabled. Like this:
Code:
sudo ./camilladsp /home/osho/camilladsp-develop/exampleconfigs/stdio_inout.yml -p 1234
 
Oh, thanks, actually it is on the web page :) And maybe there is also my next glitch:
Launched like this:
Code:
 ~/camilladsp-develop/target/release$ sudo ./camilladsp /home/osho/camilladsp-develop/exampleconfigs/stdio_inout.yml -p 1234
 ...
[2020-09-02T19:20:32Z INFO  ws] Listening for new connections on 127.0.0.1:1234.
[2020-09-02T19:37:56Z INFO  ws::io] Accepted a new tcp connection from 127.0.0.1:35736.
...
the process is listening
tcp             LISTEN            0                 128                                  0.0.0.0:5000                               0.0.0.0:*                users:(("python3.6",pid=31548,fd=7))                  
tcp             LISTEN            0                 1024                               127.0.0.1:1234                               0.0.0.0:*                users:(("camilladsp",pid=31262,fd=6))
browser at http://0.0.0.0:5000/ shows
404: Not Found

I have not found anything on the 35736.
 
Oh, thanks, actually it is on the web page :) And maybe there is also my next glitch:
Launched like this:
Code:
 ~/camilladsp-develop/target/release$ sudo ./camilladsp /home/osho/camilladsp-develop/exampleconfigs/stdio_inout.yml -p 1234
 ...
[2020-09-02T19:20:32Z INFO  ws] Listening for new connections on 127.0.0.1:1234.
[2020-09-02T19:37:56Z INFO  ws::io] Accepted a new tcp connection from 127.0.0.1:35736.
...
the process is listening
tcp             LISTEN            0                 128                                  0.0.0.0:5000                               0.0.0.0:*                users:(("python3.6",pid=31548,fd=7))                  
tcp             LISTEN            0                 1024                               127.0.0.1:1234                               0.0.0.0:*                users:(("camilladsp",pid=31262,fd=6))
browser at http://0.0.0.0:5000/ shows
404: Not Found

I have not found anything on the 35736.
You need to give the full path to the index.html:
Code:
[URL]http://localhost:5000/gui/index.html[/URL]
 
I have been working a bit more on the various parts of the gui and updated them all.
In the gui it's now possible to plot the combined response of a Filter step of the pipeline.
There is also a much improved readme that should make it a bit easier to set it up: GitHub - HEnquist/camillagui-backend: Backend server for camillagui


pyCamillaDSP got a major change, it is now split into two libraries:
GitHub - HEnquist/pycamilladsp: Python library for handling the communication with CamillaDSP via a websocket.
GitHub - HEnquist/pycamilladsp-plot: Plotting tools for CamillaDSP
The first one handles only the websocket communication and requires only the websocket-client package. This part is basically unchanged from before, except that I added CI tests with 100% test coverage :)


The second one handles all plotting and requires numpy and matplotlib (but not websocket-client). This also includes the "plotcamillaconf" tool that is meant to be an improved replacement of the show_config.py script.



Finally there is a new beta of CamillaDSP, 0.3.2-beta3. This fixes a bug where the active config wasn't cleared when shutting down the processing pipeline, so the websocket server replied with the previous config instead of none.