Files
BuboQuark/Classes/Controllers/MIDIMix.sc
Raphaël Forment 26f744c575 Saving state after latest Lyon Algorave
This is the current state of the system after the 27/04 algorave.

NOTE: this is my personal live coding system, it is not fine-tuned for general usage. You might have to update paths and various parts of the code to get it to run on your system.
2024-04-29 12:10:30 +02:00

136 lines
3.2 KiB
Python

// ControllerValue {
//
// /*
// * A ControllerValue represents a MIDI Controller value.
// * It has a minimum and maximum value, and a curve. This
// * is used to convert from the MIDI value to a value that
// * is considered usable by the user.
// *
// * The curve is similar to the one used by the Env object.
// */
//
// var <>min = 0;
// var <>max = 1;
// var <>curve = 0;
// var <>currentValue;
// var <>bipolar = false;
//
// *new {
// arg min, max, curve;
// ^super.new.init()
// }
//
// init {
// this.min = min;
// this.max = max;
// this.curve = curve;
// this.currentValue = Bus.control;
// this.bipolar = false;
// }
//
// set {
// arg value;
// // If bipolar is true, then the value must go from -1 to 1
// var conversion = value.lincurve(
// inMin: 0,
// inMax: 127,
// outMin: this.min.neg,
// outMax: this.max,
// curve: this.curve
// );
// this.currentValue.set(conversion);
// ^this.currentValue;
// }
//
// }
//
//
// MIDIControl {
//
// /*
// * This is my personal MIDI controller interface. I am using a
// * MIDIMix. It has 8 faders, 24 knobs, and 16 buttons. I am only
// * using the knobs and faders. Two buttons are used to change "bank"
// * (increments the CC number value).
// */
//
// var <>currentBank = 0;
// var <>values;
//
// *new {
// ^super.new.init()
// }
//
// init {
// this.values = IdentityDictionary.new();
// this.connect(); this.installCallbacks();
// }
//
// getInit {
// arg number;
// if (this.values[number] == nil) {
// this.values[number] = ControllerValue.new(
// min: 0, max: 127, curve: 0
// );
// ^this.values[number]
// } {
// ^this.values[number]
// }
// }
//
// setCurve {
// arg number, curve;
// this.getInit(number).curve = curve;
// }
//
// setBounds {
// arg number, min, max;
// var controller = this.getInit(number);
// controller.min = min;
// controller.max = max;
// }
//
// at {
// arg number;
// var control = this.getInit(number);
// var choices = (
// value: this.getInit(number).currentValue.getSynchronous,
// bus: this.getInit(number).currentValue,
// map: this.getInit(number).currentValue.asMap,
// kr: In.kr(this.getInit(number).currentValue),
// );
// ^choices
// }
//
// connect {
// MIDIClient.init;
// MIDIIn.connectAll(verbose: true);
// }
//
// installCallbacks {
// MIDIIn.addFuncTo(\control, {
// arg src, chan, num, val;
// ("CONTROL:" + (num + (this.currentBank * 24)) + "=>" + val).postln;
// this.getInit(num + (this.currentBank * 24)).set(val);
// });
// MIDIIn.addFuncTo(\noteOn, {
// arg src, chan, num, val;
// "Changing bank".postln;
// if (chan == 8 && num == 22) {
// if (this.currentBank > 0) {
// this.currentBank = this.currentBank - 1;
// };
// this.currentBank.postln;
// };
// if (chan == 8 && num == 24) {
// if (this.currentBank < 3) {
// this.currentBank = this.currentBank + 1;
// };
// this.currentBank.postln;
// };
// });
// }
// }
//