Listen to that beautiful sound of the Groove synthesis 3rd wave using only one oscillator with 8bit waveform.
Does anybody know, if such a waveform is available for S6? I do not know if it would sound equal, but there is a possibility…
How can such a waveform be created by Audacity?
You can make 8 bit like waveforms by quantising the standard waves. Matlab is really useful for this sort of thing but python or any way to manipulate binary files works. The super 6 waves are 16-bit integer, 4096 points, binary file, no header. If you message support they can send you the spec but really there’s nothing more to them than this. Band limit to fs/4 (nyquist/2) for no aliasing, if you don’t want any. If anyone want to have a go at this would be great to share.
Lets get smt clear.
While 3rd Wave is also a hybrid, it is first and foremost a spiritual successor to waldorf ppg - and this is a fundamental difference from Super 6 - i think Super 6 is much more experimental and works both in analogue and digital domain.
Now, you can have any digital signal under the sun in S6 but you CANNOT interpolate wavetables or scan these - which makes that famous ppg movement, and in general, wavetable synthesis. S6 was never meant to be that. Yes you can have low res waves, no problem,just dont expect scanning and interpolation. for that, there are M1, 3rd wave, and many others.
→ Earlsfield78: Yes I am fully aware of it.
In Matt Johnsons video (refer to link), he played a static waveform, one 8bit waveform (sawtooth?) of the wavetable, and it sounded wonderful. He did not scan through the wavetable at that point. That was the reason why I was asking for this sepcific waveform to be available for S6.
I already checked the Groove Synthesis webpage and found the factory soundset. I tried to load the specific patch to Audacity, but failed.
My impression is, that the 3rd wave boosts the lower frequencies somehow while the higher frequencies sound absolutely not aggressive but smooth (with these waveforms). Loading that specific waveform to S6 would probably, if possible, not sound similar, although the analog filters are identical on both units.
I can definitely try to come up with a few for folks to try this weekend. The STAIRCASE function in MATLAB “should” be able to do the heavy lifting for me here. I’ll post whatever I come up with here. They will not be band limited though.
Just so that we are clear here. I have no idea how to reverse engineer the 3rd Wave oscillator waveform in question here, especially without the recorded waveform and the fact that I do not own the synth itself. Anyway…
I was able to plot up some sine wave variations whereby I am essentially performing a Zero Order Hold (ZOH) like operation with increasing resolution/fidelity using the STAIRS function in MATLAB. Not exactly ZOH, but similar enough for the purposes we are discussing here. For example
Is this ballpark what you are looking for? Theoretically I can perform the same operations for sawtooth, reverse sawtooth, triangle, etc.,
I don’t want to get too deep here and waste cycles I don’t have if folks won’t find these sorts of waveform manipulations useful.
I don’t know if you have the dsp toolkit but with this you can “resample” first two 1024 points, then resample back to 4096 points. That has the effect of bandlimiting as resample in matlab is a combination of filtering and up/down sampling. It will mean that any wave will have minimal aliasing. To make any wave have no discontinuities at the start and end, we use an FFT then and IFFT to reconstruct it from sines and cosines at multiples of fundamental. The more you play around though the more you realise most waves sound the same and there are a few sweet spots.
In the Matt Johnson video, he showed 8bit versions of sawtooth, triangle, square and pulse waveform. No sine.
Lets have a try with sawtooth? I assume, due to the 8bit steps there are much more overtones compared to a standard (“smooth”) sawtooth, which can be controlled with the analog VCF.
Thank you so much for your help!
Thx for the tips. I do have the DSP toolbox and will look into the upsample functionality. BTW, the plots I show have 1000 data points so already close to 1024 samples :).
When you say "we use an FFT then and IFFT to reconstruct it from sines and cosines at multiples of fundamental. " Is that being done internally in the synth or are you referring to something else?
I don’t want to go down this waveform forensics rat hole any more than this (for any number of reasons), but I was curious what I would see if I captured a small bit of the YT audio of the synth being played. This is from the audio right after the timestamp you saved the video at. I believe the audio section which I plotted the signal is where the person is playing one note.
From the more zoomed in of the 2 plots you can see quite a bit of difference between the left and right channels. Also the signal changes over time (presuming the person is only playing one note at this time). You can tell by listening to the audio that although they may be only playing one of the oscillators there is definitely more stuff going on in the signal path…reverb? chorus? panning? Aftertouch? etc etc etc.
Anyway, I will start with the basic waveform types and see where that gets us.
Have a great weekend.
The synth doesn’t do any bandlimiting, this is something that’s done when the wave lookup tables are created
Yes, at this point of the video additional effects may have been used.
A better startlink would be here:
There, he shows the single waveforms in detail and plays some.
But, as you said, dont waste time for forensics.
However, you gave a good trigger to me.
I sampled the audio, made a spectral analysis and found, that he did not play just a single note. Also in the video, with deep dive, you can see, that he releases several fingers from the keys.
That means to me, I cannot use the sampled audio as a base for the S6 waveform, as there are more keys pressed (not a single base tone with overtones but several basetones).
After some hours of youtube video analysis, I found another video (Loopop) and he plays single key with the specific waveforms. He shows the waveform by an oscilloscope.
Apologies for the delay as I have been backed up with a lot of other stuff this past week.
I should have the non-bandlimited versions of the following waveforms in both 16-bit ws6 format and 24-bit wav format in a day or so. I will then work on resampling as was suggested to essentially bandlimit the waveforms. For fun, I will also take the 8 variations of each waveform and construct wavetables for further exploration in Serum or your favorite wavetable synth.
The Elliptical, Parabolic, and Hyperbolic waveforms are geometric constructs. Weierstrass is a fractal waveform.
Here is the non-Bandlimited versions of the file. I haven’t done any heavy bashing of the files …yet…so please let me know if you run into any issues.
A few comments:
Rename the attached file extension from ‘bin’ to ‘zip’ and unzip in your working directory
The Zip folder has 3 folders and a top level collection of PNG screencap files of the different waveforms contained in the zip
wav folder contains 24-bit, 4096 samples per waveform versions saved as WAV files for general usages.
ws6 folder contains the requisite 16-bit, 4096 samples etc etc. for use with the UDO Super 6
The wavetable dir contains wavetables, one for each one of the waveforms. These files are just for completeness and I was able to load them into the SERUM wavetable synth with no issues. NOTE: UDO Super 6 is NOT a wavetable synth so these files in this directory are NOT expected to work.
My plan now is to bandlimit these files and post back here. Also, I am going to try to apply this ZOH exercise to other interesting waveforms I have lying around to see if something interesting pops out. It may be nice to look at the different noise color models and use the ZOH waveforms to envelope the noise etc.
Have a great weekend and hopefully someone finds this all interesting and useful.
ZOH_SCW_NO_BANDLIMITING_20230512T042853.bin (861.1 KB)
Thanks a lot! I could not sleep, so I started with downloading, renaming and had a first try with sawtooth and triangle.
I loaded the 8 different sawtooth and 8 different triangles into the S6 and played with slightly modified init patch, filter fully open, 12 voice mode.
Result: the sawtooth sound all pretty much the same with slight nuances, compared to the S6 sawtooth. Sawtooth ZOH4 sounds a little bit different, but not much.
The triangle ZOH4 sounds like a mixture with square, this is the most interesting maveform of these 16. All other triangle also sound more or less very similar to the S6 triangle, more overtones can be heard with ZOH4, ZOH8, ZOH16, ZOH32 (decreasing with higher numbers). But there is absolutely no 3rd wave magical feeling in these waveforms.
Tomorrow I will try the other waveforms.
Thank you again for your extensive work!
“But there is absolutely no 3rd wave magical feeling in these waveforms.”.
Yeah, without having the synth on hand, it is hard for me to comment on that statement. One thing that pops into my mind is that even though the Zero Order Hold (ZOH) signals are mimicking 8-bit and lower resolution signals, the fact is, the S6 uses 16-bit resolution for the Single Cycle Waveforms (SCW). Also the S6 SCWs contain 4096 samples.
From the 3rd wave site, their waveforms are 1024 samples:
Their WAVEMAKER TOOL
Built-in Custom Wavetable Maker
- “Sample-to-wave” functionality. Connect an audio source to the 3rd Wave’s Audio In, press “Make Waves” and the synth samples the audio to create a custom wavetable
- Samples to convert can also be brought in as a 96 kHz wav file through USB
- Store up to 64 custom wavetables
- 64 waveforms per wavetable
- Accepts pitched or un-pitched material as input
- 96 kHz sampling rate
- 16-bit resolution
- 1024 cycles per waveform, converted automatically to cover entire keyboard range
- Flexible wave-sampling length
Someone at @udo-audio may be able to comment more here, but I wouldn’t expect much “magic” from the s6 init patch running a basic Single Cycle Waveform.
Today I tested some more waveforms and came back to the Matt Johnson video.
Now I believe, the key to the magic is somehow related to the filter and/or VCA. As I could not get the punch in the low end, which the 3rd wave has, I set the filter drive parameter to “2” and used EG1 filter modulation. I could get more near to 3rd wave with your triangle ZOH4 waveform. Still S6 is not as punchy in the low end (maybe limiter/compressor would help) and not as precise in the stereo field (maybe stereo reverb would help). Your waveform is a mixture between pulse and triangle, which I like very much.
Still I did not test all of your waveforms, some work left for next week or tomorrow.
I had disvovered an S6 “bug” with one of your waveforms: when I activated DDS1 SUPER full mode, the DDS1 frequency was shifted about one octave! Strange, I have to ask UDO what is the reason.
By the way, with your waveforms the SUPER mode did not give good results. It seems, George tuned the S6 waveforms to match well with the SUPER mode.
One more question: some time ago, Marek Miller provided the circular waveform, you remember maybe as you also were involved in the discussion. This is one of the best waveforms I use for S6, especially for chimes or xylophone. Is your elliptical waveform related to the circular waveform?
- “By the way, with your waveforms the SUPER mode did not give good results. It seems, George tuned the S6 waveforms to match well with the SUPER mode.”
Not sure, but it may have to do with the fact that I did not bandlimit the waveforms I uploaded and what you may be hearing/experiencing is related to aliasing.
- “Is your elliptical waveform related to the circular waveform?”
Well, in terms of pure geometry, a circle is just a special case of the ellipse equation and they are indeed related. Here is a Desmos sketch for the elliptical waveform calculations I came up with:
In this formulation, you get a circular waveform if the “f” parameter is set to 0.25.
- I may have brought this up awhile ago on this forum, but are you familiar with the equation related to the creation of a squircle? Essentially, the formulation can create anything from a circular waveform to a square waveform and all points in between.
If you hit the play control on the parameter “i”, you will see the waveform morph between a circular and square. I think I have the ws6 files for multiple variations of the formula settings somewhere. Let me know if you are interested in me posting them to here.
- One more as I am currently looking back at my Desmos sketches. Here, I have a formulation whereby you can tilt or skew a sine wave where it starts to mimic a sawtooth wave. The “s” parameter controls the skew of the resulting waveform.
Apologies to folks if I have posted these things before. It all runs together in my brain these days.