Sputnki contributions


#41

New objects:

sptnk/sequencer/mandelbrot.axo
Iterates over the mandelbrot function z' = z^n +c
Controls for the complex number coordinates and power (up to 16)

sptnk/osc/lissajous.axo
Generates a lissajous figure (x y coordinates) that can be used in conjunction with sptnk/math/2d mapper.axo
Controls for pitch, x and y offset, radius of the circle, phase and frequency multipliers.
By default the object outputs a circle.
xmul and ymul inlets override the respective parameters

sptnk/math/2d mapper.axo
sptnk/math/2d mapper mod.axo
Takes in input two coordinates and outputs a number, based on a function (from a fixed set, between linear, quadratic, cubic and sinusoidal, with a, b, c parameters).
This may sound boring, but some algorithms can produce a pretty raw sound.
Available with interpolated mod input and an option to saturate the input to normal range. Two algorithms allow feedback.

sptnk/math/cartesian2polar k.axo
sptnk/math/cartesian2polar s.axo

Theorically, these object should convert a set of cartesian coordinates to polar.
In practice, the arctan implementation is quite cheap, and distorts the phase a little bit (will be upgraded hopefully)


#42

New object:

sptnk/table/read lissajous.axo
Short explanation: takes the content of a table and draws it around a circle.
Long explanation: a phasor is used both to scan a table and to generate two quadrature sines. The value of the table at the position corresponding to the angle is multiplied by these quadrature sines and added to an offset. The resulting coordinates are then offset by a final amount and then outputted.

Unfortunately i don't have the proper equipment to demonstrate this extensively (not even a sound card :frowning: )
But i can assure it works, i did some tests with the axoloti ghetto recorder and a freeware osc found online.

This is some output with a square/pw table


#43

New objects (anyone likes geometry here?)

sptnk/math/polar2cartesian.axo
sptnk/math/polar2cartesian s.axo
Converts a set of polar coordinates (angle, radius) to cartesian. (2D) (k -rate, s-rate)

sptnk/math/cylindrical2cartesian.axo
sptnk/math/cylindrical2cartesian s.axo
Converts a set of cylindrical coordinates (angle, radius, height) to cartesian. (3D) (k-rate, s-rate)

sptnk/math/spherical2cartesian.axo
sptnk/math/spherical2cartesian s.axo
Converts a set of spherical coordinates (radius,inclination,azimuth) to cartesian. (3D) (k-rate, s-rate)


#44

Should be good for driving an oscilloscope for cool visuals!

a|x


#45

That's exactly what i want to do (even if i don't have an oscilloscope :grin: )
I'm working on some object to project a set of 3d coordinates to 2d


#46

In a previous life, I used to make realtime 3D tools/toys for VJs, so I'd love to see what you come up with.

I have some other ideas about porting ideas from graphics to audio that might be cool.

a|x


#47

Well, i don't really have a precise objective in mind, however i think these tools might be useful to some geeks.
Also, exploring 2D and 3D space might (might!) be interesting for some kinds of modulations.. Who knows?

If you have some ideas i'm curious to hear them.


#48

Objects added:

sptnk/math/projection.axo
sptnk/math/projection s.axo

These objects project a 3D set of coordinates into 2D, with a weak perspective algorithm https://en.wikipedia.org/wiki/3D_projection#Weak_perspective_projection
attr_plane allows to select the plane of projection (plane = xy -> camera axis = z; plane = yz -> camera axis = x; plane = zx -> camera axis = y; )
Scale parameter allows to scale the output (standard axoloti format), eye specifies the distance on the camera axis of the eye. This means that if the eye is set to 64 and the plane of projection is xy, coordinates at z = 0 will appear unscaled. z<0 will result in smaller figures, while z>0 bigger.
At z approaching 64 the magnification approaches infinity


#49

Thanks @Sputnki many interesting objects for my oscillographics patches to try out!
I tested the projection.axo ... with yz plane I'm getting this error:

rootc::instanceprojection__1::calc_Px(int32_t, int32_t, int32_t, int32_t, int32_t)':
/Users/akirasrebirth/Documents/axoloti/build/xpatch.cpp:2219:3: error: expected primary-expression before '<<' token
{<<1
^
make: *** [/Users/akirasrebirth/Documents/axoloti/build/xpatch.bin] Error 1
shell task failed, exit value: 2
Compiling patch failed ( /Users/akirasrebirth/Documents/axoloti/akirasrebirth/3d Oscillostudio.axp )


#50

Thanks for the report, corrected!


#51

Added some looper objects:
sptnk/looper/pos m.axo
sptnk/looper/pos speed m.axo
sptnk/looper/record speed.axo

The first is a looper/pos with modulation inlets for parameters.

Second and third object allow glitch reduced stretched recording.

I'm still far from the quantized looper, however i'll come to that object eventually (it's not so easy to code!)


#52

Any chance of letting me know how to do some slicer implementation?


#53

I've made a slicer object (there are two instances of it, one with inlets and one with mod parameters), with an help patch. Not sure if it's what you need, however it's not really a flexible object.
I was thinking to make some all-in-one sample player, however i fear it's too big of a project and i'd give up sooner or later...


#54

sptnk/logic/shift register.axo

It's a shift register that can do SISO and SIPO.


#55

sptnk/logic shift register 2d.axo
2 dimensional 4x4 shift register.
Data is organized in a 4x4 matrix. You can access singular values with x and y coordinates.
You can find a brief schematic of the matrix inside the local data of the object


#56

i can't find the slicer help patch?


#57

Have you tried clicking on the arrow of the object?


#58

Ah...by patch you mean help information? Yeah I've seen that.


#59

sptnk/effect/sat ur hate 2.axo

Yet another polynomial waveshaper, antialiased, with internal feedback loop, but also variable waveshape and modulation inlets. You can see some shapes it can do here:

IMPORTANT! Input is hard saturated to normal range, but no antialiasing is applied in this stage!

Feedback can be either positive or negative, sets the amount of output signal that is mixed with the input (it can beef up the sound, but also totally destroy it). Tame option automatically lowers input volume according to feedback amount.

A filter can be inserted in the feedback loop (no filter / lowpass 1 pole / highpass 1 pole) to stabilize or cancel dc.

Shape, feedback and filter pitch can be modulated, with little or no artifacts.


#60

sptnk/effect/hard 1.axo
Waveshaper distortion (hardclipping + crossover). Antialiased.
The amt parameter controls the position of the peak (it's basically a gain).

sptnk/effect/hard 2.axo
Waveshaper distortion (pseudo tanh). Antialiased

Plots are courtesy of wolfram alpha