Files
BuboQuark/dev_sessions/midi_cc.scd

121 lines
2.2 KiB
Plaintext

(
m = MIDIOut.newByName("MIDI", "Bus 1");
~cc >>+ [num: 20, pat: "[10 50 100 [120 100]]/2", midiout: m ];
~cc.play;
)
(
m = MIDIOut.newByName("MIDI", "Bus 1");
~test >> [
midiout: m,
degree: [0, 2, 4, 5].pxrand(inf),
chan: 1,
dur: [5,8,0].eu / 4, octave: 5,
amp: 1/2,
];
~test.play;
)
(
m = MIDIOut.newByName("MIDI", "Bus 1");
~cc >>+ [
num: 20, dur: 1/8, midiout: m,
pat: "10 20 30 40 50 70 100 120",
];
~cc.play;
)
// TEST: Avec des samples
(
~test => [pat: "[kick hat snare hat:5]/2", test: Pfunc { |e| e.postln; e }];
~hat => [pat: "[hat!3 hat:5]", test: Pfunc { |e| e.postln; e }, speed: 2, release: 1/16];
~test.play;
~hat.play;
)
// TEST: Avec un synthétiseur
(
~test => [pat: "0 3 5 <7 ~>", i: "Pwaveshape", octave: 6, harm: 0.25];
~test.play;
)
// TEST: une mélodie MIDI
(
m = MIDIOut.newByName("MIDI", "Bus 1");
~test >> [
pat: "[0 3 5 3, [0,<3 5>,<7 10>]]/2",
midiout: m,
amp: [0.0, 1.0].pwhite(inf),
octave: 4,
chan: [0, 1].pxrand(inf),
release: 0.125/4,
legato: 0.1,
];
~test.play;
)
// NOTE: Je vais jouer avec jusqu'à ce qu'il casse
(
m = MIDIOut.newByName("MIDI", "Bus 1");
~a = Pbind(
\type, \midi,
\midicmd, \control,
\ctlNum, [20,25].pseq(inf),
// chan est optionnel
\midiout, m,
\dur, [1,1/2].pseq(inf),
\val, Pseq([50, 100], inf),
\test, Pfunc {
|e| e.postln; e
}
);
~a.play;
)
(
SynthDef('acid', {
var freq = \freq.kr(100).varlag(\glide.kr(0.05));
var signal = PulseDPW.ar([freq / 2, freq / 1.99])
+ SawDPW.ar([freq, freq / 1.99]);
var env = Env.perc(
\attack.kr(0.1),
\release.kr(0.125)).ar(0);
var synth = signal * env;
synth = RLPF.ar(signal,
\ffreq.kr(1500).lag(\glide.kr),
\res.kr(0.2).lag(\glide.kr));
synth = Pan2.ar(synth, \pan.kr(0));
OffsetOut.ar(\out.kr(0), synth * \amp.kr(-24.dbamp));
}).add;
~acid -> ['acid', dur: (1/2), amp: 0.5, pat: "[0 2 4 5]/2"];
~acid.play;
)
~acid.source
(
~a = Pmono(
'acid', \freq, [100, 150, 200, 400].pxrand(inf),
\dur, 1/2,
);
~a.play;
)
(
~a = Pmono(*[
'acid', freq: [100, 150, 200, 400].pxrand(inf),
dur: 1/2,
]);
~a.play;
)
(
a = Pmono(
'acid', \note, [0, 2].pseq(inf),
\dur, [1, 1/2].pxrand(inf),
\release, 0.12
);
a.play;
)