SirSickSik Contributions


#663

That's frustrating, @SirSickSik, I hope you manage to find out what's been going wrong.

It might be worth using a local directory, and copying to the Community library repo only when you're ready to release.

Assuming you haven't been doing that already, of course...

a|x


#664

it has been fixed already, my prefix somehow reset itself, so I wasn't uploading as "sss".
but there should also be quite some new modules in my folder now as new modules didn't get overwritten/updated.
easiest way should be to go to my folder using explorer and sort on "date modified" to see what my latest modules are.


#665

some very nice modulation modules for powerful monophonic patches are in the making.
first of all...
8x tempo-synced LFO with 5 basic shapes, capable of cross-modulation of 1 parameter and references for resetting/modulation to/by the other modulation modules
8x ADSR,with selectable gate-source, capable of cross-modulation and references for resetting/modulation to/by the other modulation modules
8x SEQ,multistep sequencer/patternrecorder/random pattern generator, capable of cross-modulation and references for resetting/modulation to/by the other modulation modules
8x channel extension module that references to the three modulation sources and capable of combining 3 sources per channel (A*B)+C

All modules will have an internal "save2SDcard" to save/load presets.
All modules only have the controls needed to control 1 channel and a selector to select a channel to edit.

modules ain't completely finished yet and the extension module will contain multiple algorithms to combine sources. But they will probably be finished and released somewhere this week.
In the meanwhile, if you got an idea to add to these modules, please tell me now, otherwise it might be hard to implement later on..


#666

random shape or random sequence...


#667

the random sequence is already there, it's an 8x version of my rndPattF module with possibility to record knob-movements and randomly alter them with chance and change-size parameters.

Random shape is doable by modulating the wave-selection of an lfo with the output of one of the random/recorded sequencers. Though, it might be an idea to also have a "phase" control on the sequencer, that you could then modulate by an LFO, allowing random/recorded waveshapes.
Nice one, thanks!


#668

It probably does this anyway, but just in case it doesn't, please give it the ability to retrigger the envelope on each sequence step, because that's an essential thing that doesn't seem to work with the stock envelopes.


#669

@axoman
To be able to trigger an envelope from every step, you need to use the logic and trick:


#670

kinda depends on the envelopes you're using.
Most of the envelopes put themselves into the "attack-stage" (going towards max-value), but don't retrigger back to 0 before doing that. This is to prevent clicks, though, as you might have noticed, switching some parameter might also cause clicks, which you might have wanted to get rid of by using the envelope.
I'm afraid the best thing for you to do, is to just shorten your attack/decay/release times so the envelope gets shut before retriggering or to use a polyphonic patch, as this behavior is actually preferable and the normal way an envelope responds..
If you got clicks that you want to remove, you could use my "declick" module (filter-folder).

Still though, if you really want them to restart at 0, just put :
val=0;
in the part where it says
if((inlet_trig>0)&&!ntrig){
........
}

ps. I added the "retrigger option" to the 8x envelope


#671

hmm, I went into the wrong direction.. found that I needed to put all the modulation values in a seperate table module to be able to easily adress the write&read for all the seperate modulation modules, but it caused the cpu-use to increase dramatically..

is 16% cpu use for 8x LFO, 8x envelope, 8x combiner ((A*B)+C) and 8x sequencer with crossmodulation for parameters acceptable?


#672

This looks great - I'm looking forward to playing with it. I really like how simple and open it is, and that it has overdub. I'm thinking I can use 2 channels in tandem sets to get 2 stereo loops.


#673

it's open to suggestions if you run into difficulties trying to do things (though will be saved as a new version as I made this module for a friend of mine)


#674

I should have done this LONG ago...

NEW MODULE

MATH

"formulator"

An "easy maths" module with 4 sets of formula entries between which you can switch using the control or external input and which has 8 inputs and 4 outputs (control rate).
Best is to use it with static values, not too much modulation as the values will only be updated when one of the inputs changes to save CPU use.

A list of possible functions is shown in the "overview" as well as the "local data" for quick reference.

Functions are typed in like:

----------example:

o1 = SIN ( a ) / COT ( b ) * LOG ( f ) ;

o2 = CLIP ( c , MAX ( f , g ) , MIN ( d , e ) ) ;

float32_t T;
T = POW ( f , e ) ;
o3 = 1 / T ;

o4 = a + b + c + d + e + f + g + h ;

----------end of example

list of available "special" functions:

PI PI-value 3.14159265359....
SIN(X) Sine from X. For a full cycle enter: SIN(X*2*PI)
COS(X) Cosine from X. For a full cycle enter: COS(X*2*PI)
TAN(X) Tangent from X. For a full cycle enter: TAN(X*2*PI)
SEC(X) Secant from X. For a full cycle enter: SEC(X*2*PI)
CSC(X) Cosecant from X. For a full cycle enter: CSC(X*2*PI)
COT(X) Cotangent from X. For a full cycle enter: COT(X*2*PI)
POW(X,Y) Power function X^Y
SQR(X) Squareroot of X
ABS(X) Absolute (positive) value of X
LOG(X) Log function on X. For an input at scaleIn value, returns 0dB change to the scaleOut value.
QNT(X,range) Quantizes to range value)
DIV(X,range) Number of divisions: number of times that X has passed the range value)
REM(X,range) Remaining: X wraps back to 0 if it passes the range value)
MAX(X,Y) Maximum of X and Y)
MIN(X,Y) Minimum of X and Y)
CLP(X,max,min) Clipping between max and min)

of course you can also use the normal functions:

X+Y add X to Y NOTE!-> enter like (X+Y)/8 to return the right values!
X-Y subtract Y from X NOTE!-> enter like (X+Y)/8 to return the right values!
X*Y multiply X and Y
X/Y divide X by Y
X>Y compare: X greater then Y
X>=Y compare: X greater then or equal to Y
X<Y compare: X smaller then Y
X<=Y compare: X smaller then or equal to Y
X==Y compare: only if X equals Y
X&&Y compare: AND X and Y both above 0
X||Y compare: OR X or Y above zero

more formula options can be created by using internal values/parameters, like:

if ( inlet_formula < 3 ) {
o4 = a * b ; }
else { o4 = a + b ; }

here, when the external input for the formula selection is above 3, it adds a to b instead of multiplying a with b, and sends it to output o4


#675

reading back this response.... XD


#676

NEW MODULES

there are some new modules again

FILTER:
-multiType: 16 different filters in 1 module. 4 types, each with 4 modes
type1=normal filters based on cascaded 6dB filters without resonance. Res knob controls cascading/filter mode (HP/LP)
type2=SVF filters
type3=Biquad filters
type4= my own custom filters

for type1 counts:
1=cascadable 6dB LP filters. from 0dB slope up to 48dB
2=cascadable 6dB HP filters. from 0dB slope up to 48dB
3=12dB LP-BP-HP morphable based on two 6dB filters
4=18dB LP-BP1-BP2-HP morphable filters based on three 6dB filters

for type 2 and 3 counts:
1=LP
2=HP
3=BP
4=NOTCH

for type 4 counts:
1=36dB LP with control over cutoff and resonance
2=mostfilter2 LP version with control over cutoff and resonance
3=mostfilter2 HP version with control over cutoff and resonance
4=mostBfilter LP, a new filter which internally boosts the signal to get a more aggressive character

ENV

ADorADSR
-an envelope with integer input as trigger. when gate=1, will function as AD and when gate=2, will function as ADSR

MATH
kickCalc
-a module to easily create a kick from an oscillator and 3 envelopes AND be able to use the tail as a melodic bassline, while the kick attack and body parts stay at their own pitch

formulator
-a module to create 4 banks of 4 formula's (pre-entered in a text-attribute), like the fruitloops formulator
It has 8 cv inputs (a to h) which can be recalled in the text just by their name (a,b,c..etc). Same counts for the 4 outputs, o1, o2, o3, o4.
Functions are pre-programmed in floats in the local data so a sine is just: SIN(a*PI*2)
Formula-selection can be externally controlled. Has attenuating scalers for in and outputs

----------example:

o1=SIN(a)/COT(b)*LOG(f);

o2=CLIP(c,MAX(f,g),MIN(d,e));

float32_t T;
T=POW(f,e);
o3=1/T;

o4=a+b+c+d+e+f+g+h;

----------end of example

list of available "special" functions:

PI PI-value 3.14159265359....
SIN(X) Sine from X. For a full cycle enter: SIN(X*2*PI)
COS(X) Cosine from X. For a full cycle enter: COS(X*2*PI)
TAN(X) Tangent from X. For a full cycle enter: TAN(X*2*PI)
SEC(X) Secant from X. For a full cycle enter: SEC(X*2*PI)
CSC(X) Cosecant from X. For a full cycle enter: CSC(X*2*PI)
COT(X) Cotangent from X. For a full cycle enter: COT(X*2*PI)
POW(X,Y) Power function X^Y
SQR(X) Squareroot of X
ABS(X) Absolute (positive) value of X
LOG(X) Log function on X. For an input at scaleIn value, returns 0dB change to the scaleOut value.
QNT(X,range) Quantizes to range value)
DIV(X,range) Number of divisions: number of times that X has passed the range value)
REM(X,range) Remaining: X wraps back to 0 if it passes the range value)
MAX(X,Y) Maximum of X and Y)
MIN(X,Y) Minimum of X and Y)
CLP(X,max,min) Clipping between max and min)

of course you can also use the normal functions:

X+Y add X to Y
X-Y subtract Y from X
X*Y multiply X and Y
X/Y divide X by Y
X>Y compare: X greater then Y
X>=Y compare: X greater then or equal to Y
X<Y compare: X smaller then Y
X<=Y compare: X smaller then or equal to Y
X==Y compare: only if X equals Y
X&&Y compare: AND X and Y both above 0
X||Y compare: OR X or Y above zero

"not usable" for float calculations, need "special" care to use these:

DELAY
splicer
-a splicer module to record parts of incoming audio, add splices etc.

REVERB
fdn8mod
-a matrix-delay based reverb with tail-time independent of delay-size


#677

And as I had these core-codes for the filters, I made 2 extra modules:

filterCORE
filterSLAVE

the core module contains only the different filter codes, which can then be used by the filterSLAVE modules. This should save up some memory as the stack of codes themselves already take quite a bunch of space. Multiple filterSLAVES can be loaded and referencing to the same filterCORE


#678

WHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!!!!!!!!!!!
I've gotten myself a 55" multitouch screen *(10 fingers!!) with an online auction, for €170,- :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue:
This is gonna be freaking awesome! Thinking about making it an extra controller for my axoloti's using synthedit. :stuck_out_tongue:


#679

Nice :slight_smile:

Which one?

20 characters


#680

https://www.bva-auctions.com/auction/lot/27790/9225451


#681

ps there are two more for auction today!! it's very possible to get one below €200,- (though with BTW and auction costs €170,- will come at €240,-)

even the wife and kids will love this one! :wink:


#682

Argh, I cant buy more stuff atm.. Bougth an DIY SSL compressor a while ago which had some issue and never got it working so I am delivering it back and money all ready set a side for a raspberry PI + an audio interface.

But very tempting :wink: