# What does the XMF in Zebra 2 precisely do ? [SOLVED]



## Elois (Oct 21, 2022)

Just read the user guide and watched a few videos, it's still unclear to me what does XMF precisely do :

1. Does the FM knob in XMF do the same thing as FM knob in FMO ? If so : what plays the role of modulator and carrier signals ?
2. Let's say I plug OSC1 (a 1 kHz sine) to XMF and use OSC2 (a 200 Hz sine) as sidechain. In this case, the OSC2 modulator applies FM on the OSC1 carrier, is that correct ? If so, what is the difference between FMO and XMF modules (apart from the filters in XMF) ?
3. Where are applied the filters in XMF : after OSC1, after OSC2, both, or after OSC2 has FM modulated OSC1 ?
4. Does modulation in "cross-modulation" stands for modulation in "FM" ?

Thanks !

EDIT : Please read the whole discussion for further details, but here is a summary :

1. NO ! FM knob in XMF is modulating the cut-off frequency of the XMF. "FM" term is a bit confusing, since we are not doing FM in the sense of "modulating the frequency of a signal with the amplitude of another signal".
2. Not at all, see 1.
3. After the input signal. By default, the input signal is also the modulating signal.
4. This originates from analog stuff. Read the discussion for details.


----------



## gamma-ut (Oct 21, 2022)




----------



## Elois (Oct 21, 2022)

Thanks. Still looking forward for the aforementioned questions to be discussed though.


----------



## Elois (Oct 21, 2022)

Thanks, this one of the video I've watched. Unfortunately, none of the asked questions are addressed there.


----------



## Pier (Oct 21, 2022)

FM in the context of a filter means the modulation of the frequency cutoff of the filter at audio rate with some audio signal. The input signal of the filter is *not* FM'd by the sidechain signal.

Filter FM is not the same as oscillator FM for a number of reasons.

First, when people say FM in the context of synths typically they really mean PM (phase modulation). Yamaha used PM for the DX7 and called it FM. Here's an article that explains a bit more about this. Second, well a filter is not an oscillator. There's no carrier signal per se. What you hear is the filtered signal not the filter itself (unless the filter can self oscillate).

Coming back to the XMF module... you'll see it has two cables. One for the signal that will be filtered, and one for the audio rate modulation of the filter cutoff (the sidechain). By default the filter will be FM'd by the same channel where the audio is coming in, but of course you can change that by right clicking on the module.

The XMF module does more stuff than audio rate modulation though. You can run two filters in serial or parallel, offset their frequencies, filter overdrive, etc. The manual should help you figure all that out.


----------



## Elois (Oct 21, 2022)

@Pier : Thanks a lot, you cleared all the confusion I had.

So, it's exactly the same thing as using an audio rate LFO to modulate the cut-off frequency of the XMR (except that the sidechain can be much more complicated than a simple LFO), right ?

A few remaining interrogations, if you wish :

1. Why do we call it "filter FM", since it has nothing to do with frequency modulation (= modulating the frequency of a signal with the amplitude of another signal) ?

2. How come the spectrum (and sound) of a signal that goes through a cut-off modulated filter looks (and sounds !) really close to the kind of spectrum we get through FM synthesis, while the principle is completely different (modulating the cutoff frequency of a filter VS modulating the frequency of an oscillator). The only explanation that comes to mind is that modulating the cutoff frequency of a filter is kind of equivalent to modulating the amplitude and phase of each spectral component of the input signal (the one that is filtered), hence a spectrum that looks like the kind of spectrum we get with AM / PM / FM (= the spectrum of the signal that is modulated, and around it the spectrum of the modulator duplicated several times to its left and right).


----------



## Pier (Oct 21, 2022)

Elois said:


> So, it's exactly the same thing as using an audio rate LFO to modulate the cut-off frequency of the XMR (except that the sidechain can be much more complicated than a simple LFO), right ?


Yep, exactly.



Elois said:


> Why do we call it "filter FM", since it has nothing to do with frequency modulation (= modulating the frequency of a signal with the amplitude of another signal) ?


Honestly, no idea. Probably historical reasons? Maybe someone used the term in a hardware synth and it stick. Makes sense though since you're modulating the frequency cutoff although yeah it's confusing.

I guess @doctoremmet with his vast knowledge can enlighten us 



Elois said:


> How come the spectrum (and sound) of a signal that goes through a cut-off modulated filter looks (and sounds !) really close to the kind of spectrum we get through FM synthesis


I'm sure there's some mathematical principle which I have no idea about... but it makes sense that if you're modulating something (anything) _really fast_ you will get tons of content in the higher frequencies. In part because you're creating a new waveform but also "cutting" the carrier at periodic intervals?

I don't know. Again, @doctoremmet is the local expert here about FM!


----------



## Elois (Oct 21, 2022)

@Pier : also, I completely forgot : why "*cross*-modulation" ?


----------



## Pier (Oct 21, 2022)

Elois said:


> @Pier : also, I completely forgot : why "*cross*-modulation" ?


The manual doesn't explain and I've wondered that myself too.

I think cross modulation (XM) in FM is when you have two oscillators modulating each other.

The XMF module can run two filters in "diffed" mode so subtracting one from the other. So maybe that's why?






Maybe @u-he can explain?


----------



## Elois (Oct 21, 2022)

@Pier : Mmm... I'd love to know more about this.

Also, I've made a little experiment : a XMF fed with OSC1 (a 1 kHz sine) and using OSC2 as a sidechain (a sinewave too). Filter is set to LP4 in single mode. Then I compare the 2 following spectra :

- XMF with OSC2 as a sidechain and FM knob on.
- XMF with an LFO instead of OSC2 to modulate its cut-off frequency (FM knob off). LFO tuned roughly at the OSC2 frequency (within ~10Hz to ~20Hz).

Well, the 2 spectra are quite different, even if there are some similarities in the way it behaves as I move OSC2 (or LFO) frequency.

*TL;DR :* This seems to imply that using an audio rate LFO to modulate the cut-off frequency of the XMR is *not* equivalent to what FM knob does (with OSC2 sidechain, tuned like the LFO). So not sure what really is under the hood !

EDIT : see the results here !


----------



## doctoremmet (Oct 21, 2022)

Pier said:


> I guess @doctoremmet with his vast knowledge can enlighten us


It’s basically what it says it is: modulating the filter cutoff frequency with an audio rate signal. Hence the name.

Although it is a bit unfortunate that FM is also the name of a form of synthesis (which in most cases typically actually involves phase modulation).


----------



## Elois (Oct 21, 2022)

Thanks for the confirmation @doctoremmet.

If so, do you then wish to share your thoughts about the results of the aforementioned experiment ?


----------



## Tusker (Oct 21, 2022)

Elois said:


> Also, I've made a little experiment : a XMF fed with OSC1 (a 1 kHz sine) and using OSC2 as a sidechain (a sinewave too). Filter is set to LP4 in single mode. Then I compare the 2 following spectra :
> 
> - XMF with OSC2 as a sidechain and FM knob on.
> - XMF with an LFO instead of OSC2 to modulate its cut-off frequency (FM knob off). LFO tuned roughly at the OSC2 frequency (within ~10Hz to ~20Hz).
> ...


You are digging into it!! 

Clever of you to match sine wave to sine wave. However, depending on the purity of the shape of a sine wave there could be minor differences in spectra. As ugly as it sounds, you might have a better test comparing a pure square wave to a pure square wave. There could also be amplitude differences, which may require that you compensate by trial and error. (try to get the same spectra by adjusting the amplitude of the LFO or the Oscillator)

Sometimes an LFO (even cycling at the same rate) is not being updated as frequently in the code as an audio rate oscillator, so you can have some interpolation issues which manifest as crackling or digital artifacts.

I hope this helps.


----------



## Tusker (Oct 21, 2022)

Elois said:


> @Pier : also, I completely forgot : why "*cross*-modulation" ?


The nomenclature got defined by history. This stuff began in the analog domain. Roland was one of the first companies to call it "cross-modulation" and they referred primarily to one oscillator modulating another at audio rates as Pier mentioned. Sequential had a more complete feature they called "Poly Mod" which allowed for audio rate modulation of the filter or oscillator pitch or oscillator pulse-width. Since the Roland term is more precisely about two oscillators, people began to use _cross-modulation_ to refer to pitch modulation between oscillators and _filter FM_ to refer to it when the target was filter cutoff.


----------



## Elois (Oct 21, 2022)

@Tusker : Mmm... interesting. So what you say is that it *should* be identical, but a LFO at audio rate frequency may not behave as cleanly as an oscillator, hence the differences.

However, the differences I get between my spectra are really important... I am recording a video and will post it here to show you.



> people began to use _cross-modulation_ to refer to pitch modulation between oscillators and _filter FM_ to refer to it when the target was filter cutoff.


Thanks, so in the case of Zebra's XMF, we are talking of _filter FM_, not at all cross-modulation, right ? So why is XMF named like that ?


----------



## Tusker (Oct 21, 2022)

Elois said:


> @Tusker : Mmm... interesting. So what you say is that it *should* be identical, but a LFO at audio rate frequency may not behave as cleanly as an oscillator, hence the differences.
> 
> However, the differences I get between my spectra are really important... I am recording a video and will post it here to show you.


Yes, depending on the code, it _should_ be identical for identical levels of amplitude, identical pitches of modulating wave and identical wave shape. I am pretty sure that DSP code is _not_ identical between LFOs and oscillators in order to save CPU cycles. 

I am not sure why Urs and company chose the nomenclature they did, but I think they are quite creative. After all they called oscillator sync, sync mojo! LOL. 

We can also send patches to each other since I have Zebra 2 and HZ.


----------



## Pier (Oct 21, 2022)

Tusker said:


> After all they called oscillator sync, sync mojo! LOL.


LOL

Zebra oscillators do have a sync parameter 

Sync mojo is an oscillator effect applied "after the fact".


----------



## Elois (Oct 21, 2022)

@Tusker @Pier : Here they are (the results of this experiment) ! You can see that the 2 spectra are really different. The one with the LFO is much much more noisy. OSC1 is 1 kHz sine, and OSC2 is 100 Hz sine. The LFO is around 100 Hz (if I'm correct).

Do you think this is explained by the fact OSC2 and LFO are not coded the same way ? Also, I don't exclude that I made an obvious mistake. The spectra should be much more similar, no ?

View attachment 2022-10-21 23-43-27.mp4


----------



## Pier (Oct 21, 2022)

Elois said:


> Do you think this is explained by the fact OSC2 and LFO are not coded the same way ?


I think the explanation is simply that Zebra modulation is not happening at audio rate. This might be caused by some aliasing in the modulation signal.

Modulation in the mod matrix is even slower than the modulation slots in the modules themselves. This is rarely an issue but I've had some weird glitches happening.

Edit:

Here's an example of the kind of glitches I mean. There's some kind of aliasing happening when moving the modwheel.

View attachment eq glitch_01.mp3


It's an audio file I sent U-He support when they clarified the slower modulation rate thing.

Edit 2:

Hmm the issue got lost a bit when converting to MP3. I've added a zip with the .wav file where it's more obvious.


----------



## Tusker (Oct 21, 2022)

Elois, your first example very precisely created the sidebands one might expect to hear, as described here …



What is Frequency Modulation Bandwidth, Spectrum and Sidebands?-News-FMUSER FM/TV Broadcast One-Stop Supplier



For your second example, yes it does seem like a lower calculation rate or inaccuracy in code. There are more sidebands but they are concentrated in the lower frequencies. You would expect there to be a correspondingly louder set of high frequencies. One possible explanation is that there are high frequencies but they are out of phase and therefore there is some cancellation. 

The good news is that you now have two flavors of ice cream instead of one. I al excited to try this new flavor out with an open mind. 

For me, fm-ing an XMF with noise is an extremely quick way to make it sound more vintage. It doesn’t overdrive as beautifully as vintage2 but at lower levels of saturation it generates a lot of warmth.


----------



## R. Naroth (Oct 21, 2022)

Great thread. To me, XMF modes and the FM knob still are a bit hard to reason. It is one of those zebra modules I haven’t really understood fully. Thanks for the tips and explanations.


----------



## gussunkri (Oct 21, 2022)

Elois said:


> @Tusker : Mmm... interesting. So what you say is that it *should* be identical, but a LFO at audio rate frequency may not behave as cleanly as an oscillator, hence the differences.
> 
> However, the differences I get between my spectra are really important... I am recording a video and will post it here to show you.
> 
> ...


I think the X in XMF might have been chosen to signify that the modulation happens from one lane to another in Zebra’s four lanes. So it is “Cross” lane Modulation of Filter frequency.


----------



## Pier (Oct 21, 2022)

Tusker said:


> It doesn’t overdrive as beautifully as vintage2


I love love love vintage2. It's my favorite Zebra filter.


----------



## Elois (Oct 22, 2022)

Tusker said:


> Elois, your first example very precisely created the sidebands one might expect to hear, as described here …
> 
> 
> 
> ...


@Tusker I completely agree with you that the first spectrum looks exactly like the spectrum of a FM'd signal, however : why ? We are not at all doing FM (= modulating the frequency of an osc with the amplitude of another) here, but filter FM (= modulating the cut-off frequency of a filter with the amplitude of sidechained input, here OSC2), which is quite different, is it correct ?

I agree that in some aspects, there may be similarities between the spectrum of a FM'd signal and the spectrum of a "Filter FM"'d signal (even if theorically I'm not sure exactly why, would love explanations), but I was quite not expecting here to exactly get the spectrum of an FM'd signal, since this is not at all what we are doing here... !

Maybe it's similar because when we modulate the cutoff frequency of a filter, it's kind of equivalent to modulating the amplitude and phase of each spectral component of the signal that goes through that filter, hence the kind of spectrum we would get from AM / FM / PM (= a central spectrum of the "carrier" signal, with around it the spectra of the modulator signal duplicated around it).

Also, maybe the spectra look very similar here because I'm using very simple sine signals and a simple LP4 filter (to better understand what's happening), but the difference may be more important with more complex signals and filters.


----------



## Elois (Oct 22, 2022)

@Pier @Tusker : Mmm, was reading Phaseplant user guide and stumbled upon this :


> To better understand the modulation system it is useful to understand some of the internal timing of Phase Plant. Values in the generator section are updated for every sample. This is called "at *audio rate*". While modulators output values much less often. Typically every 64 samples, but it can be more often depending on your DAW settings and other circumstances. We call this "at *control rate*". Therefor there is a limit on how fast the output of your modulators can change. Anything around 100 Hz or higher is likely so affected by aliasing that it it impossible to make any controlled changes to it. It's mostly just static. If you want very fast modulations, consider using the audio rate modulation system available in the generator stack only.


This is exactly what you said is happening in Zebra.

Also, I think I can confirm that the LFO is "dirty" at 100 Hz : since we can't observe it at the scope, I used the LFO to AM a simple 500 Hz sine, and as a result I got the expected AM spectrum (a peak at 500 Hz and the sideband at 500 Hz +/- 100 Hz), but also quite a lot a parasitic peaks, which probably confirms that the LFO is not clean at that frequency. I would say that the LFO is clean only below ~30Hz.

Thanks a lot, it was really an interesting discussion !

There remains a "mystery" (described here), concerning the shape of the spectrum of an signal that goes through a Filter-FM'd signal.


----------



## DoubleTap (Oct 22, 2022)

You could always ask Urs Heckmann. He often responds to questions on KVR and that’s where the official u-he forum is.


----------



## Tusker (Oct 22, 2022)

Elois said:


> @Tusker I completely agree with you that the first spectrum looks exactly like the spectrum of a FM'd signal, however : why ? We are not at all doing FM (= modulating the frequency of an osc with the amplitude of another) here, but filter FM (= modulating the cut-off frequency of a filter with the amplitude of sidechained input, here OSC2), which is quite different, is it correct ?
> 
> I agree that in some aspects, there may be similarities between the spectrum of a FM'd signal and the spectrum of a "Filter FM"'d signal (even if theorically I'm not sure exactly why, would love explanations), but I was quite not expecting here to exactly get the spectrum of an FM'd signal, since this is not at all what we are doing here... !
> 
> ...


These are very good questions. I am sorry for being so vague. There is some similarity in spectra, whether you are getting those side-bands from RM, FM, Filter FM or Pulse-Width but there are differences in grunge between these methods. PWM for example gets grungy really quickly. I don't know why. In the digital realm there is additional grunge when DSP can't keep up. I can commend two sources of additional information.

First, Gordon Reid's Synth Secrets articles have detailed discussions of audio rate modulation. Here are two articles:




__





An Introduction To Frequency Modulation


As explained last month, audio-frequency modulation of the amplitude of a signal can be a powerful synthesis tool. The possibilities expand still further when we consider what happens when you use one audio-frequency signal to modulate the frequency of another...




www.soundonsound.com








__





More On Frequency Modulation


Last month, we examined the frankly scary maths allowing you to predict the audible effects of Frequency Modulation. This time, although the maths gets even tougher, Gordon Reid relates the theory to the practical implementation of FM synthesis on Yamaha's digital synths, as well as modular and...




www.soundonsound.com





Second, McGill University taught a course which includes Filter FM on a Nord Modular (you'll be happy to see your sidebands in the graphs  )




__





Loading…






www.cim.mcgill.ca




Other helpful techniques are also covered, many of which are possible in Zebra ...




__





Advanced Programming Techniques for Modular Synthesizers






www.cim.mcgill.ca





Urs kept the audio rate modulations in Zebra focused primarily in the FMO's and XMF, primarily so that Zebra could be a work-horse synthesizer. For more varied types of audio rate modulation we have synths like Reaktor or Voltage Modular. Zebra sounds great and gives us most of the synth recipes, including filter FM.

Maybe there is another technique to try? You could loop an envelope at audio rates in Zebra to see if the spectra are appreciably different from, say a triangle LFO? It could be another flavor you might enjoy.

This is a really great conversation. It has motivated me to explore Zebra further.


----------



## Elois (Oct 22, 2022)

Thank you for the links, I will read this with great interest. I think all the questions have been answered, so glad I asked on this forum.

Have a great weekend 

EDIT : For those interested, I just asked similar questions on official U-he forum at KVR. Maybe there will be additional details from people at u-he or other users


----------

