Open Source DSP based hardware synth

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

FPGA seems decent a decent route: http://www.aviram2k.com/synthProject/pr ... DSP_24.pdf

Any chance anyone wants to stay on topic? Ignore the last three pages and actually find the best possible solution? Ignore my anarchic, anti-capitalist, idealist, utopian badger wank philosophies, and lets talk methodologies of materialising what I'm after.

Using FPGA to solve tough DSP challenges: http://www.eetimes.com/document.asp?doc_id=1279776

http://www.researchgate.net/publication ... plications

Parallel processing for a DSP application using FPGA's: http://www.aviram2k.com/synthProject/pr ... DSP_24.pdf

Post

I started my career programming altera fpga/cpld. Ahdl and vhdl. About 15 years ago. I like anarchic, idealist and utopian developers... but what is the unconventional revolutionary new thing you are bringing on the table?
What's the news?

I suggest to read the last three pages. Many of the developers who answered here are not only software developers, but experienced hardware developers too. And among those answers there are several gems

btw I'm enough skilled on gpu, parallel computing too, like many others here.

I dont want to appear negative on your ideas (opensorce is great! there is good code around!), but

- you need to write good software before. This is difficoult.
- once you have it, creating hardware is a bit more straightforward. Someone (even a company) could help you easily if you start from something worthing
- it doesnt mean you can go live. Selling hardware or software are completely different beasts. You need way more funds on hardware side, even if your hardware is cheap. Software is cheaper by definition
- the hardware solution itself does not matter. If you think arduino is bringing something new on the table, you are completely wrong. It happens because the real value is on the software side. And investments. And because fpga were invented a lot of years ago, and the world seems to be unchanged.

Post

Zaphod (giancarlo) wrote:I started my career programming altera fpga/cpld. About 15 years ago. I like anarchic, idealist and utopian developers... but what is the unconventional revolutionary new thing you are bringing on the table?

I suggest to read exactly the last three pages. Many of the developers who answered here are not only software developers, but experienced hardware developers too. And among those answers there are several gems
Whoa sick :)

no new idea. I think I was being very idealistic and naive. And said some unwell thought out things. Kinda got side tracked by argument, but this is a good point:
again, not to be harsh... but not only are you underestimating the hardware knowledge required,
but also the software development ... these are large complex pieces of software that take a lot of effort to write/debug/test.
(also remember, its not as if the manufactures you mention, don't have access to these chips, and more!)

So, Id cut back on these wild claims, I think they discredit a good underlying point,
these chips do open many doors for new DIY ventures...
Possibly some interesting niche synths, or as you say, for bespoke digital synths, perhaps even a 'hardware supported' Reaktor ?

Anyway, thanks for the heads up on the boards, I do have an unrelated project that could possibly make use of them

wild claims discredit a good underlying point,
these chips do open many doors for new DIY ventures...

I was just wondering the 56k DSP chip route or going down the route of using recent development advances that allows proto'ing much cheaper. DSP protoboards or FPGA in terms of the Parallella, which could be overkill.

But yeah I got ahead of myself and apologise.

Post

http://www.gearslutz.com/board/so-much- ... ously.html

"You can't use GPUs for what you use DSP chips for for audio, not at least in any way that would harness the actual power of the GPU. They are completely different beasts.

Audio processing is almost always based on a serial processing of sample points, i.e. what sample point X should be is dependent on what sample points X-1, X-2, and so on were. That serial processing is inherently at odds with the parallel architecture of GPU systems like the NVidia.

I went down this path and learned it the hard way, though I probably could have saved myself the effort if I'd done more reading. Even a convolution based system isn't all that well suited. I kept beating my head against a wall until it became obvious that GPUs just aren't designed for audio work. For video work they are obviously great, since you are dealing with a 2D grid of points of a 3D volume of points at single point in time. Not a 1D line of points, each of which depends on previous points in the line.

For audio, it seems to me, you are vastly better off having more DSP chips capable of serially processing simultaneous streams than having one huge parallel setup. A DSP version of the GPU, i.e. a 'DSP farm' with 512 basic DSP cores that can efficiently be handed in/out buffers, some parameters, and an algoritm selection and can process the data from the input to the output buffer, that I bet would be hugely powerful if a good management front end was provided."

EDIT: Well shit me it's all Motorola 56k in virus's. Disappointing the only access to start playing around with a freescale dsp chip is in the line 6 dev pedal, and it's $200.

Or if the sharc route, then the minidsp which is $185. Also DSP related is my new best friend, and gearslutz.

And also thank you to the supportive people who have PM'ed, that have helped me look down the right path thank you so much :) Also told me not to feed the trolls, but want to apologise as I feel I egged it on due to some ill-conceived notions.
Last edited by b&t on Wed Aug 20, 2014 8:11 pm, edited 1 time in total.

Post

The best way to start something like this is probably to prototype it in Reaktor or some other modular environment then see how that sounds. This may well be 90% of the work anyway, especially if your goal is a very high sound quality. Of course you'll have to factor in the target platform to some degree, take into account limited memory etc... not easy :)

Richard
Synapse Audio Software - www.synapse-audio.com

Post

One difference between video and audio, imho, is that video requires a very high bandwidth (1920x1080 is a LOT of pixels to fill), and involves many very common algorithms that wreak havoc on CPU pipelines. In particular, bilinear interpolation involves 12 multiplications per pixel (since you have to do it for all 4 color components), and you often have to do too many shuffles and data unpackings for SIMD to really help.

Sound, on the other hand, generally works well on CPUs: you have way more feedback loops, a kinda jumpy but linear control flow that works well on branch predictors, data formats that match better with the available loading instructions, and so on. This limits the potential gain from using custom hardware such as DSPs.

Post

b&t wrote: Or if the sharc route, then the minidsp which is $185.
That's a pretty good price on a SHARC dev board. Much better than the Analog Devices dev kits. It is worth noting that the Crosscore compiler for SHARCs costs $1000. And that is the CHEAP compiler from Analog Devices.

It has been a long while since I programmed SHARCs, so there may be free compilers available at this point that I don't know about. I'd love to hear that I am wrong about the costs of the SHARC dev tools.

Sean Costello

Post

last time I used altera tools they were in the 10k ballpark for a single dongle (so a single workstation). I hope things improved lately, and prices dropped down

Post

valhallasound wrote:It has been a long while since I programmed SHARCs, so there may be free compilers available at this point that I don't know about. I'd love to hear that I am wrong about the costs of the SHARC dev tools. Sean Costello
I'm curious too, as those tools were always very expensive. :cry:

I also remember the Dream Chip (France) that for a long time has been a great chip, but sadly, very expensive to handle and hard to program. ;-) 15 years ago I was hoping to make some projects with the Dream Chip, sadly the kit was very expensive for any Brazilian company to handle. :shrug: At that time it was the price of a cheap car, which here in Brazil costs around $ 5000 USD. Crazy eh? Is just sad for "small" countries to get into high tech stuff...

Post

MadBrain wrote:One difference between video and audio, imho, is that video requires a very high bandwidth (1920x1080 is a LOT of pixels to fill), and involves many very common algorithms that wreak havoc on CPU pipelines. In particular, bilinear interpolation involves 12 multiplications per pixel (since you have to do it for all 4 color components), and you often have to do too many shuffles and data unpackings for SIMD to really help.

Sound, on the other hand, generally works well on CPUs: you have way more feedback loops, a kinda jumpy but linear control flow that works well on branch predictors, data formats that match better with the available loading instructions, and so on. This limits the potential gain from using custom hardware such as DSPs.

Wicked yeah CPU is the route I think I should go down:

What about the parallela: http://www.parallella.org

http://www.adapteva.com/epiphanyiii/

• 16 High Performance RISC CPU Cores
• 1 GHz Operating Frequency
• 32 GFLOPS Peak Performance
• 512GB/s Local Memory Bandwidth
• 64GB/s Network-On-Chip Bisection Bandwidth
• 8 GB/s Off-Chip Bandwidth
• 0.5 MB On-Chip Distributed Shared Memory
• 2 Watt Maximum Chip Power Consumption
• IEEE Floating Point Instruction Set
• Fully-featured ANSI-C/C++ programmable
• GNU/Eclipse based tool chain
• Source synchronous LVDS off chip links for host or direct chip-to-chip interfacing.
• Chip to chip links for integrating up to 64 chips on a single board
• 324-ball 15x15mm flip-chip BGA

that's the coprocessor along with your ARM cortex and FPGA:

http://www.xilinx.com/products/silicon- ... mance.html

In a credit card size board. Anyone reckon that would be able to make a synth? I know it could make a computer or possibly open a portal to another dimension, but does anyone reckon a paralella could be up to the task of doing real time DSP?

If William K has made a pretty awesome synth out of the 8 bit Arduino I reckon the parallella could possibly be up to the task.
Zaphod (giancarlo) wrote:last time I used altera tools they were in the 10k ballpark for a single dongle (so a single workstation). I hope things improved lately, and prices dropped down
uggggh, that's not a nice figure 10k. The cost of dev seems quite expensive!

If we could solve the problem by just using a little tiny powerful computer strapped with enough power to do the tasks of DSP it could be very nice alternative to the Sharc/Freescale route.

I've seen a synth I think Piana or something for the raspi, that's £25 for a synth, it's a lovely concept. I wondered if we can hijack another piece of tech and do something great with that. It's just an idealistic thought.. xmos don't think at this stage, paralella could be damn decent route though.

Post

valhallasound wrote:
b&t wrote: Or if the sharc route, then the minidsp which is $185.
That's a pretty good price on a SHARC dev board. Much better than the Analog Devices dev kits. It is worth noting that the Crosscore compiler for SHARCs costs $1000. And that is the CHEAP compiler from Analog Devices.

It has been a long while since I programmed SHARCs, so there may be free compilers available at this point that I don't know about. I'd love to hear that I am wrong about the costs of the SHARC dev tools.

Sean Costello
uggh those figures again are frightening for small minds that just want to play and learn through breaking

Post

I was looking at the RPi too, since it has a nice CPU and some good memory. The main problem to me is how to program the darn thing, compared to how easy Arduinos are. I guess I got a bit spoiled by the Arduino easy-of-things. IMHO, of course. ;-) I know that high-end programmers hate the Arduino since is only 8-bits, but for me is fun to work in such limited space, but that's me... still, the RPi is cheap, and under $ 50 USD, which for us here in Brazil is a BIG deal, as for prices like that we don't pay custom import taxes, as the law says, anything under $ 50 USD (product price + shipping) does not need to pay any extra tax. So I already got one RPi board to play with, but sadly is just a bit hard to work with it, not super-hard, just a bit too much for me right now. :hihi:

Now, I still think we need to discuss Korg Kronos, as it is a big deal, since it uses just one Atom processor for the whole thing, and the list of features is big. I just wonder if users that use it never had any pops-clicks from buffer-underuns or something like that, but I doubt, from what I heard Korg staff just a great job on the code side. I was following a thread about a guy who did manage to reverse-engineer the Kronos OS, and was surprised on how things works. Is a Linux machine with a low-latency kernel and a Korg Sound-Card. But I don't know what the latency on the thing is, compared to a regular computer...

Post

BTW: check this out!

http://www.synthtopia.com/content/2014/ ... pberry-pi/

Sadly there's not much info, in terms of MIDI to Audio latency, as I'm very curious about that one...

Sadly he states there's a 8 note limit, so I wonder how come? I remember using AXS on my Pentium-100 with 16 voices, plus drum voices, so I'm very curious to understand why his code is running so low, or maybe there's more to his synthesis compared to AXS?

http://raspberrypisynthesizer.blogspot. ... imits.html

Here's the AXS, for those who don't remember, a free DOS app now for Windows.

http://www.resolutionaudio.nl/

I remember ordering this on the mail over a decade ago, and getting a floppy disk that had a hole on it. :hihi: Man, I feel old, going 40 December... :dog:

Post

b&t wrote:Any chance anyone wants to stay on topic? Ignore the last three pages and actually find the best possible solution?
Problem is, there is no 'best'. You've got a cheap/easy/powerful -triangle style tradeoff in what you're talking about; you cant have 'cheapest' and 'fastest'.
Cheapest can be achieved if you're willing to compromise; the Patchblocks thing is a perfect example of that. £35 for a daisy-chainable self-contained programmable DSP unit. But to make it viable its constrained to about 10Khz bandwidth. And its perfectly fine for all that; that limit is part of its identity.

But if you want the best balance, the most horsepower for your buck, the consumer PC is impossible to beat, IMO. These things, for example
http://www.gigabyte.com/products/produc ... id=4918#ov

are less than £65, crapful of standard IO, and all they'd need is a PSU, some RAM and a USB stick to run. Its 'only' a 2Ghz Celeron for that, but its a quadcore, and has decently more power than the Intel Atom driving a Kronos. And you'd be able to leverage cheap/free industry-standard toolchains, as well as a crapload of preexisting audio toolkits from CSound to whatever.
That's the expensive one, btw. There's something similar for about £38 for a dual-core Celeron, and another quadcore around £45. That's all-on-one on a motherboard with video, SATA, and USB3 etc.

For about £100 plus PSU, RAM and storage, you can get a 3Ghz dual-core Haswell Pentium and a cheap 1150 motherboard.

I cant quite see any significant advantage in the route you appear to prefer, except as a manifestation of doing it that way for its own sake. I think to achieve the ends you're talking about, you're far better off with the generic 'native' PC platform, even as a standalone system; it can be as cheap, its plenty fast, its far easier to develop for, and it'll also actually be possible to replace with a compatible faster version two or three years down the line.
my other modular synth is a bugbrand

Post

whyterabbyt wrote:
b&t wrote:Any chance anyone wants to stay on topic? Ignore the last three pages and actually find the best possible solution?
Problem is, there is no 'best'. You've got a cheap/easy/powerful -triangle style tradeoff in what you're talking about; you cant have 'cheapest' and 'fastest'.
Cheapest can be achieved if you're willing to compromise; the Patchblocks thing is a perfect example of that. £35 for a daisy-chainable self-contained programmable DSP unit. But to make it viable its constrained to about 10Khz bandwidth. And its perfectly fine for all that; that limit is part of its identity.

But if you want the best balance, the most horsepower for your buck, the consumer PC is impossible to beat, IMO. These things, for example
http://www.gigabyte.com/products/produc ... id=4918#ov

are less than £65, crapful of standard IO, and all they'd need is a PSU, some RAM and a USB stick to run. Its 'only' a 2Ghz Celeron for that, but its a quadcore, and has decently more power than the Intel Atom driving a Kronos. And you'd be able to leverage cheap/free industry-standard toolchains, as well as a crapload of preexisting audio toolkits from CSound to whatever.
That's the expensive one, btw. There's something similar for about £38 for a dual-core Celeron, and another quadcore around £45. That's all-on-one on a motherboard with video, SATA, and USB3 etc.

For about £100 plus PSU, RAM and storage, you can get a 3Ghz dual-core Haswell Pentium and a cheap 1150 motherboard.

I cant quite see any significant advantage in the route you appear to prefer, except as a manifestation of doing it that way for its own sake. I think to achieve the ends you're talking about, you're far better off with the generic 'native' PC platform, even as a standalone system; it can be as cheap, its plenty fast, its far easier to develop for, and it'll also actually be possible to replace with a compatible faster version two or three years down the line.
You sir are an absolute scholar and a gentlemen. " it can be as cheap, its plenty fast, its far easier to develop for" you are right on every level for sure, especially if you go for installations, and then end goal isn't just a synth.

The idealist in me wanted open source. And the leaning towards Linux instead of PC based.

However this video really intrigues me, real time ray tracing and music synthesiser with the parallella:

https://www.youtube.com/watch?v=RHTZ3CL ... e=youtu.be

I looked at the source at it's just fluid synth, if you can whack a framework like that on it, am I wrong in thinking you could maybe whack openframeworks on it too. Or csound?

Post Reply

Return to “DSP and Plugin Development”