Tiar / SmashedTransistors Contributions


#122

Juce?

I am not 100% sure about this, "legal terms" are not really my speciality, but I think they have different licences and I think even with the free one you are allowed to sell plug ins, you just have a limit of how much dollars you are allowed to make from a personal account. The bigger accounts, which you pay for, you can make unlimited dollars :slight_smile:


(If i understand the above correctly)

Anyway, Maybe we should move this Juce talk to another thread, or just call it quits, so we dont spam your contribution page :wink:


#123

Back to the Fractal distortion topic...

Here are some more explicit graphs of the distortions functions :
(poitive part of the functions, the negative part being symetric).


Fractal I is based on one in two bit inversion


Fractal II is based on Gray code


Fractal III is based on bit swapping by pairs


Fractal IV


Fractal V


Fractal VI

[EDIT 20 jan 18]Added Fractals IV, V and VI


#124

tiar/dist/fractalRing

see the help patch to get an idea: menu: Help -> Library -> Community -> tiar -> dist -> fractalRing

This is a two input fractal distortion sort of ring modulator.

Here is one quadrant of the function:

The help Patch shows how it can be used as a waveterrain (thanks to @DrJustice for the quad_sine oscillator).
In the help patch you can change the Decay and Sustain of the ring input enveloppe to change the dynamics of the effect, you can change the Y gain to have some assymetry, you can also add offset to X and Y to change the distortion.


#125

Beautiful fractal/snowflaky waves there. Need to try this :slight_smile:


#126

Syncing libraries doesn't add these for me...


#127

That's weird @blaerg .
They are present in https://github.com/axoloti/axoloti-contrib/tree/1.0.12/objects/tiar/dist


#128

tiar/mux/smux4_1 and smux8_1

see the help patches to get an idea: menu: Help -> Library -> Community -> tiar -> mux -> smux4_1 smux_4_1_3stagePM and smux8_1.

These objects are smooth multiplexers, the output is a smooth crossfade between the different inputs. Pick some help file to test some ways to use them:

  • smux4_1 is a trivial example that shows how to crossfade between multiple waveforms.
  • smux4_1_3stagePM shows how to use it to mix modulators in a phase modulation synth.
  • smux8_1 simulates a "scanner" vibrato/chorus, as found on early electric organs:
    • the input signal is send to a chain of analog delay lines, that were in fact LC all pass filters (here simulated by a series of 1 delay all passes).
    • the delay/phase changes depends of the "depth" in the chain.
    • the role of the scanner was to scan thru various depths, here the scanner is simulated by a smux8_1 and a LFO.
    • to get the effect stereo I use a triphase LFO and a pair of smux8_1
    • NOTE: using allpass filters instead of delay lines changes the vibrato depth for the higher harmonics, that is part of this effect.

#129

tiar/dist/fraXOR

see the help patch to get an idea: menu: Help -> Library -> Community -> tiar -> dist -> fraXOR and fraXOR_4osc

This is a four input fractal distortion sort of ring modulator that uses XOR functions.
As with my other fractal distortions, it uses x8 oversampling.

(Sorry for the cheesy japanimation "fraXOR" name, but i could't resist to call it that way).


#130

Hello @SmashedTransistors
Why do we need a scope ? Can we bypass it ? Or is the footprint of a scope negligible ?
Sorry I'm a total noob on the Axoloti :blush:


#131

The OLED128x64 collects the data from the scope. This way, you can choose the kind of scope you want (sample rate or control rate, type of sync) to connect to the OLED128x64 object.


#132

Oh ok, I did not understand that !
Thank you !


#133

After a major letdown wherein I lost even basic factory objects, I am going to blame security software for preventing the files to retrieve. Which is odd because nothing has changed on the machine and all previous sync attempts worked flawlessly.

Going to try your new objects now, with much relish!


#134

I never had a glitch with the repository. But, well, can't say it won't happen, everything is possible with all these antivirus and OS semi automatic updates :roll_eyes:


#135

tiar/filter/APChain

see the help patch to get an idea: menu: Help -> Library -> Community -> tiar -> filter ->APChain

This is a nested chain of first order all pass filters.

These are all pass filters, whatever the settings, all frequencies passes through it, no kidding.
But, it changes the phases on certain frequencies.

By modulating its characteristic frequency and its nest feedback g2 coefficient it is possible to create sorts of vibratos/chorus as found on some early analogue organs.

By mixing it's output with the incoming signal, it is possible to recreate the famous phasing effect.
The help patch implements such a phasing effect with a 3 octave paraphonic string sound and a little reverb like it is 1978.

Here it is used first as a fast modulation "vibrato", second as the classic deep and slow phasing:


#136
((i*5)&0xAA)*(1-0.25*(1-sin1(x))*(1-sin1(x)))

#137

tiar/PIW/

I will add in this folder a series of objects based on pre integration anti aliasing that will be quite versatile.

see the help patches to get an idea: menu: Help -> Library -> Community -> tiar -> PIW


tiar/PIW/gen

is a wave generator, at init it generates a wave based on the function formula you put in. It generates and pre processes the wavetable. It does not produce audio signals. It must be used with PIW/osc

function:

two variables are available

  • i is an integer from 0 to 255, it can be used to generate "8bit" tables, try stuff like i^(i>>1)
  • x a float varies from 0 to 1
  • available functions: saw(x), tri(x), sin1(x)

The wave is automatically DC removed and normalised so that expressions like ((i * 5)&0xAA) * (1-0.25 * (1-sin1(x)) * (1-sin1(x))) can work without bothering to much about amplitudes and offsets.


examples for functions you can type in:

pure sine wave

 sin1(x)

multiple sine waves

 sin1(x)+sin1(3*x)+sin1(5*x)

square wave

 x > 0.5f ? 1 : -1

rectangle wave 33 %

 x > 0.333f ? 1 : -1

-1 +1 triangle wave

 tri(x)

triangle 33% cyclic ratio

 tri(x, 0.333f)

smooth triangle 33%

 sat(1.5f * tri(x, 0.333f))

sine switch

 x < 0.5f ? sin1(2*x) : sin1(8*x)

Fractal waveform

 i^(i>>1)

Another fractal waveform

 i^0xAA

steppy sine Γ  l'ancienne

 sin1( ((int)(x*16))/16.0f )

Here is the "sine switch"

The "steppy sine"

and ((i * 5)&0xAA) * (1-0.25 * (1-sin1(x)) * (1-sin1(x)))


One more waveform (copy paste this into the "function" attribute of the PIW/gen)

tri(x) > 0.99f ? 
  0.1f
: tri(x) < -0.99f ?
    -0.1f
  : x > 0.5f ? 
      3 * tri(x) - 2.6f * sat(0.6f * tri(x) - 0.05f)
    : 1.1f * sat(0.7f * tri(x) + 0.1f)

This is an unperfect "triangle waveform" as it can come out from an old and almost defective analog synth (commutation spikes and slight asymmetry).


tiar/PIW/osc

is a osc with anti aliased phase modulation. It connects to a PIW/gen and is aliasing limited thanks to pre integration.
This osc is capable of phase modulation with complex wavetables (as carrier and modulator) with little digital artifacts. It is phase modulation Γ  la sinclavier as opposed to DX.

see the help patches to get an idea: menu: Help -> Library -> Community -> tiar -> PIW


[edit] moved to tiar/PIW


TX81Z algorithms
#138

PIW/phi

This is a "phase randomiser" that applies to a PIW/gen object (processing are made at init).

This can be used to avoid phase cancellation when using detuned oscillators to create chorused sounds.

Here is a practical example:

The first chunk is two slightly detunes square waves. It creates a nice chorusing effect but phase cancellation occurs from time to time.

The second chunk is a square wave and a phase processed square wave. The sound is similar to the first, but there is no more phase cancellation. The chorusing effect is smoother.

see the help patches to get an idea: menu: Help -> Library -> Community -> tiar -> PIW -> phiSquare

[edit] moved to tiar/PIW


#139

PIW/disharm

This is an harmonic killer that applies to a PIW/gen object (processing are made at init, so zero CPU cost).

It removes up to 8 harmonics of you choice from the targeted PIW.

Yes, it does not add, it removes !

Removing harmonics can be useful in many cases for example :

  • suppression of harmonic 7 to improve clarity in chords in a poly synth,
  • suppression of harmonics 2,4,6,8,10 of a saw to get a "squarish" feel (clarinet)*
  • suppression of low harmonics on a wavetable used for doubling/chorusing to avoid unwanted low phase cancellations/beating

*to get an idea: menu: Help -> Library -> Community -> tiar -> PIW -> disharm and disharmDoubling


#140

PIW/O2osc

This is a x2 oversampled PIW osc with complex phase modulation capabilities: less aliasing and a brighter sound.

To get an idea: menu: Help -> Library -> Community -> tiar -> PIW -> O2osc

Note: the oversampled signals consist of 2 interleaved sample rate signals. They can be converted to normal sample rate with converters in tiar/conv.

[edit] moved to tiar/PIW


#141

the tiar/PIW objects are now stable.

[EDIT 13 march 2018]
Tests show that glitchy issues do not occur anymore...


[EDIT 02 march 2018]

  • Updated osc and O2osc
    • they comply with the new gen and copy objects (16 to 512 sample tables, internal or external RAM). Now, you can use small tables for simple waveforms.
  • Updated gen object
    • corrected phases for the sin1 and cos1 functions.
    • new exp function. Thus sin1(11*x) * exp(-4*x) generates sort of resonant waveform.

[EDIT 01 march 2018]

  • Evolution of the pre integrated tables (impersonated by PIT/gen and PIT/copy)
    • size attribute (from 16 to 512, defaults to 256 for compatibility).
    • for some waveforms, such as triangle and trapezoid, short tables are OK, that saves RAM.
    • internal RAM or external RAM
    • factory/table/read compatible so that it can be used as LFO waveforms.

[EDIT 27 feb 2018]
At the moment, I am upgrading the gen object so that it can have a size from 16 to 512 samples and be set in internal RAM or external RAM.I'm beefing up the PIT oscillators (regular and oversampled).
Still testing them, I will release them in a few days.

  • freq offset inlet : for smooth detuning
  • disto mode boolean inlet : to transform the osc into an anti aliased distortion unit (the PIWT being the distortion function)
  • disto offset inlet : an offset so that the distortion is centred where you want
  • disable boolean inlet : to disable the object and save CPU.
  • extended modulation depth

I'll try to keep it compatible with the current version but they will take more space on screen.


[edit] moved to tiar/PIW