// "Mouth Breather" (work in progress, complex variant) // composed @by The Jesus Lizard // script @by eefano setcps(215/60*2) const fvi = register('fvi', (i, d, pat) => pat.filterValues(v=>v[i]==d)) const ati = register('ati', (i, d, pat) => pat.withValue((v)=>{ const isobj = v.value !== undefined; const value = isobj ? v.value : v; const result = Array.isArray(value)?(i/16` .layer( x=>x.fvi(0,'G').ati(1,0).pickRestart( [stack("".pan(.51),"".add("<0,5>").pan(.49)).struct("") ,"<[c3,g3,c4]@3 ~@45>".add(-8).penv(-3).patt(.6).lpf(3000) ]).note() .transpose(x.fvi(0,'G').ati(2,0)) .s("gm_electric_guitar_clean:2").hpf(80).distort("10:.17").room(.1) ,x=>x.fvi(0,'B').ati(1,0).pickRestart( ["@3>"]) .note() .transpose(x.fvi(0,'B').ati(2,0)) .s("gm_electric_bass_pick").release(.06).distort("5:.31").room(.2).color('green') ,x=>x.fvi(0,'D').ati(1,0).pickRestart( ["<[bd ~ bd sd ~ bd!2 ~!2 bd sd ~ bd ~!2 bd sd bd ~ bd sd ~ bd ~],oh*12,cr*2>/24"]) .pickOut({bd:s('bd').lpf(1800), sd:s('sd').speed(.88), oh:s('oh').speed(.9).velocity(.15).pan(.45), cr:s('cr').speed(.95).velocity(.2).pan(.55) }).bank("linn9000").gain(1.3).room(.85).color('cyan') )