Is this aliasing in zebra or my cheap soundcard?
-
- KVRian
- 610 posts since 6 Mar, 2005 from USA
I'm learning how to program Zebra (finally after owning it for a couple of years! Thank you Michael Kastrup for the help and for OldSkool) and noticed some odd behavior. When I program a simple squarewave patch
and play it high (say F7) and through a LP filter with full key follow and fully open there's a harshness that I don't hear in lower tones. I can confirm that with a spectral plot...it's like there's a bit of FM going on in the upper harmonics with lots of little Bessel-distributed peaks. It doesn't look or behave like simple aliasing; as frequency increases, the extra peaks don't migrate down from fs/2, but rather just start sprouting up around 7-9kHz.
So I'm new to this: is this because I have a lousy soundcard (actually using the codec chip built into my laptop's motherboard with ASIO4ALL), or because Zebra (and probably most/many synths) have processing limits up in the F7+ range, or because I'm just doing something wrong?
and play it high (say F7) and through a LP filter with full key follow and fully open there's a harshness that I don't hear in lower tones. I can confirm that with a spectral plot...it's like there's a bit of FM going on in the upper harmonics with lots of little Bessel-distributed peaks. It doesn't look or behave like simple aliasing; as frequency increases, the extra peaks don't migrate down from fs/2, but rather just start sprouting up around 7-9kHz.
So I'm new to this: is this because I have a lousy soundcard (actually using the codec chip built into my laptop's motherboard with ASIO4ALL), or because Zebra (and probably most/many synths) have processing limits up in the F7+ range, or because I'm just doing something wrong?
- KVRAF
- 9590 posts since 17 Sep, 2002 from Gothenburg Sweden
Make a recording of it and post here for us to look at. Should be fairly obvious (hopefully) what it is.
-
penguinfromdeep penguinfromdeep https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=193898
- KVRAF
- 1994 posts since 18 Nov, 2008
It might be just so that Zebra needs more oversampling!
circuit modeling and 0-dfb filters are cool
- u-he
- 30216 posts since 8 Aug, 2002 from Berlin
Hi jcsquire,
I'd recommend to post an audio example and the preset. Then we can render it on other machines and/or I can identify what's going on.
It's entirely possible that some of the filters emphasize certain frequencies. Especially the "LP Xcite" must be used carefully. Used in the right range it's still my favourite filter that I'd choose above Allround, Vintage and XMF, and it has been there unchanged since Zebra 1.0 (well, I went from 32-bit to 64-bit processing in 2.5). Because it doesn't oversample at all it uses a trick to keep aliasing low, by effectively adding multiband distortion (It's one of these filters that are IMHO better left not oversampled)
Urs
I'd recommend to post an audio example and the preset. Then we can render it on other machines and/or I can identify what's going on.
It's entirely possible that some of the filters emphasize certain frequencies. Especially the "LP Xcite" must be used carefully. Used in the right range it's still my favourite filter that I'd choose above Allround, Vintage and XMF, and it has been there unchanged since Zebra 1.0 (well, I went from 32-bit to 64-bit processing in 2.5). Because it doesn't oversample at all it uses a trick to keep aliasing low, by effectively adding multiband distortion (It's one of these filters that are IMHO better left not oversampled)
-
- KVRian
- Topic Starter
- 610 posts since 6 Mar, 2005 from USA
Wow, I didn't think I'd get helpful replies from KVR about this (jupiter8) and especially not from the man himself! Thanks everyone.
My patch is easy to recreate. It does it even without filters. Put a single oscillator in, make it play a squarewave, unison eleven, 50% pulsewidth, everything else set to default. That's it. It's here http://www2.vmi.edu/Faculty/squirejc/Temp/jimpatch.h2p.
If you play any note up to and including C6 (where C6 is two octaves about middle C, the note below is D5, and the note above is E6) it sounds expected, like this: http://www2.vmi.edu/Faculty/squirejc/Temp/C6-good.wav. It looks fine on a scope too. Now play a fourth up at F6...there's this weird sound like a telephone from the 60's ringing in the background. It goes away playing a third higher at A6. But reappears, worse, a fifth up at E7, like this:http://www2.vmi.edu/Faculty/squirejc/Temp/E7-bad.wav.
It's something to do with unison, since it isn't there at quad. I can kind of get around it by adding a notch filter keyfollowed to track the harmonics of the note being pressed, but it's not ideal.
I'm not complaining, just a newbie to programming and trying to figure out when problems are caused by trying to push technology too hard, and when problems are caused by me simply hooking something up wrong.
My patch is easy to recreate. It does it even without filters. Put a single oscillator in, make it play a squarewave, unison eleven, 50% pulsewidth, everything else set to default. That's it. It's here http://www2.vmi.edu/Faculty/squirejc/Temp/jimpatch.h2p.
If you play any note up to and including C6 (where C6 is two octaves about middle C, the note below is D5, and the note above is E6) it sounds expected, like this: http://www2.vmi.edu/Faculty/squirejc/Temp/C6-good.wav. It looks fine on a scope too. Now play a fourth up at F6...there's this weird sound like a telephone from the 60's ringing in the background. It goes away playing a third higher at A6. But reappears, worse, a fifth up at E7, like this:http://www2.vmi.edu/Faculty/squirejc/Temp/E7-bad.wav.
It's something to do with unison, since it isn't there at quad. I can kind of get around it by adding a notch filter keyfollowed to track the harmonics of the note being pressed, but it's not ideal.
I'm not complaining, just a newbie to programming and trying to figure out when problems are caused by trying to push technology too hard, and when problems are caused by me simply hooking something up wrong.
- u-he
- 30216 posts since 8 Aug, 2002 from Berlin
Hmmm... interesting.
It seems that Eleven in PWM mode always has a slight amount of detune in one or more of the inverted sawtooths going on. Thus there's always a bit of PWM happening, depending on the frequency of the note. The higher the note, the more PWM. This goes away of course when you detune the oscillator (as you normally would in Eleven mode). Switching on Sync makes things worse, there's quite obvious aliasing and much more so than in quad modes. Aliasing on Sync is rather inevitable though, but I think it should be less.
I'll see if I can find the cause and then I'll fix that
It seems that Eleven in PWM mode always has a slight amount of detune in one or more of the inverted sawtooths going on. Thus there's always a bit of PWM happening, depending on the frequency of the note. The higher the note, the more PWM. This goes away of course when you detune the oscillator (as you normally would in Eleven mode). Switching on Sync makes things worse, there's quite obvious aliasing and much more so than in quad modes. Aliasing on Sync is rather inevitable though, but I think it should be less.
I'll see if I can find the cause and then I'll fix that
-
- KVRian
- Topic Starter
- 610 posts since 6 Mar, 2005 from USA
Thanks for the fast reply, Urs, and for the explanation. It's the kind of weirdness that probably only happens when learning (high unison with zero detune), but that can make the learning process confusing. Zebra is becoming a very popular DSP demonstration in my classes; I hope you get lots of student sales from my neck of the woods. I've noticed every electrical engineer I know is a musician. All bad, mind you, but all musicians.
I'm really impressed by how interactive and helpful developers like Urs are on KVR, as well as sound designers like Michael Kastrup, and the mods like ew. Thanks, guys!

I'm really impressed by how interactive and helpful developers like Urs are on KVR, as well as sound designers like Michael Kastrup, and the mods like ew. Thanks, guys!

