Zebra 2 FM pitch – bug or FM quirk?

Official support for: u-he.com
RELATED
PRODUCTS

Post

Hi. Could someone explain why is it that when carrier is of a somewhat high pitch the FM oscillators cease to follow temperament? A half-step starts sounding like a fifth, a step as an octave, a third as a ninth, etc.

Here's an example:
https://www.dropbox.com/s/3tdthhlnt894n ... M.h2p?dl=0
(It has a z3ta+ Virus waveform in, just swap with any other in case you don't have that pack)

Play F3. Then F#3. Then G3.

The timbre is all over the place, it's unplayable.

Could anyone elucidate on why this happens? I keep bumping into it and it's really disheartening
Brzzzzzzt.

Post

Ooooooooh, that's nasty! :scared:
What you are suffering from there my friend is a spectacular example of aliasing.... :cry:
bug or FM quirk?
Neither really, although FM is a really good way to create it.

I have to take the offspring to school, but I'll post something more enlightening later if you want :)

Post

Ooh, I'm an eager listener alright!
Brzzzzzzt.

Post

OK, I have had a look at the patch. It's definitely aliasing.
In fact this patch has the 'perfect storm' of conditions to create aliasing :o

So, lets do a quick digital audio & FM primer and show what's going on. I'll start at first principles, as this may be informative to those with less audio nerd inclinations :wink:

I'll post in pieces as this may take a while...

A digital audio system cannot reproduce frequencies above 1/2 of the sampling rate (aka the 'Nyquist frequency', named after one of the early pioneers of electronic engineering who figured this out in around 1928!); for example, if the sample rate is CD standard 44.1kHz then the maximum is just over 22kHz.

If one tries to sample too high a frequency, then the result is that the signal gets 'reflected' about the Nyquist and ends up appearing as a lower frequency. This is known as aliasing.
(I won't go into why this happens as it's a bit involved)

A couple of quick (rubbish) diagrams may make this clearer.
This is a graph of the spectrum of a signal. Higher volume at lower frequencies, and less as we progress to higher harmonics. Note that the signal extends above the Nyquist frequency...
Image

If we try to reproduce this signal with a digital sampled system, then no frequencies can exist above the nyquist, and the higher frequencies reflect into 'alias' frequencies.
Image

It's important to note that the aliased frequencies usually sound horrible! :scared:
Since they are reflected about a fixed frequency, they do not fit into the harmonic relationship of the original note.
Last edited by EdHarvey on Sun May 21, 2017 5:49 am, edited 1 time in total.

Post

Ok, on to FM... I'll try to keep this simple and fairly zebra specific.

FM synthesis has two main components; a carrier wave (in zebra, the FMO) and a modulator (the input to the FMO).

When the FM 'index of modulation' - aka the FM knob - is at zero, the FMO produces a pure sine wave. As the index is increased, the sinewave is modulated and the output will become progressively brighter as more and more sideband frequencies are created. The frequencies of these sidebands are determined by the ratio of the carrier and modulator frquencies.

Or, put another way,

Let's call the carrier and modular frequency, c & m...

frequency components of a FM signal resulting from values of c & m will follow a pattern of:

c ± k m

for k = 0, 1, 2, 3 ... n

Clear as mud, isn't it?

Time for more diagrams...

[Short break - I'll continue posting through the day, as and when I can find time from 'real' work]

Post

So here's a representation of the sidebands when c=1 & m=2
Image

upper sidebands occur at

1 c
3 c+m (1+2)
5 c+2m (1+4)
7 c+3m (1+6)
etc

and lower sidebands at -1,-3,-5, etc

Now, what about those 'negative' lower sidebands.
Well, they simply reflect about zero and end up as positive frequencies (we'll ignore phase issues for now).

Image

Note that the reflected frequencies will not necessarily overlap/add. For example, if c:m = 1:3 we get
Image
Unlike aliasing about the nyquist, this reflection is usually not 'un-musical' (provided that c & m are simple integer ratios)
Last edited by EdHarvey on Sun May 21, 2017 5:51 am, edited 2 times in total.

Post

So, we know where sidebands occur, but how loud are they?

This depends on the previously mentioned FM index. As the index increases, the more sidebands become audible.
Of course, this being FM (and hence perversely complicated), the sidebands don't evolve in a simple fashion; as you can see below. This plots the amplitude of the carrier and first 3 sidebands when the FM amount in zebra is increased from 0 to 70.

Image

As you can see, each frequency has a distinctive oscillation; This is one of THE defining characteristics of FM synthesis, and gives it a very distinctive aural signature :)

As we increase the FM index the sound gets bright fairly quickly, and by the time it reaches 100 there are approximately 50 sidebands.
Image

OK, now the final piece of puzzle. The 'simple' explanation of FM above applies to each combination of harmonics in the carrier and modulator waveforms :o

The Zebra FMO is usually a simple sine wave, but the modulation input can be any waveform and each of it's constituent harmonics will form it own collection of sidebands.... adding up to a whole mess of components!
Last edited by EdHarvey on Sun May 21, 2017 5:54 am, edited 1 time in total.

Post

Thanks for a helpful and beautifully engineered shot of didactics! Should be helpful to many…

I did have a hunch it's aliasing at play, but was sincerely hoping that it wasn't. Hmm, so to fix it I should just increase the sample rate in my DAW, it seems. That returned the temperament back to normal and, obviously, changed the timbre.

It appears that the very presence of aliasing gives the patch (at least on several specific notes) the timbre I desire. How does one control it? Is it at all possible? For example having the actual sample rate OK enough for it to sound pitched but introducing aliasing artificially with Nyquist at set frequencies for each note (doesn't have to span more than an octave, really) so as to keep the timbre intact?

Or is going Buddhist and finding the correct parameters for each note and sampling them the only way? (now this would be shitty, as it's so damn pleasant to be able to tinker with the microtuning of the modulator to move the sound)

Or a not so simple DIY fix – a separate instance for each note used?
Brzzzzzzt.

Post

Assign a MMapper to modulate the FM parameter in the FM module. Set the MMapper mode to Key and you can change the amount of modulation for each note. If that alone doesn't work, you can use another MMapper to change the tuning of the carrier or modulator per note. You'll probably have to mess around with both the FM amount and tuning to get the sound you're after, but it should work.

Post

You also have keytracking for FMOs. Make use of it. :)

Post

EvilDragon wrote:You also have keytracking for FMOs. Make use of it. :)
Agree... though per-note tuning of e.g. "tine" frequencies is more fun ;-)

Post

Thank you EdHarvey for your detailed FM explanation. Very helpful.

Post

I haven't quite finished yet.....
but 'real life' has unfortunately got in the way, so it may be a day or so until the FINAL CHAPTER™ :scared:

Post

finally got some time

Having got my long-winded exposition on the principles of Aliasing and FM out of the way, we can now get on with looking at the patch.

Lets break it down;
Image

We have an OSC feeding a FMO. The FMO is then LP filtered.
The original OSC is fed into a XMF filter which has 'Filter FM' driven from the LP FMO signal.

Lets look at the starting OSC. It's a geoblend wave, so we'll need a spectrum analyzer to see what's going on.
Here's the spectrum playing D#0 (another useful note to remember as it's as almost exactly 20Hz)
Image
As you can see, the wave is very bright, has no fundamental, and has hundreds of harmonics...

Now, what happens when we feed this into the FMO?
Image
We get an even brighter waveform!
In fact this has so many harmonics that we are aliasing all the way down to zero and then reflecting back up to about 10kHz... and this is occurring when we are playing a 20Hz low note!
Image
The only mitigating factor is that these aliasing components are at a very low amplitude; however, as we play up the keyboard the aliasing will get louder and reflect more and more times.

By the time we reach C4, things have got fairly catastrophic. I've highlighted some of the lower aliased components in blue.... As you can see they are now at significant levels, and more numerous than the 'real' components.
Image

The most important thing to understand here is that once the aliasing gets past a certain point, the entire harmonic structure becomes unstable. Even a slight change in the basic fundamental frequency of a note will have huge effects because the prominent aliased components are really very large multiples of the fundamental.

Try this experiment - play the original patch at C4, and then move the pitch bend a tiny amount up or down.
Hear the huge change in the sound as the aliased harmonics fly around. :o

Or if you want to be lazy - here's an example.
Wrong FM
First the static patch, then notes with tiny random fluctuations in the fundamental pitch (< ±3 cents) - even those tiny changes make a huge difference to the apparent pitch & tibre...
Last edited by EdHarvey on Sun May 21, 2017 5:59 am, edited 1 time in total.

Post

Fantastic, Ed! :clap:

Post Reply

Return to “u-he”