[sdiy] FPGA As Synth and DSP Development Environment
cheater cheater
cheater00 at gmail.com
Fri Jan 30 11:22:19 CET 2009
Scott,
that's very, very interesting.
There are several questions though:
Do you envision it would be simple to create a 'voice board'
architecture where you could chain an indefinite amount of those
boards to increase polyphony? Would this require a lot of development
on the FPGA or do those chips that you use support this kind of
communication already?
Someone might want to start a business manufacturing DSP synths. After
all, it's perfectly natural for a person to want to turn their hobby
into something that makes money. Considering the setup right now, a
wrongdoer could just dump the contents of the flash ram, and start
building his clones. Can something be done to counter this? Can the
FPGA chip hold some program inside it, in a 'fused' state, while still
allowing SRAM programmability?
Is high-precision arithmetic possible there? E.g. 64-bit int? Would
this make the designs much more complex? Would it make them much less
effective? If I'm improving the bit depth twice, will my fpga design
take up roughly 2x as many gates?
How do you think the types of FPGAs you have used compare, in terms of
what they can do?
Now with regards to what I've seen on your website:
I noticed that you have a 56-string model of a harp. Do you think the
model could be more interesting if you included some sort of 'voice
board' facility which means that the output of one string goes into
the feedback loop of the other strings? Of course different strings
would receive the signal in different amounts, maybe depending on the
frequency of the output of the source string and the distance.. The
distance could perhaps modulate the gain of a peaking EQ..
Cheers
D.
On Fri, Jan 23, 2009 at 3:06 PM, Scott Gravenhorst <music.maker at gte.net> wrote:
> This post is regarding my own personal experience developing DSP and digital synthesizers in an FPGA.
>
> I should mention that I am not a degreed engineer for those who do not know that. I did not have any DSP experience before starting in on my projects. My math skills are only to first level Calculus and I really don't understand _all_ of that, but I have a fair understanding of limits, summation, integration and differentiation. I have learned everything I know about DSP from reading information posted freely on the internet and from the gracious and intelligent members of this forum, FPGA-Synth and USE
> NET newsgroups such as comp.dsp, comp.arch.fpga and others, again, all freely and graciously posted information.
>
> To see some of what I have done in the last 3 years with FPGAs and DSP sound synthesis, please visit my FPGA synth information page at:
>
> http://home1.gte.net/res0658s/FPGA_synth/
>
> The complete source code for these projects is provided in most cases. There are also sound clips available for most of them.
>
> My own understanding of what an FPGA is would be the most popular type - the SRAM type, specifically those made by Xilinx (this is NOT meant to disparage any other manufacturer, only that I have no other experience). Until the recent DSP development board thread, I had never heard of fused types, but I had heard of Flash based ones. AFAIK, even the Flash type is not the most prevalent type used in room temperature and nonmilitary DSP.
>
> These synthesizer projects are about as complete as they can be, all of them running on one or another "low-cost" development board. The boards I use range in price from $39.00 to $295.00. The projects contain the synth sound generation logic, a soft embedded microcontroller for MIDI including it's object code, the MIDI UART logic (thanks to Jim Patchell), DAC driver logic (thanks to Eric Brombaugh), display logic - essentially everything. The internal calculations are performed with no less than 18 bit
> s signed arithmetic and in some cases, as many as 35 bits. Output sample rates range from ~ 200 KHz to 1.0 MHz. The only pieces of hard electronics that I have had to add are MIDI UART receive electronics (amounts to an optoisolator and some resisistors), an audio output interface (consists of a resistor and a capacitor per channel) and in some cases a DAC. I mention this array of internally implemented parts because in all of my designs, I still have not filled the target devices completely and IMO, I
> have acheived a rather good level of synthesizer logic complexity in spite of the fact that some of the FPGA fabric is dedicated to parts that do not directly produce sound. Indeed, the footprints of these ancillary parts turned out to be surprisingly small. This is not to disparage any other methods, but to demonstrate that it can be done, mainly inside of a single FPGA package (though my chosen packages are of fairly repectable size). Certainly, if you add an external microcontroller, additional FPGA
> fabric is freed for yet more sound generation logic.
>
> I chose to use development boards for a few reasons:
> 1) They are essentially complete.
> 2) They came with free software for compile and download to the device.
> 3) They are tested and known to work and have some limited warrantee.
> 4) Due to at least some mfr. subsidy, they are fairly inexpensive.
> 5) I suck at soldering eensy teensy itsy bitsy stuff because of my eyes.
>
> As far as any "fixed design" paradigm is concerned, these RAM based FPGAs load their bitfile in seconds (like you can count them on one hand). And if you need fixed, these boards all have a Flash RAM that can program the FPGA on power up - I have used this capability and it works nicely.
>
> So in my opinion, for those with interest, an FPGA is most definately a valid and desirable environment for DSP development with robust complexity in terms of features and voice count.
>
> -- ScottG
> ________________________________________________________________________
> -- Scott Gravenhorst
> -- FPGA MIDI Synthesizer Information: home1.gte.net/res0658s/FPGA_synth/
> -- FatMan: home1.gte.net/res0658s/fatman/
> -- NonFatMan: home1.gte.net/res0658s/electronics/
> -- When the going gets tough, the tough use the command line.
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>
More information about the Synth-diy
mailing list