Zebralette 3 Oscillator Effects Discussion
- u-he
- 30181 posts since 8 Aug, 2002 from Berlin
The oscillator effects are based on single cycle waveforms. Like, a single cycle goes into the effect, and a single cycle comes out of it. One can not somehow create anything inharmonic this way, such as dissonant tones or detuned voices, even if modulating some of the effects may appear to do so.
Any unison or inharmonic effects are based on the playback of these single cycle waveforms, either by detuning the unison voices in the wavetable-based renderer, or by distorting the spectrum within the additive renderer.
Any unison or inharmonic effects are based on the playback of these single cycle waveforms, either by detuning the unison voices in the wavetable-based renderer, or by distorting the spectrum within the additive renderer.
-
- KVRist
- 202 posts since 1 Aug, 2019
Right! So if you were able to detune the modulator instead of using perfect ratios, wouldn't it create a beating/unison effect?Urs wrote: Tue Dec 03, 2024 9:51 am The oscillator effects are based on single cycle waveforms. Like, a single cycle goes into the effect, and a single cycle comes out of it. One can not somehow create anything inharmonic this way, such as dissonant tones or detuned voices, even if modulating some of the effects may appear to do so.
Any unison or inharmonic effects are based on the playback of these single cycle waveforms, either by detuning the unison voices in the wavetable-based renderer, or by distorting the spectrum within the additive renderer.
- u-he
- 30181 posts since 8 Aug, 2002 from Berlin
No, it would create waveforms that are "cut off" at one or two sides. The base waveform will always ever render one exact cycle into a wavetable, and then the modulator would render, say, two and a half cycles. Such that the modulator would be cut off on the right, and the resulting waveform would show a sudden change.JoeLowery215 wrote: Sun Dec 22, 2024 1:29 amRight! So if you were able to detune the modulator instead of using perfect ratios, wouldn't it create a beating/unison effect?Urs wrote: Tue Dec 03, 2024 9:51 am The oscillator effects are based on single cycle waveforms. Like, a single cycle goes into the effect, and a single cycle comes out of it. One can not somehow create anything inharmonic this way, such as dissonant tones or detuned voices, even if modulating some of the effects may appear to do so.
Any unison or inharmonic effects are based on the playback of these single cycle waveforms, either by detuning the unison voices in the wavetable-based renderer, or by distorting the spectrum within the additive renderer.
- u-he
- 30181 posts since 8 Aug, 2002 from Berlin
Quite happy to report that the worst case scenario, which takes 25% CPU per single oscillator, after some optimisation, takes less than 4% CPU on my computer. Average case should be well under 1% or 2% even with a lot going on.
Likewise, an optimisation in the MSEGs brought MSEGs down from about 4% CPU to 0.15% CPU...
Likewise, an optimisation in the MSEGs brought MSEGs down from about 4% CPU to 0.15% CPU...
-
- KVRian
- 923 posts since 13 Jul, 2006
Thats impressive!
I assume the FX don't need optimization as you'll take the existing effects from existing u-he synths / effect plugins? Btw., I really like the FX of Repro (especially distortion / waveshaping / Velvet is nice).
I assume the FX don't need optimization as you'll take the existing effects from existing u-he synths / effect plugins? Btw., I really like the FX of Repro (especially distortion / waveshaping / Velvet is nice).
Find my (music) related software projects here: github.com/Fannon
- u-he
- 30181 posts since 8 Aug, 2002 from Berlin
We have only started working on new algorithms for the FX section. I don't necessarily want to take over anything that already exists. We're exploring some more options with some ideas that got developed over the years.
- KVRAF
- 26935 posts since 3 Feb, 2005 from in the wilds
WowUrs wrote: Mon Dec 30, 2024 6:03 am Quite happy to report that the worst case scenario, which takes 25% CPU per single oscillator, after some optimisation, takes less than 4% CPU on my computer. Average case should be well under 1% or 2% even with a lot going on.
Likewise, an optimisation in the MSEGs brought MSEGs down from about 4% CPU to 0.15% CPU...
That is a huge huge improvement!
-
- KVRian
- 751 posts since 22 Aug, 2002 from on the inside looking out
Is it possible to render the output of the oscillator effects back to the wave? It doesn't look like it, but perhaps I am missing somethingUrs wrote: Tue Dec 03, 2024 9:51 am The oscillator effects are based on single cycle waveforms. Like, a single cycle goes into the effect, and a single cycle comes out of it.
- u-he
- 30181 posts since 8 Aug, 2002 from Berlin
The waveform is spline based, the OscFX operate on sample based waveforms. So the oscillator first renders the spline-based curve into a wavetable, then OscFX are applied. Afterwards, the oscillator renders the resulting waveform into audio directly, or takes the waveform's spectrum and renders it with separate sine oscillators.
Feeding the resulting waveform back into the wave would mean that it has to be turned from a wavetable into a spline-based curve, i.e. it needs to be vectorised. This is a time consuming process with a lot of options to optimise the outcome since the result will be an approximation rather than an exact representation. The more complex the waveform, the more spline points needed to be exact, and the less useful the waveform for further editing. The most useful results are usually rather abstract, and based on interaction with a human focussing on what they want.
Hence, IMHO it makes no sense to directly render OscFX back into the waveform, unless we add some kind of traditional wavetable support. Which we might, but which we won't be able to do initially.
Feeding the resulting waveform back into the wave would mean that it has to be turned from a wavetable into a spline-based curve, i.e. it needs to be vectorised. This is a time consuming process with a lot of options to optimise the outcome since the result will be an approximation rather than an exact representation. The more complex the waveform, the more spline points needed to be exact, and the less useful the waveform for further editing. The most useful results are usually rather abstract, and based on interaction with a human focussing on what they want.
Hence, IMHO it makes no sense to directly render OscFX back into the waveform, unless we add some kind of traditional wavetable support. Which we might, but which we won't be able to do initially.
-
- KVRer
- 29 posts since 23 Nov, 2020
I don't think a synth plugin is the place for it. A midi effect plugin that forces incoming midi messages to fit within 31250 baud. So incoming messages come into a queue, and are then output with a minimum time gap between them of 37 samples if the sample rate is 48000. I imagine someone with a basic competence with Juce who wants a toy project to play with could knock this out pretty easily. (I can think how I'd do it in Reaper's JSFX, but it's not something I'm going to actually write.) Essentially you have a fifo that incoming midi comes into, and then you take out as many events as you can for a given audio buffer. Something like that.Ronny Pries wrote: Sun Feb 18, 2024 12:35 am It lately dawned on me that playing a chord via physical MIDI delays each note by at least 0.66ms. Which measurably affects how the peaks of waveforms sum. Resulting in less overlapping peaks (Not being summed in a sampling rate bottleneck probably helped, too?).
-
- KVRist
- 352 posts since 16 Mar, 2013 from Perú
I've been enjoying Zebralette 3 a lot so far, but I miss the "norm" knob from Zebralette 2, any plans to have a way to normalize the waveform after the OSC FXs have been applied?
That was really good to create some very harsh tones out of the oscillator in Zebralette 2.
That was really good to create some very harsh tones out of the oscillator in Zebralette 2.
- u-he
- 30181 posts since 8 Aug, 2002 from Berlin
The necessity for a Normalise function is something we'd like to discuss. It's one of those things I guess where we need to make up our mind if and how we implement it.
In Zebra2 it's kind of naive in a way, where even a little amount is already doing quite a bit, and 0 kicks in very suddenly. I have no proper concept of making the range more useful.
I'm thinking maybe just a button. Normalise on or off.
In Zebra2 it's kind of naive in a way, where even a little amount is already doing quite a bit, and 0 kicks in very suddenly. I have no proper concept of making the range more useful.
I'm thinking maybe just a button. Normalise on or off.
-
- KVRist
- 352 posts since 16 Mar, 2013 from Perú
Oh yeah, a button may work well, as I usually have it at 0 or at full normalization. 
