# The long-awaited Ski Switcher for Logic Pro is available.



## EastWest Lurker (Feb 18, 2013)

My good friend and Logic Pro Environment genius Peter Schwartz has finally made this available. It works really well for those of use who want to use program changes or keyswitching between articulations in Play, Omnisphere, etc. it is donation-ware.

http://www.peterschwartzmusic.com/skiswitcher.html


----------



## Malo (Feb 18, 2013)

Thank you very much, Jay! I'm really looking forward to checking this out! o=?


----------



## jamwerks (Feb 19, 2013)

Cool ! Now get that guy a job at EW to integrate those capabilities right into Play 4.

Yeah, that's the ticket....


----------



## Dan Stearn (Feb 19, 2013)

Excellent, thanks Jay & Peter, I'll be trying this out over the weekend when I get back to my main rig and will make a donation when I get it setup!

Dan


----------



## JJP (Feb 19, 2013)

This is very interesting. I'll have to check it out when I have time.

I built an environment years ago that did almost the exact same thing and had a small sequencer so you could pre-record your keyswitches. That way you could just play the entire phrase without playing the keyswitches. When VSL added this functionality to their player I stopped using my environment.

Kudos to Peter!


----------



## studioj (Feb 20, 2013)

Very cool!

Although when I have it connected in line in the click and ports env it transforms my cc1 to program changes... anyone have it up and running? any thoughts?


----------



## Peter Schwartz (Feb 20, 2013)

I'll have a look at that and get back to you...


----------



## Peter Schwartz (Feb 20, 2013)

OK, first, a retroactive thank you to Jay, and also to those of you who have posted your comments and otherwise checked out my environment.

@studioj, please try this:

• open a new environment window, select the clicks and ports layer
• select the macro
• in the Inspector, untick the "Auto Fader" checkbox
• save the project, close it, re-open it
• move the modwheel (CC#1); you should see no reaction to it

Please let me know if that solves the problem. It has here for me, and I'll update the project accordingly.

"It's always the little things, innit?"

Thanks for bringing this to my attention.

Regards,

Peter


----------



## studioj (Feb 21, 2013)

That fixed the mod wheel thing, thx!

Although now the keyswitches don't stop at the High Key... they continue to change the MIDI channel up the keyboard... well beyond ch 16  
to ch 37 actually. Program ch are working though!


----------



## Peter Schwartz (Feb 21, 2013)

Hi StudioJ,

Cool, glad it's working for you now. 0oD

Regarding the keyswitches not stopping at the high key... that behavior hasn't changed. I deliberately allowed this to occur, figuring that setting (and thus seeing) a value higher 16 was a good enough indication that the high key was set out of range. The same thing will occur if you send Logic a program change value higher than #16 too.

Enjoi!


----------



## did (Feb 26, 2013)

Thanks Peter for the job, looks fine ! I'll have a look asap.


----------



## chimuelo (Feb 26, 2013)

What a great concept for 2013. o-[][]-o


----------



## did (Feb 26, 2013)

After a quick test, I must say congratulations !
Finally possible making my own patches with HS and HB.
In addition, with notes with their own midi channel, it's possible to make divisi with differents articulations on the same track (section).


----------



## Peter Schwartz (Feb 26, 2013)

did @ Tue Feb 26 said:


> After a quick test, I must say congratulations !
> Finally possible making my own patches with HS and HB.



Thanks. Glad to hear it's going to be useful to you.



> In addition, with notes with their own midi channel, it's possible to make divisi with differents articulations on the same track (section).



Yup! :mrgreen:


----------



## studioj (Aug 7, 2013)

hi Peter! 

Do you think you'll make a version of the switcher for Logic's new scripter plugin? seems possible, yeah?


----------



## Peter Schwartz (Aug 7, 2013)

Thanks for posting about this! No, it's not possible. SkiSwitcher processes MIDI data before it actually enters Logic, and the Environment has no means for inserting a script between the Physical Input (where all MIDI sources available to Logic appear) and the Sequencer Input (where MIDI data actually enters Logic's "sequencer". 

Scripting and other MIDI FX only work to process MIDI data within an instrument channel strip:

MIDI---> software instrument [scripting]---> Plugin hosted in instrument

You can indeed pass MIDI FX-ted data to the outside world via the External Instrument or a MIDI object, and in that way it's theoretically possible to re-create SkiSwitcher as a Script. However, it would mean getting Logic into a channel strip, passing it out via a MIDI interface or IAC, and then routing it back into Logic. It's a little too kludgey of a configuration for my taste LOL!

BTW, I've taken SkiSwitcher offline for now, not only because 100's of people downloaded it and only 3 cared to make a donation :evil: but also because the GUI is totally messed up in Logic X. So maybe in the future I'll offer it again.


----------



## studioj (Aug 8, 2013)

well thats too bad. It seems like the perfect place for Apple to enable some sort of articulation management. 

So you can't have a script change the incoming MIDI channel of the data before it hits the instrument? It looks like there is an event handler for Channel... this can't be changed? i don't know anything about javascript so I can't really make any sense out of it... 

its seems like tools like Transmidifier and the ski switcher 'should be' able to be scripted with this plugin but alas it looks like it is pretty limited. so much in Logic X feel half done to me.


----------



## Peter Schwartz (Aug 8, 2013)

Yeah, unfortunately it can't be done at this time at the input side.

That said, yes, you are 100% correct: a script could change the channel of MIDI data incoming to an instrument plugin quite easily. And with that in mind I could create a version of SkiSwitcher that did the equivalent job (and it would probably take me a whole lot less time to start that script from scratch than it took me to get SkiSwitcher down pat). However... you'd never see the result of the channel changes in the recorded MIDI part, because only data that appears at the Sequencer Input in the Environment gets recorded on a track. A script (or any MIDI FX) is "post processing" MIDI as it comes into the software instrument in real time:

MIDI--->[Script or MIDI FX]--->Plugin

So you're not wrong at all, a Script could provide exactly the same functionality. But in the recorded part, it would be hard to tell one articulation (or whatever) from another when it comes to editing.

_-)


----------



## studioj (Aug 8, 2013)

Maybe a program change recorded into a track could be transformed to a midi channel change with a script? or a cc -> midi channel? would that work? because it hits the track first before it hits the script, right? 

You wouldn't get the benefit of multiple notes in a part set to different MIDI channels, but you could perhaps get something akin to expression maps where when it hits a program change it sends all data from that point forward on a diff channel?


----------



## Peter Schwartz (Aug 8, 2013)

Yup, that's possible. Just like a key switch, as long as the program change (or even just a key switch for that matter) preceded the notes, sure, the script could take care of changing the channel. That would be a piece of cake to whip up, actually.

Lemme have a think about this one. Thanks for starting this conversation, especially cuz any excuse to write a script is a good one LOL!

Cheers,

Peter


----------



## studioj (Aug 8, 2013)

cool! Is it possible to create custom UI's like the one's in Logic's own MIDI plugins? if so a step further would be to have a custom script for particular libraries with the articulations labeled next to buttons or on a fader that is triggered by the program changes or cc... and maybe then smart controls could be attached to said buttons/faders... and then your logic remote app could pull up the appropriate smart control layout with your articulations on it automatically when you select the track! am i dreaming?


----------



## studioj (Aug 8, 2013)

I have a feeling "articulation ID" will never go further than being useful with the EXS, so we are left to using MIDI channels or kontakt banks for patch management with Kontakt and PLAY.


----------



## Peter Schwartz (Aug 8, 2013)

Hi StudioJ,

You're not totally dreaming. Well, let's get the bad news out of the way first... :roll: 

No, it's not possible to create nice sexy GUIs like the MIDI FX with Scripts. In fact, it's not even possible to update parameters on the Scripter GUI in response to MIDI data coming in live from your controller or from a recorded MIDI region.

Now... on the positive tip :D you _can_ link Smart Controls to Scripter Controls. That works fairly well. But ( :cry: ) you can't generate MIDI from a controller and have it processed in a Script which, in turn, moves or updates Scripter controls.

I've been working on deciphering how all this works for days and days now. I've won a few victories and also hit the wall a few times (what?!? No bang-head-against-the-wall emoticon in this forum!?!?) . But the days (and nights) are still young in Logic X Land, so who knows what will end up being possible.


----------



## studioj (Aug 8, 2013)

ok interesting. Thanks for this dialogue. i'm interested to see what you come up with! It seems at the very least something simple that just transforms either a program change or cc into a diff midi channel could be useful to folks... and then the smart controls feature does make it more intriguing. feel like the ground work is here for some powerful stuff. Maybe we'll see expanded functionality in future updates like you say!


----------

