SirSickSik Contributions


#1

If you would like to make a donation for my services, you can donate using this link:
paypal.me/SirSickSik

I started coding my first modules three weeks ago and I like it! XD
So, here comes the list:

CONV:
-pitch2khz (actual khz value)

DIST:
-analogue: analogue style distortion with a "capacitor" holding the maximum energy that can be used for gain (gain takes energy from it, feed adds energy to it)

DYN:
-transien designer: dynamics module for adding/subtracting volume to/from the attack or decay parts of the incoming sound.

-compressor: compressor with attack/decay, threshold (oh now I notice I completely forgot the ratio hahaha), input gain, expander function and goal-gain.

-limiter: limiter with decaytime, threshold, automakeup gain and expander function

FILTER:
-36dB LP filter with resonance

FX:
-pitchshifter: with LFO-rate and window size

LFO:
-ShapingLFO: low frequency oscillator with selectable sine,tri,saw,ramp,pulse waveforms, phase input, reset/sync, uni/bipolar option, 2x bezier-curve parameters, curve mode (normal,exp,-exp, S-curve peak, S-curve Square) and extra harmonics input.

-latchfader: outputs a trigger each time the sine is at lower (trg 2) or upper (trg 1) bound. Usable for triggering latch module and the morph from one to the other using mixfader controlled by the sine output.

LOGIC:
-Shift register: CV/gate 32-step shift register with loop-position selection and 3 combi outputs for gates (trigger position selected by var inputs)

MATH:
-8x smooth: 1 control for smoothing 8 values at the same time.

-divremc: with a range input instead as attribute.

-divremcgates: each time rem is at selected countposition, outputs a high gate,

-ratioVCA: uses integers to set a division for an incoming float.

-tripplepower: 3x stacked exponential curves. Usable for curving the phase of an oscillator for example.

MUX:
-modselector: features 8 inputs for modulations and 8 outputs to send to. Has input-selectors and volume control for each output.

-smthRotator: smoothly rotates the 8 inputs over the 8 outputs.

OSC (&shapers):
-11XShaper: MASSIVE phasor-oscillator shaper with 11 modes (one glitching between the 10 main modes). Each mode has 6 parameters to modulate the waveform. CPU range from 5% to up to 17% for the harmonic morphing shaper!

-3AMshape: 3 sine oscillator ringmodulating each other. 6 parameters to control

-3xModOsc: tripple sine oscillator with FM, PM and AM.

-6HrmShape: heavy harmonic shaper. Shapes incoming phase into 6 seperate sines morphing from one harmonic to another.

-doublepulsar: pulsewidth oscillator with 2x2 cores.

-dualbezshape: bezier oscillator with 2 stacked bezier curves. One for positioning the curve and the other for the curve-amount.

-glitch osc: based on my counter modules, this just glitches the hell out of the phase input, jumping, wrapping, speeding up etc.

-ringosc: ringmod oscillator for creating bell-like tones.

-sawtrimod: oscillator with controls for morphing the waveform. Saw<-tri->rampl, tri<->sine, pulse etc..

-supersaw: supersaw oscillator with 6 parameter controls for detuning, pitch offset, phase, morphrate.

-vosimshaper: a vowel oscillator using 3 AM'd sine oscillator each having their own rate control (in ratio to incoming phase) and width control.

PATT:
-1RngCount: single counter manipulator based around the divremc module (which I've been calling ranger module for several years now in my synthedit projects). Incoming count gets ranged between 0 and Pre-Range. After this the rem-out gets multiplied, added to the multiplied div-out and added to a multiplied (div-out)*(rem-out). Hard to explain, but very usable for quick patterns.

-CountMem: Module for using a single knob and single selector for controlling the 9 parameters of the 4RngCounter or 3 single counters.

-ReCntMem: controller module for the ReCount module, needing only a single control, to control up to 16 parameters.

-ReCntPos: a counter "restarter" or polyrhythmic generator. For up to 16 steps, set the count-length that each step takes before going to the next step.

-countCtrl: controller module for the Countmem module, showing which parameter is being selected.

TABLE:
-16mod_recorder: record up to 16 modulations with just a single selector and single CV control!

TIMERS:
-Clock2Timing: converts a clock/gate signal into timing references. Outputs total amount of samples for each tick, seconds, Hz to be used with my LFO modules, khz for bpm-synced oscillators (if you'ld like that), base-delay time to be used for BPM synced delays, maxdelay for bouding the delay-modulation to usable range, and "maxtimes": the amount of times the basedelay time can be multiplied and still fit the delaybuffer.
The samplelength input should be set to the same binary value of the delay module (see values in xml code by opening in editor)


#13

...is there a way to double-triple-quadruple-like your objects?


#14

WOW! Impressive list!! Cant wait to test:)


#18

how do you mean?
Load multiple objects?->yes
make the objects themselves bigger?->what are you thinking about?

ps: the multishaper has all the 6-parameter shapers in it, live selectable by the "mode" pin. eg. control it by a random integer generator, generating a new random value between 0 and 11 with each new polyphonic midi trigger, so each note uses it's own shaper-mode!


#20

These look great!

Particularly interested in your shift-register object. I was working on something similar myself, so interested to see your take on the classic!

a|x


#23

and also, I recommend the pattern modules "1RngCount" and 4"RngCount" together with the RngCntMem module to control it (or use it to control other modules, using only a single knob and selector to control up to 9 parameters! Parameters only get updated when you change the knob value.) Hook it up to the harmonic module and set the note range with the "AftRng" input or use it as a counter to count through a drumpattern, shuffling the beat with each parameter change. Each pattern is now a zillion patterns!


#24

Sounds great! I really like randomness, but I also really like the idea of scrolling through a large number of pseudo-random patterns, and being able to recall one I like later.

a|x


#25

I'm also intrigued by 'dualbezqhape', as I did a couple of K-Rate Bezier interpolation objects recently. Maybe you've gone about things in a different way.

Nice work, keep 'em coming :slight_smile:

a|x


#26

..just meant to say it's GREAT stuff!


#27

oeh, I just found out that in the new version I can finally use the integer parameter, so at the moment I'm updating the CountController with 8 additional parameters (count offset for each stage and range control)


#30

Added the new counter and controller and an oscillator version of the shapingLFO


#31

wow, i am flabbergasted really great stuff, i`d wish there would be some help files..thank you!!

if i try to load 11Xshaper or/and shaping OSC console says:

C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.cpp: In member function 'void rootc::instance11XShaper__2::dsp(const int32_t*, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t (&)[16])':
C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.cpp:281:15: error: 'class rootc' has no member named 'instance_i'
parent->instance_i.array[USAT(((inlet_b<>(27-parent->instance_i.LENGTHPOW)]=SSAT(inlet_c,28)>>parent->instance_i.GAIN;
^
C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.cpp:281:79: error: 'class rootc' has no member named 'instance_i'
parent->instance_i.array[USAT(((inlet_b<>(27-parent->instance_i.LENGTHPOW)]=SSAT(inlet_c,28)>>parent->instance_i.GAIN;
^
C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.cpp:281:130: error: 'class rootc' has no member named 'instance_i'
parent->instance_i.array[USAT(((inlet_b<>(27-parent->instance_i.LENGTHPOW)]=SSAT(inlet_c,28)>>parent->instance_i.GAIN;
^
C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.cpp:658:42: error: 'class rootc' has no member named 'instance_i'
outlet_result[buffer_index]=( parent->instance_i.array[_USAT(inleta[buffer_index],27)>>(27-parent->instance_i.LENGTHPOW)]<instance_i.GAIN)< ^
C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.cpp:658:105: error: 'class rootc' has no member named 'instance_i'
outlet_result[buffer_index]=( parent->instance_i.array[_USAT(inleta[buffer_index],27)>>(27-parent->instance_i.LENGTHPOW)]<instance_i.GAIN)< ^
C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.cpp:658:137: error: 'class rootc' has no member named 'instance_i'
outlet_result[buffer_index]=( parent->instance_i.array[_USAT(inleta[buffer_index],27)>>(27-parent->instance_i.LENGTHPOW)]<instance_i.GAIN)< ^
In file included from ./axoloti.h:24:0,
from ./xpatch.h:3:
C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.cpp: In member function 'void rootc::instanceshapingOSC__2::dsp(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t (&)[16], int32_t (&)[16])':
C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.cpp:713:17: error: 'inlet_Pitch' was not declared in this scope
MTOFEXTENDED(inlet_Pitch,freq);
^
./axoloti_math.h:116:26: note: in definition of macro 'MTOFEXTENDED'
int32_t p1 = (int32_t)(pitch); \
^
make: *** [C:\Users\Philoop\DOCUME~1\axoloti/build/xpatch.bin] Error 1
shell task failed, exit value: 1
Compiling patch failed ( untitled )


#32

I get the same error (inlet XXX was not delcared in this scope) on almost all of the SSS stuff. I did a reload objects and sync libraries. Im on 10.10. Some things work. Others dont
:slight_smile:


#33

hi Philoop, for that one you'll also need to load a table allocator (length=2048) and write the name of it into the combobox like you do with the table modules.
This one was one the first things I made and I couldn't get my head around that table back then.


#34

oh yes true , stupid me....thanx


#35

that is quite an overstatement.. there were only 2 modules with a wrong naming of pins..

I think you kept the pitch2khz module or the saw-something-oscillator/shaper in the patch when trying other modules (pitch2khz inlet_pitch was still named "a" though was called upon using "inlet_pitch".. weird.. as I actually named it "pitch" and it worked when I saved it..
for the other, it was just a capital "P" that was needed instead of a "p").

For the other modules that "don't work", for some you need to add table or delay allocation modules and enter the name of the allocation module in the combobox. The pitchshifter combobox needs to have the name of the pitchshifter module itself->if I get my head around this coding a bit more, I'll make sure that he'll get this name automatically.. or if anyone else can do this for me...?).

I'll try to update all of the info of what pins are and how to use the modules (and add some demo patches). Just wanted these modules to finally go online after I was cutoff from the internet for a couple of weeks.


#36

ah!:slight_smile: My mistake then. Thanks again for all your work!


#37

Using my clock2timing modules with my LFO and the native delay modules:
(I'll try to write a converted output for the native modules)
ps for the time-limiting you can use either one of the "min" modules... just depends on what kind of routing you are using and functionality you need..


#38

Making a simple help patch for each object can help a lot to clear up any confusion about how it's used. You can add a reference to the help patch in the XML of the object so it can be opened via the popup menu that appears when you click the little triangle at top-left of the object.

a|x


#39

I'll look into that!

at the moment I'm rewriting the 6x harmonic morph module, so it's a bit more usable (parameters react completely different then other modes of the multishaper, causing it to quickly distort when changing a parameter in the way you would with the others. When using these modes on the multishaper (mode 5 and 6), every "1" on a knob-turn is one harmonic further, so there are 65 harmonics played after each other when turning it from 0 to 64...plain k-rate glitching fm.. haha