JoelMops Posted February 4 Share Posted February 4 Hi! Im looking to control an external synthesizer from logic but I am having trouble getting it to work. What I am looking for: I would preferably be able to create a preset in logic of an External Instrument which have a Smart Control surface that has a few knobs that controls my most used parameters on my synthesizer (ADSR on filter and volume, and filter controls). Smart controls in logic can as far as I can see receive information via any parameter (easiest via "learn button"), but not send to that parameter. In the dropdown menu of Parameter Mapping in smart controls, I can find no possibility assign to a Midi CC nor does it receive information if I try using the "Learn" button in this section. (Se photo) Does anyone here know how to do this, or perhaps a workaround? For now, the only way I seem to be able to control my external synth is via Region Automation pointing to Midi CC 0->127 which is unlucky since I keep having to refer to the user manuel of that synth to see which Midi CC that corresponds to which parameter on the synth. Thanks, Joel Quote Link to comment Share on other sites More sharing options...
oscwilde Posted February 4 Share Posted February 4 What's the external synth? Quote Link to comment Share on other sites More sharing options...
JoelMops Posted February 4 Author Share Posted February 4 Behringer UB-Xa Quote Link to comment Share on other sites More sharing options...
Solution Jordi Torres Posted February 4 Solution Share Posted February 4 Hi @JoelMops, 1 hour ago, JoelMops said: I would preferably be able to create a preset in logic of an External Instrument which have a Smart Control surface that has a few knobs that controls my most used parameters on my synthesizer (ADSR on filter and volume, and filter controls). You could achieve this with the help of the Scripter MIDI FX plugin: I'm attaching a project file from the above animated GIF that you could use. You can easily edit the script via the "Open Script in Editor" button to add more CC sliders: const numberOfSliders = 4; // Set the desired number of sliders J. ScripterSmartControlsCCs.logicx.zip 2 Quote Link to comment Share on other sites More sharing options...
JoelMops Posted February 4 Author Share Posted February 4 Wow! This was exactly what I was looking for. I am not well versed in Java Script and probably would have not been able to do this by myself. Thank you for putting this script together! Sincerely, Joel 1 Quote Link to comment Share on other sites More sharing options...
Jordi Torres Posted February 4 Share Posted February 4 Cool, you're welcome! Forgot to mention that even if this script's parameters have fixed generic names ("1 CC Value", etc), you can always rename these in the Smart Controls inspector: J. 4 Quote Link to comment Share on other sites More sharing options...
des99 Posted February 4 Share Posted February 4 Very cool! 👍 1 Quote Link to comment Share on other sites More sharing options...
Frances O Posted February 5 Share Posted February 5 Hi @ Jordi Torres Your script sounds incredibly useful. Downloaded your file but my LOGIC 10.4 is giving an error message that the file is not compatible with my program version. Any possibility of getting a project version for older LOGIC prgs? Quote Link to comment Share on other sites More sharing options...
Jordi Torres Posted February 5 Share Posted February 5 20 minutes ago, Frances O said: Hi @ Jordi Torres Your script sounds incredibly useful. Downloaded your file but my LOGIC 10.4 is giving an error message that the file is not compatible with my program version. Any possibility of getting a project version for older LOGIC prgs? Hi Frances O, I can share the script on its own later own. However, let me which version of macOS you run, as some of the JS syntax I use in the script may be too modern for the version of JS in older versions of macOS. J. 1 Quote Link to comment Share on other sites More sharing options...
Frances O Posted February 5 Share Posted February 5 Hi Jordie Torres That sounds very generous and helpful! OS 10.14.6 LPX 10.4.6 Quote Link to comment Share on other sites More sharing options...
FLH3 Posted February 5 Share Posted February 5 Jordi is our little Mozart of scripting! 1 2 Quote Link to comment Share on other sites More sharing options...
Jordi Torres Posted February 5 Share Posted February 5 (edited) @Frances O, Here you go, I think it should work fine as it is on Mojave: const cc = new ControlChange(); function createCcSlider(name, defaultValue = 0) { return { name, type: 'linear', defaultValue, minValue: 0, maxValue: 127, numberOfSteps: 127, }; } const numberOfSliders = 4; // Set the desired number of sliders const ccSliders = []; for (let i = 1; i <= numberOfSliders; i += 1) { ccSliders.push(createCcSlider(`${i} CC Number`, i)); ccSliders.push(createCcSlider(`${i} CC Value`)); } var PluginParameters = ccSliders; function ParameterChanged(index, value) { if (index % 2 === 0) { // Handle CC Number slider changes // Do not send data here return; } // Handle CC Value slider changes const ccNumber = GetParameter(index - 1); const ccValue = GetParameter(index); cc.number = ccNumber; cc.value = ccValue; cc.send(); } // Let MIDI messages pass through function HandleMIDI(e) { e.send(); } J. Edited February 5 by Jordi Torres 1 Quote Link to comment Share on other sites More sharing options...
Frances O Posted February 6 Share Posted February 6 @Jordi Torres Thanks heaps - very generous of your professional time. Really cool - just plugged your script into a template and works like a dream. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.