Open Source DSP XOs - Page 22 - diyAudio
Go Back   Home > Forums > Source & Line > Digital Line Level

Digital Line Level DACs, Digital Crossovers, Equalizers, etc.

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 10th May 2012, 07:01 AM   #211
diyAudio Member
 
Join Date: Jan 2011
Quote:
Originally Posted by steph_tsf View Post
Right ! You may store a few soundtracks on the SDCARD, and ask the LPC4330-Xplorer to process them realtime in digital domain. This way you can demo the stereo 4-channel crossover without needing an external audio source.

Speaking about 8-channel audio demos, you can generate multichannel dynamic sound effects like smoothly "moving" the sound from one output to the other, surprising the audience, attracting the audience. You may embed this into public transportation systems, shop & bar entrances, exhibition booths, vending machines, casino machines.

Don't worry about the audio DSP capabilities of the LPC4330. Say the Cortex-M0 is entirely busy servicing the Serial GPIO. The Cortex-M4 remains thus available for general housekeeping and audio DSP. Say the audio DSP job represents 75% of the Cortex-M4 workload. Say there are 12 Cortex-M4 instructions needed for executing a BiQuad IIR. Say the CPU clock is 100 MHz. Say the audio sampling frequency is 48 kHz. You thus can execute 130 BiQuad IIRs. Say there are 8 audio channels. Each audio channel can thus get processed by 16 IIR BiQuads in series.

There is one area where the LPC4330-Xplorer board may be lagging : RAM capacity. In this particular case, plugging a SDCARD into the system, you can use it as slow RAM, operating at the audio sampling frequency. If, for example, you need to introduce delays in the audio rendering, you would read the audio soundtrack in the SDCARD, using eight different pointers. This way you get all the time shifts you want.
i would prefer a dedicated DSP with more-than-enough number cruching capability and sufficient (expandable) memory for this kind of task. after implementing DSP XO, we may look forward for some equalization too.
have anybody taken look at this? this one costs USD150.
Symphony™ SoundBite - Affordable Audio DSP Development Kit Product Summary Page

Last edited by soundnovice; 10th May 2012 at 07:04 AM.
  Reply With Quote
Old 10th May 2012, 07:18 PM   #212
diyAudio Member
 
steph_tsf's Avatar
 
Join Date: Mar 2008
Quote:
Originally Posted by soundnovice View Post
I would prefer a dedicated DSP with more-than-enough number cruching capability and sufficient (expandable) memory for this kind of task. After implementing DSP XO, we may look forward for some equalization too. Have anybody taken look at this? this one costs USD150.
Symphony™ SoundBite - Affordable Audio DSP Development Kit Product Summary Page
Indeed, and I own such one, still unopened on my shelf. The DSP56K looks like a valid choice untill you face two details. Have you tried buying a DSP56371 (like in the Freescale Symphony SoundBite kit) or a DSP56374 (like in the Elektor DSP platform by Alexander Potchinkov) ? Guess what : all single core DSP56K chips are now listed by Freescale as "not recommended for new designs". The second detail is the 24-bit resolution. My little IIR_Lab application shows that you should not program a Linkwitz Transform with such resolution. An additive/substractive Parametric Equalizer may be more robust. MiniDSP opted for the SigmaDSP ADAU1701 from Analog Devices, featuring a 28-bit signal path and a 56-bit MACC result. When you are talking about equalization, how many IIR BiQuads are you targeting ? Ten IIR BiQuads per stereo channel ? Thus, twenty IIR BiQuads ? A LPC4330 will do this, on top of the crossover job. Do you need two more IIR BiQuads per speaker driver, for better linearizing their Bode Plot before applying the crossover functions ? Say there are eight speaker drivers in total : it makes sixteen more IIR BiQuad in total. A LPC4330, running close to 200 MHz, will do this, using a 32-bit resolution.
If you intend applying 256-tap FIRs as crossover filters, as speaker driver equalizers, and as global equalizers, you need a more powerful DSP operating in the near GHz range like a T.I. Sitara AM3358.
You may try deconvolving the listening room with, say, a 33ms-long FIR containing 3,168 samples at 96 kHz, hence about 600 MACC per second in stereo. You thus need a second T.I. Sitara AM3358.
Of course without the Linux/Android bloat. You need a bare metal programming style.
BeagleBone, quite inexpensive, hosts a T.I. Sitara AM3358. Up to you to configure the McASP for outputting the required I2S lines on the BeagleBoard header connectors.
http://beagleboard.org/bone
Read this : http://e2e.ti.com/support/dsp/sitara.../t/182692.aspx

Last edited by steph_tsf; 10th May 2012 at 07:45 PM.
  Reply With Quote
Old 10th May 2012, 08:08 PM   #213
rsdio is offline rsdio  United States
diyAudio Member
 
Join Date: Feb 2008
Location: Seattle
Quote:
Originally Posted by steph_tsf View Post
... The second detail is the 24-bit resolution. My little IIR_Lab application shows that you should not program a Linkwitz Transform with such resolution. An additive/substractive Parametric Equalizer may be more robust. MiniDSP opted for the SigmaDSP ADAU1701 from Analog Devices, featuring a 28-bit signal path and a 56-bit MACC result.
I don't understand your complaint. The "24-bit" DSP56K has the same 56-bit MACC result. The 28-bit signal path might prove an advantage, but both processors have the same size 56-bit accumulator registers.
  Reply With Quote
Old 11th May 2012, 04:42 AM   #214
diyAudio Member
 
abraxalito's Avatar
 
Join Date: Sep 2007
Location: Hangzhou - Marco Polo's 'most beautiful city'. 700yrs is a long time though...
Blog Entries: 104
Send a message via MSN to abraxalito Send a message via Yahoo to abraxalito Send a message via Skype™ to abraxalito
I believe his point is 24-bits isn't enough in the signal path. 28-bits is better but why not go for 32 with the Cortex M4? See also the link in the first post of this thread - here's an abstract:

This data should dispel once and for all the myth that digital filters aren't noisy. With 'only' 24 bits of signal processing, the Direct Form filter is inferior to the analog filter at frequencies below around 300 Hz. At a 10 Hz cutoff frequency, the digital filter's noise level is worse by 34 dB than the analog filter.
__________________
I have the advantage of having found out how hard it is to get to really know something... how easy it is to make mistakes and fool yourself. - Richard Feynman
  Reply With Quote
Old 11th May 2012, 05:23 AM   #215
diyAudio Member
 
Join Date: Jan 2011
Quote:
Originally Posted by steph_tsf View Post
Indeed, and I own such one, still unopened on my shelf. The DSP56K looks like a valid choice untill you face two details. Have you tried buying a DSP56371 (like in the Freescale Symphony SoundBite kit) or a DSP56374 (like in the Elektor DSP platform by Alexander Potchinkov) ? Guess what : all single core DSP56K chips are now listed by Freescale as "not recommended for new designs". The second detail is the 24-bit resolution. My little IIR_Lab application shows that you should not program a Linkwitz Transform with such resolution. An additive/substractive Parametric Equalizer may be more robust. MiniDSP opted for the SigmaDSP ADAU1701 from Analog Devices, featuring a 28-bit signal path and a 56-bit MACC result. When you are talking about equalization, how many IIR BiQuads are you targeting ? Ten IIR BiQuads per stereo channel ? Thus, twenty IIR BiQuads ? A LPC4330 will do this, on top of the crossover job. Do you need two more IIR BiQuads per speaker driver, for better linearizing their Bode Plot before applying the crossover functions ? Say there are eight speaker drivers in total : it makes sixteen more IIR BiQuad in total. A LPC4330, running close to 200 MHz, will do this, using a 32-bit resolution.
If you intend applying 256-tap FIRs as crossover filters, as speaker driver equalizers, and as global equalizers, you need a more powerful DSP operating in the near GHz range like a T.I. Sitara AM3358.
You may try deconvolving the listening room with, say, a 33ms-long FIR containing 3,168 samples at 96 kHz, hence about 600 MACC per second in stereo. You thus need a second T.I. Sitara AM3358.
Of course without the Linux/Android bloat. You need a bare metal programming style.
BeagleBone, quite inexpensive, hosts a T.I. Sitara AM3358. Up to you to configure the McASP for outputting the required I2S lines on the BeagleBoard header connectors.
BeagleBoard.org - bone
Read this : Configuring McASP for the AM3358 using Starterware (Beaglebone) - AM335x Cortex-A8 Microprocessors Forum - Sitara? ARM® Microprocessors - E2E
i am not from DSP background. if you have confidence that LPC4330 has enough capacity to perform all the required DSP calculations then lets go ahead with this.
  Reply With Quote
Old 11th May 2012, 07:09 AM   #216
diyAudio Member
 
steph_tsf's Avatar
 
Join Date: Mar 2008
Quote:
Originally Posted by rsdio View Post
I don't understand your complaint. The "24-bit" DSP56K has the same 56-bit MACC result. The 28-bit signal path might prove an advantage, but both processors have the same size 56-bit accumulator registers.
I've asked IIR_Lab to graph the results on a Linkwitz Transform. Clearly, the 24-bit data 56-bit acc delivers more noise and distorsion than the 28-bit data 56-bit acc.
  Reply With Quote
Old 11th May 2012, 07:44 AM   #217
diyAudio Member
 
steph_tsf's Avatar
 
Join Date: Mar 2008
Same pattern for a 30 Hz Butterworth 8th-order Highpass (Fs = 96 kHz).
  Reply With Quote
Old 11th May 2012, 06:54 PM   #218
chaparK is offline chaparK  Luxembourg
diyAudio Member
 
Join Date: Apr 2010
Location: Luxembourg
Well you don't need to stick to direct form...

There's a whole lot of alternatives available and very well documented: double precision, error feedback, state-space etc.

Also this 300 Hz your quote refers to is suspicious. Is there a context that goes with the quote?

Finally, 24 bits is 144 dB of dynamic range: that covers everything from ants walking to the heart of the space shuttle's engines. If you can't do proper audio processing on a 24-bit platform then maybe you should indeed stick to analogue filters and let dsp to dsp guys. This doesn't mean that Cortex is not suitable - just don't say that 24 bits are not enough because that's false information.

Quote:
Originally Posted by abraxalito View Post
I believe his point is 24-bits isn't enough in the signal path. 28-bits is better but why not go for 32 with the Cortex M4? See also the link in the first post of this thread - here's an abstract:

This data should dispel once and for all the myth that digital filters aren't noisy. With 'only' 24 bits of signal processing, the Direct Form filter is inferior to the analog filter at frequencies below around 300 Hz. At a 10 Hz cutoff frequency, the digital filter's noise level is worse by 34 dB than the analog filter.
  Reply With Quote
Old 11th May 2012, 07:11 PM   #219
rsdio is offline rsdio  United States
diyAudio Member
 
Join Date: Feb 2008
Location: Seattle
Quote:
Originally Posted by chaparK View Post
Well you don't need to stick to direct form...

There's a whole lot of alternatives available and very well documented: double precision, error feedback, state-space etc.

Finally, 24 bits is 144 dB of dynamic range: that covers everything from ants walking to the heart of the space shuttle's engines. If you can't do proper audio processing on a 24-bit platform then maybe you should indeed stick to analogue filters and let dsp to dsp guys. This doesn't mean that Cortex is not suitable - just don't say that 24 bits are not enough because that's false information.
I agree. There are textbooks which show multiple different implementations of the same digital filter, and graph the different frequency precisions available in each. If 300 Hz or 10 Hz is working poorly with your implementation, then you need to change the code. There might not be a single piece of code that can sweep a single cutoff parameter from 10 Hz to 40 kHz, but that's generally not needed in a crossover. You have plenty of opportunity to optimize your filter for low frequency or high frequency or whatever is needed.
  Reply With Quote
Old 11th May 2012, 08:56 PM   #220
diyAudio Member
 
steph_tsf's Avatar
 
Join Date: Mar 2008
Interesting discussion. Let's focus on a Butterworth highpass 8th-order 30 Hz -3dB. Sampling frequency 96 kHz. What method would you advise, on a DSP56K, for getting rid of the noise & distorsion produced by the native (naļve ?) series IIR BiQuad implementation ? Keep in mind we need the exact same Bode plot. What would be most exact and efficient way ?
- Boosting the precision using more elaborate arithmetic routines for the multiply-accumulation (say, reaching a 32-bit data path inside the BiQuad, operating with 64-bit accumulator) ? What would be the computing time penalty ?
- Decimating the signal, applying a series IIR BiQuad in a lower sampling frequency context, upsampling the signal for getting back a 96 kHz sampling frequency ? What decimation factor to use ? Can we guarantee a Bode plot that's exact ?
- Any other method welcome
  Reply With Quote

Reply


Hide 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
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Volume / Source selector - open source project ? AuroraB Analog Line Level 22 22nd September 2012 02:21 PM
Violet DSP Evolution - an Open Baffle Project cuibono Multi-Way 211 18th May 2010 02:26 AM
Open call for suggestions on Open Source DIY Audio Design gfergy Everything Else 1 15th April 2007 07:33 AM
Open Source, Open Architecture! zenmasterbrian Digital Source 185 23rd February 2007 10:35 PM


New To Site? Need Help?

All times are GMT. The time now is 04:44 PM.


vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Copyright ©1999-2014 diyAudio

Content Relevant URLs by vBSEO 3.3.2