DSP Xover project

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Welcome into the team to dshambala! ;)

Here's the current composition of the dream team :Olympic:

- Col: testing
- Anomalous: testing+doco
- Carl: managing Interface application C/C++ with wxWidgets and Windows build.
- chapark: DSP code + processing DLLs
- dshambala: Linux build(s)
 
chapark, who holds the intellectual property rights over the hardware, schematics, layouts etc..?

col.

This thread is about a technical project. It's the opportunity for those willing to take part to have a device engineered according to their beliefs, desires or needs, away from the pressure of marketing. It's also the opportunity to learn hopefully some new technical stuff. Some will learn about signal processing, some about GUI programming, some about DSP programming and/or hardware. We are passionate about audio and sound, and about nicely engineered devices.

I understand that some of you would like to know what's going to happen with their efforts. So here are some answers to your questions.

- The board rights belong to me in full. I designed it.

- We're making an audio project, we're not launching a business here.

- I wrote in a previous post that i was willing to discuss about what form would take the release. It can be open-source, or it can be closed. I don't want to decide about it alone, because i'd prefer that we reach a common consensus among everyone involved, so that each one in the team is convinced about the appropriateness of the nature of the project. Agreeing about such a fundamental thing frees from thinking of collateral worries about what the work is going to become.

- Finally, if we're going for an open-source project, i might be ok for publishing the files, depending on what the project is becoming. One sure thing is that i'm not going to post on the net the gerber files and the schematics before any single line of code is written. On the other hand the guys involved in system programming will have access to all the information they require, including schematics, firmware source and principles. That's the deal.

Hope it makes sense! ;)
 
Very interesting project...I may be interested in helping with the project.
However, I'm strictly a C programmer (Linux/UNIX). I'm quite proficient in GTK, I would be willing to write a UI in GTK for Linux if there is interest.
Probably could help in other areas as well depending on how much spare time I can come up with.
I would require that any code I contribute be released under the GPL license (Open Source) however.
Thoughts?

~Mike
 
Very interesting project...I may be interested in helping with the project.
However, I'm strictly a C programmer (Linux/UNIX). I'm quite proficient in GTK, I would be willing to write a UI in GTK for Linux if there is interest.
Probably could help in other areas as well depending on how much spare time I can come up with.
I would require that any code I contribute be released under the GPL license (Open Source) however.
Thoughts?

~Mike

Hi Mike, thanks for saying your interest and for volunteering! ;)

I think it's been already decided that we would go wxWidgets main build Windows, rather than Linux+GTk.
However you may feel like participating in making the Linux build, and teaming with dshambala, if he's all right with that?

We're still looking for someone to take the Mac build responsibility! :D

Regards,

chaparK
 
I have a few spare DSP boards left from a past project, they would nicely fit now a new Xover project. I'm thinking of writing a computer application + DSP firmware. Is there anyone interested in such a board ? What kind of processing should i make available.
Hello chaparK, I am interested.

1. SPDIF-in for hooking the board on a PC SPDIF-out. Is this feasible ?

2. Firmware able to execute a 3-way equalizer (this defines the routing as implicit) with a) executing 2 chains of global IIRs at the input, b) executing 2 global delays at the input with an accuracy of 1 sample, c) executing 6 chains of 2nd order IIR filters - this is the kernel of the 3-way crossover viewed as IIRs to be chained - each chain to be one to eight 2nd order IIRs in series, d) execute 6 delays at the output with an accuracy of 1 sample, e) executing 6 optional phase inversions at the outputs.

3. Firmware interface in the form of an ASCII file prepared by a PC, sent over USB using Terminal, and put in the Flash memory of the board. The ASCII file contains the global IIR coefficients at the input, the 2 global delays at the input, the 3-way crossover kernel IIR coefficients (six IIR chains), the 6 delays at the outputs.

4. Upon booting, the board reads the tables in the Flash, installs the IIR coefficients, initializes the pointers for chaining, installs the delays, and starts executing.

Options :

5. If you could write a tiny PC application basing on Windows Terminal, able to read the ASCII file, send it to the board, and get it stored in the Flash memory of the board, that would be fantastic. The board would thus become immediately useable if you provide a demo ASCII table.

6. In a non-standalone useage, could you use the USB of the PC for controlling the listening volume ?

7. In a standalone useage, could you add an infrared remote control RC5 decoder on the board for controlling the listening volume ?

8. If you could add a global stereo FIR equalizer at the 2 inputs (a 32-tap FIR, or a 64-tap FIR, or a 128-tap FIR), that would be fantastic.

Remarks :

9. No need for de-zipping the IIR coefficients as they are static. The audio doesn't need to be reproduced during the update of the IIR coefficients. This is not a mixing console, this is not a recording console, and this is not an equalizer. This approach enables to drastically decrease the complexity of the DSP firmware and the complexity of the application defining the IIR coefficients. This is to be understood since the beginning. No misunderstanding.

***

This is a very interesting board. This is going to be an improved miniDSP, reserved for DSP-litterate people wanting the design their own IIRs, because they know they need to compensate the transfer function of the speaker drivers, using dedicated IIRs, before attempting generating Butterworth, Linkwitz-Riley or Bessel filtering schemes. They will love this board and the associated ASCII table-based IIRs because DSP litterate people know it is the only way to experiment with full complementary filtering structures providing a linear phase and a linear amplitude.

Such a board receiving a SPDIF stereo signal from a PC or from a CD player, converting it in analog at 0dB on the 6 outputs (3-way crossover), followed by a high quality volume control using a RC5 infrared remote control, is THE digital crossover ALL DSP-litterate DIYers have waited for so long.

May I suggest that you prepare a second batch of boards, only delivering the I2S + clocks lines ? This way, you may decouple the DSP engine from the interfaces. Later on, you'll be able to offer audiophile grade DACS (3 stereo DACS, or 4 stereo DACS) with a high performance clocking scheme, including a jitter-reduced SPDIF-in interface.

With those kind of preoccupations, you will get recognition from the audiophile communauty. There are more and more people not understanding the specificity, simplicity and massive advantages of the 24-bit fixed-point with 56-bit accumulators. They need to see for themselves, hear and appreciate the sound delivered by a 24-bit fixed-point with 56-bit accumulators system, hooked on audiophile-grade DACs. You need to pass this checkpoint.

A few months later you will discover that the audiophile communauty nearly agrees on the DACs, SPDIF receivers, and dedicated volume control chips (CS3310 or PGA2311) that should be used. At this stage, you will be in position to produce the ultimate all-in one board containing everything they asked for, including an audiophile-grade RC5 remote control for controlling the listening volume.

This will become a massive success, especially if some other people develop PC software enabling neophits to enter the driver response curve when fitted into an enclosure (listening room measurement FRD file), and then, getting in return the IIR tables to be uploaded in the Flash of the DSP board.

If you can keep the price under 249 USD (slightly lower price than the Behringer DCX2496), for the board, the power supplies, gold-plated cinch connectors, and a few ASCII tables implementing various 2-way and 3-way digital crossovers, that's decent. You will see people mounting the system in second-hand 1U racks they get for free.

Some other people will introduce half width racks, enabling to mount two such crossovers at the place of one Behringer DCX2496. Make sure your board (and power supply) can fit in a 1/2 width 1U rack. I have the feeling that the 1/2 width 1U rack is going to be the new standard in DIY audio, including DIY digital audio, in the long term evolution.

Some other people will ask for a 2 x 16 character display on the front panel. You better not implement the application software for this. You better only release an API enabling people to hook such lcd display (in 4-bit mode), on some spare I/O lines, and get the display working. Up to your customers to build the DSP application software that takes advantage of the lcd display. The ones that are going to do this are going to pay a high price in development time. Of course, you will promote your lcd API by using the lcd display as status display : "idle" - "tables loaded" - "DSP running" - "system error" - "vol. -43 dB" in the sample applications you will deliver along with the board.

Steph
 
Last edited:
Audiophiles will ask for :

- decoupling the DSP engine from the interfaces
- a DSP Engine board powered by the USB +5V supply
- an Audiophile Interface board powered by the USB +5V supply
- a galvanic isloation between the source and the supply, and the analog outputs

- The Audiophile interface board shall contain a DC/DC converter running from the USB +5V, generating clean and filtered +8 -8V supplies for the 10 x OPA2134 opamps. The board shall base on a Cyrrus Logic CS42518 codec. The CS42518 contains : a S/PDIF input with advanced PLL clock recovery, 2 x 24-bit differential ADCs and 8 x 24-bit differential DACs with Digital Output Volume control. 192 kHz compatible. 114 ADC dynamic range. 110 dB DAC dynamic range. -100 dB THD + N. The clock source can be the recovered S/PDIF clock, or can be a Quartz clock.

- The DSP Engine board shall contain a RC5 infrared control decoder, enabling the user to control the listening volumes

- The audio ground shall be galvanically isolated from the CD player ground or from the PC ground. The S/PDIF input will use a transformer for providing the galvanic isolation. The +5V USB power supply will feed a galvanically isolated DC/DC converter.

Audiophiles will thus :

- connect on S/PDIF coming from a CD player or from a PC
- avoid a A to D conversion thanks to the S/PDIF input
- avoid ground loops and other signal degrading effects thanks to the galvanic isolation
- get a flexible clocking scheme (recovered S/PDIF clock or Quartz clock)
- get a RC5 listening volume control
- the stereo analog input can be used for adjusting the system (calibration, auto equalization, max listening level limiter, ...)
- the 8 analog outputs enable a stereo 4-way crossover and many other applications like spatial audio, depending on the DSP code
- the 110 dB DAC dynamic range and -100 dB THD + N are as good as if using oldschool separate ADCs and DACs
- the internal +8V -8V analog power supply is there for enabling any audiophile-grade opamps to be used without power or voltage shortage

The possibility to use the USB interface as power source avoids messing up with external unknown power supplies and external unknown DC/DC converters that may cause signal pollution. Some care is indeed needed for designing the internal DSP power supply and the internal +8V -8V power supply, and the big benefit is that once it is done correctly, the results can be reproduced and guaranteed.

The CS42518 datasheet is here : http://www.cirrus.com/en/products/pro/detail/P1048.html

Regards
 
Last edited:
I have started looking at pre-amp/crossover with new eyes, and have a few thoughts and questions.

First my thoughts:
- need to accept both digital and analog input
- input selector
- volume control in the digital domain
- I don't want unnecessary ADC/DAC conversions.
- digital output, or at least the possibility to bypass the analog output sections

Since I now have both analog and digital sources a there would be benefits from combining pre-amp and digital crossover, hence fewer components and conversions in the signal way.

So to the questions:
- Do this board deliver digital output to feed an external DAC?
- Are there an input selector?
- If there is an input selector, can it select between digital and analog sources?
 
Are you considering it to be an iphone app that people can download it from Apple's App store?

No, because i don't have an iphone :D

Actually it's not out of question, but we have already 2/3 builds in mind so that would be still an other one.

So far there's no volunteer for taking care of the Mac build, so nobody for iphone neither.

Also there are licensing costs involved in the development of iphone applications.
 
So to the questions:
- Do this board deliver digital output to feed an external DAC?
- Are there an input selector?
- If there is an input selector, can it select between digital and analog sources?

Hi yggdrasil,

The board has an expansion port with plenty of I2S lines, SPI and GPIO. So in short, yes you can hook up a DAC to it.
This is not specific to our project: most of the DIY boards will have such capability.

As there are 2 input ports (one with an ADC hard-wired, an other one in the expansion port), we can easily imagine to make a switch between these two inputs. You can also connect to the expansion port a device that has its own input selection circuitry (such as the CS codec chip mentioned in the long post above by steph_tsf. This chip has 1 ADC and several SPDIF switchable inputs).

Regards,

chaparK
 
chaparK,

Has there been any discussion about where the code will reside?....Might I suggest starting up a project at SourceForge?....They offer version control, bug tracking, etc, etc (see link below....)

SourceForge.net: Features

Hi lakeside,

So far there's no agreement about where the project should reside.

Given that only Carl_Huff and myself are going to write code, i don't see the point of using version control and bug tracking tools. It's however definitely worth considering if the coding team is growing in the future.

I'd like to keep waiting a little while longer, maybe 10 more days, until we get in the team someone to take the Mac build (or get to know that noone is willing to take it). Then i'll start organizing the available doco for Carl_Huff and suggest we slowly start coding.
So in the beginning, the code would reside on Carl's and on my hard disks, until we have something worth porting/building on an other target than Windows ;)

Regards,

chaparK
 
1. SPDIF-in for hooking the board on a PC SPDIF-out. Is this feasible ?

Yes, provided you bring and configure your own hardware (I2S). No SPDIF on board.

2. Firmware able to execute a 3-way equalizer (this defines the routing as implicit) with a) executing 2 chains of global IIRs at the input, b) executing 2 global delays at the input with an accuracy of 1 sample, c) executing 6 chains of 2nd order IIR filters - this is the kernel of the 3-way crossover viewed as IIRs to be chained - each chain to be one to eight 2nd order IIRs in series, d) execute 6 delays at the output with an accuracy of 1 sample, e) executing 6 optional phase inversions at the outputs.

No problem

3. Firmware interface in the form of an ASCII file prepared by a PC, sent over USB using Terminal, and put in the Flash memory of the board. The ASCII file contains the global IIR coefficients at the input, the 2 global delays at the input, the 3-way crossover kernel IIR coefficients (six IIR chains), the 6 delays at the outputs.

No :nownow: i want a firmware residing permanently on the flash unless upgraded with a new version through usb. And i want real-time parameter change: what you see is what you hear.

4. Upon booting, the board reads the tables in the Flash, installs the IIR coefficients, initializes the pointers for chaining, installs the delays, and starts executing.

Options :

5. If you could write a tiny PC application basing on Windows Terminal, able to read the ASCII file, send it to the board, and get it stored in the Flash memory of the board, that would be fantastic. The board would thus become immediately useable if you provide a demo ASCII table.

See above.

6. In a non-standalone useage, could you use the USB of the PC for controlling the listening volume ?

Definitely, as well as ALL the remaining parameters.

7. In a standalone useage, could you add an infrared remote control RC5 decoder on the board for controlling the listening volume ?

Yes we should think of implementing an interface for a IR receiver.

8. If you could add a global stereo FIR equalizer at the 2 inputs (a 32-tap FIR, or a 64-tap FIR, or a 128-tap FIR), that would be fantastic.

That's quite feasable, but we'll need to define what we want to make with these taps.

9. No need for de-zipping the IIR coefficients as they are static. The audio doesn't need to be reproduced during the update of the IIR coefficients. This is not a mixing console, this is not a recording console, and this is not an equalizer. This approach enables to drastically decrease the complexity of the DSP firmware and the complexity of the application defining the IIR coefficients. This is to be understood since the beginning. No misunderstanding.

Synchronizing the board with the UI is not a big deal :)

Steph, i'm not going to answer your following post. Looks like you have a precise idea about the hardware that you would like to see, and your post looks like a dream loud. I can only encourage you to put your ideas in practice and create your board.
In the current situation, the hardware is already there, designed and manufactured.

Regards,

chaparK
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.