From 40145854a5e2e897d11cb2794f5b3b4f569c0f20 Mon Sep 17 00:00:00 2001 From: Mike Lynch Date: Sat, 11 Oct 2025 12:53:58 +1100 Subject: [PATCH] Added primitive midi metronome --- interface.scd | 2 ++ main.scd | 14 ++++++++++++-- midi_sync.scd | 20 ++++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 midi_sync.scd diff --git a/interface.scd b/interface.scd index 2b4937c..da2e97d 100644 --- a/interface.scd +++ b/interface.scd @@ -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; diff --git a/main.scd b/main.scd index 89bb301..1721aa6 100644 --- a/main.scd +++ b/main.scd @@ -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 diff --git a/midi_sync.scd b/midi_sync.scd new file mode 100644 index 0000000..3a1fb52 --- /dev/null +++ b/midi_sync.scd @@ -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); +) + +