This post and thread will discuss some simple methods for sending articulation keyswitches using Scripter. The examples are being kept extremely simple in order to show the general concepts. More elaborate scenarios can also be handled. I will provide a few different approaches in different posts of this thread so you can explore them all and adapt to your own needs whatever works best. These are all small, simple and efficient scripts...any of which can overcome LogicPro's limitation of only 3 keyswitchs per articulationID in the articulationSet.
Sending Keyswitch per Aritculation ID.
Mainly the script needs to do the following in some manner:
- Look for articulationID in the incoming NoteOn object
- Based on the articulationID (if it exists), send one or more keyswitches
- Send the actual NoteOn
Here is a simple to understand example script:
A couple points about the above simple example:
- Note that each Keyswitch needs both a NoteOn and a NoteOff event. The easy way to send a matching NoteOff is to simply use the NoteOn object and set the velocity to zero, which in LogicPro is considered the same as a NoteOff.
- Also, note that for these kinds of scripts to work, the articulationSet must not have any entries in the OUTPUT section because when there are entries in the OUTPUT section, the articulationID will be stripped from the event
Here is also a BASH script that can be used to generate a working Scripter Script by reading an articulationset file to get the names and keyswitches to use:
Sending Keyswitches by Automation
Another interesting way to send keyswitches from Scripter is to use automation points instead of articulationID. This is sometimes preferable because you can see a graph with labels on an automation lane showing the articulations in effect.
Here is a simple example script doing something like that. This example is considerably more complicated then the above example, but it may get you started...
Any questions, comments or discussion will be welcomed here...
Please see later posts in this thread with more example scripts using different approaches just for the sake of discussion.