Last minute changes, stressed as fuck

master
Leo Coogan 4 years ago
parent 530da40934
commit ed2359a958

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -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 <https://www.gnu.org/licenses/>.
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)) };
)

@ -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

@ -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

@ -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"

@ -0,0 +1,4 @@
d1 $n "8 9 2" #s "poly" #lpf 800
d2 $s "bd"
#gain

@ -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"

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -8,3 +8,6 @@ d3 $stack [
s "hh*16"
,s "hh*8"
]
d1 $n "8 2 93 2 0" #s "sine"