Author |
Message |
Tim Kleinert
Joined: Mar 12, 2004 Posts: 1148 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236
|
Posted: Thu Jan 15, 2009 8:30 am Post subject:
Additive Wavetable Synthesizer Subject description: user-definable additive wavetables with 32 partials(!) at good polyphony |
|
|
Hi folks,
Here's a patch with some new tricks, taking the G2 beyond its limits once again.
The problem with doing additive synthesis on the G2 is the sheer bulk of modules required to provide not only a decent amount of partials, but also a good control thereof. 16 partials is about the maximum you can get, if you also want to do something reasonable with those -and even so, a voice will quickly max out a single DSP. Also, it's no easy task to find an architecture which is flexible, but also easy to use. Not the right stuff.
This patch neatly works around both these issues. It provides 8 fully editable waveforms based on 32 (!) partials each. These are represented by two cascaded control-sequencers, which are easy to edit and give instant visual feedback about the harmonic content. These waveforms are then consecutively arranged into a wavetable, which can be smoothly scanned through (manually, and/or by LFO/ENV), providing interesting spectral motions unable to be achieved with any other synthesis approach. (It sounds very similar to some of the Waldorf stuff. In fact, it was inspired by that.)
...and all this at a voice count of 14 voices for expanded G2s.
Well... this has to be the most complex patching I have ever done. The wavetable is built on a 100ms delay-line, which is sample-accurately locked as to serve as sampling memory. This delayline (per voice) is "loaded" with the waveforms at patch startup or variation change by an intricate procedure which resides in the FX area and pipes back "stuff" to the voices via interslot busses. It works like this: Each of the 8 waveform is represented by two cascaded control sequencers (32 partial levels) which are scanned through consecutively -waveform by waveform, partial by partial. The retrieved values drive a sine oscillator at increasing fractional offsets (1:2:3:4 etc.), thereby gradually filling up the wavetable with the required spectral information. This takes 3.2 seconds to complete (sorry). Once this "building up" is complete, the delayline shuts off into 100% feedback and acts as wavetable memory from there on. This wavetable memory can now be "scanned" by sample-accurately calibrated DIY sawtooth oscillators, recreating the desired waveforms at a far lower DSP cost than having to generate each partial separately in the voice area. With 2 readout pointers and crossfading, smooth transition between those waveforms then is achieved.
...sort of...
Here are the controls:
WT Scan; Manual - Manual position in the wavetable. The wavetable has a range from 0- 63, with the 8 waveforms found at increments of 8 (0, 8, 16, 32 etc.). Waveforms are crossfaded inbetween those values.
WT Scan; ENV Amt, LFO Amt - Scan the wavetable with dedicated envelope and LFO.
WAVETABLE; Reload! - Hit this button to reload the wavetable (this takes 3.2 seconds). Note that the wavetable has to be reloaded after editing a waveform, in order to hear the change!
PARTIALS LOAD; Level - Sets the overall level of the partials being loaded into the wavetable. If you encounter clipping, lower this. If the voices have oveall low volume, raise it. (Again, you have to hit reload after changing this parameter.)
WT LFO (Parameters) - wavetable-scanning LFO controls
WT ENV (Parameters) - wavetable-scanning ENV controls
VOLUME ENV & Voice Level - loudness control
plus FX: Chorus and stereo delay (sorry, no DSP left for reverb).
The 8 waveforms can be neatly edited from the panel with the "patch edit function". The corresponding modules are found in the first 2 columns of the FX area. The waveforms are labeled A,B,C...H and the two control sequencers represent partials 1-16 or 17-32. The sliders/knobs determine the partial levels, and the buttons underneath neatly mute/unmute the partial. Remember to hit "Reload!" -sorry for the inconvenience.
Note 1: the tuning isn't 100% perfect due to the DIY oscillator drivers. But: NO ALIASING!
Note 2: This patch uses 3 interslot busses to pipe information from the FX area into the voices!
Note 3: The wavetable will automatically reload at patch startup or variation change.
Haven't had time for variations yet. Just wanted to get this off my mind, so I stop spending so much time on it, for fucks sake!
best,
tim
Edit: As usual, this is a work in progress. Optimised version(s) below in the thread.
Description: |
synthesizer model providing user-definable additive wavetables with 32 partials(!), at good polyphony |
|
Download |
Filename: |
AdditWavetableTK.pch2 |
Filesize: |
10.78 KB |
Downloaded: |
1968 Time(s) |
Last edited by Tim Kleinert on Fri Jan 16, 2009 7:46 am; edited 2 times in total |
|
Back to top
|
|
|
iPassenger
Joined: Jan 27, 2007 Posts: 1067 Location: Sheffield, UK
Audio files: 5
G2 patch files: 78
|
|
Back to top
|
|
|
Wan
Joined: Mar 31, 2004 Posts: 259 Location: Netherlands, Ugchelen
Audio files: 4
G2 patch files: 46
|
Posted: Fri Jan 16, 2009 5:10 am Post subject:
|
|
|
Also haven't loaded it yet, my G2X is not available here for me, but i'm thorougly impressed by your description and design.
I'm looking forward trying out this synth, thank you very much for providing these fantastic patches! _________________ Grtz Wan |
|
Back to top
|
|
|
Tim Kleinert
Joined: Mar 12, 2004 Posts: 1148 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236
|
|
Back to top
|
|
|
jima
Joined: Sep 06, 2006 Posts: 67 Location: Stourbridge, West Midlands UK
Audio files: 1
G2 patch files: 2
|
Posted: Fri Jan 16, 2009 10:42 am Post subject:
|
|
|
Fantastic work, Tim, I love it already!
Looking forward to playing with it...
Jim |
|
Back to top
|
|
|
dorremifasol
Joined: Sep 28, 2006 Posts: 814 Location: Barcelona, Spain
Audio files: 7
G2 patch files: 49
|
Posted: Fri Jan 16, 2009 12:21 pm Post subject:
|
|
|
Marvelous work! State of the art programing. _________________ Cheers,
Albert |
|
Back to top
|
|
|
zynthetix
Joined: Jun 12, 2003 Posts: 838 Location: nyc
Audio files: 10
G2 patch files: 13
|
Posted: Fri Jan 16, 2009 8:50 pm Post subject:
|
|
|
This is impressive. Thanks and keep it up. |
|
Back to top
|
|
|
G2egory
Joined: Nov 19, 2004 Posts: 69 Location: Charlottesville VA
Audio files: 3
G2 patch files: 2
|
Posted: Sat Jan 17, 2009 3:53 pm Post subject:
|
|
|
Gorgeous sounding patch. The delayed harmonic ringing makes it sound like the sound is swirling around you. What an expertly programmed Big-Wow sound. Excellent work in the difficult additive synth area that shows off the huge capabilities of a G2/G2X. Thanks for sharing this patch with us. |
|
Back to top
|
|
|
xav
Joined: Mar 21, 2005 Posts: 164 Location: paris
Audio files: 8
G2 patch files: 7
|
Posted: Wed Jan 21, 2009 5:00 am Post subject:
|
|
|
Congratulations Tim!
That's a fabulous patch... I'll try once more to understand step by step how do those DIY osc work. But the sounds are amazing. |
|
Back to top
|
|
|
mother misty
Joined: May 13, 2004 Posts: 681 Location: Ghent / Belgium
Audio files: 82
G2 patch files: 130
|
|
Back to top
|
|
|
Tim Kleinert
Joined: Mar 12, 2004 Posts: 1148 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236
|
Posted: Tue Jan 27, 2009 12:57 pm Post subject:
|
|
|
Glad you are enjoying it.
I need to point something out: I've discovered that the wavetable memory is subject to signal degradation if you leave the patch running for some time. It seems that the delay modules very sublty degrade the signal, and those accumulate over time in the closed feedback loop. I hear a subtle film of high frequency noise getting more and more prominent within 10 minutes or so. Maybe it is due to the 16/24 bit conversion going on. Gotta love Clavia.
Anyway, reloading the wavetable will obviously make it go away instantly, either by hitting "Reload!" or just switching variation forth and back again. Maybe it annoys you less if you look at it like having to retune your drifty vintage analog synth before a take. |
|
Back to top
|
|
|
|