SirSickSik Contributions


#816

SOME NEW MODULES

MIDI

"CCzoom"
Receives Midi Continuous Controller messages
Also has a CC-entry for setting a "zoom" function. This bitshifts the incoming midiCC and only updates the part of the internal value that fits the zoom-bit-depth. This allows for a "universal zoom setting", so every parameter can be controlled up to the tiniest precision.

"midichordIN" and "midichordOUT"
these module function to share the scaled notes generated by the tonnetz sequencer with other axoloti's over midi. As my latest sequencer is calculated based upon frequency-ratio's, which would not be able to be send over by normal midi notes, I needed it to have a precise half-semi-tone ranged pitch-bend with each send note.
This module thus sends the generated triad over through midi, other modules can be used to generate the rest of the scale or generate accompanying chords/transmutations.

"distribute4"
this module I wrote for use with the "gateSpreader" "gates-input". 3 parameters are used to send the incoming value over to 1 or more of the 4 outputs. When width and slope are set to zero, the sum of all the outputs is the same as the input, perfectly dividing the "amount of gates" set at the input over all the outputs. Adding width will widen the "center", which is set by the "select" parameter (the output that will receive most of the input value), causing the outputs next to it to get closer to the center-value. The slope parameter will set how slow the slope drops. When either width of slope is set to 64, all outputs will send the full input value.
Translated into using with the gateSpreader:
-you can select which of 4 voices gets the most "playing time"
-you can mix in other channels to "fill up" your song
-all of this can be externally controlled with lfo's and pattern generators

FILTER

"dualVCF3"
based on the factory-module VCF3, this one has 2 filters in a single module, together with the softdrive module in between to limit the resonance.

OSC

"superSqrSaw"
8 saw/pulse waveforms with detuning, non-bandlimited. I myself use it as a phase-offset generator for my new wavetable-oscillator to turn it into some kind of super-wavetable-oscillator.


#817

Just wanted to make a suggestion, not for a new object, more of an update to an existing one.

That compressor I enthused about some months back /sss/dyn/compressor is genuinely one of my favourite compressors, and I was wondering, would it be possible to add two more inlets to it, one to control the curve of the Attack and one to control the curve of the Release?

Reason I ask is this compressor is very capable already at getting the sort of effect I go for, but what would make it even better is the ability to contol those Attack and Release curves so that they can be bent inward and outward if that makes any sense. The idea is that such a feature would allow even tighter control over getting even more punch or pluck!

Really love this compressor and that's the only thing it doesn't have that I wish it had. Not in a hurry for it or anything, I know how crazy you are for pumping out an endless stream of new objects, but maybe consider it if you ever decide to refine that compressor, cause it's absolutely worth doing.

I think it's a great compressor, definitely a fave of mine!


#818

hmm, not sure yet if that is possible. So for some quick theorizing.. Currently the envelope-follower is a 6dB LP filter with independent rise/fall rate, smoothing the rectified input. So that would mean I'ld need to make a filter that, independently of it's current position, but dependent on whether it just switches from rising to falling, somehow modifies the rise/fall rate to mimic this behavior.
It might be done by delaying and smoothing the transition of the rise/fall rate. Orrrrrr..... whenever switching from rise/fall, it starts off in a rise/fall rate that is lower/higher then the setting set with the A/D and then falling back to this actual setting depending on some other rate.. that might actually work.... ok, let's try it out.
AFTER I've restarted my computer to check out whether the java-update fixed by mouse-response bug..


#819

Just rectified my post, I actually meant the Attack and Release curves, not Attack and Decay :blush:

Cheers mate, would be great if it cold be done, and if it means it would alter the way it currently works, maybe release it as a second variant rather than change the current one so that we have two versions, one with and one without that feature.

I reckon Attack and Release curves will turn it into an absolute Goddess of a compressor!


#820

yeah, I'll do that as I needed to change the calculation of the attack&release (indeed, it's release instead of decay, though, then again, there also kind of the same thing..).
Not there yet, somehow doesn't seem to respond to the mod yet..
and a few seconds later it does...well there, that's quite a punch mister compressor .. :smile:


#821

well I guess you've gotten yourself a compressor named after you :wink:

NEW MODULE

DYN

"axoComp"
An updated version of my "compressor" module. Now features 4 extra controls for enhanced control over the punch of the compressor.
As the envelope follower is basically a LP-filter with independent rise/fall rates, I added a modulation that, when switching between rise/fall states, adds/subtracts to the Acrv/Dcrv values to/from the rate of the rise/fall and then decreases these offsets to a zero-offset over time, which rate is set by the "ACrvRate" and "DCrvRate" inputs.
So the starting rate of both the attack and release can be offset up/down independently as well as the rate at which they will fall back to their "normal" attack/release rate.
The way these offsets are generated is basically just an exponential decay-envelope that is triggered when switching between rise/fall states.
For full body, punchy sounds, use positive values for Acrv and negative values for Dcrv.
And after typing the former, also added a pre-decay-smoothing of the rectified signal for a better response of the curve.


Favourite community objects
#822

Just so you know, Remco, if I ever make a success of getting a synth business off the ground, I'm claiming you as my CAPE (Chief Audio Programming Engineer).

Had a feeling you'd make it work, but didn't expect to see it pop-up for a least a few weeks, and it's an honour to have it named after me as well, hehehe :stuck_out_tongue_winking_eye:

Cheers mate, really looking forward to trying this, I was at it for hours last time I used it. I'll wait until I see you have some luck getting your system going again, and for you to do a resync so I can download it.


#823

I should be synced now, we've fixed this a couple of weeks ago.
Only problem I had last weeks was that the mouse/touchscreen-response was weird, but that doesn't influence the modules I write..


#824

NEW MODULE

FILTER

"filtortion"
So I took the idea of the curve for the attack/release of the "compressor" module of axoman and used it for a 6dB filter..(plus some extra filters for DC-offset removal and enabling resonance)
Is it a filter? Uhm.. it can be.. but you're likely to end up distorting your sound as it just sounds nicely raw :wink:
well.. raw... it's more like screaming... :stuck_out_tongue:


#825

Been playing with the compressor almost all day, must have put six LPs through it :star_struck:

Without a doubt this is my favourite digital compressor now, and those curves allow it to behave like an infinite amount of compressors. It's a bit like comparing a Graphic EQ to a Parametric, the Parametric gives more control and lets you 'get at' the sort of sound or offect you want.

Trying to get my head around the rate controls and that knob that's on the object. I know my way around the compressor, I know how to get what I want from it but I'm puzzled what the rate knobs are actually doing, technically I mean. The curve knobs appear to bend the curve in/out exactly as expected, but I can't visualise what the rate knobs are actually doing.

And that knob on the object, in laymans terms, is that like an adjustable window that defines how much the compressor 'sees' at any one time? Whatever it is, I wish it had an inlet cause when I first started playing with it, I wasn't having much luck at first, that was until I saw that knob and twisted it ... then WOW ... stuff really started working for the other knobs!

Anyway, awesome compressor mate, needs a warning though ... "WARNING: Addictive Compressor" :heart_eyes:

Needs an inlet for that mysterious knob as well though, especially as I was gonna dedicate a whole Axoloti to this compressor and build it into a rackmount - so really need the inlet. I think when Johannes releases that control panel, I'll have to but another Axo at the same time :stuck_out_tongue_winking_eye:

Will check-out that curve-equipped filter tonight, should be neat!


#826

the knob on the module is an extra decay over the rectified signal.
As the "curve" is a triggered exponential envelope, offsetting the "normal" rates(attack/release knobs), it needed this smoothing. Otherwise it just gets triggered all the time without ever getting back to the "normal" rates ..
The crvRate knobs are the "decay-time" setting of these triggered envelopes for the attack/release offset. Note though that this is based on a filter, so higher values give faster smooth-rates. So a short envelope (high knob setting) will create a short curve quickly before going into the normal attack/release rates. A long envelope will slowely decrease the offset, generating a softer, slower curve before finally reaching the normal attack/release rates.


#827

Any idea when this one will be available? The un-named Tonnetz friend...


#828

NEW MODULES

OSC

"blepCore" and "blepSlave"
these two modules should be used together to get it to work.
The "blepCore" module contains the codes for sine, tri, saw and square blep-oscillators.
The "blepSlave" calls upon these codes to create the selected waveform. Don't forget to set the "blepCore_1" name in the object reference box!
This way the amount of code needed to have 4 oscillators in a patch, each able to select out of 4 waveforms (which would end up using 16 oscillators!), decreases significantly.
I added a mod input to be able to FM any of the waveforms. I also added sync to the triangle waveform and also the sine has a sync (though the sine is not band-limited yet, I'm thinking about adding a soft-sync to this one).

Also, building your own oscillator with internal feedback should also be a bit more simple. For this, check the code of the blepSlave module.

DIST

"comparator"
a audio-comparator module using blit-synthesis, based on the sample&hold module.
Three modes (though the first mode works like the 2nd mode when using negative treshold)
mode 1: 3-way comparator. When above treshold, outputs positive high, when under inversed treshold, outputs negative high, when between positive/negative treshold, outputs 0.
mode 2: compares the input with the treshold, outputs positive high when over treshold, otherwise outputs negative high.
mode 3: quantizer

load the blepCore and two blepSlaves, cross-modulate them and run them through the comparator. Have fun :wink:


#829

With the blep oscillators, you may find that there's no size-saving in terms of the compiled patch over embedding code of both master and slave objects into one.

I'm vague on these matters, but I think the compiler makes extensive use of inlining of code, so even if there's only one instance of your master object in the patch, when the patch is compiled, there may end up being an instance of the object running for each slave instance.

Not to say breaking it down into two discrete objects doesn't have other advantages.

a|x


#830

hmm ok... didn't know what inlining meant, but just looked it up. If so, this might indeed mean it wouldn't save size..but..
if you use object oriented coding, this SHOULD save space..
eg:
if you have 4 codes for waveforms and make functions of these and use 4 slave modules:
-if you use a "core" module, it defines these functions once, after which they can be used by other modules (which will indeed copy the code inline). for 4 slave modules, this would end up being the 4 functions in the "core" module and 4 "selected" functions inline in the code being used in the 4 slave modules, thus a total of 8 functions.
-if you add the functions to the "slave" modules themselves, each will have the 4 functions AND the selected function inline in the code being used, making a total of 20 functions.

So it seems to me it should really matter...


#831

Thanks for the heads-up on what the compressor is doing, I totally understood that, makes sense now!

Gotta ask about an inlet for that knob though, not to be ungrateful or pushy or anything, I'm just asking because I know how to add the inlet myself (Sputnki showed me how to do that), but the thing is, If I do it then it would only be on my compressor, no one else would be able to get it from the library.

Please let me know if you plan to add it some time, cause if not I can add it to my own no problem. It's just that there would be no point me adding it if you were going to do it. Either way, sooner or later, this beauty is definitely going into a rackmount with an Axo dedicated to it - totally love the thing!


#832

I'm afraid it won't be that simple to add the inlet the "normal way" by just adding it. The knob used is the frac32.u.map.kdecaytime.reverse, which has an inversed logaritmic scaling..
Though this can be fixed by using a normal "pitch" S-map control and using:

int32_t smooth;
MTOF(param_smooth+inlet_smooth,smooth)

and then use "smooth" instead of param_smooth in the current smoothing function.
Thing is.. I wanted to use this knob as higher values give longer timing AND the time-values actually correspond to the actual timing..

also, you can still automate this knob by using a modulation source or midi.. (though I wonder if the modulation source takes into account that the knob is logaritmic..I never use the modulation sources..)


#833

Thanks for the heads-up, Remco.

That's a real bummer (for me anyway), but at least it can be done through modulation sources and MIDI, so it can still be done, and that's what matters. If it turns out looking ok, I'll post a pic once I get around to building it into a physical rackmount unit :yum:


#834

128-output "preset" morphing module, based on the nord modular G2 is under construction.
It features several internal arrays to combine, mutate and randomise (between) presets and save newly created presets to a new slot.
This version outputs only bipolar signals, so there will be some conversion modules needed to scale these outputs and convert them to the right output and perhaps modulation source to be able to connect them to knobs/sliders.
Still a test-version, as I wonder whether 128 outputs might be a bit of an overkill and whether they can even ever be all used without going over max memory/cpu.. XD
But with three simple oscillators cross-modulating each other, this already does some funky weird ass shit!


#835

Hi, @SirSickSik
Maybe you can pack 16 krate outputs into a single srate output. Even if it needs unpacking it can be handy.
I use this shamelessly in some personal patches..
See the objects community/tiar/conv/pack_k_to_s and unpack_s_to_k