Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Fri Dec 04, 2009 7:32 pm Post subject:
A Synthesizer Made of Only Filters Subject description: A Synthesizer Made of Only Filters
I have designed a synthesizer made of only filters. There are no oscillators in the design at all. It is also up to 32 voice polyphonic. I call it PolyDrum.
It has 32 state variable filters and 32 single pole IIR low pass filters and is implemented on a $39 FPGA development board.
The state variable filters form "resonators" and the single pole filters form exponentially decaying envelope generators. The envelope generators modulate the Fc input of the state variable filters to provide a variety of pitch modulation effects.
Each resonator is frequency, Q, EG and MIDI note number programmable. More than one resonator can be programmed to respond to a given note number - but all of the resonators responding to the same note number will begin their sound with a synchronized pulse
EDIT ADD 2009-12-05:
I should have added that the instrument is played (MIDI) by sending an impulse to any resonator that receives a match between the note played and the resonator's note number map (assignable). If the Q values are large enough, it will be very tonal with a long sustain.
PolyDrum_002.mp3
Description:
A sample of the resonator synth. Each chunk of notes is done with the synth's parameters mostly the same, but one, envelope generator time, is increased for each chunk.
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima Last edited by JovianPyx on Tue Jun 14, 2011 10:58 am; edited 1 time in total
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Fri Dec 11, 2009 8:11 am Post subject:
Here's a piece of music made with the PolyDrum. I've set it up to be tonal again, but it is tuned an octave higher than the other clip I posted. It is also set to use each resonator as an individual drum (32 total drums).
I will be working on another piece of music that will demonstrate this instrument's more unusual sounds and behavior.
PolyDrum_004.mp3
Description:
A piece of music played entirely on the PolyDrum synth. No effects were used to process this sound.
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima Last edited by JovianPyx on Fri Dec 11, 2009 8:51 am; edited 1 time in total
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Fri Dec 11, 2009 8:53 am Post subject:
Thanks for the nice comments. I was actually sort of surprised at the "earthy" sound I got, which inspired the piece. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Fri Dec 11, 2009 9:17 am Post subject:
A Synthesizer Made of Only Filters
DIY project - hmm. Yes and no. The biggest problem for that is that the FPGA doesn't come in a package that is easy to solder like TQFP. It's a BGA device (ball grid array) which requires some sort of oven to solder it to the board.
Because of the BGA issue - which is true for all Xilinx larger FPGAs - I have used premanufactured development boards.
But I'm not done... I may see if it's possible to use several smaller devices which are easy to solder - but that creates programming logistical problems that don't exist when the entire design fits into a single FPGA. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima
Joined: Feb 27, 2008 Posts: 156 Location: Roma, Italy - London, UK
Audio files: 15
Posted: Fri Dec 11, 2009 10:46 am Post subject:
Re: A Synthesizer Made of Only Filters
ScottG wrote:
DIY project - hmm. Yes and no. The biggest problem for that is that the FPGA doesn't come in a package that is easy to solder like TQFP. It's a BGA device (ball grid array) which requires some sort of oven to solder it to the board.
Because of the BGA issue - which is true for all Xilinx larger FPGAs - I have used premanufactured development boards.
But I'm not done... I may see if it's possible to use several smaller devices which are easy to solder - but that creates programming logistical problems that don't exist when the entire design fits into a single FPGA.
I see, I really don't know enough about this world. But I would defintely consider getting one as a voice bank.
Joined: Apr 17, 2006 Posts: 2812 Location: New York
Audio files: 25
Posted: Fri Dec 11, 2009 11:10 am Post subject:
Scott,
Nice work and concept. The timbre of the music has such a mellow effect as one would expect from your implimentation. Very nice use of the FPGA in a musical application. BRAVO again ....
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Fri Dec 11, 2009 12:13 pm Post subject:
A Synthesizer Made of Only Filters Subject description: A Synthesizer Made of Only Filters
Wowee, thanks to all for the positive comments.
You know, when I dreamed this up, I really thought this was a hairbrained idea that would probably not work very well. And the first version didn't. The problem was that high Q filters like these need a rather wide arithmetic buss. My SVF design uses 35 bit signed values as input and output and the integrators are 70 bits wide because a multiplier is used and it's output it 70 bits signed. Since I had the realestate, I just left the RAMs at 70 bits to prevent loss of precision. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima
Posted: Wed Feb 03, 2010 10:33 am Post subject:
Re: A Synthesizer Made of Only Filters Subject description: A Synthesizer Made of Only Filters
JovianPyx wrote:
... I call it PolyDrum.
It has 32 state variable filters and 32 single pole IIR filters and is implemented on a $39 FPGA development board.
It sounds great, and that sounds like a great design. Can I ask, what is the development board that you're using?
I'm using the Spartan 3E kit for stuff now, but at the price I can't really see soldering it into a permanent project. For $40, we're starting to get reasonable.
Also - I hope that I wrote that it has no DAC and no MIDI electronic interface. I had to add both of those. The DAC board (CS4344) cost about $25 and I built the MIDI input on a piece of stripboard.
This code would work on a Spartan-3E board (500K gate part). But would need some modification.
Joined: May 16, 2005 Posts: 8932 Location: Birmingham, England, UK
Audio files: 19
G2 patch files: 1
Posted: Wed Feb 03, 2010 1:30 pm Post subject:
Beautiful track! Reminded me of little droplets of water forming into ice crystals. Like a little soundtrack to an alternative world
More! _________________ ACHTUNG!
ALLES TURISTEN UND NONTEKNISCHEN LOOKENPEEPERS!
DAS KOMPUTERMASCHINE IST NICHT FÜR DER GEFINGERPOKEN UND MITTENGRABEN! ODERWISE IST EASY TO SCHNAPPEN DER SPRINGENWERK, BLOWENFUSEN UND POPPENCORKEN MIT SPITZENSPARKSEN.
IST NICHT FÜR GEWERKEN BEI DUMMKOPFEN. DER RUBBERNECKEN SIGHTSEEREN KEEPEN DAS COTTONPICKEN HÄNDER IN DAS POCKETS MUSS.
ZO RELAXEN UND WATSCHEN DER BLINKENLICHTEN.
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Wed Feb 03, 2010 3:09 pm Post subject:
Ok, here's the source code.
What isn't included is the VB.NET source for the programming user interface. This synth allows you to control a whole lot of parameters, so I wrote a VB.NET GUI for it that communicates through the board's USB TTY bridge. If you're interested, contact me by PM and I'll send the current version - currently it's kind of a mess and I don't want to post it the way it is. But at least interested persons can look at the Verilog code for the synth internals and get an idea of what I did.
State variable filters enhance gain when Q is more than one. That is, the peak amplitude at exactly Fc will be higher than the rest of the spectrum. This is true of both analog and digital SVFs. Because of this, I designed in a amplitude windowing feature that prevents binary overflow (sounds horrible) while preserving as much amplitude as possible. This is a cautionary note - you have to deal with this when making patches so that you get the best amplitude without causing a nasty ear ripping sound.
What isn't included is the VB.NET source for the programming user interface. ... But at least interested persons can look at the Verilog code for the synth internals and get an idea of what I did.
Thanks very much, Scott. I'm just starting out with FPGAs and with DSP in general (though I have a background in the math from 60 degrees off to the left -- I'm a time-series economist by day).
I'm sure I'll have fun taking apart your code. My first job is going to be playing around with filters (FIR, IIR, and your state-variables). It's going to be hard to keep me from adding some VGA code and going for the cheap audio-visuals, but I'll try to stay focused...
BTW, there's a handful of us here (HacDC, a hackerspace in Washington DC) who've been participating in an FPGA workshop. We're now all at the stage of being just-barely-dangerous with the Spartan3E starter kit, so the mini-projects are flowing. I think we've all used some of your code from FPGAsynth.
So thanks again for sharing. If I get anything cooler than "hello world" going, I'll post it up here.
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Fri Feb 05, 2010 11:17 am Post subject:
Hey Elliot,
VGA - heh, I've wanted to mess with that, but I've been pre-occupied... I'd be very interested in seeing some VGA code added to a synth. I've got several VGA monitors in good working order that I'm not currently using, so it would be fun to see something happen while a synth is playing sounds.
Well... it is a little different because the Aries is a mono-synth. Instead of a bank of tuned filters I just vary the cutoff frequency to get different notes. _________________ -- Kevin http://kevinkissinger.com
Joined: May 16, 2005 Posts: 8932 Location: Birmingham, England, UK
Audio files: 19
G2 patch files: 1
Posted: Sat Feb 06, 2010 6:53 am Post subject:
JovianPyx wrote:
v-un-v wrote:
Beautiful track! Reminded me of little droplets of water forming into ice crystals. Like a little soundtrack to an alternative world
More!
And thank you too v-un-v!
My pleasure
If you've got a Nord Modular to hand.... try my "KlingKlang" noodle patch. This was also (almost) entirely made using the vocal filter within the modular. I've never heard the patch on a fully expanded machine, but it sounded great on the unexpanded modular. Think 'Zen garden with many chimes blowing softly in the warm breeze'
The simplicity of your piece, was its power. _________________ ACHTUNG!
ALLES TURISTEN UND NONTEKNISCHEN LOOKENPEEPERS!
DAS KOMPUTERMASCHINE IST NICHT FÜR DER GEFINGERPOKEN UND MITTENGRABEN! ODERWISE IST EASY TO SCHNAPPEN DER SPRINGENWERK, BLOWENFUSEN UND POPPENCORKEN MIT SPITZENSPARKSEN.
IST NICHT FÜR GEWERKEN BEI DUMMKOPFEN. DER RUBBERNECKEN SIGHTSEEREN KEEPEN DAS COTTONPICKEN HÄNDER IN DAS POCKETS MUSS.
ZO RELAXEN UND WATSCHEN DER BLINKENLICHTEN.
Joined: Nov 20, 2007 Posts: 1988 Location: West Red Spot, Jupiter
Audio files: 237
Posted: Fri Apr 08, 2011 4:55 pm Post subject:
I've been reworking some of my designs, the PolyDrum is now expanded to 55 voices from 32. The hardware is capable of 64, but the state variable filters misbehave when Fc is a bit too high, so I restricted it to 55. The highest pitch 3 or so notes are kind of plinky, but they are tonal and in tune so still useful.
Perhaps more banging and swearing can bring it all the way up to 64. Part of the problem is Q enhancement which creates a higher effective Q as Fc increases. I've found that there is a nonlinear curve associated with what the Q should be for a given note. I spent some time today hand adjusting the resonator Q values and got nice resonant (not plinky) sounds for all 55 notes. I think I may be able to get a few more this way. Then perhaps another piece of music from it since it's got quite a bit more range now. _________________ FPGA, dsPIC and Fatman Synth Stuff
Time flies like a banana. Fruit flies when you're having fun. BTW, Do these genes make my ass look fat?corruptio optimi pessima
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum