Tiar / SmashedTransistors Contributions


#85

tiar/dist

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 -> ...

  • compand
    for companding (use in conjonction with expand for non linear mixers...)
  • expand
  • rectify
    a full wave rectifier.
  • step
    an "infinite gain saturation". (planned lighter CPU than the factory dist...)
  • fold
    a wave folder.
  • squares
    alternating positive and negative steps.
  • modulo
    a modulo folder (sounds harsher than the classic fold).

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 :stuck_out_tongue_winking_eye:


#86

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


Question about filters
#87

That sounds great!
Really nice modelled analogue filters are something the Axoloti has lacked, thus far. Is this implementation antialiased?

a|x


#88

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.


#89

Patch: Violin_commutedWaveguide.axp

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).


#91

Objects tiar/osc/Qsc

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).


#92

tiar/dist/DP type IIA and DP typeIIB

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...


#93

Patchs disto "guitar" Type IIA and Type IIB

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.


#94

Really nice, paired these up with the brds/sinefold oscillators and modulated everything subtly and slowly - loads of delightful harmonics.

I don't see the guitar/Type IIA at all in the library, however.


#95

It is in community/tiar.. maybe a problem with the library update...


#96

Patch RadioMorse

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

use and abuse of the tiar/dist/SyncAlias module to get a dirty and radioactive digital flavour (polyphonic with autopan and delay).


#97

Just synced libraries again.
Definitely not there, while the other new ones are.


#98

No RadioMorse, either.

Problem on my end or your end?


#99

Hi @blaerg,
They are in the patches, not in the objects.
They are, with many other patches in File (from the editor menu bar) -> Library -> community -> tiar -> ...


#100

Problem on my end, then! A problem in awareness - I didn't even know this patches menu was there...


#101

Another 'hidden' one is:

menu bar -> Help -> Library ->...

it directly accesses the "help patches" associated to objects


#102

Object tiar/HW/OLED128x64

try the help patch to get an idea: menu: Help -> Library -> Community -> tiar ->HW -> OLED128x64

This object allows to use a 128x64 OLED I2C display (using PB8 and PB9 in I2C mode).

if mode == 0 the OLED will display line1, line2, line3 and line4 strings (up to 11 characters) :

if mode == 1 the OLED will display line1 and a graph corresponding to the scope object linked in the "scope" parameter:


type can be set to SH1106 or SSD1306. 0"96 displays are usually SSD1306 while 1"3 displays are SH1106.

I2CADDR is the I2C address of the display, it can be 0x3C or 0x3D.


Notes:

  • You can use only one instance of the object. If you want to use two displays (with àx3C and 0x3D I2C addresses) you can use the extended object OLED128x64Dbl
  • This object has been designed to have a limited RAM footprint (it does not use double buffering).
  • Objects tiar/string/mux2 and mux4 allow multiplexing strings (by multiplexing their pointers, not by copy) they can be used as inputs for OLED128x64 (see the help patch)
  • Object tiar/conv/f_to_c converts fractionals to strings on six characters (format: sddd.d) (see the help patch)
  • see also https://sebiik.github.io/community.axoloti.com.backup/t/spi-i2c-oled-display/638/24

SPI/I2C OLED display
Screen for the axoloti
#103

Hey @SmashedTransistors

How complicated is it to get those OLED displays working with Axoloti?


#104

These I2C OLED displays are easy to connect to the Axoloti, you just have to add two pull up resistors.

If you use the object I made, it is quite easy to use (see the help patch Help -> Library -> Community -> tiar ->HW -> OLED128x64).

If you want to draw fancy stuff it will be much harder, you will have to code very low level graphic algorithms and mess with some sort of double buffering.


#105

Cool sounds great. I am not that much of a hardware fiddler, so this sounds great.

I just want some kind of parameter feedback. Maybe two of these OLED's would be great.

On Organelle they just updated the code for the display, so now you can actually draw stuff on the display, not only letters. Its pretty cool. Haven't dug into it yet, though, but as far as I know it is mostly for showing simplestuff like an adsr envelope.