# Low level units?

i was asking myself if the idea of having more low-level units (at the UI level, not in middle layer) would be possible and\or auspicable.
i think for example about what @Joe did explicitating the Comparator into an independent unit.
the possible units i’m thinking about are mathematical\trigonometric units like “absolute” “sin” “cos” “tan” and stuff like that.
maybe a shift register…

i’m almost sure some of this might even be possible now with actual units…

example: i know that a shift register can be made by chaining multiple sample and hold units (alike what i did with my Kanonika custom unit simulating an analog shift register), do you have suggestions in that area? from that one might be able to even build more chaotic stuff like lfsr (linear feedback shift register)?

another one…
in his great Synthesis Workshop Rob Hordjik extensively talk about chaos generation.
https://rhordijk.home.xs4all.nl/G2Pages/
one of the things he mentions as necessary for certain chaotic modules is a special “one-and-one-only” module that permits to feed the “seed” value to the sample and hold for ONLY the duration of one clock pulse.

how can we create something like that?

1 Like

can we somehow reproduce functions like this:
X’ = 4 * X^3 - 3 * X
or this:
X’ = 4 * X * (1-X)
using only vca’s (we have the rational vca), offsets and such?

1 Like

i tried patching the last expression, it is missing the connections to X but can please someone more clever than me check if this is theoretically correct?
4xXx1-X.unit (10.0 KB)

1 Like

UPDATE
well, something is happening!
i “completed” theorically the circuit and tried mapping it to stuff, i was able to knock out a sine osc fb parameter, now it says “nan” in place of the value and stopped producing sound

UPDATE 2: i make it go BOOM but i was able to test it and it IS working! just a couple of seconds but it was giving me (pseudo) random values! just sampling an “offset” for approximately one clock pulse, it was generating patterns!
i try to tidy it up a bit and post the patch in its own thread.

2 Likes

Hehe - you’re making me want to stop work and play with the ER-301 instead - must resist - must resist!!

1 Like

I DID IT!
or , well, i did something! i up it in a specific thread now

The sample scanner can do this, if you create WAV files with the appropriate transfer functions. I’ve used that for sin() for phase modulation purposes

3 Likes

thanks! can you share some technique for the creation of functions? does it matter how many samples are they long, etc? thanks!!!

1 Like

I don’t think the sample scanner cares about number of samples. It will just map the entire sample to the input range (e.g. from -1.0 to 1.0). Brian gave a python code example in a different thread. I meant to try some experiments with it but it has not risen to the top of my list yet.

3 Likes

I figured out a simple-ish way to do it:

– use Excel, Libre Office etc. to iterate through a formula. For instance:

`=TANH(-2 + (ROW()-1)*0.01)`

for 400 rows. Select that column, paste into a text editor, save it as tanh.txt.

Open Audacity, and use the “Sample Data Import” option under the Tools menu to import the text file.

(Does this mean I’m going to be selling my tanh[3] too…? )

(And honestly, I find it simpler in spreadsheets to create an “x” row and then apply the function in a “y” row. Put the initial value at A1, set A2 to “=A1+.01” and then copy/paste A2 as far down as necessary. Then stick the function in B1 and copy/paste it down. Plotting column B on a graph within the spreadsheet helps verify it’s right.)

This is a good time to ask: does the sample scanner do any sort of interpolation, or would we be better off creating longer files with more data points?

6 Likes

Very cool!

Here are several I made this evening. Untried, but many of them should be useful for some sort of waveshaping, at least

functions.zip (5.3 KB)

1 Like

wooow! Super useful thanks a lot!

Another easy way i found while making the Custom Unit Swipe was to record a snippet of CV and the use the plethora of fades in Reaper. I made quite few of them.
RampsAndWindows.zip (299.4 KB)

1 Like

One can also use Csound to generate functions and write them to a raw file. I haven’t tried but i might if/when some free time happens.

2 Likes

i’m not able to write csound but i can do some supercollider, will try that thanks!