Jump to content

Script for CC Automation?


Recommended Posts

  • 1 month later...
  • 1 year later...

I really would like a script like this too.

One way to do it is to use the Arpeggio plugin, to change the velocity per step and then use transform and change velocity values to CC# values. Problem is you have to start the arpeggio with a note, it is kind of a cumbersome workaround. Can anyone make a script where you have a similar design as with the velocity section of the arpeggio, where you can set the CC#, number of steps, tempo, swing etc...

Link to comment
Share on other sites

  • 4 months later...

Here's as far as I got on the first whim for Blofeld. Shut down after I never heard back from OP. I think it might work though if you tweak the blofeld variable to suit your needs.

 

/* CC commander, by LogicScripts®. Standard EULA applies. Copyright 2015-07-27.
 */
//User settings:

var blofeld = [{
	number: 5,
	alias: "Glide Rate",
	range: [0, 127],
	type: "lin",
},

{
	number: 12,
	alias: "Arp Range",
	range: [0, 9],
	type: "lin"


}, {
	number: 13,
	alias: "Arp Length",
	range: [0, 15],
	type: "lin"


}, {
	number: 14,
	alias: "Arp Active",
	range: [0, 3],
	type: "menu",
	options: ["Off", "On", "One Shot", "Hold"]


}, {
	number: 15,
	alias: "LFO 1 Shape",
	range: [0, 5],
	type: "menu",
	options: ["Sine", "Triangle", "Square", "Sawtooth", "Random", "S&H"]


}
];

var controls = blofeld;// enter the CC numbers you wish to control with the script followed by the alias and the range - see the blofeld example above

var customNames = 1; // use custom names(alias above) for the CCs (0 to use standard names)
var ccNames = ["Damper", "Wah"]; // if 1 above enter the names here
// End user settings
//****************************************************************************
var version = "v.1.0";
var PluginParameters = [];
var name = [];
var paramType = "";
var strings = "";
ResetParameterDefaults = true;
createParam("CC Commander by LogicScripts® " + version, "text");
var triggeredCC = new ControlChange;

for (var i = 0; i < controls.length; i++) {
paramType = controls[i].type;
paramType == "menu" ? strings = controls[i].options : strings = 0;

customNames? name[i] = controls[i].alias+ " (" + controls[i].number + ")": name[i] = MIDI._ccNames[controls[i].number] + " (" + controls[i].number + ")";
	createParam(name[i], paramType, strings,controls[i].range[0],controls[i].range[1],0,controls[i].range[1],0)
}


function createParam(n, t, vs, miv, mav, def, nos, unit) {
PluginParameters.push({
	name: n,
	type: t,
	valueStrings: vs,
	minValue: miv,
	maxValue: mav,
	defaultValue: def,
	numberOfSteps: nos,
	unit: unit,
});
}

function HandleMIDI(e){
e.send();
}

function ParameterChanged(p,v){
triggeredCC.number = controls[p - 1].number;
triggeredCC.value = v;
triggeredCC.send();

}


Link to comment
Share on other sites

  • 3 years later...
Here's as far as I got on the first whim for Blofeld. Shut down after I never heard back from OP. I think it might work though if you tweak the blofeld variable to suit your needs.

 

/* CC commander, by LogicScripts®. Standard EULA applies. Copyright 2015-07-27.
 */
//User settings:

var blofeld = [{
	number: 5,
	alias: "Glide Rate",
	range: [0, 127],
	type: "lin",
},

{
	number: 12,
	alias: "Arp Range",
	range: [0, 9],
	type: "lin"


}, {
	number: 13,
	alias: "Arp Length",
	range: [0, 15],
	type: "lin"


}, {
	number: 14,
	alias: "Arp Active",
	range: [0, 3],
	type: "menu",
	options: ["Off", "On", "One Shot", "Hold"]


}, {
	number: 15,
	alias: "LFO 1 Shape",
	range: [0, 5],
	type: "menu",
	options: ["Sine", "Triangle", "Square", "Sawtooth", "Random", "S&H"]


}
];

var controls = blofeld;// enter the CC numbers you wish to control with the script followed by the alias and the range - see the blofeld example above

var customNames = 1; // use custom names(alias above) for the CCs (0 to use standard names)
var ccNames = ["Damper", "Wah"]; // if 1 above enter the names here
// End user settings
//****************************************************************************
var version = "v.1.0";
var PluginParameters = [];
var name = [];
var paramType = "";
var strings = "";
ResetParameterDefaults = true;
createParam("CC Commander by LogicScripts® " + version, "text");
var triggeredCC = new ControlChange;

for (var i = 0; i < controls.length; i++) {
paramType = controls[i].type;
paramType == "menu" ? strings = controls[i].options : strings = 0;

customNames? name[i] = controls[i].alias+ " (" + controls[i].number + ")": name[i] = MIDI._ccNames[controls[i].number] + " (" + controls[i].number + ")";
	createParam(name[i], paramType, strings,controls[i].range[0],controls[i].range[1],0,controls[i].range[1],0)
}


function createParam(n, t, vs, miv, mav, def, nos, unit) {
PluginParameters.push({
	name: n,
	type: t,
	valueStrings: vs,
	minValue: miv,
	maxValue: mav,
	defaultValue: def,
	numberOfSteps: nos,
	unit: unit,
});
}

function HandleMIDI(e){
e.send();
}

function ParameterChanged(p,v){
triggeredCC.number = controls[p - 1].number;
triggeredCC.value = v;
triggeredCC.send();

}


 

I am surprised no one has thanked you enough about this!!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...