Clone wiki

arachnewarp / Home

ArachneWarp

C++ signal generators designed for creative and unconventional modular synthesis informed by techniques of generative and algorithmic composition.

Audio samples are available here: http:soundcloud.com/flexatone

Example

SystemPtr sys(new System(44100)); 
GeneratorFactory gf(sys); 
Output out(sys); 

GeneratorPtr gen1 = gf.create(
"click{ \
    rate{selector{\
            valueList{160, 80, 320, 640,  80, 640, 640} \
            selectionMethod{3} \
            refresh{12}{sec} \
            }\
        }{bpm}  \
    amp{selector{\
            valueList{.6, .1, .2, .8, .7, .1, .7, .1, .9, .1} \
            selectionMethod{5} \
            refresh{1}{samples} \
            } \
    } \
 }");

GeneratorPtr gen1a = gf.create(
"filterLowPass{ \
    rate{wavesine{ \
            rate{7.5}{sec} \
            min{80} \
            max{120} \
        } \
    }{pitch} \
}");
gen1a->setParameter("op1", gen1);

GeneratorPtr gen2 = gf.create(
"click{ \
    rate{selector{\
            valueList{160, 80, 320, 640, 80, 40, 640} \
            selectionMethod{2} \
            refresh{6}{sec} \
            }\
        }{bpm}  \
    amp{selector{\
            valueList{.6, .1, .2, 0, 0, .6, .3, .1, .5, 0, 0, .2, .3, .5} \
            selectionMethod{5} \
            refresh{1}{samples} \
            } \
    } \
 }");

GeneratorPtr gen2a = gf.create(
"filterLowPass{ \
    rate{wavesine{ \
            rate{3.2}{sec} \
            min{120} \
            max{140} \
        } \
    }{pitch} \
}");
gen2a->setParameter("op1", gen2);

GeneratorPtr gen3 = gf.create("add");
gen3->setParameter("op1", gen1a);
gen3->setParameter("op2", gen2a);

out.write(gen3, 20, "/Volumes/xdisc/_sync/_x/src/arachneWarp/out/aw2010-11-14.wav");

Updated