// "El Pueblo Unido Jamas Sera Vencido" (work in progress) // song @by Inti-Illimani // script @by eefano setCps(95/60/4) const standardtuning = [40,45,50,55,59,64]; const fingering = {Am:"0:0:2:2:1:0",C:"x:3:2:0:1:0",Dm:"x:0:0:2:3:1",E7:"0:2:2:1:3:0",G7:"3:2:0:0:0:1", F:"1:3:3:2:1:1",A7:"x:0:2:2:2:3",E:"0:2:2:1:0:0",B7:"0:2:4:2:4:2" }; const sk = 300, sh = silence, strumming = {d: stack(0,timeCat([1,sh],[sk,1]),timeCat([2,sh],[sk,2]),timeCat([3,sh],[sk,3]),timeCat([4,sh],[sk,4]),timeCat([5,sh],[sk,5])) ,u: stack(5,timeCat([1,sh],[sk,4]),timeCat([2,sh],[sk,3]),timeCat([3,sh],[sk,2]),timeCat([4,sh],[sk,1]),timeCat([5,sh],[sk,0])) }; const gString = register('gString', (n, pat) => (pat.fmap((v) => { if(v[n]=='x') return note(0).velocity(0); return note(v[n]+standardtuning[n]); } ).innerJoin())); const guitar = (strums,fingers,tuning=standardtuning) => (strums.pickRestart(strumming).pickOut( [fingers.pickOut(fingering).gString(0),fingers.pickOut(fingering).gString(1),fingers.pickOut(fingering).gString(2) ,fingers.pickOut(fingering).gString(3),fingers.pickOut(fingering).gString(4),fingers.pickOut(fingering).gString(5)])); stack( guitar("*4", "<0@4 1 2 1 3 4@2>/2".pickRestart( ["*2","*2","*2","*2",""])) .s("gm_acoustic_guitar_steel:2").clip(1).release(0.4).gain(0.4).room(0.6), "<~@2 0@2 1 2 1 3 4@2>/2".pickRestart([ "<0@5 0 2@5 2 4@2 4 3@2 2 1@5 <-3 4>>*12", "<5@5 2 1@5 5 4@2 3 4@2 1 0@5 4>*12", "<3@5 0 0b@5 3 2@2 1 2@2 3 4@2 4b 4@2 6>*12", "<3@5 0 0b@5 3 2@2 1 0@2 0b 0@5 0>*12", "<[3!2]@4 ~ 3 [3!2]@4 ~ 3 [4b@!2]@4 ~ 4b [4b!2]@4 ~ 4b [4!2]@4 ~ 4 [4!2]@4 ~ 4 [4!2]@4 ~ 4 [4!2]@4 ~ ~>*12", ]).scale("a5:minor").note().clip(0.95).color('yellow') .layer(x=>x.s("gm_ocarina").gain(0.6).room(0.6) ,x=>x.transpose(-24).attack(0.01).release(0.1).s("gm_choir_aahs:3").gain(0.8).room(0.5)), "<0@2 ~@8>/2".pickRestart([note(">*12")]) .clip(0.90).s("gm_applause:3").color('red').room(2).gain(0.35) )//.pianoroll()