If you have a problem or need to report a bug please email :

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

Something to keep Spogg busy during self-isolation

For general discussion related FlowStone

Re: Something to keep Spogg busy during self-isolation

Postby tulamide » Sun Apr 05, 2020 9:55 pm

martinvicanek wrote:I was actually planning to implement something like a Harmonic Designer tab where the user can create his or her own preferred partials distribution in addition to a number of canned presets. In addition to individual intensities for each partial, it will be possible to control anharmonicity to the degree of completely random frequencies (cymbal synthesis ;) ). Since this involves up to 512 partials for the lowest notes, I had thought of alternatives to moving each partial individually, i.e. controls for certain characteristic parameters like anharmonicity, zero all even partials, high end fall-of etc. There will be a lot of GUI work, especially for displaying the settings result in both the frequency and the time domain with lin/log, zoom, shift, labels, etc.

You know that my focus is rather on DSP while I tend to neglect aspects of good design and usability, the latter being far more important for a sucessful product than the former. So I'll be grateful for any help in that area!

Some of those properties match the ones I had in mind, since back in 2016, when I was thinking about creating an additive synth. That's what the reserved space of "menubar" and "sidebar" are for. However, I can't do anything in the time domain, as that involves knowledge of the DSP, which I lack.

While having shortcuts for the partials control is crucial, it is also important for the user to have a feedback on how the partials will look like. Displaying them will be important. With 512 partials however, it will become a challenge. Even at one pixel wide, it would need at least 512 pixels to display them all. At that size, realtime animation will definitely be out of the game. But drawing on event isn't the worst thing, so that's fine for me. Because of the table updates, that are necessary and interrupt the sound for a brief moment, partials morphing is out of the game, which was one idea I had for a standard additive synth back then. But here are some ideas I had and would be doable:

- Bell shaper: partials would be set around the mouse as center in a bell-like shape, parameters would be "spread" (how many partials are involved) and "intensitiy (how deep the curve goes)
- Noise shaper: partials would be arranged in a noise pattern, according to mouse movement, Parameter would be "Intensity" (Zero would create a straight line at 0.5, full would create a noise pattern over the whole 0 - 1 range) and "new seed"
- Comb shaper: Sets every other partial to 0. Parameter would be "affected partials" selection (oviously odd and even, but maybe also any other pattern, like 3rd, 4th, etc, depends on comments I get regarding usability)
- Rise/Fall shaper: Creates a straight diagonal, either up or down. Parameter would be "Intensity" and "offset" (the more offset, the higher the initial partial's amplitude, if that's the right word for the 0-1 value of a partials)
- Template shaper: Contains pre-defined partial patterns for well-known waveforms like square and saw (and any of whom you know the partial pattern of ;) )
- Math shaper: Maybe to exotic, but the idea is to instruct the generator to do something like this. "every 3 setto previous * 0.5" (Would set every third partial to half the value of the previous one) This could get out of hands in complexity, so definitely the most time consuming to program.

I have more ideas for shapers, but I think we should start small and see, how it goes. Better to have something than to program for years without ever getting done. Some things I think of involve to activate shapers and lock them, so you could for example apply the comb shaper, then the Rise/Fall shaper, but the latter would only affect the partials that are not "combed".
If you feel like gifting:
Posts: 2198
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Something to keep Spogg busy during self-isolation

Postby pshannon » Mon Apr 06, 2020 3:29 am

It looks like Tula and I are on the same page with a partial wave editor. I already started this before I saw Tula's upload and I wanted to share because it is a little different then Tula's. I only modded this and retro fit in to Martin's demo. I am not as experienced in FS as many of you, but I was having fun drawing the wave as I was playing sound. Try it out and I hope you find this mod worthy of the Flowstoners group. :D


Updated file - fixed graph if it is 1 or 0. Fixed careless labels and some text. I also downgraded to pebble 3.0.6 as suggested.

One thing I really noticed and I am not sure why when playing with the partial editor. The 1st half made a big difference in sound, the second half of the partial was not really noticeable. I hope someone can explain or did I miss something?
padOsc3 with partial wave creator 1.0a.fsm
(1.04 MiB) Downloaded 84 times
User avatar
Posts: 102
Joined: Fri Jan 02, 2015 3:08 am

Re: Something to keep Spogg busy during self-isolation

Postby martinvicanek » Tue Apr 07, 2020 5:40 am

Thank you, Tula and Patrick!

Your common observation that the upper partials don't make much difference is partly due to padOsc3 applying a 1/n^2 falloff. (That has changed in the newer versions). The upper partials do matter, not only make they dull sounds bright, their harmonic structure is important, too. Refer for instance to speech synthesis, sibilant processing!

Tulas shapers somehow remind me of image retouching tools. I can see a lot of fun shaping partials in long night sessions! :mrgreen:

Patrick, good idea to add the ability to import/export partial strengths!

I was also thinking of adding the possibility of extracting and using partials from sound samples. Hmmm...

A very brief progress update at my end:
- increased number of partials to 512
- now using 8 wavetables (one per octave)
- wave reader with Hermite interpolation to reduce aliasing
- bugfixes
(128.12 KiB) Downloaded 85 times
User avatar
Posts: 1080
Joined: Sat Jun 22, 2013 8:28 pm

Re: Something to keep Spogg busy during self-isolation

Postby tektoog » Tue Apr 07, 2020 5:45 am

Here is my take on it ;)
I based the partials generation on an advanced random module...
Partials spectrum shape is draw-able also.
If this is at people's taste, I'll keep on going with it too... I still have a few ideas that could make that little thing a real padding beast!
you can count me in! ;) :D

Paddy - MV-TekTooG.rar
(9.98 MiB) Downloaded 73 times

Hope you'll have fun with it...

Edit: Controls are for : - in the column of 4 leds: Blue led (Full partial level) - linked to density knob
yellow led (half partial generation) - linked to red led right under - density and density 1
red led (full spectrum randomization) - density and density 1 knobs (is not affected by falloff and level funtions)
purple led (Falloff random function) - linked to falloff and level sliders;
The red led in the master section allows to link/or not the stretch function to a visual feedback in the frequency display.
All other controls are pretty much the usual...
Feedback is welcome

Last edited by tektoog on Thu Apr 16, 2020 3:42 pm, edited 4 times in total.
"Essential random order for chaotic repetitive sequences"
User avatar
Posts: 80
Joined: Sat Oct 30, 2010 11:49 pm
Location: Geneva - Switzerland

Re: Something to keep Spogg busy during self-isolation

Postby Spogg » Tue Apr 07, 2020 1:11 pm

Wow this has rightly created a lot of interest.
I also had a go at drawing the partials to create an array (512 elements), but just to experiment (nothing worth sharing).

I think I’m starting to understand the underlying concept, so I’ll sum it up and wait to be shot down…

    We don’t actually create a sound clip, like say 6 seconds.
    We do create a “single cycle” and so the start and end points will match due to IFFT.
    This single cycle is made with a huge number of sample points and IFFT bins.
    The partials don’t have to be at integer ratios due to the high resolution (high sample count), so each integer harmonic can be surrounded by non-integer partials to give the so-called bandwidth.
    To get a useful pitched sound this huge single cycle is scanned at a pitch-related rate.

Please let me know if I’m way off the mark, and any further simple explanations or comments would be most helpful.



User avatar
Posts: 2561
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: Something to keep Spogg busy during self-isolation

Postby pshannon » Tue Apr 07, 2020 2:02 pm

The original one I uploaded can be any size partial. Open the module and change the number to what you like. It was originally set much higher and I modded it to use a smaller partial size of 64. The save function will automatically adjust to the size setting you want. If this interface is not what people like and the others provided are better that is fine, let me know thanks. The module was originally meant for drawing a wave to anything you wanted.
User avatar
Posts: 102
Joined: Fri Jan 02, 2015 3:08 am

Re: Something to keep Spogg busy during self-isolation

Postby tektoog » Wed Apr 08, 2020 11:22 am

Hey all,
Sorry for the people who downloaded the previous version but it was bugged...
The random array wasn't catching the right length... It's fixed now... :D
I also changed the GUI a little bit, and added a preset bank within the RAR file.
It's a really nice OSC there... I would have come across such a plug a few years ago, I wouldn't have hesitated to "spend the dough" on it ;) :D
It's so versatile!!! I love it... Really...
Hope you enjoy it as much as I do...
The file is in my previous post.
"Essential random order for chaotic repetitive sequences"
User avatar
Posts: 80
Joined: Sat Oct 30, 2010 11:49 pm
Location: Geneva - Switzerland

Re: Something to keep Spogg busy during self-isolation

Postby k brown » Wed Apr 08, 2020 10:03 pm

I'm following all this with great interest, even though I don't understand anything you guys are saying! :lol:
Last edited by k brown on Thu Apr 16, 2020 10:08 am, edited 1 time in total.
k brown
Posts: 833
Joined: Tue Aug 16, 2016 7:10 pm
Location: San Francisco, CA USA

Re: Something to keep Spogg busy during self-isolation

Postby HughBanton » Sun Apr 12, 2020 11:26 am

All most interesting, this.

Just thought I'd weigh in with a quick reality check about '512 harmonics'.

I'm pretty lucky, at my relatively advanced age, to have reasonable hearing up to 12kHz. (Well my right ear does, anyway; the left one suffered more from juvenile rock-band abuse I fear!)

So, middle C at piano pitch, ballpark 256Hz. Its 512th harmonic sits at 131kHz. Personally I can't hear that very well - any takers? In fact a quick bit of mental arithmetic will show that anything higher than the 50th harmonic is pretty much inaudible .. to us non-canines. Bottom C, on a 61-note keyboard, 64Hz. 512th harmonic is at 32.7kHz. Still no go! Top C?? 1MHz!

It really is 90% down to the low-order harmonics that define how we recognise different tones. Middle-C on a trumpet emits harmonics 1thru 6 strongly, then the ones above this tail off very rapidly, quickly merging with the general non-harmonic noise by the time you get beyond the 20th or so. Oboe-type sounds have a surprisingly similar makeup, basically harmonics 2, 3 & 4 sit higher. A flute .. just 2 or 3 strong harmonics and then a very rapid roll-off into 'low-level-flute-mush'.

Thinking aloud .. only just thought of this .. what might be useful for padOsc is a graphical partial editor, like the ones already posted, but with a horizontal log scale. So for example Harmonics 1-8 would occupy the entire left half (harmonic 8 dead centre) - harm 16 would be 3/4 across, harm 32 at 7/8 across, harm 64 at 15/16 across and so on.

Could be a useful tool? I might give this some thought ...

Keep on developing, great to see such a fruitful innovation.

User avatar
Posts: 119
Joined: Sat Apr 12, 2008 3:10 pm
Location: Evesham, Worcestershire

Re: Something to keep Spogg busy during self-isolation

Postby Spogg » Sun Apr 12, 2020 1:36 pm

My understanding, which may be very defective, is that the 512 elements are not integer partials. So the first 12 say, could be clustered around the fundamental. That’s why we need such a huge IFFT to generate the huge table.

In this scheme, a single “harmonic” would have a “bandwidth”, rather than being just a pure sinewave. That harmonic would display beating due to the interference of closely adjacent frequencies.

I need beating. :lol:

The log frequency scale on the X-axis is a great idea. I had a quick go myself but it needs a lot of time (for me anyway).


User avatar
Posts: 2561
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England


Return to General

Who is online

Users browsing this forum: Majestic-12 [Bot] and 46 guests