woops.. forgot that I was recording in audacity while working on some new modules.. computer crashed while testing the patch, so restarted the computer and as I lost the latest modules, just recorded some of the "compositions" that the axoloti's were still generating. ps. this is done with just 2 axoloti's
SirSickSik Contributions
weird, the first upload didn't work right (lost 10 minutes of the audio), so I uploaded it again under the same name.
The webadress is also the same, so it should have still worked..
I have removed the link in the reply, re-send it, then re-entered the same link and re-send it again and now it works.... weird...
and heh?? why do I suddenly have a mingw error?? can't even start an empty project.. let's try a restart..
ok, this is something else... continuous frequency-ratio recalculation based on tonnetz and pythagorean ratio's.. just within a couple of transitions, returning to C doesn't mean you return to the same C as before XD
even the simplest transitions can be done in multiple ways.. (which frequencies do you keep in the transition or recalculate based on the new root and from which note will the new note be calculated from, either way it more or less keeps a stable frequency ratio)
lol, by now I've only programmed the different L and R transitions (4 lead-note transitions and 2 modes for each lead).
So a transition from one triad into another either:
-have 2 frequencies in common and the third frequency is calculated from either one of these two frequencies
-leave from either one of the 3 notes in the triad, first rebuild the fifth and after that either calculates the major/minor third from the root or the fifth up or down respectively.
This way an L-L transition doesn't necessarily needs to come back to the same frequencies as the frequencies it started with XD
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.
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!
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..
Just rectified my post, I actually meant the Attack and Release curves, not Attack and Decay
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!
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 ..
well I guess you've gotten yourself a compressor named after you
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
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
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.
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..
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
well.. raw... it's more like screaming...
Been playing with the compressor almost all day, must have put six LPs through it
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"
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
Will check-out that curve-equipped filter tonight, should be neat!
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.
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
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