Working for Waldorf – project Quantum 2.0 – part II


This is a series of articles that will detail the process i went through when designing the new factory patches, wavetables and samples for the Waldorf company for their high-end synthesizer called Quantum. The process took several months but fortunately from time to time i would post the progress on the Gearslutz forum. The bad thing about this is that eventually all those posts will be lost in time like tears in the rain. So I’ve decided to compile these posts into proper articles and place them on my webpages. This is the part II of the series.

Converting Prophet VS ROM into Quantum wavetables
I wrote my previous post late at night, it was a bit cryptic, so decided to go with full info instead, because the former idea wasn’t too useful. Ok… so where do we begin. I guess with the first waveforms i downloaded from the web. Actually i downloaded just two and they were enough to figure out we’re on the wrong path. I love when folks who are not familiar with the subject get the idea they should do a job about that same subject and as a result we got a set of Prophet VS waveforms available for download here. Seems great at the first sight, but for anyone working with the Prophet VS waveforms and building a set will tell you there is a problem in here. A single Prophet VS waveform is 128 samples long, and definitely not 336 samples as the previous link suggested. At that point you realize you need to do the whole job yourself. To cut the long story short, eventually i got Prophet’s internal waveforms in their original 128 samples long size. But they still had one little problem. And this dates back to the days of when they were designed. Most of them were not named or marked or given any description. So this is where the new work started. I took time and analyzed each individual waveform then what i would do is to write tags that would describe it. I used a limited set of words. And working in Linux i used tags directly in its file name, because that will later help me a lot in that same Linux system. More on that in a moment.

Looking on the above image we can see directories built. Sharp eyes will also notice a directory called 1-47 and the one called 48-96. These are essentially half wavetable. The reason is, Prophet VS contains 96 waveforms and having a such large wavetable can be overwhelming and confusing at times. Hence why i also included the first half and the second half of this huge wavetable. The folder titled ‘all’ is self explanatory, it contains all waveforms. And this brings us to another interesting situation, waveform sequential order. I included original order but also created several random orders, because you might find some of these random wavetables even better sounding than original.

Looking back at the previous image, in the top terminal we can see how i built individual wavetables. Remember when i made each waveform contain tags? Well now it was too easy to sort them. You just invoke the copy command, use your tag and place asterisks around, point it to the destination folder, and it will contain just certain types of waveforms, ie. those who sound bell like. Wavetables were then “baked” using sox and that was about it. Yeah as you can see on the lower terminal, first image, some of the wavetables didn’t turned out too big ie. a sine wave has only 5 waveforms, vocal contains only 7 wavefroms, but hey, they are genuine and you can always layer a couple more. I created two random variations of the ‘1-47′ wavetable, three random variations of the ’48-96’ wavetable and four random variations of the ‘all’ wavetable. The ’48-96′ and its random derivations can be seen on the image below.

Next task: Roland JD-800 and JD-990 ROM waveforms synthesis and building a wavetable out of it. What i did was to synthesize them from scratch, so technically they are not a copy from the ROM itself. Hence there is not much a Roland can do, as these are completely different byte by byte. However, since they are sonically near identical i decided to ask Eric Persing first.

In the meantime i would like to share one interesting story i found out from John Bowen. Someone on the Gearslutz forum asked a question about Prophet VS and how originally did they made ROM waveforms. “Do you know what tools they used back-in-the-day to make them? Was it waveterm? It just feels like we should have moved on to having amazing wavetable tools in 2019, but those old wavetables still have some real magic to them.”, so i contacted John and got the following information from the man:

“I’m going to say it was an IBM PC and it was definitely a custom program that Josh Jeffe created. It had 2 modes – I could use the mouse to draw a wave shape and hear it in real time, (then just generate the VS file from that) or a screen that had 24-28? vertical bars whose height represented amplitudes of each sine (so additive synthesis). For 3 or 4 of the waves, I just visually estimated the amplitudes from the little graphic printed on the front panel of a Korg product we had there. Then Josh wanted some of himself in the VS, so he recorded his voice and captured 2 waves from that. I’m trying to remember the Korg keyboard we had – Jack Hotop knows. I was just surprised how close the visual approximation sounded…pretty cool!

But for most of the waveforms, I just moved the mouse around, and stored them when I thought they were interesting. I also made a few with specific intent, like putting the harmonics up for the root and an octave+fifth above, or 2 octaves above, etc.. Those I did name as correctly as I could. I didn’t put names for a lot of them, because they were just all made up empirically, but later on, another Sequential employee (Will Loutensock, I think), decided to make up some names for them. Funny that you are asking about this now – yesterday I got an email forwarded from Dan at Korg R&D by a Sean Luke, who developed the Gizmo toolbox and the patch editor Edisyn, asking about all of ther VS waves, and what were the extra ones that we put in the Wavestation (ones numbered higher than 127).”

And to continue from here. Speaking of waveforms. I too regret they didn’t label VS waveforms, it made this VS project take a little more time than usual. I had to analyze each waveform, then build several text tags around each, then store it. Now with the tags finally finished, it will be easier to create VS based wavetables because now i know which waves will go easily with others. It will be very easy to group them now, rather than just building a random all waves wavetable which would be not too useful. There will be at least 10 Prophet VS wavetables for Waldorf Quantum, just like there are from the Ensoniq ESQ-1 and SQ-80 series.

Part 3 – The JD-990 Story
I know i bother you with technical details all the time but this episode, i promise you no numbers or lines of command lines. In the previous episode i’ve mentioned the possibility about doing one wavetable out of a few waveforms from the JD-990 synthesizer. Obviously didn’t want to be lazy scumbag who would just take the existing waveforms directly off the ROM. Instead i decided to synthesize them myself from the white noise, for three reasons:

— Out of respect for their authors
— To learn something along the way
— To avoid stepping on Roland’s toe

So i fired up Audacity and started analyzing a dozen waveforms from JD-990 and JV-1080. These are in fact my favorite waveforms from the JD/JV era. For those who don’t know i grew up with JV-1080 and i came with idea to put a DNA of dozen of those waveforms into ONE wavetable for Waldorf Quantum. The idea will actually fail and i will shortly tell you why – it has to do with periodic and aperiodic wave shapes. If anyone is familiar with JV series he will immediately recognize names such as: Anklungs, Feedbakwave, Metal Wind, Pitch Wind, Windago, etc. To transform all of them into one single wavetable which will be only 1.1 seconds long, the synthesizing process isn’t that complicated as much as how tedious it is.

Step1: Analyse spectra of source waveform

Step2: Recreate waveform using white noise and filters

Step3: Take 4096 bytes short snippet from it and place it in your wavetable as an entry No1. Repeat the process for 11 other waveforms. Save the final product as a wavetable.

You work with white noise and a set of filters which you stack until you get the desired result. Sounds easy on paper, but once you start tweaking and adjusting, an hour can pass yet you made barely 2-3 waves. Anyway i’ve created a dozen waveforms this way and before even converting them into a wavetable, decided to ask Eric Persing about them – can i use a short snippet of each (4096 bytes to be exact which translates to 92ms) Because if i recall correctly he designed those waveforms. I wasn’t too considered with Roland as these are completely different byte by byte as i’ve said earlier. But out of the respect for the man, decided to contact him.

I send him a PM via facebook, mentioning i generated a couple of waveforms, initially got a response but unfortunately never got a reply could i use 92 milisecond long snippet of each or not. I do remember i mentioned it would be “92 milisecond short snippet from each waveform”. However i forgot to mention that i will be using a cloned copy of his waveforms which i synthesized using white noise. As i’ve mentioned earlier, I didn’t want to blatantly rip them from the ROM so i cloned them using white noise and series of steep filters. I also mentioned Quantum OS 2.0 offers 4096 bytes long frame, which means some sonic texture can be heard thru. Anyway I’ve sent 13 files, each 10 seconds long which i synthesized in Logic X using white noise and filters… but unfortunately i never got the response.

I wonder did i communicate improperly? Now when i look at the text i’ve sent him, it says “here is the final wavetable”. While in fact, that information is in serious error. Those 13 files that i have sent are NOT the final wavetable. From those 13 files i would only take 92 milliseconds from each. So mathematically speaking the final wavetable would only be 1.1 second long. Not 130 seconds as it appears if one places all those files in linear fashion. I also didn’t mention the waveforms i’ve created from white noise are clones based on his original waveforms. So there was definitely an error in communication from my side. And therefore i would sincerely like to apologize to Mr. Persing.

Non periodic wavetable won’t pass thru
Ok truth be said things didn’t turn that bad. Being curious i’ve tried building that wavetable that i so desperately wanted. Aaaaand … honestly, it kinda sucked. Differences in amplitude and phase of each 92 ms snippet are too great for them to be connected together into one. And the reason is – i made a lame mistake. I wanted to create a periodic waveform from non periodic source. Waveforms like Anklungs, Feedbakwave, Metal Wind etc are noisy / airy types of waves – we can see that in the fact i generated their clones using the white noise. They can’t become a good or useful wavetable. Even with a window as large as 4096 it’s not enough. You can’t smuggle it as a Transwave neither – the method which i’ve discussed earlier in this thread with extreme transposition down and using Quantum practically as an (Ensoniq style) Transwave synth.

Positive side is, i can work in Audio Term as easy as eating a cookie now. Because at one point i sat down and decided to learn that software start to end. Now after 2 months I can generate any type of wavetable i desire to. The wavetable converter in Quantum is very good and will cover most of your needs. But if you want to dig down the rabbit hole, Audio Term all the way! So yeah, now i pretty much build wavetables. There are some very cool ROM wavetables in Quantum, but there will be more even cooler ones, since they are being made, as we speak. I know most of the sound designers who worked on Quantum and i am grateful to to them that they didn’t generate those that i wanted to generate. Those are some that i think are kinda essential yet for some reason do not exist in the stock “ROM”. Audio Term is a great software that at first appears to have an archaic UI. But it isn’t. Just set it all to green, click full screen, make yourself some nice tea, and have fun.

Next task
I plan generating some waveforms in Wolfram Mathematica. Converting mathematical equations into sound is a long hobby of mine i like to play from time to time. I will start with simple things then move to extreme and bizarre. There was an excellent program for Win95 which did just that and in which i had a tonne of equations that i’ve found by trial and error, but as they say you need to move with the times, or the times will move without you. So Wolfram it is! Inside Quantum “ROM” there will be a folder called Math in which you will find bizarre waveforms sounds of which some might damage your speakers, so a disclaimer is given – just in case! One caveat though: they will be all 8 bits. Rolf was very specific on giving available “ROM”, so i have to follow it and not break the quota or else i might get into trouble. Rolf is very strict!

Comments (4)

  1. J. Larry Rivera

    Hats off to you. I appreciate your attention to detail down to the quark level. And your ethics in contacting original authors/programmers really is a blessing in these days of some folks absconding the work of others.
    I hope to have the chance of playing a Waldorf Quantum to play with your soundsets.
    Thanks for your inventiveness and creativity.

    Larz (J. Larry Rivera, RN, former studio-rat and synth geek)
    Dana Point, CA, USA

  2. Don,
    Your presets showed me that I the quantum can do what I want it to do.

    They are the best presets in the machine by far (for me anyway, Im not that much into fx design)

    I came here hoping you had additional sets for sale!

    • Don Solaris

      Thanks! Yeah I get that a lot. It’s funny cause I just wanted to make good analogue sounds on Quantum.

Leave a Reply

Your email address will not be published. Required fields are marked *