Really interesting oscillators. Look forward to test them. Any chance that there will be a sine version of the anti aliased oscillators?
Also a phase reset inlet for all of them would be really great
Anyway, thanks for sharing
Really interesting oscillators. Look forward to test them. Any chance that there will be a sine version of the anti aliased oscillators?
Also a phase reset inlet for all of them would be really great
Anyway, thanks for sharing
Hi @jaffasplaffa
The last post was about oversampling and downsampling of a saturation and filter. @jaffasplaffa I think you are referring to previous posts ?
There is no real need to anti alias sine waves.
The DPW anti aliasing method I use is quite efficient in some cases (oscillators and distortion) but it is not really compatible with phase reset/hard sync. (it can be added - with an xfade method to avoid aliasing - but it will cost CPU).
Blep algorithms are more efficient in the case of Hard sync (low aliasing and low cpu).
I think that many of the new factory oscillators from Mutable Instruments available in factory/osc/brds use this method.
The waveform of the SixSteps oscillator in community/tiar/osc/Steps is controlled by six parameters: the six steps levels.
It allows to generate waveforms reminiscent of old pseudo digital synths (such as the RMI and it's digit harmonics based on Walsh functions).
Note: as it is defined by 6 steps, harmonics multiple of 6 have a 0 level. This contributes to its specific sound. I'll add variants with 5 and 7 steps.
It is anti aliased with an algorithm that is based on both BLEPs and DPWs... i think it is quite original and efficient with this kind of waveforms.
(the steppy signal goes through a low pass filter, when a transient occurs the state variable of the filter is updated taking account of the subsample time of the transient - much like BLEPs -... at the end the signal is high passed with a differentiator - like DPWs...)
It has an accompanying help patch file you can play with.
The patch library/community/tiar/synths/EvolPad is more complex and uses 3 SixSteps oscillators on each of its 6 voices + LFO modulations of some levels to generate an evolving sound.
UPDATE:
The object SixStepsBLI functions exactly the same way as SixSteps but sounds slightly brighter.
Technical details:
It uses another anti aliasing method: integration of band limited impulses.The trick here is the use of integers that allows exact summations in the output integrator. The bli table in tiar_bli_8_64.h consists in 64 8 point bli. Each of the 64 correspond to a 1/64 subsample offset. The sum of each offset BLI is exactly 512 so that adding and substracting BLIs will lead to the same result whatever the subsample offsets are.
UPDATE:
The community/tiar/osc/ SixSteps oscillator now uses a second order "bleppy DPW" anti-aliasing algorithm.
It is still CPU effective and the aliasing is even lower.
Now... i'll try to add a sort of hard sync..
is a modified version of the SixSteps oscillator.
It includes both master osc and slave osc.
Here is a classic example of sound it can generate: library/community/tiar/synths/ClassicSync.axp
It is still in dev but I think it is stable and glitchless.
UPDATE
Try the help patch in Help -> Library -> Community -> tiar -> osc -> Steps -> SixStepsBLISync
It is a different version (same usage) with a brighter sound.
It is anti aliased with the Band Limited Impulse method.
UPDATE Apr 5: improved AA at very high frequencies (sub sample management of quasi coincident slave and master resets).
See the help patch in menu: Help -> Library -> Community -> tiar -> osc -> wf12 -> O2_12stepsSync
This is an evolution of the preceding SixSteps oscillator:
It sounds brighter than the SixSteps oscillator.
wf_12Steps is a companion object to O2_12StepsSync.
Even if its outlet is "audio" it is not really an audio outlet. The output is consist in the 12 packed values of the sliders.
I firstly created it because of layout issues with vertical sliders. I thought, let's have something that looks like the sel objects. The first version had 12 krate outlet that have to be connected to corresponding 12 k rate inlet on the O2_12stepsSync. It was not very practical. That's the first reason I use packed values in a "audio" signals.
Note that even if it does not generate an actual audio rate signal it can be used with some audio rate objects such as xfade and mix...
The output of O2_12stepsSync consists in two interleaved audio rate outlets: y1 and y0 allowing to use a 96kHz sample rate.
O2_to_SR_59 uses a 59 tap decimation filter to come back to the standard 48 kHz
UPDATE:
see menu: Help->Library->community->tiar->osc -> wf12 -> wf_12Harm
wf_12Harm is a companion object to O2_12StepsSync quite similar to wf_12Steps.
It generates a 12 step waveform defined by the amplitudes of 6 harmonics.
UPDATE:
see menu: Help->Library->community->tiar->osc -> wf12->wf_12Bank
wf_12Bank is a companion object to O2_12StepsSync quite similar to wf_12Steps and wf_12Harm.
It generates a waveform selected by an integer inlet.
16 waveforms are available so far:
Was just trying out the oversampled saw oscillator. The only difference I notice is that it is an octave higher than the other oscillator and it is also a lot louder.
Should it be connected to other objects for the oversampling ot work proberly?
ahh thats why
Thanks
@lokki WHich one should I use? I dont seem to find any that match. Also on the picture @SmashedTransistors has posted he has not used any downsampling. ALso in the help files, no downsampling. BUT the pitch of for example the tiar/osc/DP2SawPls is, without any downsampling an octave higher.
But it doesnt sound good. A little bit more organic. the highs are much more pleasant, even just as i am testing it now, with no downsampling
ah sorry, if he does not use a downsampler in his help file, then i guess the downsampling is done internally.
Hi @jaffasplaffa and @lokki,
I plead guilty, some objects were an octave too high !!
I updated D2PWM, D2Pulsaw D2PSaw D2SawPls so that they are tuned at 329.6Hz.
These are not oversampled generators, they use 2nd order Differentiation ( "D2" stands for Diff 2).
I'm very sorry for the inconvenience !!
See the help patch in Help -> Library -> Community -> tiar -> osc -> Steps -> SevenSteps
It is a seven step oscillator. Much like the Six Step oscillator, you can choose the amplitude of each step.
Note that the harmonics multiple of 7 have zero amplitude. Which is an interesting feature in some cases.
The community/tiar/osc/SelfPM object is a very low CPU bandlimited oscillator capable of generating filtered saw-ish and square-ish waveforms.
It has the classical pitch inlet and parameter.
The fbMod inlet is a positive input.
When the fbMod varies in the range [0 64], the effective fb varies in the range [fb0 fb1].
Negative fb produce squarish waveforms.
Positive fb produve sawish waveforms.
The patch tiar/synths/SelPM.axp is a simple mono synth (4% CPU) that includes an adsr amplitude envelope and an adsr fb control envelope.
Furthermore, fb0 is modulated by the aftertouch:
You can tweak the envelopes and fb0 and fb1 to get an idea of its sound range.
Try the help patch in menu: Help -> Library -> Community -> tiar -> osc -> wf12 -> 12stepsBLISync
BLI anti-aliased and compatible with wf_12Steps, wf_12Harm and wf_12Bank as source of waveforms.
It sounds brighter than O2_12StepsSync and is easier to use as it does not need an O2_to_SR_59 object.
Try the help patch in menu: Help -> Library -> Community -> tiar -> osc -> wf12 -> wf_12Chorus
Note: wf_12 signals are not actual audio signals, they are packed steppy waveform signals to be used in tiar/osc/ 12Steps series of oscillators.
wf_12Display displays a 12 step waveform.
wf_12Chorus can be used for pseudo chorus effects. It does not process an audio signal, it modulates wf_12 waveform before they get used by a compatible oscillator.
Each of the 12 steps are - more or less deeply - modulated by its own LFO.
Those 12 LFOs have different oscillation rates.
Try the help patch in Help -> Library -> Community -> tiar -> osc -> Steps -> SixStepsBLIV2
The SixSteps oscillators waveform is defined by six parameters, the six steps.
This allows to recreate some waveforms of early digital synths with the distinctive flavor of the very limited number of steps.
SixStepsBLIV1 and SixStepsBLIV2 add imperfection to these steps. They are not equal. Some are slightly longer or shorter than the others.
The resulting sound differs from the SixSteps oscillator especially when you play low notes. The sound can be more "brassy" and less "squarish".
The help patch has a toggle switch that helps to compare the ordinary SixSteps form the imperfect Variant.
Try the help patch in menu: Help -> Library -> Community -> tiar -> osc -> wf_12Scale
Note: wf_12 signals are not actual audio signals, they are packed steppy waveform signals to be used in tiar/osc/ 12Steps series of oscillators.
wf_12Scale processes a wf_12 signal by scaling its time axis and outputs the resulting wf_12 to be used in one or many 12Steps oscillators.
To be honest I am quite surprised to hear the effects it does. It mostly sound like some old digital filtering to me (say, some very quantized LPC systems). The help file Help -> Library -> Community -> tiar -> osc -> wf12 -> wf_12Scale is such an example.
The patch menu: File -> Library -> community -> tiar -> bass -> DigiCode sounds more grungy.