Jump to content

Midi FX plugins wont modulate parameters 32-63


Peter Project

Recommended Posts

Hi,

 

What is the "learn" option about. I can't seem to get that to do anything for me either.

 

It lets you set the parameter using an incoming MIDI message. The catch is that the message must match something that already exists in the drop-down menu. If you send it C44, nothing will happen as CC44 is not part of the list.

 

So, all my hardware synths are set to receive filter on cc 44, however it seems that the Logic MIDI FX plugins wont allow you to modulate parameters 32-63.

 

You can work around this with a little JavaScript.

 

Paste this in the the Scripter plug-ins Script Editor and save it as a plug-in setting. You can use it to remap any CC number to any other CC number you want.

 

// Declare an empty array.
var ccNum = []; 

// Populate the array with 128 elements to be used as CC numbers.
for (i = 0; i < 128; i++) { 
   ccNum[i] = i;
}

// Remap CC numbers. 
// Use these to remap CC's 12 through 19. These can be edited and/or extended
// as needed.

ccNum[12] = 44; 
ccNum[13] = 45; 
ccNum[14] = 46;
ccNum[15] = 47;
ccNum[16] = 48;
ccNum[17] = 49;
ccNum[18] = 50;
ccNum[19] = 51;

// Output remapped CC numbers while letting all other events pass unaltered.
function HandleMIDI(e) {
   if (e instanceof ControlChange) {
       var cc = new ControlChange(); 
       cc.number = ccNum[e.number];
       cc.value = e.value;
       cc.send(); 
       cc.trace();
   } else {
       e.send();
       e.trace();
   }
}

 

J.

Link to comment
Share on other sites

  • 2 years later...

you have to update the script to have the CC to CC mappings you want. The script has no GUI programmed in, which would be a much more elaborate script, but possible to do yes.

 

change these lines of the script to get what you want:

 

ccNum[12] = 44; 
ccNum[13] = 45; 
ccNum[14] = 46;
ccNum[15] = 47;
ccNum[16] = 48;
ccNum[17] = 49;
ccNum[18] = 50;
ccNum[19] = 51;

Link to comment
Share on other sites

if it were me I'd also update the script to avoid creating a new CC message each time, just resend the original one... So I'd modify these lines:

 

.
.
// Output remapped CC numbers while letting all other events pass unaltered.
function HandleMIDI(e) {
   if (e instanceof ControlChange) {
       e.number = ccNum[e.number];
       e.send(); 
       e.trace();
.
.
Link to comment
Share on other sites

it should also be noted that you could handle this in the environment also, some pros and cons either way...but just for completeness to the question:

 

For example, create an instrument object in the environment, and a transformer and cable it up to the channel hosting external instrument plugin, like this for example which would map cc30 to cc45:

 

env.jpg.4873650d4096cdb9a6219308a341b488.jpg

 

Then you have to reassign the sequencer track to feed to the (instrument) object rather then directly to the channel strip.

 

What are the pros and cons? One could argue that environment is more efficient, but I would not expect the Scripter script to be cpu heavy, especially if you remove the cc creation I mentioned above. Not having to put scripter into the channel strip is a little cleaner, I suppose. Scripts can be saved and easily reused across projects, while environment stuff like this is not easy to import into other projects, so you tend to have to save it in a template that you always start out with or something. So Scripter is probably how I would handle it also, but i just wanted to mention this as the old-school alternative.

Link to comment
Share on other sites

Great tips!

Relatedly-I used to have transform objects in my environment template that would take incoming notes or CCs from a step sequencer (Roland EF-303) and transform them into other CCs for synths. I would use a cable switcher to switch between them, or to switch them out of the path of incoming MIDI data when I didn't want to use this them. The cable switcher allowed me to quickly change routing or functionality without recabling anything.

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...