electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Articles  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links  |  Store
Forum with support of Syndicator RSS
 FAQFAQ   CalendarCalendar   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   LinksLinks
 RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in  Chat RoomChat Room 
 Forum index » DIY Hardware and Software
GateManPoly FPGA Synth
Post new topic   Reply to topic Moderators: jksuperstar, Scott Stites, Uncle Krunkus
Page 1 of 1 [20 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
JovianPyx



Joined: Nov 20, 2007
Posts: 1249
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Tue May 20, 2008 9:46 am    Post subject: GateManPoly FPGA Synth
Subject description: GateManPoly FPGA Synth
Reply with quote  Mark this post and the followings unread

http://www.fpga.synth.net/pmwiki/pmwiki.php?n=FPGASynth.GateManPoly

GateManPoly / 8 is an 8 voice polyphonic version of the GateMan FPGA synth.

The sound file was made using only one devboard, no effects were used.

_________________
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
Back to top
View user's profile Send private message Visit poster's website
Peake



Joined: Jun 29, 2007
Posts: 1109
Location: Loss Angeles
Audio files: 3

PostPosted: Tue May 20, 2008 6:43 pm    Post subject: Reply with quote  Mark this post and the followings unread

I've been to your site and read up and listened with great interest. Some excellent work, sir!

Have you investigated using three lines with cross-feedback/individual filtration? Allpass stages in the feedback?
Back to top
View user's profile Send private message
JovianPyx



Joined: Nov 20, 2007
Posts: 1249
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Wed May 21, 2008 5:12 am    Post subject: Reply with quote  Mark this post and the followings unread

Peake wrote:
I've been to your site and read up and listened with great interest. Some excellent work, sir!


Thank you, it's been quite a learning experience for me.

Peake wrote:
Have you investigated using three lines with cross-feedback/individual filtration? Allpass stages in the feedback?


I'm not sure what this means - can you expand a bit? "three lines with cross-feedback/individual filtration"? The only feedback I use is in the SVFs, how would allpass filters work in this regard?

I think filter per NCO is possible, the current filter design executes in 4 clocks. There are 24 clocks available per voice. There's plenty of RAM still available, but time is getting tight, not so much running out of clocks, but routing and logic time. Pipelining keeps the logic time lower, but can increase the total number of clocks used. I had to be clever about that to keep the total clocks under the maximum of 24. The SVF needs a high sample rate.

In fact, an obvious evolution would be to create 32 separate NCO-NCF-NCA chains. They could still be grouped by fours per voice , but this would allow more complex changes in the sound over time. Actually I'm sure other groupings are possible but would require modifications to the MIDI controller and I have been thinking about writing a 16 voice poly MIDI controller for some time. Perhaps even 32 voices. It's quite possible to make the controller do 32, I just don't know if 32 synth voices of any serious complexity can be implemented in the FPGA I'm using.

_________________
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
Back to top
View user's profile Send private message Visit poster's website
Peake



Joined: Jun 29, 2007
Posts: 1109
Location: Loss Angeles
Audio files: 3

PostPosted: Wed May 21, 2008 7:38 am    Post subject: Reply with quote  Mark this post and the followings unread

The most important thing in my experience is to have two or three separate delay lines whose feedback become common at some point. Then to add static allpass filters into the feedback loops. It's been 12 years since I've worked with Karplus-Strong so bear with me.
Back to top
View user's profile Send private message
JovianPyx



Joined: Nov 20, 2007
Posts: 1249
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Wed May 21, 2008 7:46 am    Post subject: Reply with quote  Mark this post and the followings unread

Peake wrote:
The most important thing in my experience is to have two or three separate delay lines whose feedback become common at some point. Then to add static allpass filters into the feedback loops. It's been 12 years since I've worked with Karplus-Strong so bear with me.


But this isn't a Karplus-Strong synth Cool It's an LA/FM job.

Still, I'm curious about this point as it might refer to my PolyDaWG/8 - also a polysynth, but is based on K-S. I had only delved into the basic waveguide technique for it. To provide a movable "pickup", I employ a digital comb filter which uses a delay line. It's length controls the "pickup" position. The waveguide loop I use is very simple, just the waveguide into a single stage IIR variable cutoff lowpass filter.

Do you have technical info or pointers/URLs to technical info about this?

_________________
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
Back to top
View user's profile Send private message Visit poster's website
Peake



Joined: Jun 29, 2007
Posts: 1109
Location: Loss Angeles
Audio files: 3

PostPosted: Wed May 21, 2008 8:10 am    Post subject: Reply with quote  Mark this post and the followings unread

I'd done a little work for a company using this tech and am too close to breaking NDA to continue. I'm certain that it's on the web, as I'd described.

You're doing great work. I enjoyed your solution to "microphone" placement.
Back to top
View user's profile Send private message
JovianPyx



Joined: Nov 20, 2007
Posts: 1249
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Wed May 21, 2008 8:16 am    Post subject: Reply with quote  Mark this post and the followings unread

Peake wrote:
I'd done a little work for a company using this tech and am too close to breaking NDA to continue. I'm certain that it's on the web, as I'd described.

You're doing great work. I enjoyed your solution to "microphone" placement.


I'll have a look around, but honestly, I had read everything I could find on K-S when I started that and I found no information about allpass filters regarding K-S.

The pickup technique using a comb filter is described on several K-S information websites. It may even be a part of the whole K-S package, I can't remember. The original K-S system used two delay lines for the waveguide. That system used taps on both waveguides to provide a movable pickup. Then math was used to simplify the dual waveguide system to a single waveguide plus comb filter to do exactly the same work, but using less RAM.

_________________
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
Back to top
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1249
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Wed May 21, 2008 9:37 am    Post subject: Reply with quote  Mark this post and the followings unread

Ok, I see the references to allpass. This is similar to the use of Lagrange interpolators, it provides a fractional delay that allows arbitrary pitches.

With my K-S synth, I did something different, some may even say wrong headed. I calculated the pitch error using _integral_ delay lengths and found that I could achieve a pitch accuracy of +/- 5 cents or better over 3.5 octaves if I used delay lines of 2048 maximum length. A ROM contains the lengths for each pitch.

Yes, this does restrict the range of the instrument, but many natural instruments have restricted range. Since I got more than 3 octaves, I was happy. The technique I used allowed for a much simpler design - it works and is musically useful.

I used fractional delay lines when I experimented with the phLUTe, but I wasn't able to eliminate or substantially reduce the transient that occurs at pitch change. Portamento actually made this worse.

At some point, I will probably revisit the PolyDaWG, using smaller waveguides and Lagrange interpolators, I may be able to make a 16 string synth in the same 16K words of RAM. It would be nice to have a larger harp. Seems I need to get busy on a 16 voice MIDI controller... It looks as if the state machine might be fast enough to do it, might be fast enough.

_________________
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
Back to top
View user's profile Send private message Visit poster's website
Peake



Joined: Jun 29, 2007
Posts: 1109
Location: Loss Angeles
Audio files: 3

PostPosted: Wed May 21, 2008 1:37 pm    Post subject: Reply with quote  Mark this post and the followings unread

Allpass filtration in the feed back will cause the harmonics to begin moving. The more stages, the more movement. Enough stages to present the effect of a cello being bowed will also severely impair pitch tracking...

There should be plenty of information on the web regarding the cross-feedback tip I'd mentioned. It should be easy enough to guesstimate and experiment with, at minimum.
Back to top
View user's profile Send private message
JovianPyx



Joined: Nov 20, 2007
Posts: 1249
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Fri May 30, 2008 11:12 am    Post subject: Reply with quote  Mark this post and the followings unread

A new version (l) is available, see the GateManPoly link in my sig. Several fixes and improvements are included. In the pub folder of the zip of the source is a description of the MIDI system exclusive message values used to program the synth's "patch". A version history is on the page near the bottom.
_________________
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
Back to top
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1249
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Fri May 30, 2008 3:28 pm    Post subject: Reply with quote  Mark this post and the followings unread

And here is another GateManPoly sample. It's a synthetic steel drum sound.


gatemanpoly_steeldrums.wav
 Description:
GateManPoly - Synthetic Steel Drum Sound Sample

Download
 Filename:  gatemanpoly_steeldrums.wav
 Filesize:  5.12 MB
 Downloaded:  319 Time(s)


_________________
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
Back to top
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1249
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Thu Jun 05, 2008 8:34 am    Post subject: Reply with quote  Mark this post and the followings unread

I've updated the GateManPoly synth project files to contain a GUI patch editor.

If interested, see:

http://www.fpga.synth.net/pmwiki/pmwiki.php?n=FPGASynth.GateManPoly

The whole project file is in the zip file, i.e., if you download and install Microsoft VB2008 Express Edition (free), you can open and modify the patch editor if you like or you can compile and run it.

_________________
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
Back to top
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1249
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Wed Dec 08, 2010 5:35 pm    Post subject: Reply with quote  Mark this post and the followings unread

Recent updates include the addition of a pitch ADSR.

The pitch ADSR affects pitch so that harmonic glides both negative and positive are possible. The effect is a pitch effect, not a frequency effect.

I've also improved the ADSR code to use less slices.

sample attached, such as it is...

If there is interest, I will post the source code for a Spartan-3E Starter Kit.


sg_2010-12-08.mp3
 Description:
This GateManPoly patch uses the pitch ADSR.

That is somewhat responsible for the phasing sound.

Pardon the clipping.

Download
 Filename:  sg_2010-12-08.mp3
 Filesize:  3 MB
 Downloaded:  223 Time(s)


_________________
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
Back to top
View user's profile Send private message Visit poster's website
Skrog Productions



Joined: Jan 07, 2009
Posts: 781
Location: Scottish Borders
Audio files: 87

PostPosted: Thu Dec 09, 2010 11:00 am    Post subject: Reply with quote  Mark this post and the followings unread

very interesting Scott, the new mp3 sounds really like a patch from my Oberheim Matrix 6R, exellent , i like it Smile.


Dave.

_________________
www.myspace.com/skrogproductions
Back to top
View user's profile Send private message
JovianPyx



Joined: Nov 20, 2007
Posts: 1249
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Thu Dec 09, 2010 11:37 am    Post subject: Reply with quote  Mark this post and the followings unread

Thanks Dave!

This isn't a new idea by any means. I have a Roland D-110 which has a pitch envelope available to each "partial". I've always wanted to add one to GateManPoly since it was modelled loosely on that synth.

I should have described the patch too -

Each of the 4 NCOs is detuned by it's own ADSR, 2 of the NCOs have wider pitch detune than the other two. Each set of 2 NCOs have ADSR output which progresses in the opposite direction, i.e., one tunes negatively, the other positively.

I've added hardware to allow switching between slider tuning and ADSR tuning and on this patch the difference is more than subtle, without the ADSR detune, the patch is lackluster and relatively lifeless. There is a small amount of detune added by a "noise LFO", a noise source fed to a filter with a very low Fc.

I'll attach a sample that shows this. The first note is without the ADSR detune, the second is with ADSR detuning enabled.


GateManPoly_20101209.mp3
 Description:
Sample of GateManPoly without ADSR detune and with ADSR detune.

Download
 Filename:  GateManPoly_20101209.mp3
 Filesize:  562.11 KB
 Downloaded:  214 Time(s)


_________________
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
Back to top
View user's profile Send private message Visit poster's website
Dan Lavin



Joined: Nov 09, 2006
Posts: 620
Location: Spring Lake, Mi, USA
Audio files: 21

PostPosted: Thu Dec 09, 2010 7:17 pm    Post subject: Reply with quote  Mark this post and the followings unread

Very nice Scott! I really like the way the harmonics sing out after the note "settles down".....reminds me of electric guitar feedback.....like an overtone.
_________________
Synth DIY since 1977!
Back to top
View user's profile Send private message
Blue Hell
Site Admin


Joined: Apr 03, 2004
Posts: 20681
Location: The Netherlands, Enschede
Audio files: 156
G2 patch files: 318

PostPosted: Sun Dec 12, 2010 8:22 am    Post subject: Reply with quote  Mark this post and the followings unread

Sounds good!
_________________
Jan
Back to top
View user's profile Send private message Visit poster's website
JovianPyx



Joined: Nov 20, 2007
Posts: 1249
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Fri Dec 24, 2010 12:29 pm    Post subject: Reply with quote  Mark this post and the followings unread

More improvements and bug fixes.

And the ADSRs were too "fast", that is, the slowest settings for ramp times were not slow enough. I tried to reduce the sample rate for just the ADSRs, but I found that they started adding clicks to the output as the system then used larger numbers for rates (meaning the jump from the last value is larger). I've decided that it's better to sacrifice some FPGA real estate and preserve the sample rate (250 KHz in this case) for the ADSRs.

Still need to test that the ADSRs react fast enough when I want them to be fast.

I'll include a short sample of several notes of a chord being held and lifted slowly - this will demonstrate that the animation procedes mostly "hands off".

The patch consists of 4 sawtooth oscillators which are pitch controlled by the pitch ADSR to start in unison, move apart in pitch and then back to near unison. A state variable filter per voice is opening slowly and at release is closing slowly.

EDIT ADD: Oh - and I love to mention that this is produced by a 12 bit DAC Smile


Ominous_Chords.mp3
 Description:
Ominous

Download
 Filename:  Ominous_Chords.mp3
 Filesize:  1.41 MB
 Downloaded:  209 Time(s)


Ominous_Chords_01.mp3
 Description:
I noticed some clipping in the other sample. Here's one where I hear no clipping.

Download
 Filename:  Ominous_Chords_01.mp3
 Filesize:  1.28 MB
 Downloaded:  236 Time(s)


_________________
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
Back to top
View user's profile Send private message Visit poster's website
Dan Lavin



Joined: Nov 09, 2006
Posts: 620
Location: Spring Lake, Mi, USA
Audio files: 21

PostPosted: Fri Dec 24, 2010 3:40 pm    Post subject: Reply with quote  Mark this post and the followings unread

Awesome work, as usual, Scott!
_________________
Synth DIY since 1977!
Back to top
View user's profile Send private message
JovianPyx



Joined: Nov 20, 2007
Posts: 1249
Location: West Red Spot, Jupiter
Audio files: 161

PostPosted: Sat Nov 05, 2011 4:30 pm    Post subject: Reply with quote  Mark this post and the followings unread

I've just added the DDR SDRAM interface to this synth giving it 16+ seconds of looped delay effect.
_________________
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
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic Moderators: jksuperstar, Scott Stites, Uncle Krunkus
Page 1 of 1 [20 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
 Forum index » DIY Hardware and Software
Jump to:  

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
e-m mkii

Please support our site. If you click through and buy from
our affiliate partners, we earn a small commission.


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2009 by electro-music.com - Conditions Of Use