Waveform and Spectrum visualization

Hi everybody,

wrote some code to visualize the Super6 Waveform format and it’s spectrum.

Here are the overview results for the buildtin waveforms.

Next i’ll prepare a function to convert and filter custom WAV files …
The functionality to decode the patch file format is currently “work in progress”, so stay tuned. ;^)

11 Likes

This is great! I had thought of doing this but you nailed it. Definitely keeping an eye here for the waveform builder

Here are the alternate waveforms.


2 Likes

For each waveform there is also availabe a more detailed view:

For explanation:
The first diagram is the waveform itself in the “time” domain in fully linear view, in the overview each 8th sample used, in the detail view each second (without any interpolation). The red horizontal line is the average value of the waveform and is only displayed if not zero, means that this waveform has some kind of DC content.

The second diagram is the spectrum view computed by Discrete Fourier Transform of multiple copies of that waveform, using only the absolute values (ignoring phase). The gaps between the value lines are technically correct because a waveform can (by definition) only contain integral multiples of its base frequency and nothing in between. The top left red line is again the DC content, the next line is the base frequency, followed by lines for each integral multiple.
The X axis is in linear scale with divider lines at each octave, marked with the number of octaves above the base frequency… and everybody who know how to calculate octaves immediately understands that this must end at octave 9 if there was a cutoff at 512 times the base.
The Y axis is in a square root scale (to amplify lower levels) but with linear divider lines to split this in 8 segments.
In the overview the spectrum diagram ends at 9th octave, in detail view it goes till 10th so one can check if the cutoff filtering was done good enough (and obviously it was).

Good news: It’s allmost done!
Uploading a WAV file to the software works, the code automatically analyzes the WAV by autocorrelation to find repeating waveforms and suggests a list of best fitting sample lengths.

Here an example how that looks after i uploaded a sample of a church organ patch of another instrument that i sampled at 96000 samples per second.

After selecting one of the waves (by pressing the Convert button), this is converted (streched or shriked) to a single cycle waveform of 4096 samples (currently using linear interpolation).
The only open task is the lowpass filtering…
For that i want to invest some more brain, just to try/offer different options

  • the hard and rigid cutoff (like we see it in the factory waveforms)
  • alternative softer filter slopes that prevent the well known filter pre- and post-ringing at steep flanks
3 Likes

very nice, was thinking of starting to write some python script but you are many steps ahead. well done!
will you share this as open source code eventually ?

Excellent ! :clap: I imagine vocoders wav…

Vocoders yes, why not but given the formant nature of vocoders I don’t know if it would transpose well ?

Good news of today: Cutoff filtering went easier than expected.
Just loaded the *_ChurchOrgan.ws6 to my Super6 and felt a little pervy by playing Bach on that synth. :clown_face:
The only limit was: That simple delay does no realistic Church reverb & delay simulation. :nerd_face:

It would transpose not at all! Vocoding is a feature done by formant filters and has not much to do with waveforms.

No chance! Without the usage of proprietary libraries this wouldn’t have gone that fast.
It’s implemented as a web service so i could eventually make the software available online for dedicated users.
I’ll think about that if it’s running stable.

3 Likes

I use CXM1978 (certain setting, can’t remember from memory, gives an extra vibe / Timbre touch to the sound) into UAD Lexicon 480L (I think large cathedral setting). This gives the S6 an immense wide attractive natural sound.
I really want to get 2 BBD pedals to put before the reverb pedal.

Thank you for your deep dive into the S6 Code. When I’m at the S6 I will send you the patches that give me scratches :slight_smile:

“It’s implemented as a web service so i could eventually make the software available online for dedicated users”

Oh yes please !! Can completely understand you would rather not share all dependencies from your library. Just out of interest what is the coding language you are using ? I use Python a lot and with classic scientific libraries such as numpy and scipy there is a great deal you can achieve in these tasks.

a pc application that would be great !

Let’s open a new topic on that:
“The ultimate after-effect device for your Super6” :+1: :wink:

It’s pure Java… but there ist nothing special about Java except that i prefere this language now for 20 years and have a well sorted bunch of libraries and a web application framework to reuse for this.
One positive side effect: Nearly no plattform dependencies (except for stuff like identifying the Super6 USB drive mount point).

1 Like

And the show goes on! :partying_face:

Enhanced the WAV importer by

1. Additive Synthesis Waveform builder

The yellow lines are typical hammond drawbar harmonics, the others are more church organ registers.
Each harmonic can be any of the given waveforms (making even more overtones) and can be shiftet in phase individually.

2. Step Sequence Waveform builder

Can make a waveform out of up to 64 steps.
Here you see the result of a modified Lowpass with a 3 octave linear ramp down characteristic.
The slopes are a little less steeply, but have nearly no pre- and post-ringing / overshoot.
The one octave ramp ist just a compromise.
The “none” button is just there for testing, didn’t try what happens if i would feed the Super6 with that.

This example waveform i allready uploaded to the LFO1 of my Super6 and used it to modulate the VCF…
… gives a rhythmic VCF arpeggio … the ears of my girlfriend are bleeding. :joy:

1 Like

Wow this is incredible. Great job!

I do hope you make this available somehow for people to go wild on, alternatively talk to UDO and see if they can license it from you or something.
Personally I’d love this and would happily pay for it if it was a commercial product. What a great tool you are making.

2 Likes

Thanks for this positive reply, I’m really happy to read this… and you will get a chance to pay for it. :wink:
These functions are/will be part of some kind of “Super 6 Companion” Web Application, for more detail watch the other thread:

Update on the waveform importer:

Lately i read the manual of the Waldorf Iridium (primary to quiten my GAS) and there I found a link to

… and realized, that I had to enhance my tool to accept a WAV containing only a singe cycle waveform (without autocorrelation because a single cycle does not autocorrelate).
Just added this, even if it would not be really that complicated to import a 600 sample WAV to Audacity, strech it to 4012 samples and export it to .ws6 format instead.

But to be honest, after I imported the “oboe” from the link above I was not so impressed anymore, because i know how a typical oboe waveform looks like (much more overtones) from my experiments building/enhancing the bagpipe patch on my Super6.
So i’m not really shure if this site is worth a recommendation.

Very cool project MOOGelPackung!

When will the web app be available?

I second what Shor is saying, I would also pay to support this project and hope UDO picks it up!

1 Like

I wonder what the point of this discussion is if the workflow is a big secret? Is it a pitch to sell software or ready made ws6 waves? All very fascinating, but where are the new user waves to download?

1 Like

Workflow is not such a big secret if you understand audio basics.
To me, this topic looks much more of a teaser for an upcoming program. Moogelpackung made no secret about it (« you will get a chance to pay for it »). And honestly I have lost interest since I learnt how to do it myself. Of course this program (still vaporware /teasing stage at the moment) would help expedite the process but if you search around elsewhere on this forum you will find a few free custom wave examples. They are good examples as they have the specs expected by S6. And if you have audacity or any other wave editor you can make your own custom waves in no time to the expected specification for S6.

Ultimate stage would be, if you are nerd enough, you install python and a few maths and/or audio free packages that will get you any mathematical custom wave you wish (albeit with more efforts required though, and honestly I prefer spending such time making music)

1 Like

The topic is “Waveform and Spectrum visualization” or to say it in simple words:
You can see with your eyes more details than you probably would hear with your ears … if your familiar with waveform and spectrum analysis. If not, your simply the wrong audience for that topic.

It’s not a secret at all, its well documented and I allready described ALL steps in detail in you topic:

Selling software would mean to have clients that are willing to pay more than you spent effort to create and sell it.
Do you see the obvious discrepance in your assumption?

If you are looking for free beer (or waveforms) this is (again) the wrong topic.
I allready offered you to convert single, seleted waveforms for you from WAV to WS6, but you seemed to be not interested.
So i wonder what the intention of your posting is.

Same here!
I have a solution that works for me.
And I have learned, that there are not so many Super6 users that are interested in using this like I was.
And to be honest, I use this not very often myself.

But to make it available for others would cost me at least 5 days (or more) of effort to make it foolproof and safe enough and money to install/maintain a platform to run it on.
For one or two potential users this makes no sense.

So i spend my time running my business projects (for really paying clients) and enjoying the nice sommer weather (what is rare enough in Germany) at day and making music at night.

Maybe if the current business projects are finished and there is a gap before the next start and the weather gets worst … and the Super6 user community grows … and the next Super6 firmware is out and i get some support for finishing the patch decoding … than i’ll come back to this.

Stay tuned, future is coming later! :clown_face: