Go Back   Home > Forums > >
Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

PC Based Computer music servers, crossovers, and equalization

Raspberry Pi with Piano2.1 DAC DSP and Volumio2
Raspberry Pi with Piano2.1 DAC DSP and Volumio2
Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 18th July 2017, 09:56 PM   #1
DonVK is online now DonVK  Canada
diyAudio Member
 
DonVK's Avatar
 
Join Date: Jan 2017
Location: Ottawa
Default Raspberry Pi with Piano2.1 DAC DSP and Volumio2

Question : How much DSP related processing can an RPI3B do with an appropriate DAC? I would like it to be the music player as well as an active XO with EQ or DRC ?

If the above is possible, you could make a wireless headless media player, that can provide active XO + EQ for custom speakers and perform DRC for the room. It might even be small and cheap enough to embed in the speaker(s).

There is an interesting DAC from TI (PCM5142) that has a mini (nano) DSP built in. The Allo Piano2.1 HAT has 2 of these stereo DACs (4 outputs) and was intended to be used as a 2.1 system (stereo + subwoofer). However, the DSPs can be re-purposed if there is enough processing available.

There are many variants of Audio players available for Raspberry PI. Audio is a fairly easy task for an RPI3B (1.2Ghz quad core) so there should be plenty of cycles left for other tasks. There are a few projects aiming to provide convolution engines (BruteFir) and equalizers for the pi.
Attached Images
File Type: jpg DSCN2019 reduced.jpg (512.3 KB, 891 views)
  Reply With Quote
Old 18th July 2017, 10:13 PM   #2
DonVK is online now DonVK  Canada
diyAudio Member
 
DonVK's Avatar
 
Join Date: Jan 2017
Location: Ottawa
Default Baseline

The RPI3B was loaded with Volumio2 (V2.2) , a couple of heatsinks were added, the Allo Piano2.1 DAC was installed and it's all powered by a standard 5VDC supply. The case is from Buyapi and has knockouts for the RCA jacks.

The Piano2.1 needs a couple a switches set for RPI compatibility. Easy enough.

Volumio has drivers for the Piano and the web intf has menus to select the Piano DAC and its various modes. Volumio also has many playback options and sampling features. I like it.

Out of the box, I tried configurations as both as a 2.0 Stereo and a 2.1 Stereo plus Subwoofer to see what it sounded like. Its quiet and it sounds good to me.

Everything seems to work.

Last edited by DonVK; 18th July 2017 at 10:15 PM. Reason: typo
  Reply With Quote
Old 18th July 2017, 11:08 PM   #3
CharlieLaub is offline CharlieLaub  United States
diyAudio Member
 
Join Date: Mar 2007
Location: California
Raspberry Pi with Piano2.1 DAC DSP and Volumio2
I you want to do DSP EQ/crossover work check out ecasound and LADSPA. I use these extensively on the Pi platform for active crossovers using USB soundcards. See my signature for more info.
__________________
Visit my Audio Web Page <<--CLICK TO LEARN MORE-->> Get my LADSPA plugins
  Reply With Quote
Old 19th July 2017, 02:38 AM   #4
jplesset is offline jplesset  United States
diyAudio Member
 
Join Date: Jan 2013
Location: Oregon City, Oregon
I use an OrangePi (similar to RasberryPi) for crossover and dsp eq. Runs at about 20% load, and sounds fine. I feed a 7.1 USB sound DAC, and use 6 of the 8 outputs.
  Reply With Quote
Old 19th July 2017, 03:02 AM   #5
DonVK is online now DonVK  Canada
diyAudio Member
 
DonVK's Avatar
 
Join Date: Jan 2017
Location: Ottawa
Quote:
Originally Posted by CharlieLaub View Post
I you want to do DSP EQ/crossover work check out ecasound and LADSPA. I use these extensively on the Pi platform for active crossovers using USB soundcards. See my signature for more info.
Thanks for the link, there's a lot of interesting stuff there.
  Reply With Quote
Old 19th July 2017, 03:20 AM   #6
DonVK is online now DonVK  Canada
diyAudio Member
 
DonVK's Avatar
 
Join Date: Jan 2017
Location: Ottawa
Quote:
Originally Posted by jplesset View Post
I use an OrangePi (similar to RasberryPi) for crossover and dsp eq. Runs at about 20% load, and sounds fine. I feed a 7.1 USB sound DAC, and use 6 of the 8 outputs.
That's good to know, I'd be happy if I ended up in the 20% load range. The Orange looks a bit faster than Raspberry. I'm hoping the DAC hat will be sufficient.
  Reply With Quote
Old 19th July 2017, 03:31 AM   #7
DonVK is online now DonVK  Canada
diyAudio Member
 
DonVK's Avatar
 
Join Date: Jan 2017
Location: Ottawa
Default Clock domains

The issue of playback clocks always seem to come up with the RPI DAC hats so I'll state my opinion on it.

The 19.2MHz clock (oscillator) cannot easily generate a 44.1KHz signal without introducing jitter because it requires fractional dividers. Its not a integer submultiple.

Volumio2 has resampling so you could resample to 48KHz (or higher multiple) which can be generated jitter free from a 19.2MHz clock.

I've tried both and the difference is very small but you can hear it.
  Reply With Quote
Old 19th July 2017, 04:04 AM   #8
DonVK is online now DonVK  Canada
diyAudio Member
 
DonVK's Avatar
 
Join Date: Jan 2017
Location: Ottawa
Default Using the DSP in the DACs - Test1

The TI PCM5142 DACs have a small DSP embedded in them. I wanted to use them for either XO or EQ to offload the RPI.

Programming the DSPs requires TI PurePath S/W. I have a free license but they are slow in handing them out . It is an excellent design suite.

Volumio is able to upload the DSP bin files to the DACs. There are a number of DSP files already. So to make my life easy, I'll create my own program and swap it with an existing file so I can use Volumio's menus to load it.

First test : I created a mono signal from the stereo, then low passed everything to the left speaker, and high passed everything to the right speaker. This was an easy way to confirm the process. The process I used was from Allo's website, only I used a Java program to "process" the TI cfg file to the required Allo bin file. This test also looks like an XO as the filters used are 8th order Butterworth.

It works properly, and only used about 25% of the DSP resources.
Attached Images
File Type: jpg schematic.jpg (314.7 KB, 842 views)
File Type: jpg low pass BW8.jpg (161.1 KB, 785 views)
File Type: jpg high pass BW8.jpg (161.8 KB, 760 views)
  Reply With Quote
Old 19th July 2017, 04:43 AM   #9
DonVK is online now DonVK  Canada
diyAudio Member
 
DonVK's Avatar
 
Join Date: Jan 2017
Location: Ottawa
Default Using the DSP in the DACs - Test2

In this test, we have stereo with speaker EQ and sub support.

Both channels are high passed at 80Hz using BW4. The speaker EQ uses 4 Biquad EQ blocks per channel. This was a quick test and ended up being too coarse an EQ. This is a similar DSP load to the previous test. It sounded OK but needs refinement.
Attached Images
File Type: jpg schematic.jpg (290.2 KB, 754 views)
File Type: jpg HighPass SubSupport.jpg (164.2 KB, 118 views)
File Type: jpg SpeakerEQ.jpg (171.3 KB, 81 views)
  Reply With Quote
Old 19th July 2017, 05:57 PM   #10
DonVK is online now DonVK  Canada
diyAudio Member
 
DonVK's Avatar
 
Join Date: Jan 2017
Location: Ottawa
Default Using the DSP in the DACs - Done

I spent a bit more time to actually finesse the filters this time.

The subwoofer channels (DAC#1) use a mixed RL low passed at 80Hz (BW4) and sent to both outputs. The difference this time is the use of extended precision in the coeffs. One of the problems with setting low cutoff frequencies in a digital IIR (biquad) is that the coefficients get close to unity (ie. 0.99999965) and preserving significance is a problem.

The stereo channel (DAC#0) is high passed at 80Hz (BW4) and has additional speaker EQ. The EQ curve was initially generated earlier by REW and then manually repeated here using 6 biquads. The speakers have an internal passive LR4 but the driver responses are not FR flat. This EQ curve helps that. The DSP load is at 42% utilization now.

Overall it sounds good. This means I can do active XO and speaker EQ in the DAC's DSP.
Attached Images
File Type: jpg OmniSub.jpg (301.6 KB, 109 views)
File Type: jpg SubLP.jpg (162.1 KB, 84 views)
File Type: jpg OmniStereoSub.jpg (297.8 KB, 85 views)
File Type: jpg OmniSteroHP.jpg (168.3 KB, 81 views)
File Type: jpg OmniEQ.jpg (178.7 KB, 68 views)

Last edited by DonVK; 19th July 2017 at 06:02 PM. Reason: one diagram was wrong
  Reply With Quote

Reply


Raspberry Pi with Piano2.1 DAC DSP and Volumio2Hide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
DAC for Raspberry Pi LaxAnErde Digital Line Level 23 8th June 2017 04:38 PM
Tutorial: Raspberry Pi as Music Server, DSP, and Crossover jrubins PC Based 75 6th January 2017 04:28 AM
DSP for the Raspberry Pi usul27 Digital Line Level 39 30th August 2016 07:29 AM
Which DAC for Raspberry Pi? Miller-8 PC Based 14 10th August 2016 03:18 AM
Raspberry Pi DAC Help! pamantea Digital Source 26 8th November 2015 07:50 PM


New To Site? Need Help?

All times are GMT. The time now is 11:03 AM.


Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 14.29%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Copyright ©1999-2018 diyAudio
Wiki