2-in, 8-out DSP platform using the Raspberry Pi + HATs

trouble with building kernel

Hi all,

Let's "pretend" I have no idea what I'm doing.

I'm running into some trouble at the third line of code (git clone --depth=1 GitHub..........), which is returning "fatal: Too many arguments."

Can someone please help a n00b? Please be gentle.

Thank you very much,
Jonathan
 
It's very simple. The git --clone command takes an url as an argument. But diyaudio forum software replaces the url with a html anchor (link), showing title of the page. You need to use the underlying url (local menu -> copy link location).

Code:
git --clone --depth=1 [url=https://github.com/raspberrypi/linux]GitHub - raspberrypi/linux: Kernel source tree for Raspberry Pi Foundation-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://www.raspberrypi.org/forum[/url]
 
It's very simple. The git --clone command takes an url as an argument. But diyaudio forum software replaces the url with a html anchor (link), showing title of the page. You need to use the underlying url (local menu -> copy link location).

Code:
git --clone --depth=1 [url=https://github.com/raspberrypi/linux]GitHub - raspberrypi/linux: Kernel source tree for Raspberry Pi Foundation-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://www.raspberrypi.org/forum[/url]

ah! :facepalm: thanks!
 
I just quickly tried the x6000 7.1ch board with Moode 7.2.1 (it uses camillaDSP, also integrated into the UI :) ) on a raspberry 4.
Forget all the command line settings/hacks in this thread... burn moode into an sd card, boot it, expand its volume, configure it, enter menu -> click on camillaDSP and set it up. (first protect your tweeters with a cap :D ).
Never used camilla, 30 mins were enough to understand how great it is.
Doing a decent linux all-in-one active crossover/DSP and player has never been this easy (and cheap!) :yes:
No more alsa conf files edits, no ecasound scripts. All through the webUI with a few clicks.

IIRC only the LFE-center(top-left jack of the board) are swapped left-right, you can quickly map them through camilla settings.

I have just a little problem: I have to power cycle the board after the raspberry has booted otherwise it's muted. It should be software. Looking into it. I saw a lot has changed in kernel since last time I used the board.

Also if i power the pi off the x6000 GPIOs it complains about undervoltage, even on desk power supply @5.1v the boards outputs something like 4.89v to the pi. By powering the boards independently I get no more warnings.
 
It happens even when powering the raspberry from the board (it applies a delay).
I'd say months ago with older kernels it didn't happen.
But could be something customized in moode's OS or kernel.
This board was sitting on the shelf for months. With ecasound etc was mainly a rarely used test rig. Now with moode and the included camilladsp is damn fun to keep it there live as a "diy minidsp".
I quickly rigged a two way active biamped setup, some filters laters and it sounds glorious, way better than the (old) cheap passive xo they had.
Damn easy and pleasant to play with filters and eq this way. ;)
 
Thanks for the tip! I will definitely do this once I actually finish building my speakers. Out of interest, what value cap do you use for tweeter protection and why? Searching this gets you a lot of people talking about all types of different scenarios - not many of them are similar to ours.
 
Hey all -

Happy to break out a new thread for this if it makes sense but:

Is there a way to perform all of the above on the Beocreate? Beocreate 4 channel amplifier | HiFiBerry

I had a conversation with one of the hifi-berry reps this morning, who was adamant that the Pi only has stereo out, and that neither Suptronics nor Audio Injector will be long-term stable as a multichannel device. The Beocreate is structured as 2 duplex outs.

This is partially resulting from the fact that I accidentally broke (my fault) my Suptronics card, have had only so-so luck with the Octo, and hopeful but frustrated by the delay in production on the new x6000.

I work with sculpture and sound design, and it bugs me to no end to need to use a Mac mini, a Motu, a bunch of amps, and feet of cable to produce a few sine tones across a small-speaker multichannel array. It feels SO heavy to me. Something like the Beo (or the Suptronics) is perfect for my needs - especially given the Beo's built in amps (albeit the imbalance of 2x30w and 2x60w).

If anyone here has attempted a kernel hack of the Beocreate with any success, please let me know. I'd also be willing to buy one and send it out to someone who has the coding background to attempt the hack (provided it's returned to me after you figure it out, haha).

Thanks,
Jonathan
 
Last edited:
Yeah , of course. But the rep was suggesting that even using GPIO (and HDMI? we didn’t go there) it technically is only a 2-channel interface... that suptronics/audio-injector are basically hacking to pack 8 channels into 2 channel— eg, multiplexing multiple channels into 2 and then splitting them up on the DAC. That as long as the Pi’s audio interface is limited to 64 bits/sample ‘there’s no way to do multichannel audio right’ on the pi. He also suggested it was possible to multiplex on the Beo, but he “strongly discouraged” this. So here I am asking one of you to try it!
 
Last edited:
No clue... I think it's simply two duplex channels (eg biquad), with each channel supported by a 30W and 60W amp. Apart from object-oriented programming (in programs like pd and max/msp) and a very small amount of python knowledge, I'm not a developer, so I'm unfortunately unlikely to be very helpful at the github node.
 
Yeah , of course. But the rep was suggesting that even using GPIO (and HDMI? we didn’t go there) it technically is only a 2-channel interface... that suptronics/audio-injector are basically hacking to pack 8 channels into 2 channel— eg, multiplexing multiple channels into 2 and then splitting them up on the DAC. That as long as the Pi’s audio interface is limited to 64 bits/sample ‘there’s no way to do multichannel audio right’ on the pi. He also suggested it was possible to multiplex on the Beo, but he “strongly discouraged” this. So here I am asking one of you to try it!

That doesn't make any sense to me, but then again I'm no expert. A "channel" is a purely logical concept in digital - it's not like analog, where each channel has its own circuit and physical separation is important. So it really doesn't matter (as far as I can see) how you pack the data - unless of course you're having to throw away bits to pack it in. AFAIK that's not happening here.
I do understand that maybe eventually one day some kernel change will break it, but I will just keep my old kernel.

All of that said, I'd be happy for someone more knowledgable to explain why I'm wrong! I'm here to learn.
 
I guess you mean Beocreate – HiFiBerry . IMO they correctly explain why they use only 2ch I2S (I2S is listed in Beocreate – GPIOs | HiFiBerry ).

The 8 channels in Audio Injector Octo are achieved by multiplexing 4 pairs of channels into one I2S stream running at fsx4, and signalling the time of the first pair to their demultiplexing FPGA via GPIO at alsa trigger call (which is always wrapped to complete frame Writing an ALSA Driver — The Linux Kernel 4.7 documentation )

I2S clocks, GPCLK0 - Page 2 - Raspberry Pi Forums and following

The trigger: linux/audioinjector-octo-soundcard.c at 7fb9d006d3ff3baf2e205e0c85c4e4fd0a64fcd0 * raspberrypi/linux * GitHub

GPIO config: https://github.com/raspberrypi/linu...overlays/audioinjector-addons-overlay.dts#L44

I also consider this solution rather fragile because a single slip will ruin the channel ordering and there is no resync until restarting the stream (i.e. new trigger callback).

IMO the solution with HDMI 8ch is OK, I would certainly not call it a hack.

If you want to play and like linux, you can look at rock64 cards with 4x I2S, some even claim to support some chaining their I2S controllers, resulting in synchronous 8x I2S (i.e. 16ch).
 
Thanks for the tip! I will definitely do this once I actually finish building my speakers. Out of interest, what value cap do you use for tweeter protection and why? Searching this gets you a lot of people talking about all types of different scenarios - not many of them are similar to ours.

I had to search too. I ended up sizing the cap as if I was calculating a 6db high pass around the Fs of the tweeter. Many do this way, I'm not Engineer.
e.g. Z nominal value = 4 ohm then something like 68uF, a 47uF one for a 6ohm tweeter etc. I use 100V ones as I have them readily available.
About the protection cap itself... many will shudder by this: I'm using nothing exotic, just a regular (audio) Non-Polar Electrolytic Capacitor :D
but if you can hear the difference, then you can spend 20x more for an unobtanium foil one. I can't hear it in this specific application and mine is just a test system as now.
Then if you can measure, you can see how/if this cap will effect your filters, and you'll have to factor it in in that case.
 
Last edited: