You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.9 KiB
Plaintext
74 lines
1.9 KiB
Plaintext
MIDIIn.connectAll;
|
|
|
|
~pulsar = 8388608;
|
|
~mellotron = 8388611;
|
|
|
|
(
|
|
|
|
|
|
~notes = Array.newClear(128); // Initialize the array to store synths
|
|
|
|
// Handle noteOn for MIDI device 8454149 (first device)
|
|
MIDIdef.noteOn(\noteOnTest_device1, {
|
|
arg vel, nn, chan, src;
|
|
[vel, nn, src].postln; // Post the velocity, note number, and source to thethe console
|
|
|
|
// Only respond to MIDI input from source 8454149 (device 1)
|
|
if (src == ~pulsar, {
|
|
// Create a new synth for device 1
|
|
~notes[nn] = Synth.new(
|
|
\wtable_vosc_dual_clean, [
|
|
\freq, nn.midicps,
|
|
\amp, vel.linexp(1,127,0.01,0.3),
|
|
]
|
|
);
|
|
});
|
|
});
|
|
|
|
// Handle noteOff for MIDI device 8454149 (first device)
|
|
MIDIdef.noteOff(\noteOffTest_device1, {
|
|
arg vel, nn, chan, src;
|
|
[vel, nn, src].postln;
|
|
|
|
// Only respond to MIDI input from source 8454149 (device 1)
|
|
if (src == ~pulsar, {
|
|
// Turn off the synth and free the memory for device 1
|
|
~notes[nn].set(\gate, 0);
|
|
~notes[nn] = nil;
|
|
});
|
|
});
|
|
|
|
// Handle noteOn for MIDI device 8454145 (second device)
|
|
MIDIdef.noteOn(\noteOnTest_device2, {
|
|
arg vel, nn, chan, src;
|
|
[vel, nn, src].postln; // Post the velocity, note number, and source to the console
|
|
|
|
// Only respond to MIDI input from source 8454145 (device 2)
|
|
if (src == ~mellotron, {
|
|
// Create a new synth for device 2
|
|
~notes[nn] = Synth.new(
|
|
\mellotron,
|
|
[
|
|
\freq, nn.midicps,
|
|
\amp, vel.linexp(1,127,0.01,0.3),
|
|
]
|
|
);
|
|
});
|
|
});
|
|
|
|
// Handle noteOff for MIDI device 8454145 (second device)
|
|
MIDIdef.noteOff(\noteOffTest_device2, {
|
|
arg vel, nn, chan, src;
|
|
[vel, nn, src].postln;
|
|
|
|
// Only respond to MIDI input from source 8454145 (dev
|
|
if (src == ~mellotron, {
|
|
// Turn off the synth and free the memory for device 2
|
|
~notes[nn].set(\gate, 0);
|
|
~notes[nn] = nil;
|
|
});
|
|
});
|
|
|
|
)
|
|
|
|
MIDIIn.free; |