-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoort_drone.scd
70 lines (64 loc) · 1.89 KB
/
oort_drone.scd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Oort Droner
//
// ==================================== Setup
(
s.options.memSize = 16384;
s.boot;
s.doWhenBooted({
MIDIIn.connectAll(false);
DroneMixer.setup(s);
~drone_mixer = DroneMixer.new;
~pc44 = FaderFoxPC44.new;
~pc44.on_button_change = { | button_number, value |
switch (button_number,
1, { if (value == 1, { ~drone_mixer.play; }, { ~drone_mixer.pause; }); }
).value;
};
~pc44.on_knob_change = { | knob_number, value |
if (knob_number <= 64, {
var drone_channel, knob_index;
if (knob_number <= 32, {
drone_channel = (knob_number - 1) % 8;
knob_index = ((knob_number - 1) / 8).asInt;
}, {
drone_channel = ((knob_number - 1) % 8) + 8;
knob_index = ((knob_number - 32) / 8).asInt;
});
if (drone_channel < ~drone_mixer.numberOfChannels, {
switch (knob_index,
0, { ~drone_mixer.setChannelDuration(drone_channel, value); },
1, { ~drone_mixer.setChannelPeriod(drone_channel, value); },
2, { ~drone_mixer.setChannelTone(drone_channel, 0, value); },
3, { ~drone_mixer.setChannelTone(drone_channel, 1, value); }
).value;
});
}, {
switch (knob_number,
65, { ~drone_mixer.setMasterVolume(value); },
66, { ~drone_mixer.setReverbMix(value); },
67, { ~drone_mixer.setDelayTime(value); },
68, { ~drone_mixer.setDelayMix(value); }
).value;
});
};
~uc44 = FaderFoxUC44.new(Point(~pc44.getWindowSize.width + 2, 0));
~uc44.on_slider_change = { | slider_number, value |
if (slider_number <= ~drone_mixer.numberOfChannels, {
~drone_mixer.setChannelAmp(slider_number - 1, value);
});
};
~uc44.on_green_button_change = { | button_number, value |
if (button_number <= ~drone_mixer.numberOfChannels, {
// Button should be "off" to mute channel.
~drone_mixer.setChannelMuted(button_number - 1, value == 0);
});
};
});
)
// ==================================== Teardown
(
~uc44.free;
~pc44.free;
~drone_mixer.free;
DroneMixer.teardown;
)