ski Posted June 16, 2018 Share Posted June 16, 2018 (edited) More on the scanning thing... some older models of Korg keyboards were notorious for having low res controls. Even the joysticks wouldn't output enough data points when moved even relatively slowly. On the flip side, and as you probably know, Dewdman, the MIDI spec provides for CC control positions to be communicated as 14-bit "high resolution" data (16,384 values as opposed to 128). But no MIDI manufacturer that I'm aware of has ever implemented this, because it generates too much data! (And it's impossible to edit). About the only place this is implemented is in pitchbend, which would be useless if it didn't output 14-bit data. But many many many of the intermediate positions of a bend control are routinely skipped by MIDI hardware devices. Usually, only 2, 3, or 4 LSB points are provided between MSB points. All this is to say that there's a lot of junky controls out there! Hopefully the Arturia isn't one of them. But if it proves to be, well, all this stuff I'm writing is to suggest that no one be too shocked. But there are no holds barred on being disappointed. Edited June 17, 2018 by ski Quote Link to comment Share on other sites More sharing options...
Dewdman42 Posted June 16, 2018 Share Posted June 16, 2018 Well anyway I'm curious the results with CC filtering. If he is using CC1, for example, on his hardware controller to drive the smart control and the smart control/script is also sending CC1 messages...then its not clear to me that those CC messages aren't also going into the instrument along with the ones generated by the script..which could result in some weirdness. I think honestly you'd want to be careful to block that. If you need the option to also send in the desired resulting CC1 messages in addition to what the smart control generates...then I think you'd need to make sure the hardware control being used is not the same CC# and probably a checkbox on the GUI or something... Even though the script is after the region record, its not at all clear to me what Logic does under the covers for the smart control handling....so that's why I say its worth a try to do some tests from the arturia without any script or smart control involved, just to be sure the arturia is culprit with lousy CC resolution. Quote Link to comment Share on other sites More sharing options...
Dewdman42 Posted June 16, 2018 Share Posted June 16, 2018 (BTW, it seems that Logic doesn't recognize substr and substring methods). separate topic I know, but which methods exactly? Quote Link to comment Share on other sites More sharing options...
ski Posted June 16, 2018 Share Posted June 16, 2018 (edited) The only way to get a modwheel to drive a Smart Control is to learn the modwheel to the control. At that point, the modwheel messages will be hijacked by the system and never reach the Sequencer Input (thus they cannot be recorded as MIDI events). They will be routed directly to control the Smart Control, after which they'll die on the vine. That's why it's not necessary to filter them in the Script. (As for those methods I mentioned, those are string methods which I tried to use, but alas the compiler didn't like them). (BTW, I dig your approach for doing event filtering). Edited June 16, 2018 by ski Quote Link to comment Share on other sites More sharing options...
mgmartino Posted June 16, 2018 Share Posted June 16, 2018 Try this... go into the Project Settings and see if MIDI Data Reduction is enabled. If so, uncheck that box and see if it makes a difference to the degree of resolution you get when you record movements of the Arturia's controls. Wow that did make a BIG differences with the Arturia! Still The Ultranova is smoother and I think in the longrun I would like to find a MIDI controller with all the faders and knobs of the Arturia but has a "higher resolution output of MIDI events relative to the speed you move a control." (as you put it) Is there a downside to having that box unchecked though? Will it use up more CPU/RAM? Quote Link to comment Share on other sites More sharing options...
Dewdman42 Posted June 16, 2018 Share Posted June 16, 2018 The only way to get a modwheel to drive a Smart Control is to learn the modwheel to the control. At that point, the modwheel messages will be hijacked by the system and never reach the Sequencer Input (thus they cannot be recorded as MIDI events). They will be routed directly to control the Smart Control, after which they'll die on the vine. That's why it's not necessary to filter them in the Script. Thanks for that clarification, makes sense....and agree, no filter needed then. (As for those methods I mentioned, those are string methods which I tried to use, but alas the compiler didn't like them). which ones exactly? Quote Link to comment Share on other sites More sharing options...
ski Posted June 16, 2018 Share Posted June 16, 2018 The downside is that the more data you record, theoretically (I have to stress "theoretically") this will eat up more CPU. And more RAM. But the real question is, "how much CPU?" and "how much RAM?" It might be negligible. But even if it eats up 5% more, I don't think you should be concerned in the least. I think it's far more important for you to get your controls recording smoothly and at the highest resolution and not worry in the least about CPU or RAM. You'll find out through experience whether your computer is taking a hit or not. So for now, I'd suggest working with that box unchecked. Be aware that that setting is a per-project Project Setting, and not a global setting as are Logic's Preferences. So you'll have to examine that setting for each new project you create. @Dewdman, see my previous post (which I edited to add a reply about the methods). Quote Link to comment Share on other sites More sharing options...
Dewdman42 Posted June 16, 2018 Share Posted June 16, 2018 @Dewdman, see my previous post (which I edited to add a reply about the methods). This works fine for me. which version of OS X and logic are you on? var str = "Hello world!"; var res = str.substring(2); Trace(res); Quote Link to comment Share on other sites More sharing options...
ski Posted June 16, 2018 Share Posted June 16, 2018 Latest Logic and 10.12.4 (?) Sierra. I'm definitely not on High Sierra. I'm not at my studio right now so that's my best guess Quote Link to comment Share on other sites More sharing options...
Dewdman42 Posted June 16, 2018 Share Posted June 16, 2018 I'm on sierra also and 10.4. I believe Sierra brought Javascript ES6, that's why I asked, but I also think both of those functions are way older then that. I just used both substr() and substring() functions no problem in Scripter... Quote Link to comment Share on other sites More sharing options...
ski Posted June 16, 2018 Share Posted June 16, 2018 Thanks for letting me know they worked for you. Could be pilot error on my part. I'll give them another try. Thanks! Quote Link to comment Share on other sites More sharing options...
Dewdman42 Posted June 16, 2018 Share Posted June 16, 2018 cheers Quote Link to comment Share on other sites More sharing options...
mgmartino Posted June 17, 2018 Share Posted June 17, 2018 Be aware that that setting is a per-project Project Setting, and not a global setting as are Logic's Preferences. So you'll have to examine that setting for each new project you create. I was going to save as a project template. So that should maintain the unchecked MIDI box, correct? _________________________________________________________________________________________________________ But SKI!!! your 3rd script is AMAZING! i'm labeling out everything and loving it! you are a genius! But just for the sake of picking your brain a bit more. I was proceeding to make my Solo Trombone patch as streamlined as possible. -I picked a nice layout aesthetically representing Brass Instrumentation -I noticed the layout divided certain of my smart controls to "Sound" Category and "Effects" I thought this was very cool. But was wondering if there was a way I could increase the size of the sound or effect sections within this layout? To my knowledge it seems this layout out allows ONLY 6 knobs in total (with no way to expand total number) and limits the user to have 4 under Sound and 2 under Effects Is this true or can I add to the total number and specify how many knobs go into groups (Sound or Effects)? -Also noticed these 'Unmapped' scrolldown tabs (circled in green) and 'Unmapped' buttons (circled in red) within several different smart controls layouts....In general what are they used for? - But more specifically, I noticed this layout has a 'Keyswitches" button (see top part of the pic above) where as the default smart controls layout does not. ---When clicking on it I get this display. This seems intriguing to me because my Solo Trombone library has a lot of keyswitching elements I can use in conjunction with the CCs (ex: A#0 triggers plunger mute, F#0 triggers a vibrato ending , G#0 triggers a long release, B0 triggers a fall, etc.) ^^KEY SWITCHES LAYOUT (referenced in above text) Quote Link to comment Share on other sites More sharing options...
ski Posted June 17, 2018 Share Posted June 17, 2018 You're welcome! And while it's very kind of you to say, I'm not a genius. I just have a knack for bending Logic to my will (as much as it will let me). I'll reply in more detail later. Quote Link to comment Share on other sites More sharing options...
ski Posted June 17, 2018 Share Posted June 17, 2018 (edited) So... there is (quite unfortunately) no way to modify the preset Smart Control layouts. They're all preset/fixed. There are some other behaviors you may want to be aware of... 1) Let's say you select a certain layout and assign some of the Scripter sliders to them. Then you decide to change the layout. Well, unfortunately, your assignments ("mappings") won't necessarily carry over. In fact, you'll probably find that most of them won't carry over, or, they'll end up in different locations. So unfortunately you can't really set up one layout and then switch to a different layout without losing your work. You'll probably also find that the instrument-themed layouts which sport rotary controls/knobs won't necessarily provide enough knobs for all the CC's you might want to implement. 2) As for using the keyswitching layouts to either perform or indicate changes of articulation, well, that's a much more complicated affair that can't be covered by the Slider Script without extensive modification that would very closely resemble my commercial product, ARTz•ID (and that's about as far as I'll venture towards a plug for it ). 3) Each layout will auto-abbreviate the control names differently. For example, the various "keyswitch" layouts provide the greatest amount of character space to display names before they begin to abbreviate, but I don't believe that any of them sport rotary controls. But none of the other layouts provide as much character space as the keyswitch layouts; so if your control names are long, they might end up auto-abbreviating to the point of becoming rather cryptic. Edited June 17, 2018 by ski Quote Link to comment Share on other sites More sharing options...
mgmartino Posted June 17, 2018 Share Posted June 17, 2018 So I was able to assign the button and drop down menu to do things like solo or mute. But when I tried to assign them to the physical buttons on my MIDI controller, It only seemed to work if I pushed the external button to turn solo or mute OFF. If I pushed the button it could not enable to solo or mute. Only turn it off once I clicked to the S or M on the screen. What's up with that?? The only other way I could use the virtual control button was if I assigned them to a Beat Pad on My MIDI controller. And in that instance the Solo or Mute would enable when my finger was on the beat pad and turn off when my finger let go. Kinda cool approach but would like to also be able to just make regular buttons on my MIDI controller work in typical push for on, push for off type. OR!!! It would be much cooler is instead of Solo or Mute I could assign the buttons on my MIDI controller or even the Beatpads to take over for triggering the articulations A#0 plunger mute, F#0 vibrato ending , G#0 long release, B0 fall etc. instead of using the actual piano keys A40,F#0,G#0, etc.! But that would prob have to be something entered into the script like the CCs...not sure...that why i am here LOL 2) As for using the keyswitching layouts to either perform or indicate changes of articulation, well, that's a much more complicated affair that can't be covered by the Slider Script without extensive modification that would very closely resemble my commercial product, ARTz•ID (and that's about as far as I'll venture towards a plug for it ). While your ARTzID does look very cool I'd still like to know what these keyswitch smart control layouts were originally meant to be used for in a general sense. To get a better understanding of their original purpose. Then decide if I need ARTzID to accomplish what I am thinking. Like I said before on my Sample Modeling Solo Trombone I already have keyswitchs like A#0 triggers plunger mute, F#0 triggers a vibrato ending , G#0 triggers a long release, B0 triggers a fall, and more! Is the purpose of this key switching smart control to potentially be able to control those keyswitches without entering them as notes in the MIDI piano roll?? Becase that would be amazing. You have no idea how annoying it is looking at my scores in logic just to see logic trying to notate an A0 or C#0 in the score tab. Quote Link to comment Share on other sites More sharing options...
ski Posted June 17, 2018 Share Posted June 17, 2018 (edited) If you like, you can write to me directly via my website and we can discuss my articulation-switching system offline. That aside... To get an external MIDI control (knob, wheel, slider, etc.) to drive a Smart Control, you have to use the Learn function found in the Smart Controls editor pane. By "drive a Smart Control" I mean "remote control a Smart Control with an external MIDI message". So no, you won't see a list of MIDI messages in any of the Smart Control menus. You'll have to use the Learn function. Itworks like this: When you Learn a Smart Control to an external MIDI CC, the only thing you accomplish is to remotely control that Smart Control with those MIDI messages. But then... if the Smart Control is assigned to a plugin parameter (like a Scripter parameter), the net result is that you end up remote controlling whatever parameter that Smart Control is assigned to. Like this: External MIDI messages (such as a CC) ---> Smart Control ---> Plugin Parameter Ultimately, whatever that plugin parameter would normally do if you moved it on its own will now be remote-controlled by the MIDI CC messages. Edited July 7, 2018 by ski Quote Link to comment Share on other sites More sharing options...
Atlas007 Posted June 18, 2018 Share Posted June 18, 2018 It seems more evident that what you need is how to use Articulation Sets. While that Logic's feature could meet many needs regarding switching between (sampler instrument various) articulations, ARTzID's solution is renown more elaborate and your chances to get better support are considerable. Quote Link to comment Share on other sites More sharing options...
mgmartino Posted June 21, 2018 Share Posted June 21, 2018 If you like, you can write to me directly via my website and we can discuss my articulation-switching system offline. That aside... To get an external MIDI control (knob, wheel, slider, etc.) to drive a Smart Control, you have to use the Learn function (found in the Smart Controls editor pane). By "drive a Smart Control" I mean "remote control a Smart Control with external MIDI messages". So no, you won't see a list of MIDI messages in any of the Smart Control menus. You'll have to use the Learn function. In short, it works like this: When you Learn a Smart Control to an external MIDI CC, the only thing you really accomplish is to remotely operate that Smart Control from those MIDI messages. But if the Smart Control is assigned to a plugin parameter (like a Scripter parameter), you'll end up remote controlling whatever parameter that Smart Control is assigned to. Like this: External MIDI messages (such as a CC) ---> Smart Control ---> Plugin Parameter Ultimately, whatever that plugin parameter would normally do if you moved it on its own will now be remote-controlled by the MIDI CC messages. I know the basics of how to assign a parameters to a smart control and was actually using that method to do so while I was making these Patches (If I wasn't making that clear I apologize for leaving that detail) Sorry for the late reply working on a few projects at the moment that have me very busy I will definitely contact you via your website to chat more about articulations sets and all that jazz after this week. thanks again for everything! Quote Link to comment Share on other sites More sharing options...
ski Posted June 21, 2018 Share Posted June 21, 2018 No problem at all. Good luck on all of your projects! Quote Link to comment Share on other sites More sharing options...
uplift123 Posted August 7, 2018 Share Posted August 7, 2018 In the project file attached in the previous post I've connected the first Smart Control knob to the first Scripter slider called CC1. Moving this knob remote controls the CC1 slider in the Script. The Script is what generates the CC1 messages and sends them to the External Instrument plugin. All you have to do is assign the Ext. Instrument's output to a MIDI destination. Yay! SKi - you are a god!! Quote Link to comment Share on other sites More sharing options...
mgmartino Posted August 14, 2018 Share Posted August 14, 2018 I saved a patch using your scripter. Works great but I noticed if I drag MIDI region onto the track it does not play it. I can play notes on the track and everything works fine but if it is a midi region I already played it won't play those notes... What is happening? Quote Link to comment Share on other sites More sharing options...
ski Posted August 14, 2018 Share Posted August 14, 2018 Hi MG, I have no idea. Let me look at the code again (it's been a while) and see if I can't figure out what might be happening. Quote Link to comment Share on other sites More sharing options...
ski Posted August 14, 2018 Share Posted August 14, 2018 OK, I just looked at the code (it's on the previous page). The very first two lines of the working code say (in effect) get MIDI, then send MIDI. So there's nothing about the Script itself that would prevent any kind of MIDI data from passing straight through the Scripter. The CC stuff the Script generates is entirely separate from incoming MIDI. About the only thing I can think of is this... Maybe the notes 'n' stuff in your MIDI region are on a different MIDI channel than your plugin. For example, if your notes are on ch1 and the plugin is set to receive on ch2, you won't get any sound. So that's the first thing I'd check. Quote Link to comment Share on other sites More sharing options...
mgmartino Posted August 14, 2018 Share Posted August 14, 2018 The plug-in is Kontakt ( i know how to check the MIDI channel on kontakt) But how do I check the midi channel of my "MIDI Notes"...is it in the inspector sidebar? Quote Link to comment Share on other sites More sharing options...
Atlas007 Posted August 20, 2018 Share Posted August 20, 2018 The plug-in is Kontakt ( i know how to check the MIDI channel on kontakt) But how do I check the midi channel of my "MIDI Notes"...is it in the inspector sidebar?Try within the Event list editor... Quote Link to comment Share on other sites More sharing options...
ChoPraTs Posted August 27, 2018 Share Posted August 27, 2018 Thank you very much for your PlugIn ski! I would like to try it but unfortunately, I can't open the project with my computer... Do you know what can be happening? I think I'm using the latest version of Logic Pro X (v10.4.1) and I've tried to open the 3 versions of your project (v1, v2, v3) but none of the 3 opens. Logic Pro X shows the message "This operation could not be completed. There's no more info about this problem". Thanks in advance! Quote Link to comment Share on other sites More sharing options...
ski Posted August 27, 2018 Share Posted August 27, 2018 Hi ChoPraTs, I just downloaded the V3 file from the link on the previous page and it opens fine. So I don't know what to advise regarding that error message. Maybe try rebooting? (BTW, you should only use V3. The earlier versions are not as good or as complete). Quote Link to comment Share on other sites More sharing options...
ChoPraTs Posted August 27, 2018 Share Posted August 27, 2018 Finally I could! I don't know why, but when I decompress the zip file, it creates a .logicx file that didn't work. But Then, I thought to use the right mouse button and select the option "Show content of the package" and magically inside what I thought was the project file, appeared a second .logicx file! It seems that "The Unarchiver" creates a .logicx file inside another .logicx file. I don't understand why... Any case, I could open this second file without problems with Logic Pro X. So problem solved and plugin installed! Nice job! 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.