Hello guys,
I have been reading and asking here and there about how to set up a multichannel system with DSP on the ultra cheap. And even though many of you helped me a lot to understand the implications and requirements and answer all my stupid questions (special thanks for @mdsimon2 in between others), I could not find any detailed instructions for complete dummies on how to achieve what I wanted without having to buy an expensive and in some cases difficult to get multichannel dac.
The final purpose in my case is to build a pair LXmini leaving the doors open for a pair of subs and without having to invest too much in the electronics. That is, 6 channels with crossovers… $$$
Reading mdsimon2 excellent instructions for multichannel dsp with camilladsp was very inspiring. I wanted to do exactly the same but in moodeaudio (why? Because I already use moode and it already has camilladsp implemented, so, why not) and on the ultra cheap.
The parts were all there:
- Raspberry pi 4b running moodeaudio with camilladsp
- A cheap usb multichannel soundcard proben to work with camilladsp that you can easily find ultra cheap used (30 euros in my case): Asus Xonar U7 (not the mkii)
Total investment: 85 euros
As I need the pi 4 for other purposes, next week I will check if it works in the new zero 2w, that I already have doing room correction with moode/Camilla. This would bring the total investment to less than 50 euros.
Will not sound like an Okto dac? Maybe, I don’t think I will ever have the chance to find out…
So there we go with the instructions. Again, these are instructions from newbie to newbie, the only objective is to make it work. Feel free to point out things that I have done wrong or in a stupidly unnecessary way, I am sure there are many.
Instructions:
These instructions assume you already have a pi with moodeaudio running. There are many good instructions on how to get there so i won't cover that. Any pi would do except the zero. The pi zero can certainly run moode, but not camilladdp, and there is no way to change this. The new zero 2w on the other hand runs moode and camilla just fine.
In order to create a new configuration from zero, the best is to make a copy of the "flat" configuration that comes preloaded in moode and modify it. To do this, go to "m" > configure > camilladsp.
Scroll down to "Pipeline configuration" and in "pipeline" select "flat" from the dropdown menu.
Once “flat” is selected, just below, click in "copy" and this creates a copy of the “flat” configuration to experiment with. Moode asks to give the new configuration a name. I used U7-8ch.
The configuration U7-8ch is created. Then, we need to modify this configuration to our needs:
We select the new configuration in the same page page: general > configuration > dropdown menu:
Once selected, we need to enter the "pipeline configurator" to modify it:
Scroll down this same page and in pipeline editor, change status to "on" and Expert mode to "on" and then press in "open" pipeline editor to access the editor.
This gives you access to the standard camillagui. There are tabs for "devices" where you select from where the signal is taken and where the modified signal goes, "filters" where you can create different filters (you can create any number of filters you want to use, does not need to be one filter per channel, can be channels with no filter and channels with multiple filters). In "mixers" you assign what income channel goes to which outgoing channel (can be more than one). In "pipeline" you assign any filter you want to any channel you want. Finally, in "files" you can load a different configuration from the ones you have, save changes, etc.
At any stage in any of the tabs, to apply the changes you make to the current configuration, you can press "apply to DSP" at the left side of the screen, just below the name of the configuration you are working on:
(In the picture above, we are working on the configuration U7-8ch but the configuration is not selected in moode at this moment, that’s why you dont see the VU meters with the sound and the state is "offline")
To create a working configuration for the U7:
Devices tab, bottom of the page:
Here we select the input and output devices and the number of channels in between other things.
I spent hours trying to use “loopback” as source for the sound as seen in many tutorials. Moode has the possibility to create a loopback just pressing one button, so it was very convenient. However, I must have done something wrong because I could not make it work.
In any case, I found that using the configuration for the capture device below, it works perfectly and camilladsp uses whatever you are streaming to moode as the input signal. Note that all the music I listen to is red book 16 bit 41 kHz, so the sample format selected (S16LE) should suffice. I have read somewhere that one can select a higher sample format than the actual music playing, but as this is not relevant for me, I left it like that.
The playback device is the U7. The name of this device in the system is hw:2,0. In this case I use plughw:2,0. I have read that plughw is safer than hw because it allows sample conversion if needed (?). Channels must be set to 8, that the U7 supports. Does not work if you put more or less than 8, must be 8. S16LE is again the sample rate that the card supports. I think the U7 supports higher rates as well, but i don’t need this for the time being.
*edit: see the suggestion of @mdsimon2 in post #2 to use hw:2,0 instead of plughw:2,0 for playback device. He knows much better than me and you (if you are following these instructions) what he is talking about, so my recommendation would be to do as he says. If it doesn't work, you can always switch back to plughw:2,0
Once done, save the changes pressing “apply to DSP”. At this point you will get some error messages because the rest of the tabs are not adapted yet to the 8 channels. Don’t worry, will solve that soon.
FILTERS tab:
Here you create the filters, simply press the green "+" and select the type the filter you want, the frequency, the Q, etc. Create as many as you want and give each a name or not create any, as you need. I won’t get into this section for two reasons: you might need different filters than mine, and most importantly, I have no idea about creating filters.
In the example below I have created two filters just to play with. Pressing the green cross creates a new filter.
MIXERS tab.
Here you need to assign what income channel goes to each of the outgoing 8 channels. You can route more than one income channel to the same outgoing channel, but you must assign something to each of the 8 outgoing channels, otherwise you will get a error message. (note for the ultradummies like me: channels are numbered starting with 0! So for instance the two incomming channels are 0 and 1, don’t waste your time wanting to find channels 1 and 2). Here you can also select the gain for each individual channel. Example (you cannot see the complete page in the screenshot, but I have assigned all the outgoing channels 0 to 7):
PIPELINE tab:
Here you assign filters to channels. It is not mandatory to assign one filter to each channel. You can assign none or more than one. See below example.
At the bottom of the screen, there is a button with a wave that shows you the signal flow:
And basically that's it, when you are done you save the changes to the configuration pressing "apply to dsp" as discussed, exit the pipeline editor, select the configuration in camilladsp configuration, and when you play the music, it goes through the pipeline you have just designed.
When at work, if you go to pipeline configuration again, you will see tha VU meters for all the income and outcome filters at work:
The channel assignment for the U7 is the following:
channel 0 : headphone L - RCA L
channel 1 : headphone R - RCA R
channel 2 : Ctr L
channel 3 : Ctr R
channel 4 : Rear L
channel 5 : Rear R
channel 6 : Side L
channel 7 : Sode R
And that’s it, there it is your 85 euros streamer/dsp/multichannel dac up and running (hopefully). I hope it helps folks out there and does not generate even more confusion to the poor newbies that only want to listen to their favourite music.
Next step, a decent 6 channel amp or board on the cheap! hahaha
Enjoy!
I have been reading and asking here and there about how to set up a multichannel system with DSP on the ultra cheap. And even though many of you helped me a lot to understand the implications and requirements and answer all my stupid questions (special thanks for @mdsimon2 in between others), I could not find any detailed instructions for complete dummies on how to achieve what I wanted without having to buy an expensive and in some cases difficult to get multichannel dac.
The final purpose in my case is to build a pair LXmini leaving the doors open for a pair of subs and without having to invest too much in the electronics. That is, 6 channels with crossovers… $$$
Reading mdsimon2 excellent instructions for multichannel dsp with camilladsp was very inspiring. I wanted to do exactly the same but in moodeaudio (why? Because I already use moode and it already has camilladsp implemented, so, why not) and on the ultra cheap.
The parts were all there:
- Raspberry pi 4b running moodeaudio with camilladsp
- A cheap usb multichannel soundcard proben to work with camilladsp that you can easily find ultra cheap used (30 euros in my case): Asus Xonar U7 (not the mkii)
Total investment: 85 euros
As I need the pi 4 for other purposes, next week I will check if it works in the new zero 2w, that I already have doing room correction with moode/Camilla. This would bring the total investment to less than 50 euros.
Will not sound like an Okto dac? Maybe, I don’t think I will ever have the chance to find out…
So there we go with the instructions. Again, these are instructions from newbie to newbie, the only objective is to make it work. Feel free to point out things that I have done wrong or in a stupidly unnecessary way, I am sure there are many.
Instructions:
These instructions assume you already have a pi with moodeaudio running. There are many good instructions on how to get there so i won't cover that. Any pi would do except the zero. The pi zero can certainly run moode, but not camilladdp, and there is no way to change this. The new zero 2w on the other hand runs moode and camilla just fine.
In order to create a new configuration from zero, the best is to make a copy of the "flat" configuration that comes preloaded in moode and modify it. To do this, go to "m" > configure > camilladsp.
Scroll down to "Pipeline configuration" and in "pipeline" select "flat" from the dropdown menu.
Once “flat” is selected, just below, click in "copy" and this creates a copy of the “flat” configuration to experiment with. Moode asks to give the new configuration a name. I used U7-8ch.
The configuration U7-8ch is created. Then, we need to modify this configuration to our needs:
We select the new configuration in the same page page: general > configuration > dropdown menu:
Once selected, we need to enter the "pipeline configurator" to modify it:
Scroll down this same page and in pipeline editor, change status to "on" and Expert mode to "on" and then press in "open" pipeline editor to access the editor.
This gives you access to the standard camillagui. There are tabs for "devices" where you select from where the signal is taken and where the modified signal goes, "filters" where you can create different filters (you can create any number of filters you want to use, does not need to be one filter per channel, can be channels with no filter and channels with multiple filters). In "mixers" you assign what income channel goes to which outgoing channel (can be more than one). In "pipeline" you assign any filter you want to any channel you want. Finally, in "files" you can load a different configuration from the ones you have, save changes, etc.
At any stage in any of the tabs, to apply the changes you make to the current configuration, you can press "apply to DSP" at the left side of the screen, just below the name of the configuration you are working on:
(In the picture above, we are working on the configuration U7-8ch but the configuration is not selected in moode at this moment, that’s why you dont see the VU meters with the sound and the state is "offline")
To create a working configuration for the U7:
Devices tab, bottom of the page:
Here we select the input and output devices and the number of channels in between other things.
I spent hours trying to use “loopback” as source for the sound as seen in many tutorials. Moode has the possibility to create a loopback just pressing one button, so it was very convenient. However, I must have done something wrong because I could not make it work.
In any case, I found that using the configuration for the capture device below, it works perfectly and camilladsp uses whatever you are streaming to moode as the input signal. Note that all the music I listen to is red book 16 bit 41 kHz, so the sample format selected (S16LE) should suffice. I have read somewhere that one can select a higher sample format than the actual music playing, but as this is not relevant for me, I left it like that.
The playback device is the U7. The name of this device in the system is hw:2,0. In this case I use plughw:2,0. I have read that plughw is safer than hw because it allows sample conversion if needed (?). Channels must be set to 8, that the U7 supports. Does not work if you put more or less than 8, must be 8. S16LE is again the sample rate that the card supports. I think the U7 supports higher rates as well, but i don’t need this for the time being.
*edit: see the suggestion of @mdsimon2 in post #2 to use hw:2,0 instead of plughw:2,0 for playback device. He knows much better than me and you (if you are following these instructions) what he is talking about, so my recommendation would be to do as he says. If it doesn't work, you can always switch back to plughw:2,0
Once done, save the changes pressing “apply to DSP”. At this point you will get some error messages because the rest of the tabs are not adapted yet to the 8 channels. Don’t worry, will solve that soon.
FILTERS tab:
Here you create the filters, simply press the green "+" and select the type the filter you want, the frequency, the Q, etc. Create as many as you want and give each a name or not create any, as you need. I won’t get into this section for two reasons: you might need different filters than mine, and most importantly, I have no idea about creating filters.
In the example below I have created two filters just to play with. Pressing the green cross creates a new filter.
MIXERS tab.
Here you need to assign what income channel goes to each of the outgoing 8 channels. You can route more than one income channel to the same outgoing channel, but you must assign something to each of the 8 outgoing channels, otherwise you will get a error message. (note for the ultradummies like me: channels are numbered starting with 0! So for instance the two incomming channels are 0 and 1, don’t waste your time wanting to find channels 1 and 2). Here you can also select the gain for each individual channel. Example (you cannot see the complete page in the screenshot, but I have assigned all the outgoing channels 0 to 7):
PIPELINE tab:
Here you assign filters to channels. It is not mandatory to assign one filter to each channel. You can assign none or more than one. See below example.
At the bottom of the screen, there is a button with a wave that shows you the signal flow:
And basically that's it, when you are done you save the changes to the configuration pressing "apply to dsp" as discussed, exit the pipeline editor, select the configuration in camilladsp configuration, and when you play the music, it goes through the pipeline you have just designed.
When at work, if you go to pipeline configuration again, you will see tha VU meters for all the income and outcome filters at work:
The channel assignment for the U7 is the following:
channel 0 : headphone L - RCA L
channel 1 : headphone R - RCA R
channel 2 : Ctr L
channel 3 : Ctr R
channel 4 : Rear L
channel 5 : Rear R
channel 6 : Side L
channel 7 : Sode R
And that’s it, there it is your 85 euros streamer/dsp/multichannel dac up and running (hopefully). I hope it helps folks out there and does not generate even more confusion to the poor newbies that only want to listen to their favourite music.
Next step, a decent 6 channel amp or board on the cheap! hahaha
Enjoy!
Last edited: