I use my Axoloti primarily as a quadrature source in a video synthesizer. I've noticed that oscillator modules with "sync" inputs sync nicely to a video signal, while modules with "reset" inputs are jittery and unstable. Can someone explain the functional difference between these two types of inputs? Also, is there a way to get "reset" to behave exactly like "sync"? I assumed these were the same, but they are definitely not.
Oscillator Sync vs. Reset
Hi @JonasBers
I think that the difference is that
- sync inputs operate at audio rate (48kHz) and are sometimes interpolated for sub sample accuracy.
- reset inputs operate at control rate (3kHz).
Thanks for your reply!
That could explain some of the ill-behavior, except v sync pulses are only 60Hz, so even at k-rate, we're well below the limit.
Do you know how "reset" responds to a trigger pulse? Rising edge, falling edge, etc? I'm guessing it holds the oscillator at 0 as long as the pulse is high. Maybe some sort of gate to trigger module would help?
Yes, but 60Hz is the sync of the start of an image. It's 1/60s 1/3000s represents a jitter of 1/50th of the image, it represents many lines and offsets along the lines.
Audio rate signals with interpolation are much more accurate.
About reset/triggers, details, I do not know, what object are you talking about more specifically so that i can have a look at it and tell you more ?
All I need is for oscillators to sync solidly to a 60Hz square wave pulse. I'm realizing that there don't seem to be standards for how sync is implemented throughout community modules. Some sync as expected and many don't. I think I'll just have to experiment and find what works. Thanks for the input.
Whoa, I took a look at the v sync pulses I'm using and wasn't quite what I expected. They're nice, neat, little 1v square waves, but the frequency is 1kHz. Still, this shouldn't be an issue, should it? I'll post a vid later in the week to demonstrate all of this.
@SmashedTransistors, here's the video I promised to upload -- I still feel like this could work somehow. Take a look and see what you think. Axo file from vid is below, edited for generic control.
sync test.axp (4.5 KB)
Hi @JonasBers,
Quite stunning to see video or vector graphics from the Axoloti.
Nice to see some usage of a quadrature Hilbert splitter.
Even if it is not an absolute standard (differing because of optimisation/tradeoffs),
The sync signal (as in @toneburst sinesync) is a red audio signal, it is sampled at 48000Hz, it will have a jitter of 21 micro seconds.
The reset signal (as in @DrJustice sin_pm_pr_b ) is a yellow boolean control signal, it is sampled at 3000Hz, it has a jitter of 333 microsecond.
The jitter of an audio rate sync signal can be improved by adding some sub sample calculations, but it costs CPU.
Thanks! That's the info I was looking for.
So if I'm understanding correctly: the fluctuations I see in the DrJ oscillator are due to the qualities of boolean inputs. If a phase-reset input is s-rate, the sync would be stable?
Do you think it would feasible for someone like me (with minimal coding knowledge) to change a boolean input into an s-rate input?
There are many community oscillators I'd like to use for video and vector graphics (particularly the ones with built-in quadrature outputs). Axoloti is a very powerful tool for this application.
I've built some hacky workaround patches deriving other waveforms from the @toneburst sinesync + Hilbert splitter combo, which is potentially good enough. The only issue is that the Hilbert splitter doesn't generate quadrature at low frequencies.
Hi @JonasBers,
It depends on the way the reset is implemented. I can't give you a general recipe.
here is an object for you:
- sub sample sync
- sin and cos outputs
- separate phase modulation inputs for sin and cos
syncQuadPMsin.axo (1.5 KB)
(simply copy it in your axoloti/objects folder)
Note: I focused on optimising the sync for your video application, not on antialiasing. Thus i think it can be suitable for your video application but not for audio.
That is incredibly generous @SmashedTransistors, and much more than I expected. Independent phase modulation is a genius innovation for this application -- can't believe I didn't think of that already.
Here's the "no good deed goes unpunished" portion:
I was insanely excited, and ran a test immediately, and the results are below. I did an A/B comparison of syncQuadPMsin and @toneburst sinesync + iqfilter (for quadrature). As you can see in the clip, syncQuadPMsin is a little shaky and noisy, and then crossfades to sinesync, which is crisp and stable. Not sure what the secret sauce is. Really, my dream object would be the @DrJustice dual_multi_wave lfo with the sync input from sinesync.
I'd understand if you've had enough at this point, but if you're interested in this stuff, I'm more than happy to keep testing. I have a ton of video gear other than vector displays (this test was actually using a decommissioned military stroke to raster converter) -- I could also test basic RGB encoders and a few other interesting video devices.
syncQuadPMsin.axo (1.6 KB)
I added a toggle switch to change some details about sync.
Thanks for sticking with it. This community is pretty amazing.
I see a difference between the two sync modes at high frequencies, but still noisy at low frequencies with both modes. I wish I knew how to code! This may be the push I need.
Maybe it is the use of objects with different sync/reset methods that is the main cause for jitter.
About, the low frequencies, I can't really tell. Maybe it is more related to hardware than software.
When you say "low frequency", how many Hz do you mean ?