// "She don't use jelly" (work in progress) // composed @by The Flaming Lips // script @by eefano const gString = register('gString', (n,tuning, pat) => (pat.fmap((v) => { if(v[n]=='x') return note(0).velocity(0); return note(v[n]+tuning[n]); } ).innerJoin())); const guitar = (strums,fingers,tuning=[40,45,50,55,59,64]) => (strums.pickOut( [fingers.pickOut(fingering).gString(0,tuning),fingers.pickOut(fingering).gString(1,tuning),fingers.pickOut(fingering).gString(2,tuning) ,fingers.pickOut(fingering).gString(3,tuning),fingers.pickOut(fingering).gString(4,tuning),fingers.pickOut(fingering).gString(5,tuning)])); const split = register('split', (deflt, callback, pat) => callback(deflt.map((d,i)=> pat.withValue((v)=>{ const isobj = v.value !== undefined; const value = isobj ? v.value : v; const result = Array.isArray(value)?(i" ,"" ,"" ]).as("note:penv:patt").release(song.pickRestart([0,0,2])) .s("gm_overdriven_guitar:11").color('magenta').gain(.55).hpf(400).lpf(5000).pan(.5) rthm: song.pickRestart( ["~" ,"" ,"" ]).split([0,0],s=>guitar(s[1].pickRestart(strumming),s[0]).transpose(-12) .release(song.pickRestart([.1,.1,2])) .s("gm_overdriven_guitar:6").color('cyan').hpf(700).lpf(6000)).gain(1.5).pan(.4) bass: song.pickRestart( ["~" ,note("") ,"~" ]).s("gm_electric_bass_finger").color('green').lpf(500).dist("4:.25") drum: song.pickRestart( ["~" ,"/8" ,"/4" ]).pickOut({ bd:s('linndrum_bd').hpf(50).lpf(2000).velocity(.8), sd:s('linndrum_sd').hpf(200).velocity(.7), hh:s('linndrum_hh').hpf(7000).speed(1.5).velocity(.3), oh:s('linndrum_oh').hpf(7000).speed(1.1).velocity(.3), cr:s('linndrum_cr').hpf(7000).speed(1.2).velocity(.3), }).color('yellow').gain(1.2) all(x=>x.rsize(.8).room(1.3) // .ribbon(1*4,2*4) )