Skip to content

Commit

Permalink
param
Browse files Browse the repository at this point in the history
  • Loading branch information
grirgz committed Mar 28, 2015
1 parent 1f3c61b commit 60d3f80
Show file tree
Hide file tree
Showing 3 changed files with 276 additions and 0 deletions.
90 changes: 90 additions & 0 deletions veco/buffer.scd
Expand Up @@ -1100,6 +1100,96 @@
};
mode = self.mixer_mode;

send_list = send_list ? self.lib.send_list ? [~fx1, ~fx2, ~fx3, ~fx4];
send_list = send_list.extend(4,nil);
send_list = send_list.collect({ arg x; x ? BusDef(\null) });
BusDef(name+++\mixer, \audio, 2);
self.add_play_node_hook(\mixer, {
Ndef(name+++\mixer).parentGroup = ~get_mixer_group.();
Ndef(name+++\mixer).play(self.master_bus);
});
self.add_stop_node_hook(\mixer, {
if(self.main.mode_immortal_mixers == false) {
var fadetime;
fadetime = Ndef(name+++\mixer).getHalo(\fadeOut) ?? Ndef(name+++\mixer).fadeTime;
Ndef(name+++\mixer).end(fadetime + self.main.mixers_main_fadetime)
};
});
self.has_mixer = true;

make_out = { arg i, sig, send;
var mamp = 1;
if(send_list[i].notNil) {
Out.ar(send_list[i], sig * send);
}
};

make_mix = { arg i, amp, send;
i = i + 1;
if(mode == (\mix+++i) or: { mode == (\premix+++i) }) {
1-send
} {
amp;
};
};


Ndef(name+++\mixer).put(0, { arg preamp=1;
var in = In.ar(BusDef(name+++\mixer), 2);
var sig;
sig = preamp * in;
//if(mode == \preamp or: { mode.asString.beginsWith("premix") }) {
// sig = \mamp.kr(1);
//};
sig;
});

Ndef(name+++\mixer).put(100, \filter -> { arg in, send1=0, send2=0, send3=0, send4=0;
var sig;
//xfade = xfade.clip(0,1);
sig = in;
sig = sig;

Out.ar(\out1.kr(BusDef(\null)), sig * send1);
Out.ar(\out2.kr(BusDef(\null)), sig * send2);
Out.ar(\out3.kr(BusDef(\null)), sig * send3);
Out.ar(\out4.kr(BusDef(\null)), sig * send4);

in;
});

Ndef(name+++\mixer).put(200, \filter -> { arg in, amp=1, send1=0, send2=0, send3=0, send4=0;
var sig;

amp = make_mix.(0, amp, send1);
amp = make_mix.(1, amp, send2);
amp = make_mix.(2, amp, send3);
amp = make_mix.(3, amp, send4);

sig = in * amp;
//if(mode == \amp or: { mode.asString.beginsWith("mix") }) {
// sig = \mamp.kr(1);
//};
sig;

})

},

make_fixed_mixer: { arg self, send_list, mixer_mode;
var name = self.uname;
var make_out;
var make_mix;
var mode;

if(mixer_mode.notNil) {
self.mixer_mode = mixer_mode;
};
if(self.mixer_mode.isNil) {
self.mixer_mode = \default;
};
mode = self.mixer_mode;

send_list = send_list ?? [~fx1, ~fx2, ~fx3, ~fx4];
BusDef(name+++\mixer, \audio, 2);
self.add_play_node_hook(\mixer, {
Expand Down
1 change: 1 addition & 0 deletions veco/main.scd
Expand Up @@ -50,6 +50,7 @@ VecoLib.load_lib;
"launchpad_editor",
"launchpad_gui",
"inline_editor",
"sendpad",
].do { arg file;
("Loading " ++ file ++".scd...").inform;
(Veco.extension_path +/+ file++".scd").load;
Expand Down
185 changes: 185 additions & 0 deletions veco/sendpad.scd
@@ -0,0 +1,185 @@

(
~launchpad_scene_sendpad = (
parent: ~launchpad_scene,

mode_name: \mode_sendpad,
display_mode: \send,

set_model: { arg self, model, mode=\send;
self.display_mode = mode;
self.mymodel = model;
},

render_state: { arg self;
8.do { arg x;
self.render_column(x)
}
},

render_column: { arg self, x;
8.do { arg y;
self.render_pos(Point(x,y));
}
},

render_pos: { arg self, pos;
var name;
var send;
var node;
var gridpos = pos;
gridpos.debug("launchpad_scene_sendpad.render_pos: gridpos");
self.gridpos_to_abspos(gridpos).debug("launchpad_scene_sendpad.render_pos: abspos");
node = self.controller.get_node_by_index( self.gridpos_to_abspos(gridpos).x );
if(node.is_present) {
name = node.uname;
if(self.display_mode == \send) {
send = self.mymodel.get_send(name, gridpos.y);
if(send > 0) {
self.set_led(gridpos, \green);
} {
self.set_led(gridpos, \dimgreen);
}
} {
var in = self.mymodel.get_in(name);
if(in == gridpos.y) {
self.set_led(gridpos, \red);
} {
self.set_led(gridpos, \dimred);
}
};
} {
self.set_led(gridpos, \off);
}

},

response_cc_on: { arg self, midi;
//self.render_state;
//self.unblink_led;
self.handle_grid_move(midi);
//self.sceneset.clip.response_cc_on(midi);
},

response_cc_off: { arg self, midi;

//self.sceneset.clip.response_cc_off(midi);

if(self.skip_first_time != false) {
self.skip_first_time = false;
} {
self.sceneset.clip.response_cc_off(midi);
}
},

response_on: { arg self, midinote;
var pos = self.midi_to_gridpos(midinote);
var opos;
var buf;
var node, clip;
midinote.debug("launchpad_scene_sendpad.response_on");

if(self.is_launcher_button(midinote)) {
// NOOP
} {
if(self.modifiers[\session] == true) {
self.controller.clip_offset = pos * 8;
self.render_state;
} {
var name = self.controller.get_node_by_index( self.gridpos_to_abspos(pos).x ).uname;
[name, pos].debug("launchpad_scene_sendpad.response_on: go!");
if(self.display_mode == \send) {
self.mymodel.toggle_send(name, pos.y);
self.render_pos(pos);
} {
self.mymodel.set_in(name, pos.y);
self.render_column(pos.x);
}
}
}
},

);

~class_sendpad = (
new: { arg self, offset=150;
self = self.deepCopy;


self.offset = offset;
self.busprefix = \in;
self.ndefsuffix = \mixer;
self.fxsuffix = \fx;

self.busdict = IdentityDictionary.new;
8.collect({ arg x;
self.busdict[BusDef(self.busprefix+++x, \audio).index] = x
});

self;
},

install_sender: { arg self, name, x, force=false;
var wasnil = false;
if( Ndef(name+++self.ndefsuffix).at(self.offset+x).isNil ) {
wasnil = true;
};
if(force or: wasnil) {
Ndef(name+++self.ndefsuffix).put(self.offset+x, \filterIn -> { arg in;
Out.ar(BusDef(self.busprefix+++x, \audio), in);
in;
});
if( wasnil ) {
Ndef(name+++self.ndefsuffix).set(\wet+++(self.offset+x), 0);
};
}
},

set_send: { arg self, name, x, mix;
var pos = self.offset;
self.install_sender(name, x);
Ndef(name+++self.ndefsuffix).set(\wet+++(pos+x), mix);
},

get_send: { arg self, name, x;
var pos = self.offset;
if( Ndef(name+++self.ndefsuffix).at(pos+x).isNil ) {
0
} {
Ndef(name+++self.ndefsuffix).get(\wet+++(pos+x));
}
},

toggle_send: { arg self, name, x;
if(self.get_send(name, x) > 0) {
self.set_send(name, x, 0)
} {
self.set_send(name, x, 1)
}
},

set_in: { arg self, name, x;
Ndef(name+++self.fxsuffix).set(\inbus, BusDef(self.busprefix+++x, \audio));
},

get_in: { arg self, name;
var res;
res = Ndef(name+++self.fxsuffix).get(\inbus);
if(res.class == Bus) {
res = res.index;
};
res.debug("get_in");
res = self.bus_to_index(res);
res;
},

bus_to_index: { arg self, bus;
self.busdict[bus]
},
);
~veco_sendpad = ~class_sendpad.new;
//~scene_sendpad = ~launchpad_scene_sendpad.new(Veco.main);
//~scene_sendpad.set_model(~sendpad, \send);
//~scene_sendpad.activate;
);

0 comments on commit 60d3f80

Please sign in to comment.