Author |
Message |
Tim Kleinert
Joined: Mar 12, 2004 Posts: 1148 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236
|
Posted: Sun Sep 09, 2012 5:06 am Post subject:
PolyGranuSyn_Y and PolyGranuSyn_Z Subject description: Multimode filters per grain, anyone? |
 |
|
Being housebound, pumped full with painkillers and antivirals as herpes zoster happily gnaws away at the skin of my left leg , what better to do than patch the G2?
I lately made some discoveries pertaining the behaviour of the G2 oscillator modules in low-frequency mode. One of those led me to a partial redesign of my (pseudo-)sample-based granular techniques, considerably reducing DSP load without any compromise in sound quality. As a result, I was able to increase the feature set of PolyGranuSyn, which now additionally offers independent multimode filters per grain (4 grains per voice), both with grain randomisation of filter frequency and resonance. One of the new algorithms (PolyGranuSyn_Z) also offers the possibility of panning the grains in the stereo field.
My favourite feature of PolyGranuSyn since the very first version has always been the ability to define the grain size reciprocally as frequency (instead of samples) and optionally track it via the keyboard. If you whip up the grain frequency into the audio-range, the whole thing becomes a tonally playable wavetable/hardsync affair, with the source audio acting as the wavetable. How good is that? Slowly moving through the source sample produces otherworldly timbral motions I've so far never heard anywhere else. (Somebody pointed out to me that this situation is actually called FOF synthesis. From granular to FOF -always keep the lines blurred.)
Sadly, I've never found this feature anywhere else, so here I am back at the G2, improving that old design. I'll stick my neck out now and say that, sample length and polyphony aside, especially with the new filter section PolyGranuSyn easily outperforms heavyweights like Absynth or Alchemy in the creative granular synthesis department. And that from a 9 year old synth that was never meant to sample audio in the first case, let alone mangle it in a granular method. The old red tin box never ceases to amaze.
Y and Z -what's the difference? Both patches are absolute identical except for the grain engine. Y follows the philosophy of previous PolyGranuSyn incarnations, in which the four grains per voice are sequentially phase-correlated to each other (like in a quadrature oscillator scheme). At that time I chose this design for maximum sonic density, as the grain overlap is always maximal. It produces superior results especially when doing time-stretching effects and "granular-goes-FOF-synthesis". But conceptually it isn't 100% true granular synthesis. So in PolyGranuSyn Z, I made the four grains totally independent of each other "in the true granular spirit". This independence makes it feasible to pan the grains in the stereo field (which Z can do) and works well for unpredictable "cloud-like" ambient drones and anything that should sound "organic". But It's less suited for situations where the sonic density should be very predictable, because, by definition and implementation, it can't be.
I couldn't decide which I liked more, and since I couldn't roll both into one patch due to DSP restrictions (I'm at 100% flat already as it is), I went ahead and patched them both.
PolyGranuSyn Y - the controls:
Page A1:
INPUT Source: Select audio in channel 1-4 for sample capturing.
INPUT Monitor: Activating this button routes the incoming audio (processed by the input compressor and EQ, FEEDBACK WARNING!) to the output for monitoring purposes. Knob adjusts volume.
SAMPLE Capture: Hit this button to capture 2.7 seconds of audio (yes, I wish it was more too, and not volatile...)
Page A2:
INPUT COMPRESSOR (Params): Compress the incoming signal if needed
Page A3:
INPUT EQUALISER (Params): EQ the incoming signal if needed
Page B1:
PLAYBAK <Speed>: Bidirectional sample playback control, also connected to the pitch stick in order to conveniently "cruise" through the source audio.
PLAYBAK <Scrub>: Scrub through the source audio, also connected to the mod wheel. Scrub and speed work together.
PLAYBAK KBT: Makes playback speed track the keyboard. Important especially for FOF situations in order to keep things in tune.
PLAYBAK Random: Randomisation of the grain playback position within the source sample.
PLAYBAK KB Trig: Resets playback position to start point at each key press. If you deactivate this, the playback becomes "free-running", nice with ambient drones.
Page B2:
PITCH Coarse & Fine: Sample playback pitch of the grains.
PITCH KBT: Toggles keyboard tracking of playback pitch.
PITCH Random: Randomising amount of grain playback pitch.
TUNING TOOL: an activatable oscillator for tuning purposes.
Page B3:
GRAINS Rate & Fine: Adjust grain rate.
GRAINS KBT: Toggles keyboard tracking of grain rate.
GRAINS Random: Randomising the grain rate.
UNISON Width, Detune, On/Off: Pseudo-unison (polyphonic keyboard-tracking chorus like NL3), with controllable stereo width and detune. To fatten up things and bring some life into the stereo image.
Page C1:
Volume Envelope
Page C2:
Activation switches for individual grains.
Page D1: Yes. FILTER PER GRAIN!
FiltFrq, FiltTyp, Filt dB (morph knobs): Adjust filter frequency, select filter type (LP, BP, HP, BR) and roll off (12 or 24 dB). As mentioned, these functionalities had to be implemented via morph knobs. Since there are no "morph switches", you'll have to move the knobs a bit (especially when toggling the filter rolloff) without getting direct visual feedback. Use your ears...
FILTER FREQ KBT: Activate keyboard tracking of grain filter frequency
FILTER FREQ Random: Randomisation of grain filter frequency
RESONANCE Level: As it says...
RESONANCE Random: Randomisation of grain filter resonance.
Page E1:
Pad Switches for voice area outputs and FX input. I always incorporate these in all my patches because headroom is often an issue with the G2.
Page E2: Deluxe stereo delay
DELAY L and R Time: Delay times for L and R channel, max 1 second.
DELAY Feed: Amount of Feedback/Feedforward
DELAY FB<>FF: Crossfade between feedback (L and R channels feed back on themselves) and feedforward (L and R channel feed to each other). This in conjunction with the input pan control enables all kinds of mono, stereo and pingpong delay arrangements.
DELAY Damping, DAMPING Freq: Allpass filters in the feed paths. Damping adjusts allpass to lowpass.
INPUT Pan: Pans signal to L and R delay channels. (Eg. for pingpong delays, see above)
DELAY Dry/Wet
Page E3: Reverb & output
PolyGranuSyn Z - the controls:
Everything is identical except for the grain engine section (described above):
Page B3:
Grains (a morph group knob): Coarse control of grain rate.
GRAINS Fine: Fine control
GRAINS KBT: Toggles keyboard tracking of grain rate.
GRAINS Random: Randomisation of grain rate.
GRAINS KB Trig: Since, unlike PolyGranuSyn Y, the grains are independent of each other, you have the choice of retriggering them with each keypress, or not. Keep in mind though that retriggering them will put them in identical phase to each other, which thins out the sound considerably and has to be combated by applying grain rate randomisation. This is normal granular behaviour though.
If you disable retriggering, decorrelated grains will remain decorrelated when you play a new note. However this can produce small glitches in the attack phases of the new notes, as the voice VCA will open up before the decorrelated grains have "settled" into their new pitches and whatnot. (I could have prevented this with extra circuitry (in PolyGranuSyn Y it is prevented), but the DSP is already totally maxed out here both cycles- and memory-wise.
GRAINS Stereo: My favourite. Since PolyGranuSyn Z has true independent grains, panning them evenly across the stereo field produces a beautiful organic spatial effect.
That's it. On both patches I populated some variations with settings that will hopefully produce interesting results with your source audio. I didn't overdo it though because it's pointless.
Have fun.
cheers
t
EDIT: I wanted to add that the overall sound quality is generally improved. I recalibrated the pseudo-sampling circuit to the max limit of the G2 numeric resolution. Also, I discovered that the x-mux module (used in version XL for grain crossfading) was producing subtle "clicky" artefacts, so I didn't use it here. (At that point I thought it was the delay lines acting up. Having filters on the grains revealed that it wasn't.)
EDIT 2: I totally forgot to restate the obvious. This patch (like many of my designs of late) totally maxes out the G2, with each voice using a whole DSP and the FX section another. Means: 7 voices for expanded G2s (3 for unexpanded). Also, all interslot busses are used up. There are some weird Houdini-style patching tricks in there as I was hitting the DSP-ceiling constantly.
EDIT 3: Now with demo mp3 of PolyGranuSyn_Y. Just nonsensical noodling around to show off some of the capabilities.
EDIT 4: I just saw that the uploaded patches have very low levels. I designed them in bed, with cans on, so I didn't notice. Just turn up the patch level and check the VA OUT/FX IN pads to get more level.
Description: |
Polyphonic granular synthesizer, 4 independent grains per voice, multimode filter per grain, comprehensive grain parameter keyboard tracking and randomisation. See corresponding thread for comprehensive parameter description. |
|
 Download |
Filename: |
PolyGranuSynZ_TK.pch2 |
Filesize: |
10.05 KB |
Downloaded: |
5098 Time(s) |
Description: |
Polyphonic granular synthesizer, 4 sequentially phase-correlated grains per voice, multimode filter per grain, comprehensive grain parameter keyboard tracking and randomisation. See corresponding thread for comprehensive parameter description. |
|
 Download |
Filename: |
PolyGranuSynY_TK.pch2 |
Filesize: |
10.29 KB |
Downloaded: |
5033 Time(s) |
Description: |
Demo mp3 of PolyGranuSyn_Y doing it's thing. Just a sample of me saying "Nord Modular G2", hitting some keys and tweaking knobs, switching the variation here and there. |
|
 Download |
Filename: |
PolyGranuSyn_Y_demo.mp3 |
Filesize: |
9.52 MB |
Downloaded: |
2311 Time(s) |
|
|
Back to top
|
|
 |
dorremifasol

Joined: Sep 28, 2006 Posts: 814 Location: Barcelona, Spain
Audio files: 7
G2 patch files: 49
|
Posted: Sun Sep 09, 2012 12:42 pm Post subject:
|
 |
|
Very impressive Tim, the mp3 is amazing! I wonder if Clavia knows about your experiments.  _________________ Cheers,
Albert |
|
Back to top
|
|
 |
Tim Kleinert
Joined: Mar 12, 2004 Posts: 1148 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236
|
Posted: Sun Sep 09, 2012 1:11 pm Post subject:
|
 |
|
dorremifasol wrote: | Very impressive Tim, the mp3 is amazing! I wonder if Clavia knows about your experiments.  |
Thanks, Albert.
Wout keeps maintaining that the Clavia staff does indeed monitor this forum. If so, I do hope they see/hear this and get a kick out of it as much as I do.
Hi Clavia, if you're reading this. Who would have thought that your "discontinued product" was capable of feats like these? Sure not me. Such a pity you won't come up with a G3. I'd gladly be of assistance and do some patches that will reverse the second law of thermodynamics.
...ah, I can dream.  |
|
Back to top
|
|
 |
iPassenger

Joined: Jan 27, 2007 Posts: 1067 Location: Sheffield, UK
Audio files: 5
G2 patch files: 78
|
|
Back to top
|
|
 |
Modularmind
Joined: May 06, 2009 Posts: 17 Location: Sweden
G2 patch files: 3
|
Posted: Tue Sep 11, 2012 12:22 pm Post subject:
|
 |
|
I'm in awe by all the things you manage to do with this synth Tim. I'm very grateful you share your work. I'm going to play a lot with these two. Thanks! |
|
Back to top
|
|
 |
BobTheDog

Joined: Feb 28, 2005 Posts: 4040 Location: England
Audio files: 32
G2 patch files: 15
|
Posted: Mon Sep 17, 2012 1:34 pm Post subject:
|
 |
|
Wow that sounds good, as always I don't understand what the hell you are talking about though
My G2 is packed away at the moment as I redecorate, when it is reconnected the first thing I do is have a look at these patches.
Hope the leg gets better soon as well. |
|
Back to top
|
|
 |
Tim Kleinert
Joined: Mar 12, 2004 Posts: 1148 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236
|
Posted: Mon Sep 17, 2012 4:28 pm Post subject:
|
 |
|
Modularmind wrote: | I'm in awe by all the things you manage to do with this synth Tim. I'm very grateful you share your work. I'm going to play a lot with these two. Thanks! | You're most welcome. I love to share these things and am very grateful to be part of a community who appreciates them.
BobTheDog wrote: | Wow that sounds good, as always I don't understand what the hell you are talking about though  |
Sorry I'm often so involved with the technical specifics of these patches that I get carried away and totally forget that it's probably a bit over the top. Just ignore it. Load the patch, capture some audio and have fun.
Quote: | Hope the leg gets better soon as well. |
Thanks for the kind words. It's getting better already. |
|
Back to top
|
|
 |
Roland Kuit
Joined: Sep 29, 2003 Posts: 1091 Location: The Netherlands/Sweden
Audio files: 8
G2 patch files: 127
|
Posted: Tue Sep 18, 2012 5:55 am Post subject:
|
 |
|
Tim, great stuff! |
|
Back to top
|
|
 |
miketheman

Joined: Oct 12, 2009 Posts: 56 Location: Gothenburg, sweden
|
Posted: Tue Sep 18, 2012 2:21 pm Post subject:
|
 |
|
I am speechless...
I didn´t know the word/name "Nord Modular G2" could sound in so many ways...
That demo really made me wanting to travel forward in time, where I´m done packing/moving/unpacking/setting up my gears again, to try this patch with guitar MIDI (axon midi converter) + audio from the same source (guitar). _________________ http://monograss.se
http://monograss.bandcamp.com/
http://thesupervised.bandcamp.com/ (legacy) |
|
Back to top
|
|
 |
buzzr
Joined: Dec 13, 2007 Posts: 360 Location: portland
Audio files: 1
G2 patch files: 1
|
Posted: Wed Oct 24, 2012 6:44 pm Post subject:
|
 |
|
You amaze once again Tim. My goodness! |
|
Back to top
|
|
 |
pyrosonic

Joined: Jul 12, 2008 Posts: 383 Location: Kent,Oh. USA
|
|
Back to top
|
|
 |
Roland Kuit
Joined: Sep 29, 2003 Posts: 1091 Location: The Netherlands/Sweden
Audio files: 8
G2 patch files: 127
|
|
Back to top
|
|
 |
mother misty

Joined: May 13, 2004 Posts: 681 Location: Ghent / Belgium
Audio files: 82
G2 patch files: 130
|
Posted: Thu Jan 17, 2013 4:55 am Post subject:
|
 |
|
Oh my gosh
Fantastic Tim! Such a joy to capture some sounds and just tweak away, love these patches, thanks for sharing these!
I hope someone at clavia has red cheeks now
Hope you leg gets better soon!
cheers,
misty _________________ http://www.myspace.com/mariodemeyer |
|
Back to top
|
|
 |
Tim Kleinert
Joined: Mar 12, 2004 Posts: 1148 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236
|
Posted: Thu Jan 17, 2013 9:25 am Post subject:
|
 |
|
A late thanks to Roland and everybody else, and thanks also to you, Misty.
The original post is from September, when my immune system was compromised and I had a bout of shingles. I'm fine again. *knocks on wood*
Glad you folks are enjoying the patch.  |
|
Back to top
|
|
 |
General Elektrick

Joined: Apr 06, 2004 Posts: 254 Location: Berlin/Germany
Audio files: 1
G2 patch files: 15
|
Posted: Wed Jul 30, 2014 1:36 pm Post subject:
|
 |
|
Great patching here! Wow Tim! And thanks 4 sharing! _________________ Best,
General Elektrick
"If something is boring after two minutes, try it for four. If still boring, then eight. Then sixteen. Then thirty-two. Eventually one discovers that it is not boring at all." --John Cage. |
|
Back to top
|
|
 |
Tim Kleinert
Joined: Mar 12, 2004 Posts: 1148 Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236
|
Posted: Tue Nov 18, 2014 4:43 pm Post subject:
|
 |
|
You're welcome.  |
|
Back to top
|
|
 |
W.T.

Joined: Jul 11, 2004 Posts: 272 Location: The Netherlands
Audio files: 1
G2 patch files: 11
|
Posted: Fri Nov 27, 2015 9:42 am Post subject:
|
 |
|
A little late at the party, but........
this is so impressive! No I am getting headaches by not getting my head around the technical site..... I'll stop trying and enjoy the patch  _________________ Clavia stuff that I use : expanded Nord rack & NM G2 engine. |
|
Back to top
|
|
 |
midinerd
Joined: May 08, 2019 Posts: 3 Location: Frankfurt
|
Posted: Mon May 13, 2019 8:10 am Post subject:
Re: PolyGranuSyn_Y and PolyGranuSyn_Z Subject description: Multimode filters per grain, anyone? |
 |
|
Tim Kleinert wrote: | Being housebound, pumped full with painkillers and antivirals as herpes zoster happily gnaws away at the skin of my left leg , what better to do than patch the G2?
I lately made some discoveries pertaining the behaviour of the G2 oscillator modules in low-frequency mode. One of those led me to a partial redesign of my (pseudo-)sample-based granular techniques, considerably reducing DSP load without any compromise in sound quality. As a result, I was able to increase the feature set of PolyGranuSyn, which now additionally offers independent multimode filters per grain (4 grains per voice), both with grain randomisation of filter frequency and resonance. One of the new algorithms (PolyGranuSyn_Z) also offers the possibility of panning the grains in the stereo field.
My favourite feature of PolyGranuSyn since the very first version has always been the ability to define the grain size reciprocally as frequency (instead of samples) and optionally track it via the keyboard. If you whip up the grain frequency into the audio-range, the whole thing becomes a tonally playable wavetable/hardsync affair, with the source audio acting as the wavetable. How good is that? Slowly moving through the source sample produces otherworldly timbral motions I've so far never heard anywhere else. (Somebody pointed out to me that this situation is actually called FOF synthesis. From granular to FOF -always keep the lines blurred.)
Sadly, I've never found this feature anywhere else, so here I am back at the G2, improving that old design. I'll stick my neck out now and say that, sample length and polyphony aside, especially with the new filter section PolyGranuSyn easily outperforms heavyweights like Absynth or Alchemy in the creative granular synthesis department. And that from a 9 year old synth that was never meant to sample audio in the first case, let alone mangle it in a granular method. The old red tin box never ceases to amaze.
Y and Z -what's the difference? Both patches are absolute identical except for the grain engine. Y follows the philosophy of previous PolyGranuSyn incarnations, in which the four grains per voice are sequentially phase-correlated to each other (like in a quadrature oscillator scheme). At that time I chose this design for maximum sonic density, as the grain overlap is always maximal. It produces superior results especially when doing time-stretching effects and "granular-goes-FOF-synthesis". But conceptually it isn't 100% true granular synthesis. So in PolyGranuSyn Z, I made the four grains totally independent of each other "in the true granular spirit". This independence makes it feasible to pan the grains in the stereo field (which Z can do) and works well for unpredictable "cloud-like" ambient drones and anything that should sound "organic". But It's less suited for situations where the sonic density should be very predictable, because, by definition and implementation, it can't be.
I couldn't decide which I liked more, and since I couldn't roll both into one patch due to DSP restrictions (I'm at 100% flat already as it is), I went ahead and patched them both.
PolyGranuSyn Y - the controls:
Page A1:
INPUT Source: Select audio in channel 1-4 for sample capturing.
INPUT Monitor: Activating this button routes the incoming audio (processed by the input compressor and EQ, FEEDBACK WARNING!) to the output for monitoring purposes. Knob adjusts volume.
SAMPLE Capture: Hit this button to capture 2.7 seconds of audio (yes, I wish it was more too, and not volatile...)
Page A2:
INPUT COMPRESSOR (Params): Compress the incoming signal if needed
Page A3:
INPUT EQUALISER (Params): EQ the incoming signal if needed
Page B1:
PLAYBAK <Speed>: Bidirectional sample playback control, also connected to the pitch stick in order to conveniently "cruise" through the source audio.
PLAYBAK <Scrub>: Scrub through the source audio, also connected to the mod wheel. Scrub and speed work together.
PLAYBAK KBT: Makes playback speed track the keyboard. Important especially for FOF situations in order to keep things in tune.
PLAYBAK Random: Randomisation of the grain playback position within the source sample.
PLAYBAK KB Trig: Resets playback position to start point at each key press. If you deactivate this, the playback becomes "free-running", nice with ambient drones.
Page B2:
PITCH Coarse & Fine: Sample playback pitch of the grains.
PITCH KBT: Toggles keyboard tracking of playback pitch.
PITCH Random: Randomising amount of grain playback pitch.
TUNING TOOL: an activatable oscillator for tuning purposes.
Page B3:
GRAINS Rate & Fine: Adjust grain rate.
GRAINS KBT: Toggles keyboard tracking of grain rate.
GRAINS Random: Randomising the grain rate.
UNISON Width, Detune, On/Off: Pseudo-unison (polyphonic keyboard-tracking chorus like NL3), with controllable stereo width and detune. To fatten up things and bring some life into the stereo image.
Page C1:
Volume Envelope
Page C2:
Activation switches for individual grains.
Page D1: Yes. FILTER PER GRAIN!
FiltFrq, FiltTyp, Filt dB (morph knobs): Adjust filter frequency, select filter type (LP, BP, HP, BR) and roll off (12 or 24 dB). As mentioned, these functionalities had to be implemented via morph knobs. Since there are no "morph switches", you'll have to move the knobs a bit (especially when toggling the filter rolloff) without getting direct visual feedback. Use your ears...
FILTER FREQ KBT: Activate keyboard tracking of grain filter frequency
FILTER FREQ Random: Randomisation of grain filter frequency
RESONANCE Level: As it says...
RESONANCE Random: Randomisation of grain filter resonance.
Page E1:
Pad Switches for voice area outputs and FX input. I always incorporate these in all my patches because headroom is often an issue with the G2.
Page E2: Deluxe stereo delay
DELAY L and R Time: Delay times for L and R channel, max 1 second.
DELAY Feed: Amount of Feedback/Feedforward
DELAY FB<>FF: Crossfade between feedback (L and R channels feed back on themselves) and feedforward (L and R channel feed to each other). This in conjunction with the input pan control enables all kinds of mono, stereo and pingpong delay arrangements.
DELAY Damping, DAMPING Freq: Allpass filters in the feed paths. Damping adjusts allpass to lowpass.
INPUT Pan: Pans signal to L and R delay channels. (Eg. for pingpong delays, see above)
DELAY Dry/Wet
Page E3: Reverb & output
PolyGranuSyn Z - the controls:
Everything is identical except for the grain engine section (described above):
Page B3:
Grains (a morph group knob): Coarse control of grain rate.
GRAINS Fine: Fine control
GRAINS KBT: Toggles keyboard tracking of grain rate.
GRAINS Random: Randomisation of grain rate.
GRAINS KB Trig: Since, unlike PolyGranuSyn Y, the grains are independent of each other, you have the choice of retriggering them with each keypress, or not. Keep in mind though that retriggering them will put them in identical phase to each other, which thins out the sound considerably and has to be combated by applying grain rate randomisation. This is normal granular behaviour though.
If you disable retriggering, decorrelated grains will remain decorrelated when you play a new note. However this can produce small glitches in the attack phases of the new notes, as the voice VCA will open up before the decorrelated grains have "settled" into their new pitches and whatnot. (I could have prevented this with extra circuitry (in PolyGranuSyn Y it is prevented), but the DSP is already totally maxed out here both cycles- and memory-wise.
GRAINS Stereo: My favourite. Since PolyGranuSyn Z has true independent grains, panning them evenly across the stereo field produces a beautiful organic spatial effect.
That's it. On both patches I populated some variations with settings that will hopefully produce interesting results with your source audio. I didn't overdo it though because it's pointless.
Have fun.
cheers
t
EDIT: I wanted to add that the overall sound quality is generally improved. I recalibrated the pseudo-sampling circuit to the max limit of the G2 numeric resolution. Also, I discovered that the x-mux module (used in version XL for grain crossfading) was producing subtle "clicky" artefacts, so I didn't use it here. (At that point I thought it was the delay lines acting up. Having filters on the grains revealed that it wasn't.)
EDIT 2: I totally forgot to restate the obvious. This patch (like many of my designs of late) totally maxes out the G2, with each voice using a whole DSP and the FX section another. Means: 7 voices for expanded G2s (3 for unexpanded). Also, all interslot busses are used up. There are some weird Houdini-style patching tricks in there as I was hitting the DSP-ceiling constantly.
EDIT 3: Now with demo mp3 of PolyGranuSyn_Y. Just nonsensical noodling around to show off some of the capabilities.
EDIT 4: I just saw that the uploaded patches have very low levels. I designed them in bed, with cans on, so I didn't notice. Just turn up the patch level and check the VA OUT/FX IN pads to get more level. |
mind===blown |
|
Back to top
|
|
 |
Oortone
Joined: Mar 07, 2011 Posts: 30 Location: Sweden
|
Posted: Sun Dec 04, 2022 4:47 am Post subject:
|
 |
|
Some ten years later....
...fantastic work!
Very interesting and useful.  |
|
Back to top
|
|
 |
|