Compare commits

...

2 Commits

Author SHA1 Message Date
40145854a5 Added primitive midi metronome 2025-10-11 12:53:58 +11:00
fe5dd6368a Chorus rate control in interface 2023-10-26 16:15:43 +11:00
3 changed files with 37 additions and 3 deletions

View File

@ -12,6 +12,7 @@
OSCdef.freeAll;
// fixme - buflen is derived from BPM now
~to.button('/grains/reset', 0, { | v |
if( v > 0, {
@ -47,6 +48,7 @@ OSCdef.freeAll;
~setrecord = { | track, v |
[ "record", track, v].postln();
~granulators[track].record_(v);
if(v == 0, {
~mixlevel[track] = ~granulators[track].mix;
@ -103,7 +105,7 @@ OSCdef.freeAll;
// Page 2: track
~to.xy('/track/triggersize', [ 100, 0.125 ], TouchOSCScale(0, 200), TouchOSCScale(0, 1), { |v|
~to.xy('/track/triggersize', [ 220, 0.125 ], TouchOSCScale(0, 880), TouchOSCScale(0, 1), { |v|
~granulator.trigger_(v[0]);
~granulator.size_(v[1]);
});
@ -118,6 +120,7 @@ OSCdef.freeAll;
~to.slider('/track/harmonics', 2, TouchOSCScale(0.5, 3), { |v|
~granulator.harmonics_(~quantharmonics.value(v, 1))
});
~to.slider('/track/crate', 128, TouchOSCScale(1, 1600), { |v| ~granulator.crate_(v) });
~to.slider('/track/detune', 0, TouchOSCScale(0, 0.059), { |v| ~granulator.detune_(v) });
~to.slider('/track/pitch', 0, TouchOSCScale(-2, 2), { |v| ~granulator.pitch_(v.round) });
@ -143,6 +146,7 @@ OSCdef.freeAll;
~to.v_('/track/back', ~granulator.back);
~to.v_('/track/chorus', ~granulator.chorus);
~to.v_('/track/harmonics', ~granulator.harmonics);
~to.v_('/track/crate', ~granulator.crate);
~to.v_('/track/detune', ~granulator.detune);
~to.v_('/track/pitch', ~granulator.pitch);
});

View File

@ -9,13 +9,18 @@ Server.default.options.outDevice_("Scarlett 2i2 USB");
Server.killAll;
(
MIDIClient.init;
~midiOut = MIDIOut.newByName("Cre8audioNiftyCASE", "Cre8audioNiftyCASE").latency_(Server.default.latency);
)
(
Routine.run({
~usbinput = 2;
~usbinput1 = 2;
~usbinput2 = 3;
~bpm = 90;
~bpm = 120;
~bps = ~bpm / 60;
~beatsperbar = 4;
~buflen = ~beatsperbar / ~bps;
@ -25,7 +30,7 @@ Routine.run({
~tc = TempoClock.new(~bps);
~touchosc_ip = "192.168.0.209";
~touchosc_ip = "192.168.20.10";
("./synths.scd").loadRelative;
Granulator.init(s);
@ -38,9 +43,14 @@ Routine.run({
s.sync;
("./sequencer.scd").loadRelative;
s.sync;
("./midi_sync.scd").loadRelative;
s.sync;
"please wait for the interface to load...".postln;
~buflen.sleep;
("./interface.scd").loadRelative;
"ok go!".postln;
~setrecord.value(0, 1)
});
)
~tc

20
midi_sync.scd Normal file
View File

@ -0,0 +1,20 @@
(
p = Pbind(
\type, \midi,
\midicmd, \noteOn,
\midiout, ~midiOut,
\chan, 0,
\degree, 0,
\dur, Pseq([1/4, Rest(1/4)], inf),
\amp, 1
).play(~tc);
)