DSP Xover project

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
I propose writing a user app using C++ and the wxWidgets library. The wxWidgets lib compiles on Windows, Linux and Apple boxes. I could provide a baseline application that runs on Windows and others could port that code to run on the Linux and Apple platforms. I probably already the required graphical classes in my developers 'kit' already.

Thoughts anyone??
 
This little project doesn't seem to raise a lot of enthousiasm :Olympic:, however i'll summarize below our findings so far with some comments about feasability.

Specs:

- up to 4-way crossovers -> No problem

- high-pass filters, low-pass filters, shelving filters, Notch filters -> that's a typical filtering library, no problem

- Arbitrary slopes for all filters -> well this needs to be discussed. Common IIR blocks for HighPass/LowPass filtering have a slope which is multiple of 6dB/oct. So the slopes achievable are 6/12/18/24 ... db/oct. A completely arbitrary slope such as 8 dB/oct would require some special filtering technique, probably based on FIR. Don't know if it's worth though.

- phase correction -> we can linearize the phase of IIR sections. This is costy in terms of CPU.

- Attenuators -> sure thing

- Time delays -> plenty

- Equalisation, with selectable preset/programmed filters -> Part of it was already mentioned above (shelving + peaking filters). There are several techniques available with their pros and cons. We can also make some more unusual filters, such as all-pole musical filters etc...

- system status (meters, inputs and muted channels). -> yup

- Control outputs to turn on/off/mute power amplifiers. -> yes. We should even get something more general allowing to control an external volume chip, maybe a remote control (RF or IR?).

- Importing of measurements (impulse response or .frd), then visualizing/optimizing filters. -> Yes

- Presets (full system) selectable by buttons -> yes

- Output limiters -> well, i can make available a simple compressor/limiter if that's required.

- Digital volume control via rotary encoder or analog pot. -> I don't really get that one. Is it about controlling the output level of the processor, or controlling an external specialized volume chip?

- USB audio streaming -> I don't think it's going to be possible. Technically the USB controller can easily cope with at least stereo 24bit/96kHz. The problem is on the PC side: integration of the processor within your usual player.
 
I am still enthusiastic. I think the spec looks good. Where does it go from here?

col.

The ideal would be to make a team and agree on the specs. Different contributions are welcome: of course programming, but also testing, documenting, graphical design if we want a good looking interface etc...

So far the team could look like this: me doing the DSP code and processing libraries, Carl doing the interface for Windows. We need at least someone to compile the interface for Mac.

As soon as there's a team, we can discuss some practical aspects:
- Would it be an open source project, or would we keep the code for ourselves?
- What platform would be supported?
- Would it be totally free?
- Would we make hardware extensions?
- ...
 
The ideal would be to make a team and agree on the specs. Different contributions are welcome: of course programming, but also testing, documenting, graphical design if we want a good looking interface etc...

So far the team could look like this: me doing the DSP code and processing libraries, Carl doing the interface for Windows. We need at least someone to compile the interface for Mac.

As soon as there's a team, we can discuss some practical aspects:
- Would it be an open source project, or would we keep the code for ourselves?
- What platform would be supported?
- Would it be totally free?
- Would we make hardware extensions?
- ...

I'm not a programmer so can't help in that regard but I am an avid linux user and would like to particiapte in testing/feedback.

I think open source would be the way to go but only if the PCB art work and schematic is also open source. After you run out of the initial prototype boards there needs to be a possibility of downloading a PCB design, getting the components and building one that will work with the software.

col.
 
I'm not a programmer so can't help in that regard but I am an avid linux user and would like to particiapte in testing/feedback.

I think open source would be the way to go but only if the PCB art work and schematic is also open source. After you run out of the initial prototype boards there needs to be a possibility of downloading a PCB design, getting the components and building one that will work with the software.

col.

Money-wise, building a single board is not a good approach, it's going to cost a fortune: it's a 6-layer board.
The DSP is BGA packaged (pins underneath), so basically you won't be able to assemble it yourself. All the other components are smd, and there are many of them. Resistors for the audio path are minimelf: it's a hell to solder them with an iron. All this means that you'll need a solder mask and machine assembly.
 
can't stick my hand up for mac dev, but I can test both mac and windows. happy to also do some UI design (mockups, useability, etc), though I imagine this will be determined largely by the components carl has available. there are a lot of examples of both how to, and how *not* to do these kinds of interfaces, so other than setting a particular overall look and feel, the way it should work should be pretty clear.

It just depends how much UI whizz-bangery we are able to do. the miniDSP interface is interesting, not bad overall but with a few glaring omissions (such as the ability to move and adjust the parametric eq and crossover params graphically - but I know this can be a bit of a pain to do in code. (a lot more work than reading data out of an edit box, anyway)
 
"It just depends how much UI whizz-bangery we are able to do. the miniDSP interface is interesting, not bad overall but with a few glaring omissions (such as the ability to move and adjust the parametric eq and crossover params graphically - but I know this can be a bit of a pain to do in code. (a lot more work than reading data out of an edit box, anyway)"

Actually anomalous, a slick graphical interface is what I would like to provide. Anything else would be boring. There is no reason that we cannot make this as slick and ergonomic to use as any commercial product.

If you can imagine a slick user interface and describe it in a way that I can understand I will craft it.
 
Last edited:
i dont think the completely arbitrary filter slopes requirement is worth the effort. multiples of 6dB/oct is plenty of flexibility.

It would be a waste of technology if this is not possible. We are long past textbook filters. That being said, I'm sure that standard multiples-of-6dB filters plus equalisation plus shelving plus notch, etc., should get us to what is effectively an arbitrary filter (that is, "arbitrary" as applied to our needs for multi-way crossovers).
 
Money-wise, building a single board is not a good approach, it's going to cost a fortune: it's a 6-layer board.
The DSP is BGA packaged (pins underneath), so basically you won't be able to assemble it yourself. All the other components are smd, and there are many of them. Resistors for the audio path are minimelf: it's a hell to solder them with an iron. All this means that you'll need a solder mask and machine assembly.

It seems to be a lot of programming/development work to not have an option for making up more boards once the current batch sells out. There needs to be some kind of provision so that more boards can be manufactured in what ever license scheme gets committed to. Otherwise the project will either be short lived or limited to a small amount of board owners. If it is a success, it might be possible to do a "group buy" to get the boards manufactured.

col.
 
It seems to be a lot of programming/development work to not have an option for making up more boards once the current batch sells out. There needs to be some kind of provision so that more boards can be manufactured in what ever license scheme gets committed to. Otherwise the project will either be short lived or limited to a small amount of board owners. If it is a success, it might be possible to do a "group buy" to get the boards manufactured.

col.

I feel the same about this.
 
It seems to be a lot of programming/development work to not have an option for making up more boards once the current batch sells out. There needs to be some kind of provision so that more boards can be manufactured in what ever license scheme gets committed to. Otherwise the project will either be short lived or limited to a small amount of board owners. If it is a success, it might be possible to do a "group buy" to get the boards manufactured.

col.

I think there's no need to fear for a shortage right now. There's plenty of boards available for that project.

Also, that's quite a bit of work indeed, but not that much if we keep to the list above of features.
 
It seems to be a lot of programming/development work to not have an option for making up more boards once the current batch sells out. There needs to be some kind of provision so that more boards can be manufactured in what ever license scheme gets committed to. Otherwise the project will either be short lived or limited to a small amount of board owners. If it is a success, it might be possible to do a "group buy" to get the boards manufactured.

col.


For me it actually goes past just immediate availability. If I were to donate my time to coding on the Mac, I'd want a couple things to happen:
I'd want my code to be freely available to whomever wants it or I'd want to be paid for my time.

But more importantly, If I was contributing to the project for free in exchange for my code being free, I'd also want the rest of the hardware to be open as well. There's no point is freely writing a piece of code that can't every really be used once the hardware is gone.

The way I'd get excited to contribute is if the hardware, schematics, layouts, and all the embedded code is also available, so I can reconstitute the entire design myself if I so choose. And I can take it at a later date and fabricate it if I need another one.

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