add files to the repo
This commit is contained in:
18
Bubo.quark
Normal file
18
Bubo.quark
Normal file
@ -0,0 +1,18 @@
|
||||
(
|
||||
name: "BuboQuark",
|
||||
summary: "My setup for livecoding with SuperCollider",
|
||||
path: "BuboQuark",
|
||||
author: "BuboBubo",
|
||||
version: "0.0.1",
|
||||
since: "2023",
|
||||
schelp: "",
|
||||
dependencies: [
|
||||
"https://github.com/scztt/Singleton.quark",
|
||||
"https://github.com/scztt/Require.quark",
|
||||
"https://github.com/supercollider-quarks/BatLib",
|
||||
"https://github.com/supercollider-quarks/Bjorklund",
|
||||
],
|
||||
url: "https://raphaelforment.fr",
|
||||
version: 1.0,
|
||||
isCompatible: {Main.versionAtLeast(3, 1)}
|
||||
)
|
||||
37
Classes/BuboArray.sc
Normal file
37
Classes/BuboArray.sc
Normal file
@ -0,0 +1,37 @@
|
||||
+ Array {
|
||||
pat {
|
||||
arg node_proxy, quant=4, fade=0.05;
|
||||
node_proxy.quant_(quant);
|
||||
node_proxy.fadeTime = fade;
|
||||
node_proxy[0] = Pbind(*this);
|
||||
^node_proxy;
|
||||
}
|
||||
|
||||
pbind {
|
||||
^Pbind(*this)
|
||||
}
|
||||
|
||||
pseq { arg repeats=inf, offset=0;
|
||||
^Pseq(this, repeats, offset);
|
||||
}
|
||||
|
||||
pshuf { arg repeats=1;
|
||||
^Pshuf(this, repeats);
|
||||
}
|
||||
|
||||
prand { arg repeats=inf;
|
||||
^Prand(this, repeats);
|
||||
}
|
||||
|
||||
pxrand { arg repeats=inf;
|
||||
^Pxrand(this, repeats);
|
||||
}
|
||||
|
||||
pwrand { arg weights, repeats=1;
|
||||
^Pwrand(this, weights, repeats);
|
||||
}
|
||||
|
||||
pwhite { arg repeats=inf;
|
||||
^Pwhite(this[0], this[1], repeats);
|
||||
}
|
||||
}
|
||||
25
Classes/BuboBoot.sc
Normal file
25
Classes/BuboBoot.sc
Normal file
@ -0,0 +1,25 @@
|
||||
Boot {
|
||||
*new {
|
||||
arg path = "/Users/bubo/.config/livecoding";
|
||||
var s = Server.default;
|
||||
var p;
|
||||
s.options.numBuffers = 1024 * 128; // Nombre de buffers disponibles pour stocker des samples
|
||||
s.options.memSize = 8192 * 64; // Mémoire disponible pour le serveur
|
||||
s.options.numWireBufs = 2048; // Augmenter ce nombre si "exceeded number of interconnect buffers"
|
||||
s.options.maxNodes = 1024 * 32; // Changer cette valeur si le son saute avec le message "too many nodes"
|
||||
s.options.device = "BlackHole 16ch"; // Choix de l'interface audio à utiliser
|
||||
s.options.numOutputBusChannels = 16; // Indiquer le nombre de sorties de son interface audio
|
||||
s.options.numInputBusChannels = 16; // Indiquer le nombre d'entrées de son interface audio
|
||||
p = ProxySpace.push(Server.default.boot);
|
||||
p.makeTempoClock; // Gestion du tempo
|
||||
p.clock.tempo = 120/60;
|
||||
Bank.root = path +/+ "samples"; // Chemin vers les samples
|
||||
Bank.lazyLoading = True; // Lazy loading des samples
|
||||
Server.default.waitForBoot({
|
||||
(path +/+ "Synthdefs.scd").load; // Chargement des synthétiseurs
|
||||
StageLimiter.activate; // StageLimiter pour les oreilles
|
||||
"== 💻 LIVE CODING PRÊT 💻 == ".postln;
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
6
Classes/BuboFreqScope.sc
Normal file
6
Classes/BuboFreqScope.sc
Normal file
@ -0,0 +1,6 @@
|
||||
FScope {
|
||||
|
||||
*new {
|
||||
^Server.default.freqscope.window.alwaysOnTop_(true);
|
||||
}
|
||||
}
|
||||
5
Classes/BuboGui.sc
Normal file
5
Classes/BuboGui.sc
Normal file
@ -0,0 +1,5 @@
|
||||
Gui {
|
||||
*new {
|
||||
^Server.default.makeGui.window.alwaysOnTop_(true);
|
||||
}
|
||||
}
|
||||
3
Classes/BuboNdef.sc
Normal file
3
Classes/BuboNdef.sc
Normal file
@ -0,0 +1,3 @@
|
||||
+ Ndef {
|
||||
}
|
||||
|
||||
36
Classes/BuboNodeProxy.sc
Normal file
36
Classes/BuboNodeProxy.sc
Normal file
@ -0,0 +1,36 @@
|
||||
+ NodeProxy {
|
||||
|
||||
fx {
|
||||
arg number=1, wet=1, function = {|in| in};
|
||||
this[number] = \filter -> function;
|
||||
this.set(("wet" ++ number).asSymbol, wet);
|
||||
^this;
|
||||
}
|
||||
|
||||
fx1 { arg wet, function; this.fx(\wet100, wet, function); }
|
||||
fx2 { arg wet, function; this.fx(\wet200, wet, function); }
|
||||
fx3 { arg wet, function; this.fx(\wet300, wet, function); }
|
||||
fx4 { arg wet, function; this.fx(\wet400, wet, function); }
|
||||
fx5 { arg wet, function; this.fx(\wet500, wet, function); }
|
||||
fx6 { arg wet, function; this.fx(\wet600, wet, function); }
|
||||
fx7 { arg wet, function; this.fx(\wet700, wet, function); }
|
||||
fx8 { arg wet, function; this.fx(\wet800, wet, function); }
|
||||
fx9 { arg wet, function; this.fx(\wet900, wet, function); }
|
||||
|
||||
wet { arg number=1, wet=1;
|
||||
this.set(("wet" ++ number).asSymbol, wet);
|
||||
^this;
|
||||
}
|
||||
|
||||
xwet { arg number=1, wet=1;
|
||||
this.xset(("wet" ++ number).asSymbol, wet);
|
||||
^this;
|
||||
}
|
||||
|
||||
fxin {
|
||||
arg number=1, wet=1, function = {|in| in};
|
||||
this[number] = \filterIn -> function;
|
||||
this.set(("wet" ++ number).asSymbol, wet);
|
||||
^this;
|
||||
}
|
||||
}
|
||||
5
Classes/BuboObject.sc
Normal file
5
Classes/BuboObject.sc
Normal file
@ -0,0 +1,5 @@
|
||||
Panic {
|
||||
*new {
|
||||
CmdPeriod.run;
|
||||
}
|
||||
}
|
||||
23
Classes/BuboPbind.sc
Normal file
23
Classes/BuboPbind.sc
Normal file
@ -0,0 +1,23 @@
|
||||
+ Pbind {
|
||||
fastest { ^this.set(\dur, 1/8) }
|
||||
faster { ^this.set(\dur, 1/4) }
|
||||
fast { ^this.set(\dur, 1/2) }
|
||||
slow { ^this.set(\dur, 2) }
|
||||
slower { ^this.set(\dur, 4) }
|
||||
slowest { ^this.set(\dur, 8) }
|
||||
|
||||
lowest { ^this.set(\octave, 2) }
|
||||
lower { ^this.set(\octave, 3) }
|
||||
low { ^this.set(\octave, 4) }
|
||||
high { ^this.set(\octave, 6) }
|
||||
higher { ^this.set(\octave, 7) }
|
||||
highest { ^this.set(\octave, 8) }
|
||||
|
||||
fff { ^this.set(\amp, 2) }
|
||||
ff { ^this.set(\amp, 1) }
|
||||
f { ^this.set(\amp, 0.5) }
|
||||
p { ^this.set(\amp, 0.3) }
|
||||
pp { ^this.set(\amp, 0.2) }
|
||||
ppp { ^this.set(\amp, 0.1) }
|
||||
}
|
||||
|
||||
6
Classes/BuboScope.sc
Normal file
6
Classes/BuboScope.sc
Normal file
@ -0,0 +1,6 @@
|
||||
Scope {
|
||||
|
||||
*new {
|
||||
^Server.default.scope.window.alwaysOnTop_(true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user