The OSCulator Plug-in for Logic Pro is a "Control Surface Plug-in" allowing control of Logic Pro using the Open Sound Control protocol (OSC).
The aim is to create a clean and documented API so OSC applications are easier to interface with Logic Pro.
Please see disclaimer, change log and copyright at the end of the document.
The plug-in is compatible with:
Copy the file "OSCulator.bundle" into one of the following directories:
« Logic Pro has detected a new OSC device named "computer:8000 (OSCulator)", which is supported by the control surface plug-in "OSCulator. »
Click Add, OSCulator is now ready to communicate with Logic.
If you want to send OSC messages to Logic Pro, it must be configured as an OSC target. The OSC target is automatically added in OSCulator 2.12 and later, however you will need to add it manually in previous versions.
In OSCulator, open the Parameters Window, and navigate to the OSC Routing. Logic publishes a OSC service whose name is merely the name of your computer. If your computer's name is "tortilla" then that is what you should see in the OSC target list.
If it is not in the list, click on the gear button and pick the service from there.
Finally, make sure that the target is not the default target, otherwise the service will be replaced by another one next time OSCulator detects a OSC device on the network.
If you have already setup TouchOSC as a control surface in Logic, but would like to use OSCulator to act as a bridge, then you should uninstall the TouchOSC control surface from Logic Pro.
As long as the plug-in is not uninstalled (see next section), this is only temporary and can be reconfigured again later.
The purpose of this example is to show how to use OSCulator as a bridge between TouchOSC and Logic Pro. We use the LogicTouch layout (bundled with the TouchOSC app), that was designed to work directly with Logic. If we don't use TouchOSC as a control surface, but instead use OSCulator, then we have access to the OSC messages that are exchanged between TouchOSC and Logic and can use OSCulator instead.
The example has been made with the iPhone version of this template. Adapting the example to the iPad version is left as an exercise for the reader.
The file "Logic Pro OSCulator Dictionary.oroutes" is a dictionary of OSC messages and provided to make it easier to assign mappings in OSCulator, or to explore the possible OSC calls.
To use the dictionary, in OSCulator, open the Parameters Window, and go to the OSC Routing tab. Click on the gear button and then "Import…". Choose the file named "Logic Pro OSCulator Dictionary.oroutes".
Launch Logic before OSCulator.
It seems that in this early version of the plug-in communication can be lost or become out of sync. To remedy this problem quickly, press the Pause button in OSCulator's toolbar and press Start again. Logic will re-send every control values, thus re-syncing the two applications.
OSCulator has a debugging mode where all OSC input and output is logged to the console. In order to enable the debugging mode, type the following line in a Terminal window:
defaults write net.osculator.OSCulator ShowDebuggingTools YES
and restart OSCulator. The menu item "Log OSC input" will become available in the Routings menu.
To remove debugging support, type in a Terminal window:
defaults delete net.osculator.OSCulator ShowDebuggingTools
Unless specified, all communications are bi-directional.
(a) unidirectional message: sent from OSCulator to Logic Pro.
(b) unidirectional message: received by OSCulator from Logic Pro.
Tracks are grouped by banks of 8 tracks. In the following messages:
Tracks:
track_index
is a number between 1 and 8 or the string 'master'.send_index
is a number between 1 and 3.track_index
/id (b)track_index
/name (b)track_index
/leveltrack_index
/level/string (b)track_index
/pantrack_index
/pan/string (b)track_index
/mutetrack_index
/solotrack_index
/focustrack_index
/send/send_index
/name (b)track_index
/send/send_index
/leveltrack_index
/send/send_index
/level/string (b)AUX:
aux_index
is a number between 1 and 4.aux_index
/id (b)aux_index
/name (b)aux_index
/levelaux_index
/level/string (b)aux_index
/panaux_index
/pan/string (b)aux_index
/muteaux_index
/solo/logic/track/track- (a)
/logic/track/id (b)
Sends:
send_index
is a number between 1 and 5.send_index
/name (b)send_index
/levelsend_index
/level/string (b)Inserts:
insert_index
is a number between 1 and 12.insert_index
/name (b)insert_index
/bypass/logic/track/insert/insert_index
/focus
param_index
is a number between 1 and 16.
param_index
/name (b)param_index
/name/valueparam_index
/name/value/string (b)EQ:
eq_index
is a number between 1 and 8.eq_index
/bypasseq_index
/gaineq_index
/gain/string (b)eq_index
/gain/+ (a)eq_index
/gain/- (a)eq_index
/freqeq_index
/freq/string (b)eq_index
/freq/+ (a)eq_index
/freq/- (a)eq_index
/qeq_index
/q/string (b)eq_index
/q/+ (a)eq_index
/q/- (a)Automation:
Instrument:
param_index
is a number between 1 and 24.param_index
/name (b)param_index
/valueparam_index
/value/string (b)For problems, bugs or requests, please post a report on the OSCulator Forum:
http://www.osculator.net/forum
06/15/2012: Updated the example file to disable Logic feedback messages when a fader or rotary is touched.
05/29/2012: Initial version
This is a work in progress, and as such the following disclaimer applies:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Copyright © 2012, Wildora, all right reserved.