# Looptober 2024
Music loops for the month of Looptober, 2024.
# 1 One
Made with OctaMED Soundstudio V1.03c in FS-UAE.
# 2 Two
setcps(0.27)
$: s("{bd!32, sd!24}*[16 8 12 4]/32*<[{16? 8} {12? 8} {15? 8} {18? 8}]*2 4>")
.n(run(16))
.jux(x=>x.iter(8).fast(2))
.fast(2)
.gain(0.25)
$: s("<bd!15 sd*4>!7*<128!3 160> bd*<32 36 24 27>*2")
.n(run(32))
.jux(x=>x.n(run(31).fast(32.0/31.0)))
.gain(0.1)
# 3 Three
setcps(3/3)
$: s("sd:3")
.note("3")
.every(3, fast(3))
.chop(3*3*3)
.slow(3+3)
.sometimes(jux(sometimes(rev)))
.loopAt(3/3/3)
.every(3, slow(3*3))
.fast(3*3)
.echo(3, sine.slow(3.03).mul(.3/33).add(.3/333), .3*3)
.room(.3)
.gain(.3/3)
$: s("bd:3!3*3/4")
.note("23")
.lpf(33*3)
.distort(3)
.room(.3*3)
.gain(.3/3)
$: s("~ hh:3")
.note("33")
.fast(3*3/4)
.jux(iter(3))
.hpf(3333*3)
.echo(3, cosine.slow(3*3*3*3).mul(.3/333).add(.3/3333), .3*3)
.room(.3)
.gain(.3)
# 4 Four
setcps(4*(4+4))
$: s("bd")
.degradeBy(.004)
.n(run(4).slow(run(4).slow(run(4).add(4)).add(4)))
.fast(run(4).slow(run(4).slow(4*4).add(4)).add(4))
.loopAt(run(4).slow(4*4).add(4.4).add(cosine.slow(4*4*4*(4+4))))
.slow(4+4)
.juxBy(.4, rev)
.echo(4, run(4).slow(4*4*4).add(.4).add(cosine.slow(4*4*4*4*4)).div(4), .4)
.gain((.4+.4)/4)
$: s("{bd/4, [~@444 sd@344]/4}")
.degradeBy(.004)
.slow(4)
.sometimesBy(.04, juxBy(.4/4, fast(4)))
.echo(4, run(4).slow(4*4).add(.4).add(cosine.slow(4*4*4*4*(4+4))).div(4+4), .4+.4)
.gain(.4+.4/4)
$: s("[bd cp]/4/4/4")
.degradeBy(.004)
.sometimesBy(.4/4, x=>x.n(4))
.echo(4, run(4).slow(4*(4+4)).add(.4).add(cosine.slow(4*4*4*4)).div(4), .4)
.distort(44)
.gain(.0000000000000000004/4)
.room(.4)
# 5 Five
setcps(5.55/5.5/5)
$: s("{[~@55 bd:5 ~@55]!5/5*5.5, [~!55 sd:5 ~!55]}")
.slow(5)
.echoWith(5, 55.505, (p,n)=>p.fast(5+n).slow(.5-n).degradeBy(cosine.slow(5).mul(.05)))
.echoWith(5, 55.555, (p,n)=>p.chop(5+n).juxBy(.5, rev).slow(5*(5-n)).speed((5+5-n)/5).degradeBy(sine.slow(5*5).mul(.05)))
.slow(5).repeatCycles(5).fast(5)
.juxBy(.5, iter(5))
.gain(.5/5)
.room(cosine.fast(55.55).mul(.5).add(.05))
$: s("jazz:5*5")
.note("[0 , .005] [.5 , .55]".add(55-5*5))
.juxBy(.5, sometimes(x=>x.speed(5/5+.005)))
.distort(.5)
.gain(.5)
.room(rand.mul(.55).add(.05))
.delay(.555)
.delayfb(rand.range(5/5-.05, 0).segment(5*5*5))
.delaytime(rand.range(0, .5).segment(5*5*5))
# 6 Six
setcps(6.0606)
$: s("<bd:6 [bd:6 ~]>")
.slow(6)
.note(6*6.6)
.echoWith(6, .666, (p, n) => p.pan((n+.6)/6).speed((6+n/6)/6))
.gain(.6)
$: s("[~@6 sd:6@3 sd:6@2]/6")
.when(run(6).slow(run(6).slow(6).mul(6)).fmap(x=>x>4), x=>x.speed(-6.6/6))
$: s("[~@6 ~@1 jazz:6@4]/6")
.note(6*6)
.jux(x=>x.note("<6 6.6 6.66 6.666>/6".mul(6.6)))
.echo(6, 666.666, .66)
.delay(.6)
.delayt(sine.slow(666).range(.6, .666))
.delayfb(.6)
$: s("[bd:666@2 bd:666]/6")
.degradeBy(.06)
# 7 Seven
setcps(.7+.7/7)
$: s("bd:7")
.note(rand.mul(007).add(70))
.degradeBy(.007)
.n(run(007).slow(run(007).slow(run(007).add(007*007)).add(007)))
.fast(run(007).slow(run(007).slow(007*007).add(007)).add(007))
.loopAt(run(007).slow(007).add(7.007).add(cosine.slow(007*007*(007+007))))
.juxBy(.7, rev)
.echo(007, run(007).slow(7.007).add(.007).add(cosine.slow(007*007*007)).div(00777), 0.07)
.gain(.7)
$: s("[bd cp]/7")
.degradeBy(.7)
.sometimesBy(.7/007, x=>x.n(7))
.echo(007, run(007).slow(007*(007+007)).add(.07).add(cosine.slow(007*(007+007))).div(007), .07/007)
.distort(0077)
.gain(.000000000000000000000000000000007/7)
.room(.7)
# 8 Eight
setcps(8.08)
$: s("RolandTR808_bd:808(23,808)/8/8")
.every((8*8)/(8+8), x=>x.n(0))
.echoWith(2, cosine.slow(808).div(808).add(80.8), (p,n)=>p.speed(n+.808))
.echoWith(2, cosine.slow(80.8).div(80.8).add(8.08), (p,n)=>p.pan((n/2)+1/4))
.echoWith(2, 0.808, (p,n)=>p.note(28.08+18.08*n))
.distort(0.808)
.delay(.0808)
.delayt(8.08)
.delayfb(.808)
.every(8, x=>x.hpf(808.08))
.lastOf(8, x=>x.lpf(8.0808))
# 9 Nine
setcps(9)
$: s("RolandTR909_bd(23,909)/9/9 RolandTR909_sd(23,909,415)/9/9")
.n(9.9)
.hpf(49)
.hpq(9)
.hpe(9)
.hpa(.009)
.hpd(.09)
.hpr(.009)
.lpf(9999.9)
.lpq(.9)
.lpe(99)
.lpa(.009)
.lpd(.09)
.lpr(.9)
$: s("sawtooth(57,909)/9/9")
.chop(9)
.note(rand.range(9.9, 9.99).add(29))
.juxBy(.09, x=>x.speed(rand.range(0.9, 0.9999)))
.legato("99(23,909)/9/9")
.gain(.9)
.room(.9)
.delay(.9)
.delayt(.09)
.delayfb(.49)
$: s("square(57,909,99)/9/9")
.note(39.09-12)
.juxBy(.9, x=>x.speed(.99))
.legato("99(23,909)/9/9")
.gain(.9)
.room(.9)
.delay(.9)
.delayt(rand.range(.0009, .009))
.delayfb(.9)
# 10 Ten
setcps(.10)
$: s("bd:10*10")
.note(run(10).add(10+10+10))
.fast("<1!10 10>*10")
$: s("~@10 sd:10*10")
.note(run(10).add(10+10+10+10).fast(10))
$: s("~ sawtooth*10")
.note("[10 16]*10".add(10+10+10+10).sub(run(10).sub(run(10).slow(10))))
.echoWith(10, .010, (p,n)=>p.pan(n/10))
.gain(.410)
.delay(.910)
.delayt(1.10)
.delayfb(.710)
# 11 Eleven
setcps(11.11)
$: s("bd:11")
.every(11, x=>x
.gain(11)
.distort(11)
.fast(run(11).mul(3).mod(11).add(11).slow(11*11))
.speed(run(11).mul(4).mod(11).sub(11).slow(11*11))
.delay(11)
.delayt(cosine.slow(11*11).mul(.11).add(.11))
.delayfb(.11)
.room(.11)
)
$: s("[~!11 sd:11*11 ~!11]/11")
.gain(11)
.distort(11)
.delay(11)
.delayt(run(11).mul(5).mod(11).add(.5).div(11).range(.00011, .011).slow(11*11))
.delayfb(.811)
# 12 Twelve
This one loops after 24 minutes, viewing Strudel.CC link is recommended as the video file is truncated (and large).
STROBE WARNING
// STROBE WARNING // STROBE WARNING // STROBE WARNING // STROBE WARNING // STROBE WARNING
setcps(1.2)
$: s("gm_marimba ~@12")
.echoWith(12, 1/12, (p,n)=>
{ n = "0 1 2 3 4 5 6 7 8 9 10 11".slow(12).mul(n).mod(12); return p.n(n).note
( "0 1 2 3 4 5 6 7 8 9 10 11".slow(12*12)
.mul("0 1 2 3 4 5 6 7 8 9 10 11".slow(12*12).mul(n).slow(12))
.mul( "1,2,3,4,5,6,7,8,9,10,11")
.add("0 1 2 3 4 5 6 7 8 9 10 11".slow(12).mul(n).slow(12*12))
.mod(12)
.add(12+12+12)
.mul(1.2)
)
.pan((n.add(.5).div(12))
.legato(n.mul(n.slow(12)).mod(12).add(1))
.hsl(n.mul(30).add(15).div(360),.5,.5))
})
.gain(.12)
.room(.12)
.pianoroll({cycles:2,vertical:true,stroke:1,fill:0,fillActive:1})
# 13 Thirteen
setcps(.13)
$: stack
( s("piano!13").note(run(13).mul(3).mod(13).add(13+13+13).mul(12/13))
, s("piano(3,13,2)").echoWith(13,run(13).div(13),(p,n)=>p.pan(n/13).note((13+13+13+13+13+n/13)*(12/13)))
, s("piano(<1 2 3 4 5 6 7 8 9 10 11 12 13>,13)*<13 12 11 10 9 8 7 6 5 4 3 2 1>").note(61.3)
, s("piano(5,13,<1 2 3 4 5 6 7 8 9 10 11 12 13>)").note(71.3).jux(rev)
)
.pianoroll()
# 14 Fourteen
const r = "0 1 2 3 4 5 6 7 8 9 10 11 12 13"
setcps(.14*1.4*1.4*1.4)
$: s("bd:14!14")
.note(r.mul(r.slow(14)).mod(14).add(14+14+14))
.room(1.4)
.delay(1.4)
.delayt(r.mul(r.slow(14*14)).mod(14).div(14).range(.0014,.014))
.delayfb(1-.14)
.distort(1.4)
.pan(.14)
$: s("sd:14")
.euclidRot(r.slow(14), 14, r.slow(14*14*14))
.sometimesBy(.14/14, fast(14))
.chop(14)
.jux(x=>x.speed(1.4))
.delay(1.4)
.delayt(r.mul(r.slow(14)).mod(14).div(14).range(.0014*1.4, .014*1.4))
.delayfb(1-.14)
.room(.14)
.gain(1.4)
.pan(1-.14)
# 15 Fifteen
setcps(1.5*1.5*1.5)
$: s("bd@15 sd@10*<1 5 3 15>")
.n("<1 5 3 15>*[1,5,3,15]/[1 5 3 15]/[1,5,3,15]")
.gain(.015)
.room(.15)
.every(15, x=>x.room(1.5))
.roomsize(15)
# 16 Sixteen
setcps(1.16)
$: s("[bd*[1 2 4 8 16]/1@4 sd*[1 2 4 8 16]/2@2 ~ bd*[1 2 4 8 16]/4@2 ~ bd*[1 2 4 8 16]/8@2 sd*[1 2 4 8 16]/16@4]/<2!32 1!16 2!8 4!4 8!2 16!1 0>")
.n("<2 4 8 16>*{1 2, 4 8 16}/<1 2 4 8>")
.pan("<.5 .25 .5 .75>/<1 2 4 8 16>")
.speed("<1 2 4 .5>/{1 2, 4 8 16}/<1 2 4 8>")
.outside("1, 2, 4, 8, 16", iter("{1 2 4, 8 16}%8"))
.gain(1.6/16)
.room(1.6)
.roomsize(.16)
.legato(1/4)
.note("[40,40.16]")
# 17 Seventeen
setcps(17)
let [a, b] = ['~@5 ','~@5 ']
for (var i = 1; i <= 4; ++i) { let [c, d] = [a + a + i +'@2 ' + b, a + b + (-i) + '@2 ' + a]; a=c; b=d; }
$: s("sawtooth")
.legato(mini('<' + b + '>').mul(1.7).add(7).div(1.7))
.note(mini('<' + a + ', 0>').div(17).add("46, <50 49>/17/17, 53, <55 56>/17/17"))
.pan(mini('<' + b + '>').add(17*3/8).div(17/2))
.delay(.317).delayt(mini('<' + a + '>').add(5).div(17)).delayfb(.917)
.gain(.17)
$: s("square")
.legato(mini('<' + a + '>').add(5).div(.17))
.note(mini('<' + b + ', 0>').div(17).add("46, <50 49>/17/17, 53, <55 56>/17/17"))
.pan(mini('<' + a + '>').add(17*1/8).div(17/2))
.delay(.317).delayt(mini('<' + b + '>').add(5).div(17)).delayfb(.917)
.gain(.17/1.7/1.7)
$: s("RolandTR909_bd:17(2,17)/17")
.legato(17).hpf(17*3).hpq(17.17).distort(1.7)
.gain(.17/1.7/1.7)
$: s("RolandTR909_oh:17(2,17,4)/17")
.legato(1.7).lpf(17*17*17).lpq(17.17).distort(1.7)
.gain(.17/1.7/1.7)
# 18 Eighteen
“an modular arithmetic experiment”
A generalized version of this composition, allowing to change the numbers determining the sequencing is at strudel.cc/?YIHRFpoVcTPa.
setcps(.18*1.8*1.8)
let n = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18".rev()
$: s("bd*18, [~ sd]*9, [~ ht/3 mt]*6")
.distort(1.8).gain(.18).room(1.8*1.8).roomsize(.18)
.n(n.mul(n.mul(n.slow(18)).slow(18)).bind(n=>{return stack
( n % 2 > 0 ? n % 2 : "~"
, n % 3 > 0 ? n % 3 : "~"
, n % 6 > 0 ? n % 6 : "~"
, n % 9 > 0 ? n % 9 : "~"
, n %18 > 0 ? n %18 : "~"
)})
.bind(x=>{return pure(x).hsl(x/18,1-.18,.25).label(''+x).
note(n.slow(18).mul(5).add(13*x).mod(18).add(18*2))}))
.early(18)
.pianoroll({cycles:1.8, fold:0, autorange:0, minMidi:18*2-1, maxMidi:18*3,
labels: 1, stroke:1, fill:0, fillActive:1,
background:'#fff', playheadColor:'#888'})
.gain(.018)