Here's the thing, if you want analogue sync with analogue FM in Zebra, we need to add third oscillator type, which again would need to be a dual Osc. Neither the FMO nor the Spline based Osc will be able to handle Sync and FM.loctune wrote: Fri Jun 05, 2026 10:04 pm Happy to hear notch filter will be added!
The issue with the sync OSCFX is it works only in its own osc and thus it's own waveform. It works nicely when it works, but having a dedicated osc sync function between osc would allow for much more flexibility to do things we use and like a lot on hardware, say something like the FM'ed sync effect on ARP Odyssey. While it might be technically possible to create things like this within a single osc by playing with waveforms, interpolations, and a bunch of OSC FX, having a dedicated sync function between oscs would also make the workflow much easier.
I agree that Zebra 3 has the ability to do many spectral things that others cannot. I have been using them and like them a lot. However, there's a critical thing missing in Zebra 3's spectral editor: it seems that Zebra 3 does not have the ability to transfer a given curve from time domain to spectral, or vice versa. So I can't draw a square wave in time domain and move to spectral to add some simple 2nd partial. I'd have to stay with the initial domain which I draw my curve in: do 500 partials for a square wave so that I can modify the 2nd partial in spectral mode, or use my brain to calculate what the waveform would look like in time domain when I add the partial...
I also have some other minor gripes about the spectral editing mode, like the not-so-pleasant UX for drawing in partials and the bug in precision math mode when you get unwanted partials. But I'd say the curve transfer is what I find the most annoying one.
The problem with analogue Sync is that it only sounds good if the subsample position of the trigger signal is known. This is where modular digital implementations fail. One can't just take the audio output of an oscillator and hope to extract the proper zero crossing from it. It jitters, resulting in artefacts. Proper Sync emulation requires that both oscillators are processed together, and the internal phase wrap position of one oscillator is used to wrap the other.
Hence, in order to do proper analogue Sync, we'd need a dual VCO module in Zebra. This was discussed for Zebra 2 many times and we have discussed it for Zebra 3. And each time we discuss it, we pretty much agree that it doesn't add enough value to Zebra, because the overlap between this and the other oscillators would be huge.
And we also think that people would expect such a functionality in the normal oscillators, where for reasons given we don't really see a chance to make it sound good. Digital oscillators are simply not good at sync, unless processed together, which in Zebra, by design, they are not.
#----
Spectral manipulation
Yes, it is not possible to represent both the time domain waveform and the frequency domain spectrum with a humanely manageable set of points. Nothing we could possibly do would change that.
The spectrum of a square wave for example would require 1000+ points. Similarly, the waveform representation of a spectrum with just one (!) harmonic (the highest possible) would require 2000+ points to be represented.
Therefore, what you can't do in Zebra 3 is "hey, I have this waveform, but I want to lower the third and fifth partial a bit, so I just flip there, edit those two and then go back".
The advantage of spline based editing is the infinite geometrical resolution that makes them independent from sample size, and the wide variety of shapes that are possible with a very limited number of control points. One can do a lot with it, and a lot of it sounds really good, but one can not do everything.
Switching between time domain and spectral domain in particular is not possible, hence we added two separate ways to interpret the curve, geometry and spectrum.
The alternative to this is a sample based editor, as also found in Zebra 2 (or Serum fwiw). In Zebra 2 it would have been possible to implement a switch between spectrum and waveform (but switching to waveform would eradicate half the spectrum), but there are only 128 samples. This is never enough resolution to sound crisp enough, which requires 2048 samples for a sweet spot (that's what Hive and Serum use, and what Zebra 2 has used internally when rendering its own splines).
So when being able to switch between waveform and spectrum, you don't get much of a chance to edit everything as it needs to present you with 1000+ harmonics for 2000+ samples. The sheer mass of that makes loads of manual operations tedious, if not impossible.
So yes, sample based editing lets one switch between spectrum and waveform (Serum even presents both), but it poses a conundrum: Who's gonna edit all that unless for a handful of tables?
Sure, many sounds require just 20-30 partials. Totally manageable. But here comes my gist: With that little amount of partials, it's already pretty easy to do it in Zebra 3, and we do have ideas on improving that further.
We'll continue to work on the editor and fix bugs. But we can't change the reality that switching between time domain and frequency domain in the spline editor is impossible.
