diff --git a/lmms/projects/amen.mmpz b/lmms/projects/amen.mmpz new file mode 100644 index 0000000..3ee38e3 Binary files /dev/null and b/lmms/projects/amen.mmpz differ diff --git a/lmms/projects/mo.mmpz b/lmms/projects/mo.mmpz new file mode 100644 index 0000000..7976ec4 Binary files /dev/null and b/lmms/projects/mo.mmpz differ diff --git a/lmms/projects/sw.mmpz b/lmms/projects/sw.mmpz new file mode 100644 index 0000000..9421ba4 Binary files /dev/null and b/lmms/projects/sw.mmpz differ diff --git a/lmms/projects/sw.mmpz.bak b/lmms/projects/sw.mmpz.bak new file mode 100644 index 0000000..63347df Binary files /dev/null and b/lmms/projects/sw.mmpz.bak differ diff --git a/lmms/projects/tc.mmpz b/lmms/projects/tc.mmpz index d7fbe34..eddd446 100644 Binary files a/lmms/projects/tc.mmpz and b/lmms/projects/tc.mmpz differ diff --git a/lmms/projects/tc.mmpz.bak b/lmms/projects/tc.mmpz.bak index 0de5fa3..0fbf12a 100644 Binary files a/lmms/projects/tc.mmpz.bak and b/lmms/projects/tc.mmpz.bak differ diff --git a/scd/looper.scd b/scd/looper.scd new file mode 100644 index 0000000..8408f94 --- /dev/null +++ b/scd/looper.scd @@ -0,0 +1,80 @@ + + +/* +fooloop is inspired by chunk-recorder.scd +This looper records from SoundIn and writes/replaces buffers directly to the SuperDirt soundLibrary. +Copyright (C) 2019 Michael Hauck (f00b455) +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +How to use in Tidal: +-- record and replace round robin +d1 $ sound "fooloopRec" +-- stop recording and replacing +d1 $ silence +-- play recorded loop 3 (bufnamePrefix++counter) +d5 $ sound "fooloop3" # gain "0.7" +-- reset buffers. +once $ sound "fooloopReset" +*/ +( +var functions = (); // make a dictionary of functions +var recSynth, recBufs, counter = 0, recording = false; +var whichOrbit = ~dirt.orbits[0]; +var maxTime = 24; // allow a maximum of four seconds, adjust to your needs +var lat = s.latency + 0.02; // finetune +var numBuffers = 8; // number of buffers +var bufnamePrefix = "fooloop"; // soundname prefix +var soundIn = Array.with(0); + +~recBufs.do(_.free); // free them if they are left over (this is why we keep it in the environment variable) +~recBufs = recBufs = { Buffer.alloc(~dirt.server, ~dirt.server.sampleRate * maxTime, soundIn.size) } ! numBuffers; + +// recorder writes audio from SoundIn to a bufnum +SynthDef(\fooRecord, { |bufnum| + var in = SoundIn.ar(soundIn) * EnvGen.ar(Env.linen(0.003, 23, 0.003, 1, \sine), doneAction: 0); + RecordBuf.ar(in, bufnum, loop:0, doneAction:2); +}).add; + +// start recording round robin to buffers +functions[\fooloopRec] = { + if(recording) { functions[\fooloopAdd].value }; + counter = counter + 1; + if(counter > recBufs.lastIndex, {counter = 0}); + ~server.makeBundle(lat, { + recSynth = Synth(\fooRecord, [bufnum: (recBufs @ counter)], ~server); + recording = true; + }) +}; +// add new buffer and free synth +functions[\fooloopAdd] = { + var name = bufnamePrefix ++ counter.asString; + if(recording) { + ~server.makeBundle(lat, { + ~dirt.soundLibrary.addBuffer(name, (recBufs @@ counter), false ); + recSynth.free; + recording = false; + }) + } +}; +// reset all buffers +functions[\fooloopReset] = { + "reset".postln; + ~recBufs.do(_.free); + ~recBufs = recBufs = { Buffer.alloc(~dirt.server, ~dirt.server.sampleRate * maxTime, soundIn.size) } ! numBuffers; + for(0,numBuffers-1, { |i| ~dirt.soundLibrary.addBuffer(bufnamePrefix++i, (recBufs @@ i), false )}); + counter = 0; + recording = false; +}; + +// add these functions to the dirt soundLibrary +functions.keysValuesDo{ |key, func| ~dirt.soundLibrary.addSynth( key, (play: func)) }; + +) diff --git a/scd/test.scd b/scd/test.scd new file mode 100644 index 0000000..c73b49f --- /dev/null +++ b/scd/test.scd @@ -0,0 +1,60 @@ +s.boot; +a= RedSampler(s); +a.prepareForPlay(\snd1, Platform.resourceDir +/+ "sounds/a11wlk01-44_1.aiff"); +a.play(\snd1); +a.free; + +~sound = {Resonz.ar(Pulse.ar([4,5]), 1500, 0.005)}; +~sound.play +~sound.stop + +~a = {PinkNoise.ar(0.15)!2}; +~a.play; +~a.stop(1); + +~a.clear +~a.ar + +~note.play; +~note.stop(3); + +~note = {SinOscFB.ar(120*[1,1.01], 0.15)*0.05} + +~noise = {Resonz.ar(WhiteNoise.ar(0.5), Array.exprand(4, 120, 2500), 0,1).sum !2}; +~noise.play(FadeTime:2) + +~freq = {LFClipNoise.kr(3,6)}; +~sound.set(\freq, ~freq) +~sound.stop + + + +~sound = {Resonz.ar(Pulse.ar(\freq.kr(4)), Array.exprand(4, 120, 2500), 0.005). sum !2}; +~sound.play(fadeTime: 2) +~sound.stop(2.5) +~sound.fadeTime_(2.5); +~sound.set(\freq, 5) +~sound.xset(\freq, 1.5) +~sound.pause -sound.resume +~sound.play +~freq = {LFClipNoise.kr(3,1,3)}; +~sound.set(\freq, ~freq) +~sound.stop(2.5); +~sine = {SinOsc.ar(200*[1,1.01]+\freq.kr(1))*0.07}; +~sine.play(fadeTime:2); +~sine.xset(\freq, ~freq); + + + +~sound.stop +~noise.stop +~sine.stop +s.reboot + + + + +p = ProxySpace.new.push; +~sig.play; +~sig = {SinOsc.ar([440,443] * -5.midiratio) * -20.dbamp} +~sig.free \ No newline at end of file diff --git a/tidal/aleph-2.tidal b/tidal/aleph-2.tidal index c2f116b..015d1cd 100644 --- a/tidal/aleph-2.tidal +++ b/tidal/aleph-2.tidal @@ -29,7 +29,7 @@ d3 xfade "tonix" $n "[a'min d'min e'min]*18" -- 16 vai 18 - #s "arpy" + #s "sin" #octave "3 4" #gain 0.8 diff --git a/tidal/aleph.tidal b/tidal/aleph.tidal index 094da66..486ae54 100644 --- a/tidal/aleph.tidal +++ b/tidal/aleph.tidal @@ -25,7 +25,9 @@ d3 #octave 3 #gain (sine + 0.5) -- #gain 1.2 - + +-- THE PART!!!! + xfade "tonix" $n "[a'min d'min e'min]*18" -- 16 vai 18 #s "newnotes" diff --git a/tidal/meth.tidal b/tidal/meth.tidal new file mode 100644 index 0000000..838dfde --- /dev/null +++ b/tidal/meth.tidal @@ -0,0 +1,4 @@ +d1 $n "8 9 2" #s "poly" #lpf 800 + +d2 $s "bd" +#gain diff --git a/tidal/newish.tidal b/tidal/newish.tidal new file mode 100644 index 0000000..58e53c1 --- /dev/null +++ b/tidal/newish.tidal @@ -0,0 +1,33 @@ +-- GOVINDA's SET 7/3 +-- SEE aleph.tidal, aleph-2.tidal + + +d1 $n "c3 d3 a'min d'min" #stack [ +s "afrika*4" +] +-- #speed "0.6 0.5" +#speed 0.5 + +d2 $s "[glitch2*16, [~ ~ sd], hh*32]" + + + +d1 $chop "4 8 2" "[hh*3, [bd ~]*2, 808oh*4, glitch2*8]" +-- |+| speed "{1 0.5 0.2 2 0.2}%4" +#speed "1 0.5 2" + +d2 + $slow 2 + $n "{cs8*80 25*32 3*74 4*16 2*8}%5" + |*| speed "[-1.0, 1.0]" + #s "poly" + #octave 3 + #sus 0.2 + #gain 1.2 + +d3 $chop 8 $s "butter" #lpf 4000 #speed 2 +-- #gain 1.3 + +d4 $s "[dg ~]" #speed 0.5 + +d5 $s "dg" diff --git a/tidal/samples/afrika/afrika.wav b/tidal/samples/afrika/afrika.wav new file mode 100644 index 0000000..fee2826 Binary files /dev/null and b/tidal/samples/afrika/afrika.wav differ diff --git a/tidal/samples/dg/screw.wav b/tidal/samples/dg/screw.wav new file mode 100644 index 0000000..b3bda76 Binary files /dev/null and b/tidal/samples/dg/screw.wav differ diff --git a/tidal/samples/ziq/HIT.wav b/tidal/samples/ziq/HIT.wav new file mode 100644 index 0000000..d404132 Binary files /dev/null and b/tidal/samples/ziq/HIT.wav differ diff --git a/tidal/testi.tidal b/tidal/testi.tidal index 7da009e..c0788be 100644 --- a/tidal/testi.tidal +++ b/tidal/testi.tidal @@ -8,3 +8,6 @@ d3 $stack [ s "hh*16" ,s "hh*8" ] + + +d1 $n "8 2 93 2 0" #s "sine"