Hive 1.2.1 maintenance update RC rev. 8256

Official support for: u-he.com
RELATED
PRODUCTS

Post

Urs wrote: Thu Feb 21, 2019 2:35 pm Hi,

I cannot quite figure out what you mean. It would be great to have an example wavetable and preset which shows these crackles, maybe also a quick mp3.

Thanks,

- Urs
I now found out, it's not a problem with Hive. These wavetables also have these crackles in other synth plugins. But the synths i tested have 2 modes how the wavetable will be played. The first mode is a kind of raw playback and there're also these crackles. The second mode is a "smooth" mode, where the wavetables will be smoothed a bit. The Propellerhead Europa VST for example has such a smooth mode. In that smooth mode these wavetables play without any crackles.

Maybe you could implement such a feature in Hive. This would be great.

Thanks!

Post

Urs wrote: Thu Feb 21, 2019 2:35 pm Hi,

I cannot quite figure out what you mean. It would be great to have an example wavetable and preset which shows these crackles, maybe also a quick mp3.

Thanks,

- Urs
I now found out, it's not a problem with Hive. These wavetables also have these crackles in other synth plugins. It seems it has to do with the behaviour of the wavetable. But the synths i tested have 2 modes how a wavetable will be played. The first mode is a kind of raw playback and there're also these crackles. The second mode is a "smooth" mode, where the wavetable or its waveform will be smoothed a bit (like smoothing sharp edges) to prevent these crackles. The Propellerhead Europa VST for example has such a smooth mode. In that smooth mode these wavetables play without any crackles.
It seems it has to do with the behaviour of the wavetable.

Maybe you could implement such a feature in Hive. This would be great.

Thanks!

Post

Mastrcode wrote: Thu Feb 21, 2019 6:35 pm
Urs wrote: Thu Feb 21, 2019 2:35 pm Hi,

I cannot quite figure out what you mean. It would be great to have an example wavetable and preset which shows these crackles, maybe also a quick mp3.

Thanks,

- Urs
I now found out, it's not a problem with Hive. These wavetables also have these crackles in other synth plugins. It seems it has to do with the behaviour of the wavetable. But the synths i tested have 2 modes how a wavetable will be played. The first mode is a kind of raw playback and there're also these crackles. The second mode is a "smooth" mode, where the wavetable or its waveform will be smoothed a bit (like smoothing sharp edges) to prevent these crackles. The Propellerhead Europa VST for example has such a smooth mode. In that smooth mode these wavetables play without any crackles.
It seems it has to do with the behaviour of the wavetable.

Maybe you could implement such a feature in Hive. This would be great.

Thanks!
Well, we arguably implemented the smoothest possible modes in Hive! Therefore I would really love to get hands on one of these wavetables, the preset and maybe some audio :)

(If you send it to our support @ u-he email address, we promise we will not share with anyone. Ever.)

Post

Here's a wavetable in wav format which contains these crackles.
I've also made two sound examples where i played this wavetable inside Propellerhead Europa VST and also played the same table inside Hive. Just play the wavetable inside Hive with the default Position and default Auto Rate. It doesn't matter which playback mode and which interpolation. Crackles everywhere. You can hear the crackles at best by playing low notes. The higher the notes, the less crackles can be heard.

Here's a link to my dropbox to download the zip file which contains the two examples and the wavetable:

https://www.dropbox.com/s/tjgdgk3yw0by4 ... e.zip?dl=0

Post

Thanks, I'll check it out.

A quick look in Audition makes me wonder if this is a sample rather than an actual wavetable file? I can't see a 2048 sample period... how did you create the file?

Post

So here's what's causing the crackles:

The ends of the wavetable don't align equally in all frames. This causes small steps on each frame, sometimes larger ones, sometimes very small ones. As a result, some frames sound smooth while others sound like a bit of a sawtooth mixed into them.

To illustrate the effect I wrote a little uhm script, which might come in handy:

Code: Select all

Info "Rotate all frames by 1024 samples. Helps to visualize border alignment."
NumFrames = 128
Import "Wavetable Crackles.wav"
Wave "main_fi(frame, (index + 1024) % 2048)"
This script loads the wavetable and moves the ends of each wavetable frame into the center of the waveform. Some frames now have these vertical lines in the middle, which shows how the left and right side drift apart:
Screen Shot 2019-02-22 at 11.30.08.png
That's the glitch that's causing the issue. It's basically built into the wavetable itself.

I can imagine that other wavetable synths somehow automatically align this, I know for sure that Serum has the option to do so.

To try this, I wrote another handy script that does that:

Code: Select all

Info "Align frame borders at zero crossings"
NumFrames = 128
Import "Wavetable Crackles.wav"
Wave "x - main_fi(frame, 0) + phase * ( main_fi(frame, 0) -  main_fi(frame, 2047) )"
To keep things simple, it simply moved the frame borders to a zero crossing. That's probably not the best thing to do, but it was what i could do now quickly. This one does not crackle anymore.

Both scripts are inside the attached zip. Just throw them in the same folder as "Wavetable Crackles.wav" and check it out for yourself :)
You do not have the required permissions to view the files attached to this post.

Post

Urs wrote: Fri Feb 22, 2019 9:08 am Thanks, I'll check it out.

A quick look in Audition makes me wonder if this is a sample rather than an actual wavetable file? I can't see a 2048 sample period... how did you create the file?
Yes, this one was made out of a sample. But i use my own technique with pitch detection, resampling and converting. I wrote my own little tool to do this. I use a pitch detection algorithm to find the exact pitch of the sample to get the root pitch. I have my own technique to do some things to find out the root pitch in which the "oscillators" of the "sampled synth" were played. So i can get the exact lenghth in samples for one "osc cycle". With that info then my tool can convert that sample into a new wave file which then has exactly 2048 samples per frame. This method works fine in most cases. But now i found out, that some samples are not "compatible" with this method, because maybe they were sampled from e.g. synths which have slightly drifting analog osc's or too much noise osc's are used, or other things that can make exact pitch detection difficult. These "incompatible" samples then have these crackles.

I'll check out your script, thanks.

BTW: i also wrote a little tool where i can load all kind of wave files to create simple single cycle wavetables out of them which can then be used as "additional osc shapes". This tool can be used to load e.g. any wave file which has a sample length that doesn't mach exactly 2048 samples. I mean i can load a wave file that represents one single cycle, which has e.g. a length of 653 samples instead of 2048, and then use a re-sampling method to re-export it to a single cycle wave file with exactly 2048 samples. Then there's no need anymore to add the "-WT" ending to the file name. For single cycle wavetables this tool works great.
Last edited by Mastrcode on Fri Feb 22, 2019 1:23 pm, edited 6 times in total.

Post

Can this script also be used for any other wavetable file which contains crackles by copying it and changing the file name inside the script and save it under a new name?

Post

Mastrcode wrote: Fri Feb 22, 2019 12:30 pm Can this script also be used for any other wavetable file which contains crackles by copying it and changing the file name inside the script and save it under a new name?
Sure. One can probably figure out a more elaborate method to join the first and last sample though, but I have not researched any of those options.

You can save the "fixed" files with

Export "New Wavetable name.wav"

Just note that for each wavetable you work on, you have to change the name in the Import statement and adjust the number of frames. The easiest way to go about this is to keep Hive open, load the wavetable on WT1, open the script on WT2, check the number of frames in the Info field in Hive, edit the script and save it. WT2 will automatically re-open the script and write the new file.

Post

I tried your script. Yes the crackles are gone, but:

I exported the fixed wave file using your script with the Export "New Filename.wav" line.
I noticed that the new exported "fixed" file has a lower gain. I re-checked it in my sample editor and the fixed file now has a kind of huge DC offset.

original file with crackles:
Image

fixed file:
Image
Last edited by Mastrcode on Fri Feb 22, 2019 1:56 pm, edited 1 time in total.

Post

hehehe, like I said... I have never dealt with this kind of stuff.

Use this line before the export:

Spectrum lowest=0 highest=0 "0" // DC-removal trick

If you furthermore need Normalization, use the Normalize function, maybe change base from RMS to Peak.

Post

I added the line and it works fine now. This is it. Big thanks!!!! :party: :love:

I think now it's time to learn uhm scripting... :D

Post

Yay! :party:

Post

Now i played around a while with making some more wavetables. And this script works perfectly for all wavetables which contain crackles. It works exactly like that "smoothing" option of the other VST's. Maybe even better. With the smoothing option of the other VST's some wavetables even can sound duller. But with that script the fixed wavetables are still sounding as clear as before fixing them, just without crackles. It's the perfect workaround! :tu:

Post

Hello Urs. Is it possible to add adjustable oversampling for realtime and rendering? In the latest Sylenth1 (v. 3.050 beta) it was added so I thought it would be nice for Hive too.

Post Reply

Return to “u-he”