(
-s.boot;
+~samplerFactory = {
+ var sampler = Environment[
+ \version -> "33.7.2.3",
+ \buf -> Buffer.alloc(s, s.sampleRate * 10.0, 1),
+ \recsynthdef -> SynthDef(\samplerRecord, { |input, buf|
+ var sig;
+ sig = In.ar(input, 1);
+ RecordBuf.ar(sig, buf, doneAction: Done.freeSelf, loop: 0);
+ }).add,
+ \playsynthdef -> SynthDef(\samplerPlay, { |out = 0, buf = 0, startPos = 0, duration = 0.01|
+ var sig, env;
+ sig = PlayBuf.ar(1, buf, BufRateScale.ir(buf), startPos: startPos, doneAction: 2);
+ env = Env.new([0, 1, 1, 0], [0.01, duration-0.02, 0.01]);
+ sig = sig * EnvGen.ar(env, 1, doneAction: 2);
+ Out.ar(out, sig!2);
+ }).add,
+ \startRec -> { |zi|
+ zi.recSynth = Synth(\samplerRecord, [\input, s.inputBus, \buf, zi.buf], addAction: \addToTail);
+ zi.endPos = s.sampleRate * 10;
+ zi.startTime = thisThread.seconds;
+ },
+ \startPos -> 0,
+ \duration -> 0,
+ \stopRec -> { |zi|
+ zi.duration = thisThread.seconds - zi.startTime;
+ zi.recSynth.free;
+ },
+ \playSample -> { |zi|
+ var playSynth;
+ playSynth = Synth(\samplerPlay,
+ [\out, 0, \buf, zi.buf, \startPos, zi.startPos, \duration, zi.duration],
+ addAction: \addToHead);
+ }
+ ];
+
+ sampler.know = true;
+ sampler;
+};
)
-
-(
-~se = Environment[
- \version -> "33.7.2.2",
- \buf -> Buffer.alloc(s, s.sampleRate * 10.0, 1),
- \recsynthdef -> SynthDef(\samplerRecord, { |input, buf|
- var sig;
- sig = In.ar(input, 1);
- RecordBuf.ar(sig, buf, doneAction: Done.freeSelf, loop: 0);
- }).add,
- \playsynthdef -> SynthDef(\samplerPlay, { |out = 0, buf = 0, startPos = 0, duration = 0.01|
- var sig, env;
- sig = PlayBuf.ar(1, buf, BufRateScale.ir(buf), startPos: startPos, doneAction: 2);
- env = Env.new([0, 1, 1, 0], [0.01, duration-0.02, 0.01]);
- sig = sig * EnvGen.ar(env, 1, doneAction: 2);
- Out.ar(out, sig!2);
- }).add,
- \startRec -> { |zi|
- zi.recSynth = Synth(\samplerRecord, [\input, s.inputBus, \buf, zi.buf], addAction: \addToTail);
- zi.endPos = s.sampleRate * 10;
- zi.startTime = thisThread.seconds;
- },
- \startPos -> 0,
- \duration -> 0,
- \stopRec -> { |zi|
- zi.duration = thisThread.seconds - zi.startTime;
- zi.recSynth.free;
- },
- \playSample -> { |zi|
- var playSynth;
- playSynth = Synth(\samplerPlay,
- [\out, 0, \buf, zi.buf, \startPos, zi.startPos, \duration, zi.duration],
- addAction: \addToHead);
- }
-];
-
-~se.know = true;
-)
-
-~se.startRec();
-~se.stopRec();
-
-~se.buf.plot;
-~se.buf.getToFloatArray(wait:0.01, action: {arg array; a = array; { a[0..100].plot }.defer; "done".postln });
-
-~se.playSample();
-~se.duration = 2.5;
-
-(
-SynthDef(\test, { |amp = 1.0|
- Out.ar(0, SoundIn.ar(1!2, amp.lag(0.01)));
-}).add;
-)
-
-a = Synth(\test);
-a.free;
-
-MIDIIn.connectAll;
-(
-MIDIdef.cc(\pollcc, { |...args|
- //"cc".postln;
- //args.postln;
-});
-
-MIDIdef.noteOn(\pollnoteon, { |...args|
- "noteon".postln;
- args.postln;
-});
-)
-
-(
-MIDIdef.cc(\tafe, { |...args|
- var amp = args[0].linlin(0, 127, 0.1, 20);
- a.set(\amp, amp);
- amp.postln;
-}, 1);
-)
\ No newline at end of file