Tiar / SmashedTransistors Contributions


#33

@SmashedTransistors i was wondering: is there a limit to the steps? could you also create a version with say 64 steps instead of 12? i guess you cannot pack the values conveniently in an audio-stream then...


#34

Yes, @lokki, there are limitations

The BLI antialiasing is certainly amongst the most efficient anti aliasing, low CPU, good antialiasing, wide band and can anti alias sync.

But, basically, the BLI antialiasing scheme is limited to one transition per sample.
If you consider the higher note you will play being at 4000Hz, you will be able to manage up to
Nyquist/4000 = 24000/4000 = 6 transitions.

That's why my first steppy oscillators was limited to 6 steps.

I modified the method in 12StepsBLI(sync) in order to handle up to 2 transitions per sample. But it increases CPU.

What i like with these oscillators is the imperfection of the steps that generates a bunch of characteristic imaging harmonics.


Well in an audio signal we have 16 int32...
we can pack in there 32 int16
even if standard modules - like mixers - won't be compatible with this, it is still a handy way to transmit short waveforms.


At the moment, i'm still experimenting with short waveforms.
I've found a way to do second order DPW on waveforms with discontinuities.

Imagine a waveform with only 16 segments.
The trick is that the segments do not need to be connected.
the end of the first segment do not have to coincide with the start of the second segment.

This way, it is possible to make a 16 segment waveform with more than 8 harmonics.

Help -> Library -> Community -> tiar -> osc -> 16StepsDP2

is still in progress but you can play with it to get an idea. (simply change the last slider up and down, that's where i put the discontinuity in the waveform. note that the waveform is updated in the oscillator on "note on")

The wf_16Steps has 32 sliders that controls:

  • slider0: start of segment 0
  • slider1: end of segment 0
  • slider2: start of segment 1
  • slider3: end of segment 1
  • ...
  • slider30: start of segment 15
  • slider31: end of segment 15

#35

Object: 16StepsDP2

The 16 Steps (with discontinuities) oscillator described in the preceding post seems to work properly.

I added a new companion wf_16 object

wf_16BankPwr

menu: Help -> Library -> Community -> tiar -> osc -> wf_16BankPwr

is a bank of 16 predefined waveforms. These waveforms may seem strange at first sight, but they have quite useful spectra for substractive synthesis and are crest factor optimised.

For example, the first waveform is quite awkward but is has a spectrum similar to the one of a sawtooth:

menu: Help -> Library -> Community -> tiar -> osc -> wf_16BankPwr
has a toggle switch that will let you compare it to a regular sawtooth.

I think that one of the main interests - from a musical point of view - is when you mix this detuned "pseudo sawtooth" with a sawtooth. The sound is much smoother and harmonic cancellations/beatings are less audible.

Other waveforms in the bank are:
1 harm2: the two first harmonics have the same amplitude and then decay -6dB/oct
2 harm3: the three first harmonics have the same amplitude and then decay -6dB/oct
3 harm4: the four first harmonics have the same amplitude and then decay -6dB/oct

4 harm2b: the two first harmonics have the same amplitude and then decay -12dB/oct
5 harm3b: the first three harmonics have the same amplitude and then decay -12dB/oct
6 harm4b: the first four harmonics have the same amplitude and then decay -12dB/oct
7 harm7: the first 7 harmonics have the same amplitude and then decay -6dB/oct
8 harm7b: the first 7 harmonics have the same amplitude and then decay -12dB/oct

9 Res2 Resonance around harmonic 2
10 Res3 Resonance around harmonic 3
11 Res4 Resonance around harmonic 4
12 Res5 Resonance around harmonic 5
13. Res7 Resonance around harmonic 7
14. harm7_2_3 Strong first harmonics with some "decimated" harmonics
15. harm7_23_3 Strong first harmonics with more "decimated" harmonics


#36

Object: wf_16BankSpktra

menu: Help -> Library -> Community -> tiar -> osc -> wf_16BankSpktra
and
menu: File -> Library -> Community -> tiar -> synths -> Tranquille
for examples.

is a new bank of 16 predefined waveforms for the 16StepsDP2 oscillator :


#37

Patch: Dangerine

menu: File -> Library -> Community -> tiar -> synths -> Dangerine

Aftertouch and chorusing echo...


#38

Object: tiar/kfilter/LPRiseDecay

menu: Help -> Library -> Community -> tiar -> kfilter -> LPRiseDecay

It is a first order lowpass filter, with separate controls for Rise and Decay rates.
It can be used to smooth control signals with distinct rising and falling rates.
I find it useful on midi signals such as aftertouch.


#39

Object: tiar/filter/ZDF SVF 1

try menu: Help -> Library -> Community -> tiar -> filter -> ZDF SVF 1 for instant psychédélic.

ZDF SVF 1 is still in dev, so feedback is welcome.

It is designed to be a "heavy duty" state variable filter, it must be capable of enduring deep and fast modulations without becoming unstable.

This object is a so called "Zero Delay Feedback" filter based on a design i made some years ago.
It is based on the "step invariant" transform (as opposed to the omnipresent bilinear transform).
The main advantage of this method is that its frequency response is similar to analog filters even in the high range of the spectrum (no frequency warping).

The maths behind it are a little more complicated than the usual trapezoïd ZDF.

For details, you can have a look to the jsfx/Reaper thread, there is two or three posts discussing transition matrixes...


Question about filters
#40

Object: tiar/kfilter/median

try menu: Help -> Library -> Community -> tiar -> kfilter -> median

This is a 3 tap median filter for noisy control signals.

This can be useful if you have to deal with noisy control signals with random spikes or noise. This can be the case with some midi aftertouch controllers or when using analog inputs.

The main advantage of the median filter - compared to a low pass filter - is that it is more efficient for this kind of issue and it does not smooth the signal as much.
try the help patch to get an idea:

Note: median filters can be chained to process noisier control signals (when it is not possible to get cleaner signals from the hardware). Experiment and use kscope to see what it does to your control signals.
see menu: Help -> Library -> Community -> tiar -> kfilter -> medianChained.axh


#41

patch: SpaceClarinet

menu: File -> Library -> Community -> tiar -> synths -> SpaceClarinet

Similar to "Dangerine" but based on the FiveSteps and SixStepsBLI oscillators from tiar->osc.


#42

Object: tiar/filter/ZDF SVF 2

try menu: Help -> Library -> Community -> tiar -> filter -> ZDF SVF 2

It is similar to the ZDF SVF 1 filter with an audio rate pitch modulation inlet.
It allows unusual filter modulations (and even feedback) found in some analog synths.


#43

Object: tiar/dist/SyncAlias

try menu: Help -> Library -> Community -> tiar -> dist -> SyncAlias

"8bit" sounds with a "sync touch".

I'm sort of an Anti Aliasing freak, it is quite an obsession since I bought my first synth, a Roland D5.

SyncAlias is quite special.
It is anti aliased so that it does not alias with the 24kHz Nyquist frequency specific to the axoloti.

But it is designed to simulate aliasing at rates below 24kHz, so that one can simulate old digital synths.

The resampling frequency can be modulated with the pitch slave and pitch master inlets.

If the pitch master is related to the pitch of the input signal, you will get consonant results. The pitch slave allowing sync sweeps. This is the case with the help patch.

Detuning the master pitch from the pitch of the input signal creates a dissonant sound (end of the test track). Typical low fi aliasing...


Bit-depth and Sample-rate Reduction
The Holy Grail ? (second reprise)
Trueno: the world's smallest analog synthesizer
#44

Object: tiar/tuning/DetHz

see the help patch: menu: Help -> Library -> Community -> tiar -> tuning ->DetHz

An old trick to get the fat synth sound consists in slightly detuning oscillators.
With the axoloti, it is often achieved by ctl-shift mouse drag over the pitch knob of the oscillator (or by selecting the knob and typing in accurate values thanks to @lis0r ). This is pitch detuning.

A slight detuning generates that slow, smooth and delightful chorusing / doubling effect.

The problem with pitch detuning is that the chorusing rate increases in the higher range. It is often too fast and more fuzzy than smooth.

DetHz allows to have a constant chorusing rate all over the keyboard. It adds a frequency offset - as opposed to a pitch offset - to the control signal:

Both oscillators are tuned exactly the same way, but DetHz modifies the pitch control of DP2Saw_2. DP2Saw_2 is "frequency detune" relative to DP2Saw_1.
Try the help patch: Help -> Library -> Community -> tiar -> tuning ->DetHz and play notes from the lower end of the keyboard to the higher end.

Here are the approximate detuning cycle/rates you will get with the control parameter:

  • 1: 8s cycle
  • 2: 4s cycle
  • 8: 1Hz
  • 64: 8Hz

[EDIT 27 feb 2018] Added an inlet to modulate the offset ie control the beat/chorusing speed.


#45

Object: tiar/osc/wf_16_harm

try menu: Help -> Library -> Community -> tiar -> osc -> wf_16_harm
is a companion object for the 16 segment anti aliased oscillator tiar/osc/16StepsDP2.

It allows to control 8 harmonics and the interpolation type, linear, steppy or even reversed.
This interpolation type allows to recreate harmonic imaging typical of old semi digital synths.


#46

patch: ToTheStars

menu: File -> Library -> Community -> tiar -> synths -> ToTheStars

This 8 voice patch uses a pair of new 6coseg m oscillators per voice and a feedback delay.
Phasing and filter effects are produced by modulations of the 6coseg m waveform parameters.


#47

Object tiar/lfo/555LFO

try menu: Help -> Library -> Community -> tiar -> lfo -> 555LFO
This LFO mimics the LFO waveforms of astable oscillators used in some analog effects (such as phasers and flangers).

pos and neg add some asymmetry.


#48

Object tiar/osc/SelfPMSync

try Help -> Library -> Community -> tiar -> osc -> SelfPMSync

This is a band limited sawtooth generator with embedded master oscillator. It allows to produce some classic analog sync sounds (try the help file).

  • beta is the feedback coefficient, it controls the brightness of the waveform.
  • octaviate controls a second slave oscillator. Positive values octaviates up one octave, negative values produce a "squarish" type of sound.

#49

Object tiar/artic/sentence1

try menu: Help -> Library -> Community -> tiar -> artic -> sentence1 (play legato notes and chords and see how vowels are chained).

sentence1 is sort of a note counter.
It counts how many notes you have played, its output can be used to chain parameter changes (such as formants in the example).

  • notes played in a 0.1s interval will be considered as one (useful for chaining on stabbed chords).
  • the counter resets after 0.2s when all notes are off.


Note: This example help patch uses sentence1 to control a @lokki s formantsettings object that controls a bunch of SyncPM2.


#50

haha, nice! thanks for sharing.


#51

Now.. we can try to add different transitions between vowels...

http://www.phon.ucl.ac.uk/courses/spsci/acoustics/week2-5.pdf

http://www.phon.ucl.ac.uk/courses/spsci/acoustics/week2-6.pdf

but, i think that it is somewhat tricky !!


#52

well you can fade between s1 and s2 in my formantsettings objects. (via the c inlet, but you have to set them to different vowels to hear actually a difference) otherwise s2 is actually pretty much useless :slight_smile:

but i imagine you want a different transition...