Patch: MetallicHorizon
An old school sci fy ambiance generator. It uses and abuses of the "8segs" kfunc object
menu: File -> Library -> Community -> tiar -> MetallicHorizon.axp
An old school sci fy ambiance generator. It uses and abuses of the "8segs" kfunc object
menu: File -> Library -> Community -> tiar -> MetallicHorizon.axp
try menu: Help -> Library -> Community -> tiar ->gain -> DCA
It is a "De clicked Digital Controlled Amplifier".
As expected, it multiplies the audio input "in" by the k rate "gain" input.
Unlike the factory gain/vca, the gain input is not interpolated: the gain is brutaly updated at zero crossings of the input.
This old trick allows the sharpest attack transients without clicks.
try menu: Help -> Library -> Community -> tiar ->kfunc -> Modulo
This is a unipolar k rate Modulo function.
The factor, multiplies the input signal.
It is the moduloed to 64.0.
Try the help patch to get an idea of what it does.
The "mirror" parameter is useful when using it on descending ramps or envelopes with non integer factors.
try menu: Help -> Library -> Community -> tiar -> noise -> Geiger
An impulse (more exactly transients) noise generator. The paramater and inputs controls the density...
try menu: Help -> Library -> Community -> tiar ->kfunc -> u8b
This is a k rate function defined by 8 segments. It takes a unipolar input and has a bipolar output.
As i find them really handy for mapping/adapting control ranges, I plan to make a bunch of those with different input and output types and number of segments.
try menu: Help -> Library -> Community -> tiar ->spat -> pan m
A constant gain^2 pan with modulation.
The direct use of a linear gain function - as in the factory pan - object leads to a variation of gain^2, the consequence being a variation of volume.
This object uses the fact that sin(x)^2 + cos(x)^2 = 1 to get uniform volume.
try menu: Help -> Library -> Community -> tiar ->kfunc -> b8u for an example
This is a series of 16 objects that can be seen as extensions of the handy TSG/math/map objects by @TheSlowGrowth.
Instead of a single segment, defined by the output range, these objects have 2, 4, 8 or 16 segments.
Naming:
Examples:
2 and 4 segment objects can be used for mapping control values.
8 and 16 segment objects can be used for complex envelope or LFO generators.
try menu: Help -> Library -> Community -> tiar ->kfunc -> quant
This is a quantizer for control signals.
It can be used, for example, to recreate some artefacts of early digital synths (when used on envelopes for gain and filter cutoff).
The quant parameter and inlet (added together) correspond to the quantization step.
The quantization is towards the "nearest quantization steps".
Quantization is centred on zero.
Example for quant = 4.00 :
Input Output
0 0
-1.9 0
+1.9 0
+2.1 4
+5.9 4
+6.1 8
-2.1 -4
-5.9 -4
-6.1 -8
Hi all,
I have a Music Thing Modular AxoControl attached to one of my Axolotis and i will develop/share some patches for it in:
menu: File -> Library -> Community -> tiar -> AxoControl
One of my goals is to get the maximum functionalities out of a very limited number of pots.
LittleClassic is the first i'm developing, and sort of test bench for ideas.
Basically it should cover most of the classic synth sounds:
Features:
Ideas:
At the moment the controls are :
A draft layout...
Updates 14 jul:
Updates 16 jul
try the help patch, in the editor menu bar, clic Help -> Library -> Community -> tiar ->dist -> SqrtMix4
This is a non linear "mixer".
I think it can be useful with sine inputs or combined with FM/PM. (see the help patch to get an idea).
If only one input is set, it won't be distorted. Distortion only occurs when multiple inputs are active and interfere.
Technically,
the output is the (signed) square root of the sum of inputs (signed) squares. Here "signed" means that we take the negative value of the square root or square if the input is negative. See code for details.
Note: I did not implement antialiasing with this one. Hence DP anti aliasing of a "signed square root" is certainly possible.
try the help patch, in the editor menu bar, clic Help -> Library -> Community -> tiar ->dist -> DP sqrt
It is a DP antialiased square root distortion.
UPDATE: added toggle switch to change negative output to linear. Useful for asymmetric distortion.
This kind of distortion emphasizes the low amplitude part of the waveform. Thus, the output signal crest factor is far better that the input signal crest factor. => I will develop some sort of mixer around this idea...
The negSlope parameter and inlet allow to control how the negative portion of the signal will be processed. It turns the object into a non linear wave rectifier reminiscent of some diode/resistor waveshapers.
Tech notes:
This object uses differentiated polynomial anti aliasing:
The square root is a very special case of polynomial, it is x ^ 1/2. ( " ^ " stands for "power" )
The integral of this function is 2/3 x ^ 3/2 which is 2/3 x * (x ^1/2).
The code uses the intrinsic float function arm::vsqrtf to calculate it. Even if this operation takes 14 cycles, it is quite efficient as the STMF cpu is capable to perform integer operations in parallel.
try the help patch, in the editor menu bar, clic Help -> Library -> Community -> tiar ->dist -> DP inv2
and Help -> Library -> Community -> tiar ->dist -> DP inv2 and PM
This distortion is inspired by electronic circuits that use polarisation points of non linear components.
Here, I use an hyperbolic function "polarised" around 1 with a controllable "factor" (that controls the non linearities):
Low factor => almost linear, nice for modelling old amps:
Mid factor => nice dissymetric distortion
High factor => pulsy, level detector distortion
note: all graphs plotted on Wolfram Alpha
Note that gain and range are automatically modified so that this distortion takes a full range signal and outputs a full range signal. It makes it convenient when used with sine generators and Phase Modulation to add a somewhat "analog" color.
try Help -> Library -> Community -> tiar ->dist -> DP inv2 and PM
Tech note:
This distortion is antialiased by differentiation, much like the good old DP (differentiated polynomials).
Next step:
generalisation of the differentiation method to rational functions. Very nice distortions can be done with these.
A little word about work in progress...
I'm working on a set of DP antialiased distortions.
I will post more detailed information soon.
Some help/test patches are already available in
Help -> Library -> Community -> tiar ->dist -> ...
To my ears, the anti aliasing by analytic pre integration / numeric differentiation is good enough to allow the combination of multiple distortions in parallel and series... and maybe feedback through tuned delay lines
Hi,
I still have some work in progress... mainly porting and optimising some code to the Axoloti such as the anti aliased distortions as described in the previous post.
I'm also porting this step invariant implementation of "the" 24dB filter
Raph Levien paper: http://levien.com/ladder.pdf
With my simplifications:
The step invariant method is a "Zero Delay Feedback" method that allows deep modulation and high resonance without frequency warping (the main drawback of the now omnipresent bilinear transform filter).
One of the drawback of the step invariant method is that it can be CPU intensive.
Anyway if you want to give my first experiments a try. See
Menu bar Help -> Library -> Community -> tiar -> filters -> MgExp.axh
That sounds great!
Really nice modelled analogue filters are something the Axoloti has lacked, thus far. Is this implementation antialiased?
a|x
Hi @toneburst,
This filter does not include distortions and is not prone to aliasing.
Frequency warping (which is another form of aliasing) is prevented by the matrix exponentiation scheme (square and scale) which is equivalent to a x64 oversampling.
menu: File -> Library -> Community -> tiar -> Strings -> Violin_commutedWaveguide
If you feel like you want to play the GoT theme... or Psycho... or Eleanor Rigby... well
This is a 3 voice polyphonic Violin patch based on synchronous Phase Mod (syncPM4) oscillators and feedback tuned delay lines (i'm still struggling to improve these for Karplus Strong synthesis schemes...). A simplified (and practical) version of commuted waveguide synthesis
It is especially designed for polyphonic aftertouch (it should also work with mono aftertouch).
try the help patch to get an idea: menu: Help -> Library -> Community -> tiar ->osc -> Qsc
This is a kind of bandlimited sawtooth oscillator capable of simulating low pass filtering and resonance with little CPU and low aliasing.
It is inspired by the trick Casio used with the CZ synths (waveforms 6, 7, 8).
help/test patches are already available in
Help -> Library -> Community -> tiar ->dist -> DP type IIA and B
both examples are mono synths that use simple signals as inputs for the distortion.
These object use integro differential anti aliasing of rational functions (a polynomial divided by another polynomial).
I experimented with many analytically integrable rational functions and i chose those that do not have tan nor log. Here are two functions that i found quite interesting.
Here is "type II A".
the distortion function "type II A"
Here is "type II B": is almost the same thing that type II A but with sort of crossover distortion as found in some push pull transistor amps.
Combination in series or/and parallel leads to interesting results...
menu: File -> Library -> Community -> tiar -> guitar -> Type IIA
heavily distorted sine wave oscillator.
The distortion consists in a series of Type IIA objects with highpass and allpass filters.