aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--classes/Bowelyzer.sc35
1 files changed, 33 insertions, 2 deletions
diff --git a/classes/Bowelyzer.sc b/classes/Bowelyzer.sc
index 2ff0e75..ba5eeb8 100644
--- a/classes/Bowelyzer.sc
+++ b/classes/Bowelyzer.sc
@@ -243,13 +243,44 @@ Bowelyzer{
});
});
// resize the channelContainerView according to new amount of channels
- gui.channelContainerView.maxSize_((gui.channelViewWidth*config.config.at(\inputs).size)@gui.channelViewHeight);
+ gui.channelContainerView.maxSize_(((gui.channelViewWidth*config.config.at(\inputs).size)+gui.buttonWidth)@gui.channelViewHeight);
}.defer;
},
path: "/free",
srcID: NetAddr.new("127.0.0.1", NetAddr.langPort)
);
+ // listen for messages to add channels
+ OSCdef.newMatching(
+ key: \add,
+ func: {|msg, time, addr, recvPort|
+ var type = msg[0],
+ name;
+ postln("Received: "++msg);
+ // add a new input to the config
+ name = config.addInput;
+ // initialize a new channelView with the name and controls
+ Routine{
+ // resize the container View
+ gui.channelContainerView.maxSize_(((gui.channelViewWidth*config.config.at(\inputs).size)+gui.buttonWidth)@gui.channelViewHeight);
+ gui.channelContainerView.asView.bounds_(Rect(0, 0, (gui.channelViewWidth*config.config.at(\inputs).size)+gui.buttonWidth, gui.channelViewHeight));
+ // add a new channel View for the controls
+ gui.setupChannelView(name, config.config);
+ }.play(AppClock);
+ // add and start a new Synth by the given name
+ Routine{
+ analyzer.addSynthWithName(name);
+ 1.wait;
+ analyzer.startSynthWithNameAndControls(name, config.config.at(\controls).at(name), config.config.at(\inputs).at(name));
+ }.play;
+ // setup a LevelListener for the new Synth
+ this.setupLevelListener(name, hub.synthServer);
+ // setup a OSC listener for the Synth by name
+ hub.addSynthListener(name);
+ },
+ path: "/add",
+ srcID: NetAddr.new("127.0.0.1", NetAddr.langPort)
+ );
}
// add OSCdefs listening for messages coming from scsynth, to update the GUI
@@ -268,7 +299,7 @@ Bowelyzer{
key: \indicate,
func: {|msg, time, addr, recvPort|
var name = msg[1];
- //postln("Indicate for "++name);
+// postln("Indicate for "++name);
if(config.config.at(\inputs).includesKey(name),{
if(gui.indicators.includesKey(name),{
gui.indicators.at(name).stop;