diff --git a/lmms/.zynaddsubfxXML.cfg b/lmms/.zynaddsubfxXML.cfg index 8aae5bc..f8c93e5 100644 --- a/lmms/.zynaddsubfxXML.cfg +++ b/lmms/.zynaddsubfxXML.cfg @@ -1,29 +1,29 @@ - + - - - - - - + + + + + + - - - - - - - + + + + + + + zynaddsubfx_dump.txt - - - + + + /usr/local/share/lmms/presets/ZynAddSubFX/Bass/ - - + + ~/banks @@ -69,10 +69,10 @@ /usr/local/share/zynaddsubfx/presets - + /dev/dsp /dev/sequencer - - + + diff --git a/lmms/presets/AudioFileProcessor/pr.xpf b/lmms/presets/AudioFileProcessor/pr.xpf new file mode 100644 index 0000000..0e0fb5c --- /dev/null +++ b/lmms/presets/AudioFileProcessor/pr.xpf @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lmms/presets/LB302/rol.xpf b/lmms/presets/LB302/rol.xpf new file mode 100644 index 0000000..21c8438 --- /dev/null +++ b/lmms/presets/LB302/rol.xpf @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lmms/presets/Monstro/strg.xpf b/lmms/presets/Monstro/strg.xpf new file mode 100644 index 0000000..607543d --- /dev/null +++ b/lmms/presets/Monstro/strg.xpf @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lmms/presets/Nescaline/Nescaline4latghor.xpf b/lmms/presets/Nescaline/Nescaline4latghor.xpf new file mode 100644 index 0000000..153e323 --- /dev/null +++ b/lmms/presets/Nescaline/Nescaline4latghor.xpf @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lmms/presets/Nescaline/rl.xpf b/lmms/presets/Nescaline/rl.xpf new file mode 100644 index 0000000..2497205 --- /dev/null +++ b/lmms/presets/Nescaline/rl.xpf @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lmms/presets/SID/snip.xpf b/lmms/presets/SID/snip.xpf new file mode 100644 index 0000000..ee97594 --- /dev/null +++ b/lmms/presets/SID/snip.xpf @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lmms/projects/MenutypeBeat.mmpz b/lmms/projects/MenutypeBeat.mmpz new file mode 100644 index 0000000..e50f15d Binary files /dev/null and b/lmms/projects/MenutypeBeat.mmpz differ diff --git a/lmms/projects/MenutypeBeat.mmpz.bak b/lmms/projects/MenutypeBeat.mmpz.bak new file mode 100644 index 0000000..39a93c6 Binary files /dev/null and b/lmms/projects/MenutypeBeat.mmpz.bak differ diff --git a/lmms/projects/dngrcdsg.mmpz b/lmms/projects/dngrcdsg.mmpz new file mode 100644 index 0000000..0317e27 Binary files /dev/null and b/lmms/projects/dngrcdsg.mmpz differ diff --git a/lmms/projects/dngrcdsg.mmpz.bak b/lmms/projects/dngrcdsg.mmpz.bak new file mode 100644 index 0000000..29bff40 Binary files /dev/null and b/lmms/projects/dngrcdsg.mmpz.bak differ diff --git a/lmms/projects/k.mmpz b/lmms/projects/k.mmpz new file mode 100644 index 0000000..dce7fdb Binary files /dev/null and b/lmms/projects/k.mmpz differ diff --git a/lmms/projects/k.mmpz.bak b/lmms/projects/k.mmpz.bak new file mode 100644 index 0000000..8747e22 Binary files /dev/null and b/lmms/projects/k.mmpz.bak differ diff --git a/lmms/projects/keyz.mmpz b/lmms/projects/keyz.mmpz new file mode 100644 index 0000000..ed05611 Binary files /dev/null and b/lmms/projects/keyz.mmpz differ diff --git a/lmms/projects/keyz.mmpz.bak b/lmms/projects/keyz.mmpz.bak new file mode 100644 index 0000000..c850b00 Binary files /dev/null and b/lmms/projects/keyz.mmpz.bak differ diff --git a/lmms/projects/kw.mmpz b/lmms/projects/kw.mmpz new file mode 100644 index 0000000..a4ea24c Binary files /dev/null and b/lmms/projects/kw.mmpz differ diff --git a/lmms/projects/kw.mmpz.bak b/lmms/projects/kw.mmpz.bak new file mode 100644 index 0000000..0b5178e Binary files /dev/null and b/lmms/projects/kw.mmpz.bak differ diff --git a/lmms/projects/kys.mmpz b/lmms/projects/kys.mmpz new file mode 100644 index 0000000..6987407 Binary files /dev/null and b/lmms/projects/kys.mmpz differ diff --git a/lmms/projects/kys.mmpz.bak b/lmms/projects/kys.mmpz.bak new file mode 100644 index 0000000..87e5fbd Binary files /dev/null and b/lmms/projects/kys.mmpz.bak differ diff --git a/lmms/projects/ntr.mmpz b/lmms/projects/ntr.mmpz new file mode 100644 index 0000000..3ada82f Binary files /dev/null and b/lmms/projects/ntr.mmpz differ diff --git a/lmms/projects/ntr.mmpz.bak b/lmms/projects/ntr.mmpz.bak new file mode 100644 index 0000000..26629ea Binary files /dev/null and b/lmms/projects/ntr.mmpz.bak differ diff --git a/lmms/projects/o.mmpz b/lmms/projects/o.mmpz new file mode 100644 index 0000000..84ef41a Binary files /dev/null and b/lmms/projects/o.mmpz differ diff --git a/lmms/projects/o.mmpz.bak b/lmms/projects/o.mmpz.bak new file mode 100644 index 0000000..98f176b Binary files /dev/null and b/lmms/projects/o.mmpz.bak differ diff --git a/lmms/projects/oa.mmpz b/lmms/projects/oa.mmpz new file mode 100644 index 0000000..9f05202 Binary files /dev/null and b/lmms/projects/oa.mmpz differ diff --git a/lmms/projects/oa.mmpz.bak b/lmms/projects/oa.mmpz.bak new file mode 100644 index 0000000..4c015c1 Binary files /dev/null and b/lmms/projects/oa.mmpz.bak differ diff --git a/lmms/projects/rncdgf.mmpz b/lmms/projects/rncdgf.mmpz new file mode 100644 index 0000000..d2b2564 Binary files /dev/null and b/lmms/projects/rncdgf.mmpz differ diff --git a/lmms/projects/rncdgf.mmpz.bak b/lmms/projects/rncdgf.mmpz.bak new file mode 100644 index 0000000..975f422 Binary files /dev/null and b/lmms/projects/rncdgf.mmpz.bak differ diff --git a/lmms/projects/snth.mmpz b/lmms/projects/snth.mmpz new file mode 100644 index 0000000..d3bc374 Binary files /dev/null and b/lmms/projects/snth.mmpz differ diff --git a/lmms/projects/snth.mmpz.bak b/lmms/projects/snth.mmpz.bak new file mode 100644 index 0000000..d3bc374 Binary files /dev/null and b/lmms/projects/snth.mmpz.bak differ diff --git a/lmms/projects/stn.mmpz b/lmms/projects/stn.mmpz new file mode 100644 index 0000000..13019d1 Binary files /dev/null and b/lmms/projects/stn.mmpz differ diff --git a/lmms/projects/stn.mmpz.bak b/lmms/projects/stn.mmpz.bak new file mode 100644 index 0000000..13019d1 Binary files /dev/null and b/lmms/projects/stn.mmpz.bak differ diff --git a/lmms/projects/sw.mmpz b/lmms/projects/sw.mmpz index 1f4b56b..6e6e380 100644 Binary files a/lmms/projects/sw.mmpz and b/lmms/projects/sw.mmpz differ diff --git a/lmms/projects/sw.mmpz.bak b/lmms/projects/sw.mmpz.bak index 9421ba4..4fcd4be 100644 Binary files a/lmms/projects/sw.mmpz.bak and b/lmms/projects/sw.mmpz.bak differ diff --git a/lmms/projects/uix.mmpz b/lmms/projects/uix.mmpz new file mode 100644 index 0000000..fa8049a Binary files /dev/null and b/lmms/projects/uix.mmpz differ diff --git a/lmms/projects/uix.mmpz.bak b/lmms/projects/uix.mmpz.bak new file mode 100644 index 0000000..fa8049a Binary files /dev/null and b/lmms/projects/uix.mmpz.bak differ diff --git a/lmms/projects/winter_wistful_land.mmpz b/lmms/projects/winter_wistful_land.mmpz new file mode 100644 index 0000000..a6cd0ff Binary files /dev/null and b/lmms/projects/winter_wistful_land.mmpz differ diff --git a/lmms/projects/x.mmpz b/lmms/projects/x.mmpz new file mode 100644 index 0000000..eaa4af7 Binary files /dev/null and b/lmms/projects/x.mmpz differ diff --git a/lmms/projects/x.mmpz.bak b/lmms/projects/x.mmpz.bak new file mode 100644 index 0000000..1579aaa Binary files /dev/null and b/lmms/projects/x.mmpz.bak differ diff --git a/lmms/projects/y.mmpz b/lmms/projects/y.mmpz new file mode 100644 index 0000000..5a18377 Binary files /dev/null and b/lmms/projects/y.mmpz differ diff --git a/lmms/projects/y.mmpz.bak b/lmms/projects/y.mmpz.bak new file mode 100644 index 0000000..60c3d79 Binary files /dev/null and b/lmms/projects/y.mmpz.bak differ diff --git a/lmms/projects/z.mmpz b/lmms/projects/z.mmpz new file mode 100644 index 0000000..de8a0f6 Binary files /dev/null and b/lmms/projects/z.mmpz differ diff --git a/lmms/projects/z.mmpz.bak b/lmms/projects/z.mmpz.bak new file mode 100644 index 0000000..70a7ce2 Binary files /dev/null and b/lmms/projects/z.mmpz.bak differ diff --git a/scd/aphex_flim/README.txt b/scd/aphex_flim/README.txt new file mode 100644 index 0000000..6d86783 --- /dev/null +++ b/scd/aphex_flim/README.txt @@ -0,0 +1,15 @@ +One of my first SuperCollider tests + +execute in this Order: + +1. Synths and Patterns +2. GUI + +You'll be able to start from the GUI + +Comments: +Long code a lot of errors... but might give you an impression of handling patterns from a GUI. +Still, not everything works... so use it under your own risk. +Nowadays I wold do everythong dfferent, maybe more code-efficient ;-) but don't have time to correct all that. + +Enjoy diff --git a/scd/aphex_flim/aphex_flim_(0)_synths_and_paterns.scd b/scd/aphex_flim/aphex_flim_(0)_synths_and_paterns.scd new file mode 100644 index 0000000..c588e49 --- /dev/null +++ b/scd/aphex_flim/aphex_flim_(0)_synths_and_paterns.scd @@ -0,0 +1,495 @@ +/* +TO DO - 3. Teil (melodien, akkorde und SZ pausen! +GUI !!! +QC composer outputs + +Snare sound!!! +Pattern beliebing auswŠhlen? nich []++[]++[] + + +*/ + +////////////////////////////////////////////////////////////////////////////// +/////////////////////////////SYNTHS/////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +SynthDef(\ping, { |out, freq=440, attack=0.001, release=1, amp=0.1, pan| + var snd; + snd = FSinOsc.ar(freq); + snd = snd * EnvGen.ar(Env.perc(attack, release, 1, -20), doneAction:2); + snd = Pan2.ar(snd, pan); + OffsetOut.ar(out, snd * amp); + OffsetOut.ar(0, snd * amp); +}).store; + +SynthDef(\peng, { |out, freq=440, attack=0.0001, release=1, amp=0.1, pan, modFreq=111, detune=2, rq=0.8| + var snd, mod; + mod = SinOsc.ar(modFreq); + snd = Saw.ar([freq, freq*Rand(1.45, 1.55)] + modFreq.range(detune.neg, detune)).sum; + snd = snd * mod; + snd = RHPF.ar(snd, freq/2, rq*2); + snd = RLPF.ar(snd, freq*2, rq/2); + snd = snd * EnvGen.ar(Env.perc(attack, release, 1, -12), doneAction:2); + snd = Pan2.ar(snd, pan); + OffsetOut.ar(out, snd * amp); + OffsetOut.ar(0, snd * amp); +}).store; + +SynthDef(\chord, { |out, freq=440, attack=0.2, sustain=0.2, decay=0.15, amp=0.05, pan, rq=0.25, gate=1| + var snd; + snd = Pulse.ar(freq + SinOsc.ar([Rand(0.8, 1.2), Rand(0.8, 1.2)]).range(-1,1), Rand(0.1, 0.49)); + snd = snd * SinOsc.ar(Rand(6.0, 8.2)).range(0.8, 1.0); + snd = RLPF.ar(snd, freq, rq/4, 0.1); + snd = snd + RHPF.ar(snd, freq, rq*2, 0.075); + snd = snd + Blip.ar(freq, 3, 0.05); +// snd = snd * EnvGen.ar(Env.adsr(attack, decay, 0.3, sustain), gate, doneAction:2); + snd = snd * EnvGen.ar(Env.perc(attack, sustain), doneAction:2); + snd = Pan2.ar(snd, pan); + OffsetOut.ar(out, snd * amp * 2); + OffsetOut.ar(0, snd * amp / 2); +}).store; + +SynthDef(\pong, { |out, freq=440, attack=0.1, sustain=1, amp=0.1, pan| + var snd; + snd = Pulse.ar(freq, 0.1); + snd = LPF.ar(snd, freq*4); + snd = snd * 0.25 + RLPF.ar(snd, freq, 0.45); + snd = snd + RLPF.ar(snd, freq*1.5, 0.1); + snd = snd * EnvGen.ar(Env.perc(attack, sustain, 1, -8), doneAction:2); + snd = Pan2.ar(snd, pan); + OffsetOut.ar(out, snd * amp); + OffsetOut.ar(0, snd * amp); +}).store; + +/////////////////////////////DRUMS////////////////////////////////////////////// + +SynthDef(\kick, { |out, ffreq=80, attack=0, release=2, amp=0.1, pan| + var snd; + snd = SinOsc.ar([ffreq, ffreq*1.01, ffreq*1.03, ffreq*1.06, ffreq*1.1], 0, 0.5).sum; + snd = snd + PinkNoise.ar; + snd = RLPF.ar(snd, ffreq, 0.1); + snd = RLPF.ar(snd, ffreq*2, 0.2); + snd = RLPF.ar(snd, ffreq*3, 0.3); + snd = RLPF.ar(snd, ffreq*4, 0.4); + snd = RLPF.ar(snd, ffreq*5, 0.5); + snd = snd + LPF.ar(WhiteNoise.ar, ffreq*6); + snd = snd * EnvGen.ar(Env.perc(attack, release, 1, -50), doneAction:2); + snd = Pan2.ar(snd, pan); + OffsetOut.ar(out, snd * amp); + OffsetOut.ar(0, snd * amp); +}).store; + +SynthDef(\bass, { |out, freq=100, attack=0.1, release=2, amp=0.1, pan| + var snd; + snd = SinOsc.ar(XLine.kr( + [freq, freq*1.5, freq*2, freq*3], + [freq, freq*1.5, freq*2, freq*3]/4, + release/2, + 0, + 0.5) + ).sum; + snd = RLPF.ar(snd, freq*2/3, 0.1); + snd = snd * EnvGen.ar(Env.perc(attack, release, 2, -10), doneAction:2); + snd = Pan2.ar(snd, pan); + OffsetOut.ar(out, snd * amp); + OffsetOut.ar(0, snd * amp); +}).store; + +SynthDef(\snare, { |out, ffreq=100, rq=0.5, attack=0, release=0.5, amp=0.1, pan| + var snd; + snd = WhiteNoise.ar(); + snd = HPF.ar(snd, ffreq); + snd = snd + HPF.ar(snd, ffreq*1.345); + snd = snd + HPF.ar(snd, ffreq*2.4567); + snd = snd + HPF.ar(snd, ffreq*4.345); + snd = LPF.ar(snd, 2000); + snd = RHPF.ar(snd, ffreq*2, rq) * 0.2; + snd = snd * EnvGen.ar(Env.perc(attack, release, 1, -10), doneAction:2); + snd = Pan2.ar(snd, pan); + OffsetOut.ar(out, snd * amp); + OffsetOut.ar(0, snd * amp); +}).store; + +SynthDef(\hihat, { |out, ffreq=200, rq=0.5, attack=0, release=0.025, amp=0.1, pan| + var snd; + snd = WhiteNoise.ar(); + snd = HPF.ar(snd, ffreq); + snd = RHPF.ar(snd, ffreq*2, rq); + snd = snd * EnvGen.ar(Env.perc(attack, release, 1, -10), doneAction:2); + snd = Pan2.ar(snd, pan); + OffsetOut.ar(out, snd * amp * 2); + OffsetOut.ar(0, snd * amp); +}).store; + + + +//////////////////////////FX//////////////////////////////////////////////// + +SynthDef(\reverbz, { |in=20, out=100, amp=0.1, mix=0.5, rmix=1, room=0.8, damp=0.8| + var snd; + snd = In.ar(in, 2); + snd = FreeVerb2.ar(snd[0], snd[1], rmix, room, damp); + XOut.ar(out, mix, snd); +}).store; + +SynthDef(\combzA, { |in=22, out=100, amp=0.1, mix=0.5, maxdelay=5, delay=0.05, decay=0.6| + var snd; + snd = In.ar(in, 2); + snd = CombN.ar(snd, maxdelay, delay, decay); + XOut.ar(out, mix, snd); +}).store; + +SynthDef(\combzB, { |in=24, out=100, amp=0.1, mix=0.5, maxdelay=5, delay=0.1, decay=1| + var snd; + snd = In.ar(in, 2); + snd = CombN.ar(snd, maxdelay, delay, decay); + XOut.ar(out, mix, snd); +}).store; + +SynthDef(\combzC, { |in=26, out=100, amp=0.1, mix=0.5, maxdelay=5, delay=0.018, decay=0.35| + var snd; + snd = In.ar(in, 2); + snd = CombN.ar(snd, maxdelay, delay, decay); + XOut.ar(out, mix, snd); +}).store; + +SynthDef(\mixer, { |in=100, out, amp=0.1, mix=0.5, maxdelay=5, delay=0.111, decay=2| + var snd; + snd = In.ar(in, 2) * 2; + XOut.ar(out, mix, snd); +}).store; + +SynthDef(\compressor, { |in=0, out, amp=0.1, thresh=0.8, slopeB=1, slopeA=0.1, clampT=0.01, relaxT=0.5| + var snd; + snd = In.ar(in, 2); + snd = Compander.ar(snd, snd, thresh, slopeB, slopeA, clampT, relaxT); + ReplaceOut.ar(out, snd); +}).store; + + +///////////////////////////TESTS//////////////////////////////////////////// +/* + + +*/ + +/////////////////////////////////////////////////////////////////////////// +///////////////////////////SCORE/////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////// + +/* +OUT 20/21 -> reverbz +OUT 22/23 -> combz (delay) short +OUT 24/25 -> combz (delay) long +OUT 26/27 -> combz (delay) xtra short + +OUT 100/101 -> mixer +*/ + +q = q ? (); +q.fx = (); +q.ping = (); +q.pong = (); +q.chord = (); +q.chords = (); +q.buttons = (); + + +q.fx.reverb = Synth.tail(s, \reverbz); +q.fx.combA = Synth.tail(s, \combzA); +q.fx.combB = Synth.tail(s, \combzB); +q.fx.combC = Synth.tail(s, \combzC); +q.mixer = Synth.tail(s, \mixer); +q.compressor = Synth.tail(s, \compressor); +q.pdef = [ Pdef(\chord), Pdef(\ping), Pdef(\peng) ]; +q.scale = [ 0,2,4,5,7,9,11 ]-2; + +//---Pings + +q.ping.melodyA = [3,5,7,8, 3,5,7,8, 2,4,6,10, 3,4,6,10]; +q.ping.melodyB = [5,4,3,1, 0,1,0,1,0, -2,-3]+7; +q.ping.melodyC = [-3,-1,3,1]+7; +q.ping.melodyD = [0,-2]+7; + +q.ping.rhythmA = 2!16; +q.ping.rhythmB = [2,2,2,10, 1,1,1,1,2, 1,9]; +q.ping.rhythmC = [2,2,2,10]; +q.ping.rhythmD = [7, 9]; + +//---Harmonies +//---First Part + +q.chords[0] = [1,8]; +q.chords[1] = [5,3]; +q.chords[2] = [1,6,4]; +q.chords[3] = [4,8]; +q.chords[4] = [5,7]; +q.chords[5] = [6,10]; + +//---Second Part + +q.chords[6] = [1,3,5]; +q.chords[7] = [-3,1]; +q.chords[8] = [-2,1,3]; +q.chords[9] = [-3,-1]; + +q.chords[10] = [-3,-1,2]; +q.chords[11] = [-2,1]; +q.chords[12] = [-3,1]; +q.chords[13] = [-5,-2]; + +//---Third Part + +q.chords[14] = [6]; +q.chords[15] = [5]; +q.chords[16] = [8]; +q.chords[17] = [3]; + +q.chords[18] = [6]; +q.chords[19] = [5]; +q.chords[20] = [8]; +q.chords[21] = [10]; + +//---Chord Rhythms + +q.chord.rhythmA = [2,2,3.5, 2.5,2,4]; +q.chord.rhythmB = [3.5,4.5,4.5,3.5, 3,5,3,5]; + +q.chord.rhythmC = [3.5,4,4,8.5]; + +//---PONG + +q.pong.melodyA = [-1,3,5, 3,5,3, 1,7]; +q.pong.melodyB = [8,6,4,3, 3,4, 3,4,2]; +q.pong.melodyC = [8,9,10, 6,5,2]; + +q.pong.rhythmA = [1,2,2, 1,1,1, 1,8]; +q.pong.rhythmB = [2,2,2,2, 2,2, 1,1,9]; +q.pong.rhythmC = [2,2,4, 2,2,3]; + +/////////////////////PATTERNS/////////////////////////// + +Pdef(\ping, + Pbind( + \scale, q.scale, + \instrument, \ping, + \degree, Pseq( + q.ping.melodyA ++ q.ping.melodyA ++ + q.ping.melodyB ++ q.ping.melodyC ++ q.ping.melodyD ++ + q.ping.melodyB ++ q.ping.melodyC ++ q.ping.melodyD -1, inf), + \octave, 6, + \out, 20, + \amp, 0.5, + \dur, Pseq( + q.ping.rhythmA ++ q.ping.rhythmA ++ + q.ping.rhythmB ++ q.ping.rhythmC ++ q.ping.rhythmD ++ + q.ping.rhythmB ++ q.ping.rhythmC ++ q.ping.rhythmD + / 4, inf) + ) +); + +Pdef(\chord, + Pbind( + \scale, q.scale, + \instrument, \chord, + \degree, Pseq([ + q.chords[0], q.chords[1], q.chords[2], q.chords[3], q.chords[4], q.chords[5], + q.chords[0], q.chords[1], q.chords[2], q.chords[3], q.chords[4], q.chords[5], + q.chords[6], q.chords[7], q.chords[8], q.chords[9], + q.chords[10], q.chords[11], q.chords[12], q.chords[13], + q.chords[6], q.chords[7], q.chords[8], q.chords[9], + q.chords[10], q.chords[11], q.chords[12], q.chords[13] ] -1 + 7,inf), + \legato, 1, + \octave, 4, + \out, 20, + \amp, 0.25, + \dur, Pseq( q.chord.rhythmA ++ q.chord.rhythmA ++ q.chord.rhythmB ++ q.chord.rhythmB / 2, inf ) + ) +); + + +Pdef(\chordB, + Pbind( + \scale, q.scale, + \instrument, \chord, + \degree, Pseq([ + q.chords[14], q.chords[15], q.chords[16], q.chords[17], + q.chords[18], q.chords[19], q.chords[20], q.chords[21] + ] -1 + 7,inf), + \legato, 1, + \octave, 4, + \out, 20, + \amp, 0.25, + \dur, Pseq( q.chord.rhythmC / 2, inf ) + ) +); + +Pdef(\pong, + Pbind( + \scale, q.scale, + \instrument, \pong, + \degree, Pseq( + q.pong.melodyA ++ + q.pong.melodyB ++ + q.pong.melodyA ++ + q.pong.melodyC + - 1, inf), + \octave, 4, + \out, 20, + \amp, 0.5, + \legato, 2, + \dur, Pseq( q.pong.rhythmA ++ q.pong.rhythmB ++ q.pong.rhythmA ++ q.pong.rhythmC / 4, inf) + ) +); + +////////////////////////////////////DRUMZ//////////////////////////////////// + +Pdef(\kick, + Pbind( + \instrument, \kick, + \freq, 80, + \sustain, 0.1, + \out, Prand([0,0,0,0,0,0,0,0,0,0, 22, 24, 26], inf), + \amp, 0.1, + \dur, Prand([ + Pseq([3,3,1,1]/4), + Pseq([3,5]/4), + Pseq([1,2,1,4]/4), + Pseq([1,2,2,1,1,1]/4), + Pseq([8]/4), + ],inf) + ) +); + + +Pdef(\snare, + Pbind( + \instrument, \snare, + \sustain, 0.1, + \out, Prand([0,0,0,0,0,0,0,0,0,0, 22, 24, 26], inf), + \amp, Prand([ + Pseq([0,0,1,0]/2), + Pseq([0,0,1,0]/2), + Pseq([0,0,1,0]/2), + Pseq([0,0,1,0]/2), + Pseq([0,0,1,0]/2), + Pseq([0,0,1,0]/2), + Pseq([0,0,1,0]/2), + Pseq([0,0,1,0]/2), + Pseq([0,0,1,1]/2), + Pseq([1,0,0,0]/2), + Pseq([1,1,0,1]/2), + Pseq([1,0,1,0]/2), + Pseq([1,1,1,1]/2), + ], inf), + \dur, Pseq([1,1,1,1]/4,inf) + ) +); + + +Pdef(\hihat, + Pbind( + \instrument, \hihat, + \sustain, 0.1, + \out, Prand([0,0,0,0, 22, 24, 26], inf), + \amp, Pseq([1,1,1,1]/10,inf), + \dur, Pseq([1,1,1,1]/4,inf) + ) +); + +Pdef(\bass, + Pbind( + \instrument, \bass, + \freq, Prand([80, 120],inf), + \sustain, 0.1, + \out, Prand([0,0,0,0,0,0,0,0,0,0,20], inf), + \amp, 0.075, + \dur, Prand([ + Pseq([16]/4), + Pseq([16]/4), + Pseq([16]/4), + Pseq([16]/4), + Pseq([8]/4), + Pseq([8]/4), + Pseq([3,5]/4), + Pseq([7,1]/4), + ],inf) + ) +); + + +Pdef(\ping).stop; +Pdef(\chord).stop; +Pdef(\kick).stop; +Pdef(\bass).stop; +Pdef(\hihat).stop; +Pdef(\snare).stop; +Pdef(\pong).stop; + + +//Pdef(\ping).play; +//Pdef(\chord).play; +//Pdef(\kick).play; +//Pdef(\bass).play; +//Pdef(\hihat).play; +//Pdef(\snare).play; + + +/* + + + + + + + + + + + + + + + + + + + + +( +Pdef(\ping).stop; +Pdef(\chord).stop; + +Pdef(\pong).play; +Pdef(\chordB).play; +) + +( +Pdef(\ping).play; +Pdef(\chord).play; + +Pdef(\chordB).play; +Pdef(\pong).stop; +) + +*/ + +TempoClock.default.tempo = 1.25; + + +/* + +q.pdef.do { |i| i.play }; +q.pdef.do { |i| i.stop }; +s.queryAllNodes + +*/ + + +/////////////////////////////////////////////////////////////////////////// +///////////////////////////GUI///////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////// + + +//w = GUI.window.new("Aphex Twin Generator").front; + diff --git a/scd/aphex_flim/aphex_flim_(1)_gui.scd b/scd/aphex_flim/aphex_flim_(1)_gui.scd new file mode 100644 index 0000000..84ffc99 --- /dev/null +++ b/scd/aphex_flim/aphex_flim_(1)_gui.scd @@ -0,0 +1,341 @@ +( +//q = q ? (); +q.button = (); +q.slider = (); +q.window = (); +q.color = (); +q.text = (); +q.line = (); + +q.color.red = Color(0.5, 0.25, 0.4, 0.25); +q.color.blue = Color(0.2, 0.2, 0.5, 0.25); +q.color.green = Color(0.0, 0.25, 0.1, 0.25); +q.color.green2 = Color(0.5, 0.75, 0.5); + +q.color.grey = Color(0.4, 0.4, 0.4, 1); + +q.color.black = Color(0, 0, 0); +q.color.black2 = Color(0.1, 0.1, 0.2); +q.color.black3 = Color(0, 0, 0, 0.2); + +q.color.white = Color(1, 1, 1); +q.color.white2 = Color(0.8, 0.8, 0.9); + + +q.window.width = 400; +q.window.height = 750; + +q.line[0] = 10; +q.line[1] = 80; +q.line[2] = 0; +q.line[3] = 0; +q.line[4] = 0; +q.line[5] = 0; +q.line[6] = 0; +q.line[7] = 0; +q.line[8] = 0; +q.line[9] = 0; +q.line[10] = 170-25; +q.line[11] = 200-25; +q.line[12] = 272-25; +q.line[13] = 300-25; +q.line[14] = 0; +q.line[15] = 320; +q.line[16] = q.line[15] + 180 + 20; +q.line[17] = 0; +q.line[18] = q.line[16] + 40; +q.line[19] = 0; +q.line[20] = q.window.height - 20 - 30; +q.line[21] = q.window.height - 20; + + +//q.window.width = SCWindow.screenBounds.width; +//q.window.height = SCWindow.screenBounds.height; + +w = Window.new("Aphex Flim Control",Rect(0, 0, q.window.width, q.window.height)).front; +w.view.background = HiliteGradient(q.color.white2, q.color.black2, \v, 128, 0.7); + +//q.text.title = SCStaticText( w, Rect(q.window.width/2, 0, 200, 25) ); +//q.text.title.string_("APHEX FLIM GENERATOR"); + +CmdPeriod.add({w.close}); + + +//------------START / CHANGE BUTTON +q.button.start = Button.new(w, Rect(0, q.line[0], q.window.width, 60)) + .states_([ + [ "START ALL", q.color.black, q.color.red ], + [ "STOP ALL", q.color.white, q.color.blue ] + ]) + .action_{|v| + ( v.value == 1).if( + { + Pdef(\ping).play; + Pdef(\chord).play; + Pdef(\kick).play; + Pdef(\bass).play; + Pdef(\hihat).play; + Pdef(\snare).play; + q.button.bass.valueAction_(0); + q.button.kick.valueAction_(0); + q.button.snare.valueAction_(0); + q.button.hihat.valueAction_(0); + + }, + { Pdef(\ping).stop; + Pdef(\chord).stop; + Pdef(\kick).stop; + Pdef(\bass).stop; + Pdef(\hihat).stop; + Pdef(\snare).stop; + Pdef(\pong).stop; + Pdef(\chordB).stop; + q.button.bass.valueAction_(1); + q.button.kick.valueAction_(1); + q.button.snare.valueAction_(1); + q.button.hihat.valueAction_(1); + } + ) + }; + +q.button.change = Button.new(w, Rect(0, q.line[1], q.window.width, 40)) + .states_([ + [ "CHANGE TO THE SECOND PART", q.color.black, q.color.red ], + [ "CHANGE TO THE FIRST PART", q.color.white, q.color.blue ] + ]) + .action_{|v| + ( v.value == 1).if( + { Pdef(\ping).stop; Pdef(\chord).stop; Pdef(\pong).play; Pdef(\chordB).play; }, + { Pdef(\ping).play; Pdef(\chord).play; Pdef(\chordB).stop; Pdef(\pong).stop; } + ) + }; + + +//////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////// +q.text.reverb = StaticText(w, Rect(10, q.line[10], 60, 40)) + .string_("REVERB") + .stringColor_(q.color.white2); + +q.slider.reverb = Slider2D.new(w,Rect(10, q.line[11], 80, 80)) + .action_{ |v| q.fx.reverb.set(\room, v.x); q.fx.reverb.set(\damp, v.y) } + .x_(0.8) + .y_(0.8); + +q.text.reverbMix = StaticText(w, Rect(10, q.line[12], 500, 40)) + .string_("Reverb dry / wet mix") + .stringColor_(q.color.white2); + +q.slider.reverbMix = Slider.new(w,Rect(10, q.line[13], q.window.width-20, 15)) + .action_{|v| + q.fx.reverb.set(\mix, v.value) + } + .value_(0.5); + + +//////////////////////////////////////////////////////// +q.text.combA = StaticText(w, Rect(110, q.line[10], 80, 40)) + .string_("COMB (short)") + .stringColor_(q.color.white2); + +q.slider.combA = Slider2D.new(w,Rect(110, q.line[11], 80, 80)) + .action_{ |v| q.fx.combA.set(\decay, v.x/2); q.fx.combA.set(\delay, v.y/7.5) } + .x_(0.35*2) + .y_(0.135); + +/*q.text.combAMix = SCStaticText(w, Rect(110, q.line[12], 100, 40)) + .string_("dry / wet mix") + .stringColor_(q.color.white2); + +q.slider.combAMix = SCSlider.new(w,Rect(110, q.line[13], 80, 15)) + .action_{|v| + q.fx.combA.set(\mix, v.value) + } + .value_(0.5);*/ + + +//////////////////////////////////////////////////////// +q.text.combB = StaticText(w, Rect(210, q.line[10], 100, 40)) + .string_("COMB (middle)") + .stringColor_(q.color.white2); + +q.slider.combB = Slider2D.new(w,Rect(210, q.line[11], 80, 80)) + .action_{ |v| q.fx.combB.set(\decay, v.x); q.fx.combB.set(\delay, v.y/7.5) } + .x_(0.6) + .y_(0.375); + +/*q.text.combBMix = SCStaticText(w, Rect(210, q.line[12], 100, 40)) + .string_("dry / wet mix") + .stringColor_(q.color.white2); + +q.slider.combBMix = SCSlider.new(w,Rect(210, q.line[13], 80, 15)) + .action_{|v| + q.fx.combB.set(\mix, v.value) + } + .value_(0.5);*/ +//////////////////////////////////////////////////////// +q.text.combC = StaticText(w, Rect(310, q.line[10], 80, 40)) + .string_("COMB (long)") + .stringColor_(q.color.white2); + +q.slider.combC = Slider2D.new(w,Rect(310, q.line[11], 80, 80)) + .action_{ |v| q.fx.combC.set(\decay, v.x*2); q.fx.combC.set(\delay, v.y/7.5) } + .x_(1/2) + .y_(0.75); + +/*q.text.combCMix = SCStaticText(w, Rect(310, q.line[12], 100, 40)) + .string_("dry / wet mix") + .stringColor_(q.color.white2); + +q.slider.combCMix = SCSlider.new(w,Rect(310, q.line[13], 80, 15)) + .action_{|v| + q.fx.combC.set(\mix, v.value) + } + .value_(0.5);*/ +//////////////////////////////////////////////////////// + +q.slider.compSlopes = Slider2D.new(w,Rect(10, q.line[15], 180, 180)) + .action_{ |v| q.compressor.set(\slopeA, v.x); q.fx.combC.set(\slopeB, v.y) } + .x_(0.1) + .y_(1); + +q.slider.compTimes = Slider2D.new(w,Rect(210, q.line[15], 180, 180)) + .action_{ |v| q.compressor.set(\clampT, v.y); q.fx.combC.set(\relaxT, v.x) } + .x_(0.5) + .y_(0.01); + +q.slider.compThresh = Slider.new(w,Rect(10, q.line[16], q.window.width-20, 15)) + .action_{|v| + q.compressor.set(\thresh, v.value) + } + .value_(0.8); + + + +//////////////////////////////////////////////////////// +q.text.volume = NumberBox(w, Rect(q.window.width-50, q.line[20], 40, 15)).value_(1); + +q.text.volumeString = StaticText(w, Rect(10, q.line[20], 60, 15)) + .string_("VOLUME") + .stringColor_(q.color.black2); + +q.slider.volume = Slider.new(w,Rect(75, q.line[20], q.window.width-150, 15)) + .action_{|v| + q.compressor.set(\amp, v.value*2); + q.text.volume.value_( (v.value * 2).round(0.01) ) + } + .value_(0.5); + +//////////////////////////////////////////////////////// +q.text.tempo = NumberBox(w, Rect(q.window.width-50, q.line[21], 40, 15)).value_(75); + +q.text.tempoString = StaticText(w, Rect(10, q.line[21], 60, 15)) + .string_("TEMPO") + .stringColor_(q.color.black2); + +q.slider.tempo = Slider.new(w,Rect(75, q.line[21], q.window.width-150, 15)) + .action_{|v| + TempoClock.default.tempo_(v.value + 0.2 * 2); + q.text.tempo.value_( (v.value + 0.2 * 60 * 2).round ) + } + .value_(0.425); +//////////////////////////////////////////////////////// + +q.button.bass = Button.new(w,Rect(10, q.line[18], 50, 20)) + .states_([ + [ "BASS", q.color.green2, q.color.green ], + [ "BASS", q.color.grey, q.color.black3 ] + ]) + .action_{|v| + ( v.value == 1 ).if( + { Pdef(\bass).stop }, + { Pdef(\bass).play } + ) + }; + + +q.button.kick = Button.new(w,Rect(10, q.line[18]+20, 50, 20)) + .states_([ + [ "KICK", q.color.green2, q.color.green ], + [ "KICK", q.color.grey, q.color.black3 ] + ]) + .action_{|v| + ( v.value == 1 ).if( + { Pdef(\kick).stop }, + { Pdef(\kick).play } + ) + }; + + +q.button.snare = Button.new(w,Rect(10, q.line[18]+40, 50, 20)) + .states_([ + [ "SNARE", q.color.green2, q.color.green ], + [ "SNARE", q.color.grey, q.color.black3 ] + ]) + .action_{|v| + ( v.value == 1 ).if( + { Pdef(\snare).stop }, + { Pdef(\snare).play } + ) + }; + + +q.button.hihat = Button.new(w,Rect(10, q.line[18]+60, 50, 20)) + .states_([ + [ "HIHAT", q.color.green2, q.color.green ], + [ "HIHAT", q.color.grey, q.color.black3 ] + ]) + .action_{|v| + ( v.value == 1 ).if( + { Pdef(\hihat).stop }, + { Pdef(\hihat).play } + ) + }; + +q.button.hihat.valueAction_(1); +q.button.snare.valueAction_(1); +q.button.kick.valueAction_(1); +q.button.bass.valueAction_(1); + + +/* +SCButton.new(w,Rect(20, 338, 100, 20)) + .states_([ [ "Push", Color(0.0, 0.0, 0.0, 1.0), Color(1.0, 0.0, 0.0, 1.0) ], [ "Pop", Color(1.0, 1.0, 1.0, 1.0), Color(0.0, 0.0, 1.0, 1.0) ] ]) + .action_{|v| }; + +SCButton.new(w,Rect(21, 365, 100, 20)) + .states_([ [ "Push", Color(0.0, 0.0, 0.0, 1.0), Color(1.0, 0.0, 0.0, 1.0) ], [ "Pop", Color(1.0, 1.0, 1.0, 1.0), Color(0.0, 0.0, 1.0, 1.0) ] ]) + .action_{|v| }; + +SCButton.new(w,Rect(29, 64, 344, 57)) + .states_([ [ "Push", Color(0.0, 0.0, 0.0, 1.0), Color(1.0, 0.0, 0.0, 1.0) ], [ "Pop", Color(1.0, 1.0, 1.0, 1.0), Color(0.0, 0.0, 1.0, 1.0) ] ]) + .action_{|v| }; + +SCButton.new(w,Rect(143, 307, 100, 20)) + .states_([ [ "Push", Color(0.0, 0.0, 0.0, 1.0), Color(1.0, 0.0, 0.0, 1.0) ], [ "Pop", Color(1.0, 1.0, 1.0, 1.0), Color(0.0, 0.0, 1.0, 1.0) ] ]) + .action_{|v| }; + +SCButton.new(w,Rect(144, 337, 100, 20)) + .states_([ [ "Push", Color(0.0, 0.0, 0.0, 1.0), Color(1.0, 0.0, 0.0, 1.0) ], [ "Pop", Color(1.0, 1.0, 1.0, 1.0), Color(0.0, 0.0, 1.0, 1.0) ] ]) + .action_{|v| }; + +SCButton.new(w,Rect(273, 310, 100, 20)) + .states_([ [ "Push", Color(0.0, 0.0, 0.0, 1.0), Color(1.0, 0.0, 0.0, 1.0) ], [ "Pop", Color(1.0, 1.0, 1.0, 1.0), Color(0.0, 0.0, 1.0, 1.0) ] ]) + .action_{|v| }; + +SCButton.new(w,Rect(273, 337, 100, 20)) + .states_([ [ "Push", Color(0.0, 0.0, 0.0, 1.0), Color(1.0, 0.0, 0.0, 1.0) ], [ "Pop", Color(1.0, 1.0, 1.0, 1.0), Color(0.0, 0.0, 1.0, 1.0) ] ]) + .action_{|v| }; + + + + +SCMultiSliderView.new(w,Rect(31, 237, 338, 34)) + .action_{|v| }; + +EZSlider + +*/ + +); diff --git a/scd/samples/8train/overpass.wav b/scd/samples/8train/overpass.wav deleted file mode 100644 index 45b7ee9..0000000 Binary files a/scd/samples/8train/overpass.wav and /dev/null differ diff --git a/scd/samples/8train/plosh.wav b/scd/samples/8train/plosh.wav deleted file mode 100644 index 290970d..0000000 Binary files a/scd/samples/8train/plosh.wav and /dev/null differ diff --git a/scd/samples/8train/radio.wav b/scd/samples/8train/radio.wav deleted file mode 100644 index f287c8d..0000000 Binary files a/scd/samples/8train/radio.wav and /dev/null differ diff --git a/scd/samples/8train/rytm.wav b/scd/samples/8train/rytm.wav deleted file mode 100644 index f3c9f8f..0000000 Binary files a/scd/samples/8train/rytm.wav and /dev/null differ diff --git a/scd/samples/8train/streaks.wav b/scd/samples/8train/streaks.wav deleted file mode 100644 index 563856f..0000000 Binary files a/scd/samples/8train/streaks.wav and /dev/null differ diff --git a/scd/samples/breaks/amen.wav b/scd/samples/breaks/amen.wav deleted file mode 100644 index 736ee44..0000000 Binary files a/scd/samples/breaks/amen.wav and /dev/null differ diff --git a/scd/samples/canal/ambi.wav b/scd/samples/canal/ambi.wav deleted file mode 100644 index e9b4d21..0000000 Binary files a/scd/samples/canal/ambi.wav and /dev/null differ diff --git a/scd/samples/canal/rayn.wav b/scd/samples/canal/rayn.wav deleted file mode 100644 index 0a23648..0000000 Binary files a/scd/samples/canal/rayn.wav and /dev/null differ diff --git a/scd/samples/canal/train.wav b/scd/samples/canal/train.wav deleted file mode 100644 index 958dd4d..0000000 Binary files a/scd/samples/canal/train.wav and /dev/null differ