[sdiy] Re: IIR and FIR

Csaba Zvekan czvekan at gmail.com
Sat Jun 7 12:47:49 CEST 2008


Hi Scott,

When I looked at xilinx products download page .I found the schematics  
for the Spartan 3E Starter Kit. But the page 3 was blank. And that's  
where you should see how the actual FPGA chip is connected to rest of  
the peripherals. I don't know why they don't want to show us that. But  
do you have a schematic that shows the actual connection of the  
XC3S500E-4FG320C ?
Every development board should have access to schematics. I mean what  
good is it if you can't replicate what you just learned, right ?
So there must be something out there ... maybe not for the public.

Csaba

On Jun 6, 2008, at 4:12 PM, Scott Gravenhorst wrote:

> Csaba Zvekan <czvekan at gmail.com> wrote:
>> This first article looks like it's for an AVR MCU.
>>>> www.gamedev.net/reference/articles/article845.asp
>>
>> Kind of promising. What about 16-bit dsPIC's has anybody done some
>> filtering there with resonance.
>
> I haven't been there yet...  I just woke up.  (c:
>
>> Oh by the way Scott, you totally got me infected with FPGA.
>
> Well, I didn't do it on purpose, but I can't help it, it's been such  
> an awesome tool.
> In fact, before I got into FPGA synths, I started to build a digital  
> monosynth out
> of an old PC.  I figured a 133 MHz 486 would be fast enough for a  
> decent monosynth
> until I found that the Intel OUT instruction took 1.5 uSec to  
> execute - that was such
> crap I gave up on the idea.  A few weeks later, I met with Jim  
> Patchell who infected
> me with FPGA-itis.
>
>> I already
>> watched all kinds of cool stuff on youtube about that topic.
>> So for that money I ordered the SPARTAN 3E Starter Kit ... let's see
>> what I can do with it.
>
> I don't think you can get more bang for the buck.  What is so cool  
> is that it can be
> one kind of synth today, and just by pushing a new bit file into it,  
> it becomes a
> different synth.
>
> I ended up buying a total of FOUR of the boards so that I can have a  
> whole band of
> FPGA synths.
>
>> What did you say was the forum and community for it. I mean besides
>> your FPGASYNHT.
>
> Go here: http://rubidium.dyndns.org/cgi-bin/mailman/listinfo/fpga- 
> synth
>
>> Also , do you have some good resources for the actual chip. Once
>> you're done  developing you want to reflow something up, right?
>
> Well, I don't, I use the board directly as a musical instrument.   
> The board is quite
> complete for a basic synth.  It has two minor weaknesses IMO - it  
> could use static
> RAM (it has SDRAM which presents timing issues because it shares  
> FPGA pins with the
> SPI DAC) and it could use a bigger DAC.  The DAC on the board is 12  
> bit and runs FAST
> (for audio) at 1.0 MHz max.  There is a 100 pin hirose connector on  
> the dev board
> which allows connecting an external board to it.  Two styles exist,  
> through-hole and
> surface mount.  I need to get some of those.  BTW, if you've  
> listened to the samples
> of synth projects I've posted, they are all running through that 12  
> bit DAC giving
> you an idea of just how good 12 bits can sound.  I'm satisfied  
> enough that I'm not
> hell-bent on getting a bigger DAC.  And one thing I've noticed about  
> DACs is that
> many have rather low maximum sample rates, and I like having high  
> sample rates at
> least available to me.
>
> The actual FPGA data sheet is in PDF form downloadable from Xilinx.   
> It's an
> excellent reference document and is quite complete.  Their site can  
> be somewhat weird
> to navigate though and may require that you register (free) in order  
> to download some
> of the documents and free software.  If you have trouble getting the  
> data sheet, I
> have it (actually, I have several) and can send it.
>
> Something I have spoken with others about is the idea of creating a  
> special
> music/audio dev board with a big-nasty FPGA on it.  The Spartan-3E  
> Starter Kit is
> great, but it is a general purpose dev board with a bunch of stuff I  
> don't use.  A
> board designed especially for synths and effects processing would be  
> great, but so
> far, nobody I've spoken with has the technical skill and/or time to  
> put it together
> (multilayer PCB using BGA technology for the FPGA).
>
>
>> On Jun 6, 2008, at 3:26 PM, Scott Gravenhorst wrote:
>>
>>> Veronica Merryfield <veronica.merryfield at shaw.ca> wrote:
>>>> Here's a few links to get you going
>>>>
>>>> www.gamedev.net/reference/articles/article845.asp
>>>> www.music.mcgill.ca/~gary/307/week2/filters.html
>>>> members.tripod.com/acmerock/tech/DXi2Tutorial.htm
>>>
>>> Ah, thanks, Magnus' email started me reading about bilinear
>>> transforms which I looked
>>> at earlier while I was investigating digital filter topologies.
>>>
>>>> But as I said, you really do have to pay a lot of attention to the
>>>> numbers. Whilst the third of the links above has the term
>>>> calculations
>>>> for a variety of filter types, each term requires a trig function  
>>>> and
>>>> some a divide. The simple formulas hide the effects of not only
>>>> sample
>>>> rate and quantisation errors of the samples, but it is compounded  
>>>> by
>>>> quantisation of the terms and calculations. This is further  
>>>> affected
>>>> by the trig functions and so on. I did the most work with fixed  
>>>> point
>>>> 16 bit DSP simulating diesel engines to test ECUs and it took a lot
>>>> of
>>>> fiddling to get the thing to work well but it did work extremely
>>>> well.
>>>> With floats, things are a lot easier and in many cases most people
>>>> probably don't look into the numbers too deeply but for a PIC
>>>> implementation. Unless a fast PIC and floats are used, a fair  
>>>> amount
>>>> of care and time are going to be needed to make it work but I  
>>>> know it
>>>> can work since a PIC is not too far away from a Z80.
>>>>
>>>> (One can get very fed up with Z transforms and bilinears after a
>>>> while, specially if the IIR keeps oscillating on you). Which  
>>>> reminds
>>>> me, they can produce beautiful sines :)
>>>>
>>>>
>>>> On 5-Jun-08, at 5:09 PM, Magnus Danielson wrote:
>>>>
>>>>> From: Scott Gravenhorst <music.maker at gte.net>
>>>>> Subject: [sdiy] Re: IIR and FIR
>>>>> Date: Thu, 05 Jun 2008 16:24:13 -0700
>>>>> Message-ID: <200806052324.m55NOD9l030103 at linux7.lan>
>>>>>
>>>>>>> Veronica Merryfield wrote:
>>>>>>> I have used IIR filters going back 20 years now even on a poor
>>>>>>> 6Mhz
>>>>>>> Z80 and they do resonate. FIRs don't resonate but IIRs do - it's
>>>>>>> why
>>>>>>> they are called Infinite Impulse Response . I can some code
>>>>>>> somewhere
>>>>>>> in my archive for taking cutoff frequency and resonance and
>>>>>>> producing
>>>>>>> the parameters which I can try to find if required but there are
>>>>>>> examples on the web.
>>>>>>
>>>>>> Are these sweepable filters?
>>>>>>
>>>>>> I'm interested in a frequency sweepable IIR with controllable
>>>>>> resonance.  I.e., are they an acceptable alternative to an SVF?
>>>>>>
>>>>>> An SVF sounds very good to me, but does have high sample rate
>>>>>> demands.
>>>>>
>>>>> Now, this is a bit problematic. Bilinear transformed filters  
>>>>> (which
>>>>> have good
>>>>> properties) tend to use arctan compensation. Doing that in
>>>>> realtime is
>>>>> expensive. However, for higher sample rates the filter cut-off  
>>>>> stays
>>>>> close to
>>>>> 0 and things can be approximated and behave fairly linear.
>>>>>
>>>>> If you map your integrators bilinearly you get for each integrator
>>>>>
>>>>> i1 = i0
>>>>> i0 = i1 + i*T
>>>>> o  = i0 + i1
>>>>>
>>>>> where i is the input, o the output and T is the sample time. i0  
>>>>> and
>>>>> i1 is the
>>>>> integrator state variables.
>>>>>
>>>>> Converting a normal SVF into this form is trivial and only a  
>>>>> slight
>>>>> variation
>>>>> of what you already have around:
>>>>>
>>>>> http://www.fpga.synth.net/pmwiki/pmwiki.php?n=FPGASynth.SVF
>>>>>
>>>>> However, you can approximate the sin such that f = 2 pi Fc / Fs. I
>>>>> think you
>>>>> are getting my point... the real trick is the sample rate and the
>>>>> handy
>>>>> reductions it allows you to do.
>>>>>
>>>>> Cheers,
>>>>> Magnus
>>>>> _______________________________________________
>>>>> Synth-diy mailing list
>>>>> Synth-diy at dropmix.xs4all.nl
>>>>> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>>>>
>>>> _______________________________________________
>>>> Synth-diy mailing list
>>>> Synth-diy at dropmix.xs4all.nl
>>>> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>>>>
>>>
>>> -- ScottG
>>>
>>> -----------------------------------------------------------------
>>>
>>> -- Scott Gravenhorst
>>> -- GateManPoly - FPGA Based Polyphonic MIDI LA/FM Synthesizer
>>> -- GateMan-III - FPGA Based Monophonic MIDI LA/FM Synthesizer
>>> -- PolyDaWG/8 - FPGA Based 8 Voice Polyphonic MIDI Synthesizer
>>> -- 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
>>
>> **************
>> http://www.csabazvekan.com
>> music stuff
>> http://www.csaba.ch
>> electronic stuff
>> http://www.synthmaniac.com
>> synthesizer stuff (not fully set up yet)
>>
>>
>>
>>
>>
>
> -- ScottG
>
> -----------------------------------------------------------------
>
> -- Scott Gravenhorst
> -- GateManPoly - FPGA Based Polyphonic MIDI LA/FM Synthesizer
> -- GateMan-III - FPGA Based Monophonic MIDI LA/FM Synthesizer
> -- PolyDaWG/8 - FPGA Based 8 Voice Polyphonic MIDI Synthesizer
> -- FatMan: home1.gte.net/res0658s/fatman/
> -- NonFatMan: home1.gte.net/res0658s/electronics/
> -- When the going gets tough, the tough use the command line.
>




More information about the Synth-diy mailing list