would you like your codebox in the next synthCore library?


    Oct 08 2021 | 11:09 am
    After two years, the 'synthLab Libary,' is almost complete. Would you like to add anything to it? The full listing is 900 lines currently, so here are the signatures for the current methods in it:
    /* -----------------------------------------------------------------------
    			SYNTHLAB LIBRARY (beta 2)
    /* -----------------------------------------------------------------------
    // --- MIXERS AND SHAPERS ---//
    ramp0(in1, linc);	         // ramps to new val, incr = 1/#samples
    smoother1(val);		         // smoothing over ~46 clock cycles
    mixer3(x);			 // 3-way linear mixer, returns gain for 3channels
    pan3db(x);			 // pan with -3dB center
    parabol(in1, shape);             // parabolic shaper
    hyperbol(in1, shape);            // hyperbolic shaper
    a2db(a);			 // quick amp to deciBel conversion
    db2a(db);			 // quick deciBel to amp conversion
    qsin(x);			 // quick sine calc
    qcos(x);			 // quick cosine emulation
    qtan(x);		 	 // simple tan emulation
    qtanh2(x); 			 // Good-quality tanh emulation
    powerfade(L1, L2, R1, R2, x);	 // ganged fader with exp crossfade
    stereomix(L1, L2, R1, R2, x);	 // stereo ganged mix
    quadAutoMix(in1, in2, in3, in4); // scale 4 inputs to add up to unity gain
    
    // --- RESAMPLING ---//
    spline2xUp(in1); 		// 2x upsampling,   Catmulli Rom spline
    spline2xDn(in1, in2); 		// 2x downsampling, Catmulli Rom spline
    spline4xUp(in1); 		// 4x upsampling,   Catmulli Rom spline
    spline4xDn(in1, in2, in3, in4); // 4x downsampling, Catmulli Rom spline
    upsample(input); 		// 3x upsampling,   sinc coefficients
    downsample(val1, val2, val3);	// 3x downsampling, sinc coefficients
    // --- EQUALIZERS AND DYNAMICS ---//
    lo1pole(left, right, p);	    // 1-pole low pass filter
    loshelf12(in1, in2, pitch, db);	    // 1-pole stereo low-shelving EQ filter
    hishelf12(in1, in2, pitch, db);     // 1-pole stereo low-shelving EQ filter
    shelf2corelo(in1, a0, a1, b1, w);   // 2-pole low shelving EQ core
    loshelf22(in1, in2, p, db);         // 2-pole stereo low-shelving EQ filter
    shelf2corehi(in1, a0, a1, b1);      // 2-pole high shelving EQ core
    hishelf22(in1, in2, p, db);         // 2-pole stereo low-shelving EQ filter		
    peakeq1(in1, p, db, bw);            // 1-pole peak EQ core 
    peakeq1core(in1, w, d2, a0, a1, a2);// 2-pole peak EQ core
    peakeq12(in1, in2, p, db, bw);      // 2-pole stereo peak EQ filter 
    // utility function for demoing EQs:
    eqsel(in1, in2, lop, midp, hip, log, midg, hig, bw, mode);  
    limit1(in1, lclk); 		    // zero-crossOver limiter to unity gain
    limit2(in1,in2,lvl,window,att,rel); // stereo limiter with settable window
    // combined compressor and limiter
    compander1(in1, type, amp, thresh, ratio, att, rel, lclk);
    // --- FILTERS ---//
    // 2-pole Butterworth svf core:
    svfCore1(in1, wa, d1, ft1, ft1n, ft2, zlp, zbp); 
    // Fully 3x-oversampled 2p/4p type -mixing SVF
    filt3x(input,f0, q0, s0, lx, bx, hx, f2x, l4x, b4x, h4x, f4x, rsrx2pi){
    svfCoeffs3x(f0, q0, s0, f4x, rsrx2pi); // coefficents for filt3x()
    // 5D saturating filter with table-based gain limiting
    filt5d3x(input, pitch, poles, res, sat, type, srflt);
    svfCore5(in1, w, d, d2, g1, g2);       // Better 2-pole Butterworth core
    saturator5(in1, sat, lclk, linc);      // 2x-oversampling tanh-based saturator
    // 5d oversaturating filter with 2x tanh-based saturation
    filt5d2x(in1, pitch, poles, res, sat, type, drive, lclk, linc);

    • Oct 13 2021 | 7:47 pm
      have you check out stkr.waveshaping and those algorithms? They are their own thing already of course. But I think they are great wave shaping algorithms that would add things.
    • Oct 14 2021 | 2:03 pm
      Thats an interesting thread on the forum. Unfoirtunately the links on the strkr website havent worked a long time.
    • Oct 14 2021 | 2:53 pm
      I found in an old archive of mine these functions, if someone has interest to implement them in the SynthCore library: By the way, great project, Ernest.
    • Oct 14 2021 | 3:56 pm
      I have the whole library downloaded with the algorithms, gen expr. Code etc. I can dig those up though I’m not sure if that’s ok to share this way? I think so.
      also the website isn’t active but I believe I got them from the github.
    • Oct 17 2021 | 11:45 pm
      Lemme know if you want them. I also release dance music commercially and have a fairly deep knowledge of sound design. I'm just not quite a coder or Max expert. But if you ever want someone to chat with about this I'm always available for that sort of stuff. Have an interesting idea I refer to as multiband synthesis as well that maybe you could implement better than I... You're asking for codeboxes, but I do have some gen~ stuff that people might like a lot. Side chain pumper effect that automatically adjust with changing tempo. Multiband algorithmic distortions. Very modern kick drum, with fm noise (using your envelopes). Cascading mixer matrix that's probably wildly inefficient, but still lets you do fairly smooth wavetable fading.
    • Oct 18 2021 | 2:48 am
      Well Ryan, I'd certainly be glad to hire you for at least a nominal fee to make some presets for Husserl 4, which will also include a multiphonic sequencer like the original Reaktor one, but it's going to be a while before I get to that. It's going to take at least a couple more weeks to finish converting the polyphonic Husserl 2 into the multiphonic Husserl 3.