Raspberry Pi with Piano2.1 DAC DSP and Volumio2

Account Closed
Joined 2001
Hi folks.
I'm interested in doing an active digital crossover[1] on the DSP itself, but I saw the talk about buffer length and got worried, because one thing I need to do is to delay two of the four channels by 6ms.

1: I am making some of these and would like to skip adding the stand-alone DSP unit: LXmini Challenge

Actually, you're adding 0.06mS not 6 mS. 6mS is way too much for the offset correction in the LXmini project.

Dave.
 
I'm interested in doing an active digital crossover[1] on the DSP itself, but I saw the talk about buffer length and got worried, because one thing I need to do is to delay two of the four channels by 6ms.

I think @Davey is correct, it should be 60us, so its approx 3 samples @ 48Khz. No problem.

I'm handy with computers, but not very good with analog sound science or digital logic, so I'm having trouble decoding the TI datasheet for the relevant DAC chip on the Piano. Do those of you who have played around with PurePath and the two PCM5142's know if what I want to do is likely to work?

The DAC DSP can easily do XOs like LR4s as well as EQ. Volumio can set the DACs to "dual stereo" mode to give you 2 R and 2 L. So with the DAC DSP you can generate the R-Highpass, R-Lowpass, L-highpass, L-lowpass outputs. To load my own DSP config I just "replace" one of the existing Volumio config files.

I understand that a rpi or equivalent has plenty of horsepower to do this kind of thing in software, but I'm not sure how to get access to the BOTH dacs on the Piano that way. Perhaps someone who's got a Piano 2.1 can let me know if all 4 channels are available to ALSA?

I have not tried to get 4 independent channels via ALSA, but I have read comments indicating its not possible, they are sourced by R&L only. One idea is to keep the DAC DSP functions to the minimum, like just the XO and maybe delays. Then do the EQ for the speaker / room in the RPI. Only because the EQ probably has more iterations and may be more complex especially if you use a FIR convolution engine (mag + phase corrections).

Before I send in the money and get boards shipped from India, I was hoping to find out if what I want to do is possible; I know there's no guarantee :)

The most difficult item to get is the PurePath GDE license from TI. If your plans hinge on this, you may want to start (and wait?) for a TI license (free) and try your ideas.
 
This is all SUPER helpful. I feel comfortable proceeding, thanks to you both.

I've asked for a license to PurePath already, hopefully it won't take long.

@Davey, by any chance have you made LXminis with something like this (noting your familiarity with the delay magnitude).
 
Unfortunately there is no Volumio plugin to support a bi amp system. I use TI Purepath GDE to create the DSP configurations (*.bin) and copy them to the Volumio DAC config directory.

I replace the existing Volumio DSP bin files with my own bin files. Then I can select them from the Volumio Playback options. You have to be careful when Volumio updates because it could overwrite your modified bin files. So you need to reapply (at least check) your own bin files immediately after a Volumio update or it could be hazardous to the tweeters in a biamp system.

The standard bin files are located on the RPI at "/lib/firmware/allo/piano/2.2".

Do you have a TI PurePath GDE license ?
 
Hi everyone, interesting stuff.
First post here, just started looking at doing room correction at home and this would ofcourse be a great moment to upgrade my existing rpi dac with a dsp enabled one.
The allo dac looks interesting and I was wondering if this would be any good as well:
HiFiBerry DAC+ DSP | HiFiBerry

Seems there is an ADAU145 on board, if you click on datasheet there is a clear picture of the board. Sigmastudio seems like a gentle way to get into DSP programming as well :)
 
Active 2way DSP LR4 XO

A few members have expressed interest in using the Piano 4 outputs to create an active 2way. I've always wanted to try it as well.

I will offer the usual cautions. You should start by using a couple of woofers or full range speakers until you're sure its working. Tweeters can be damaged very easily. So the usual disclaimers, the firmware is "as is", with no warranty or guarantee of any sort, and the end user is solely responsible for its use and outcomes.

I used the stock Volumio (v2.457) and replaced its firmware directory (/lib/firmware/allo/piano/2.2) with one that provides left speaker on DAC#0 and right speaker on DAC#1 as shown in the pic below. The zip file with the new firmware is below, all sample freq are supported, but most of my testing was using 48KHz sampling. The rest of Volumio is functionally unaffected. Volumio hardcodes the filenames so I just reused them and Volumio will load them via its 2.2 mode configurations. This also carries the risk that Volumio may overwrite the 2.2 firmware so you need to check this after updates. This is the translation table to select the XO point you want using the existing Volumio 2.2 menus.

Code:
		- mode2.2 sel -> XO freq
		- 60 -> 1000 Hz
		- 70 -> 1100 Hz
		- 80 -> 1200 Hz
		- 90 -> 1300 Hz
		- 100 -> 1400 Hz
		- 110 -> 1500 Hz
		- 120 -> 1600 Hz
		- 130 -> 1700 Hz
		- 140 -> 1800 Hz
		- 150 -> 2000 Hz
		- 160 -> 2200 Hz
		- 170 -> 2400 Hz
		- 180 -> 2600 Hz
		- 190 -> 2800 Hz
		- 200 -> 3000 Hz

I have Volumio setup as follows.

Code:
    Volumio Playback settings
	- Audio output 
		- Output Device = Allo Piano 2.1
		- IS2DAC = on
		- DAC model = Allo Piano 2.1
	- Allo Piano 2.1 DSP Options
		- Dual Mode = none
		- Lowpass = your reused filename freqs
		- Subwoofer Mode = 2.2
	- Volume Options
		- Mixer Type = hardware
	- Audio Resampling	(I do this as 48K multiples are native to RPI)
		- Audio resampling = on
		- target bit depth = 32
		- target sample rate = 48Khz
		- resample algorithm quality = high

TI PurePath GDE was used to create the the filters and the configuration files for the DSPs. I provided a screenshot of the "schematic" and resources used for DAC#0 (left speaker). My preference would be to use the DAC DSP for static things like XO and the RPI be used for endless tinkering of EQ and room corrections. Ideally this would all be a Volumio plugin, but that would take more work, and require me to learn JS.

I have listened to different XO points and different drivers that I have and it works well and sounds very good. Most of what I've said is repeated in the "readme" file and its also included in the zip file. Hopefully that's enough to try it out.
 

Attachments

  • DSCN3226 crop_text.jpg
    DSCN3226 crop_text.jpg
    203 KB · Views: 533
  • PurePathConfig.jpg
    PurePathConfig.jpg
    323.6 KB · Views: 505
  • readme.txt
    4 KB · Views: 151
  • 2.2-2.zip
    184.2 KB · Views: 133
Thanks.

In many ways I would prefer my setup to the miniDSP. IMO I have more processing power, flexibility and the integration of the player with networking. But, as you said, it needs a GUI to make it accessible for most. It's a bit of a rats nest for development. :)
 
one of the concerns sometimes raised about miniDSP is the quality of the ADC-DAC, especially from folk who have invested in existing DAC hardware that would no longer be needed. if there's to be an alternative to miniDSP a clear goal might be to assuage all fears about flexibility to have a choice when it comes to the DAC
 
Valid concern, as every conversion looses something. I would think that would be less of an issue these days with 24b-32b converters. That being said, maybe only the "marketing" has improved.

I wonder how many problems are from issues with gain settings in the chain. All these devices and firmware have some type of attenuator/gain built in. So it's possible to feed too small a signal into the converters and loose dynamic range. I wish I could tap monitors (VU meters?) into the chain to check. Most of it is hidden.