Articulations : full dynamic module for Logic with detailed instructions

Dear all,

I’m a long time Logic user working with a big orchestral template. I’ve never liked the “one track, one articulation” way of work. In my template, I’m using the Articulation system from Logic and it suits well my workflow : one instrument track with all its articulations.

With this system, my complain was that for each track, the default Articulation is the first one in the list (Eg : for my template : mostly “Long”)

But what if want to record some Pizz or staccato, it’s a problem.

I can change the Articulation using the menu on the top of the instrument plugin window before recording or I can use Smart Controls Keyswitches window (ugly and limited to only24 articulations). This isn’t the greatest or fastest solution for my workflow…

I’ve always wanted some physical faders to be able to control dynamic, intensity or vibrato for my libraries. I’ve never found something simple suiting my needs and as a result I’ve builded the Nuances controller

I needed something simple to be able to deal with all my articulations in Logic. My goal was to use the lightest and purest solution without any scripting in Logic or any port routing and also I don’t want any additional software. I needed something working directly with all the songs I’ve already created from my template without any modification.

The result is : Articulations

Of course, it is free !

If my way of working looks like yours, it might be a great upgrade to your workflow.

You can use it freely and mod it to your taste, but please don't sell it or make money with it !

How does it works :

You will have to add a Mackie control surface to your Logic Pro configuration. This will able “Articulations” to know which track is selected on your song without external driver or third party application and on any Mac computer (intel or silicon).

Then “Articulations” will be able to get a direct access to 2 folders in your computer :

  • The LogicPro’s articulation folder in order to know which articulation is available on each of your tracks

  • a LibraryPicture folder containing an illustration (Jpeg or png) to get a fancy picture of the selected track’s library on your Open Stage Control screen

Articulation will then return your choice via the Logic’s Midi remote system of its articulation workflow

A big thanks to jean-emmanuel for his work !
Thanks also to LowweeK75 for his code, a lot of his work is used in this external module !!!
With the great help of Chat GPT and pieces of codes gathered at Open stage Control Community forum.
And of course, thanks to all the OSC community forum members.

Please support jean-emmanuel work on Patreon :

The purpose of this external module is to be able to control Articulations from your select track in Logic Pro via Articulation MIDI remote with Open Stage control. It can also add a fancy picture of the selected track's sound bank

Please note :

I won't guarantee it will work for you and I won't do hotline support (I'm busy writing music)
I won't be responsible for your computer smoking or for any data loss
It won't be my fault if you use this code to write either good or bad music

Enjoy !

Pierre

Part 1 : OpenStageControl for newbie and communication with Logic

First download Open Stage Control for OSX and install it in your Application folder

Now it is time to download this file :
OpenStageControl.zip (527.8 KB)

Uncompress it and put the resulting folder (OpenStageControl) in Users/YourMacPersonalUserFolderName/Documents

Launch Open Stage Control (Remember OpenStageControl isn’t signed by Apple, you will have to control-click /open it the first time you will launch it)

MIDI : sysex Mackie:virtual Logic:virtual
(when started, OpenStageControl will create 2 virtual Midi ports : Mackie and Logic)

Load : /Users/YourMacPersonalUserFolderName/OpenStageControl/LogicTrackName.json

You should get this

Launch LogicTrackName.json by clicking on Play

Now it’s time to configure Logic

In Logic go to : Logic Pro/Control Surfaces/Setup…

New/Instal…

Select Mackie Control an click on “Add” (Don’t click on Scan)

Assign the OpenStage newly created virtual ports on this Mackie control

Open a Logic song and then switch to Open Stage app

You should have a weird track name displayed

Click on PanView and Name View to obtain the correct track name from Logic

Test switching tracks in Logic, it should work !

Quit Open Stage Control app
Please keep LogicTrackName.json in your OpenStageControl folder (/Users/YourMacPersonalUserFolderName/OpenStageControl) just in case for future use

For example upgrading Logic from 10.7.7 to 10.7.8 reset the Make Control display in Logic.
You will then need to reopen LogicTrackName.json once to get the correct display mode again

My Articulations module will only read Mackie control data from Logic and never send anything back to it. Unless you delete your control surfaces preferences, Logic Pro will now always send your selected track name to Open Stage Control from all your songs !

For now, you can quit Open Stage Control and Logic

Part 2 : Configuration

Open Stage Control will need some additional linux tools to be able to get access to some of your folders and interact with Logic Pro

Go to the Apple Store and instal Xcode, It will take a while…

Open a terminal window and instal Homebrew :
run the command : /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Don't forget to read your terminal screen and to run the returned 2 command lines :

In the same terminal window, we need to also install Node :
run the command : brew install node

Just in case, when done, close this Terminal window and open a new one

In this new terminal we have to cd to the OpenStageControl_modules folder. (It is inside the OpenStageControl folder)
Easiest way is to type : cd a space and to drag the OpenStageControl_modules folder from the Finder to your terminal window
you should have something like this


:
Enter
and terminal will return : YourUserName@youruser OpenStageControl_modules %

Let instal the right communication tools to be able to get all your articulations and Library picture :

Run the command : npm install xml2js
Then the command : npm install glob
And the command : npm install plist

Quit the terminal app an have a look in your OpenStageControl_modules folder.

If everything went right, you should find a node_modules folder, and 2 files : package-lock.json and package.json

Go back to the OpenStageControl folder, it contains a folder named OpenStageArticulations
Move it to Users/YourMacPersonalUserFolderName/Music/Audio Music Apps/Articulation Settings

Congratulations, you are done with the geekiest part of the installation and quite ready to go!!!

Part 3 : Articulations first launch

LogicMagicalExternalModule.js need to know your Mac personal user folder name to get the correct path to your articulations and pictures, you will need to correct 2 lines in the code.
I like to use Sublime text for this, but you should be able to do it with any text editor
https://www.sublimetext.com/3

So, open LogicMagicalExternalModule.js in your favorite text editor and correct the file @ lines 72 & 78. Just replace yourusernamehere by your Mac personal user folder name.
(The file is in the OpenStageControl/OpenStageControl_modules folder)


Save the file and it is done !

Now it is time to open Open Stage Control
MIDI : same as before
Load : .../OpenStageControl/Articulations_forLogic_byPierre/Articulations_forLogic_byPierre.json
Custom-module : .../OpenStageControl/OpenStageControl_modules/LogicMagicalExternalModule.js

Press Play

Congratulations, everything should be properly configured now !

You can now open Logic, create a new song with a new software instrument named "Instrument" an Open stage control should return you a picture and some articulations for this track !!!

Part 4 : Configure everything with your template

Articulations is matching your Logic selected track name with :

  • your Articulations in the folder : OpenStageArticulations :
    Users/YourMacPersonalUserFolderName/Music/Audio Music Apps/Articulation Settings/OpenStageArticulations

  • your Pictures, in the folder Libpictures :
    /Users/YourMacPersonalUserFolderName/Documents/OpenStageControl/Articulations_forLogic_byPierre/Libpictures

Articulations is matching your selected track name from logic with keywords between [ ] in articulations file name and in picture file name.

You have to active Midi Remote Global on channel 16 in Logic's Midi Preferences :

My template naming convention is as follow for each track name in Logic :
LIBRARYNAME Instrument name

to get the correct library image displayed I'm naming the picture [LIBRARYNAME] into the Libpictures folder
Each track name containing LIBRARYNAME in their name will display the same picture

To get the correct articulations displayed I'm saving a copy of my articulations settings named [LIBRARYNAME Instrument name] into the OpenStageArticulations folder

That way, all my old projects having the same naming convention, Open Stage Control will always display the correct articulations and the correct Library image for each track !

A last thing :
Articulations only read the content of OpenStageArticulations and Libpictures folders on launch.

When you are configuring your template, adding new articulations or library images, you will have to stop and relaunch the open Stage control server to be able to use the one you have just added.
A quicker alternative is to open LogicMagicalExternalModule.js in your favorite text editor. Even without modifying it, each time you will save it, the content of OpenStageArticulations and Libpictures folders will be refreshed and your modifications reflected !

This is a part of my template for your naming inspiration :
(the first letter v is never included in my articulation or library name, it just means that this track is on Vienna ensemble pro)

If I'm not clear, LowweeK75 explains this well in this post :

Congratulations, that's great!

I'm happy to contribute to your product. Let me know if you need something :slight_smile:

I'll check the code, there might be some improvement over my own solution.

Actually, getting the track name using Mackie is nice. I may switch to MCU instead (I need the timecode & bars also) of TouchOSC. That'd be one tool less in the way.

1 Like