What's new

Logic Pro X changing touchosc pages

Furio

New Member
Hi everybody. I just completed my touchosc template (on my iPad) linked to my Logic Pro orchestral template. I have two touchosc Pages (or tabs), one for spitfireaudio libraries and the second one for Lass.
How can I set Logic to make touchosc switch to the right page when I select specific tracks? I guess that touchosc can receive messages from a daw but can't figure out how.
Thank you,
Furio
 
I'm not sure that Touchosc can select pages remotely.Lemur can however-via osc or midi message if scripted.

Now,you CAN use the touchosc logic plugin to have logic send out osc messages when you select a track,but I have not been able to get lemur to accept the message.I suspect either I'm formatting the message wrong in the script,or it simply can't be done.I used the monitoring app in OSX to see the osc message coming out of Logic when I click on a track,but that's as far as I can go.I think it must be just to populate the text box in a mackie control format,which is what the touchosc plugin is doing anyway.A couple things that I noticed-

-You can select audio or single midi objects as well as instrument channels,not multi midi objects,as the names were not broadcast out (at least for me)
-You need to be mindful of the track names so that there are no spaces,so "Audio 1" is no good,you'd have to do "Audio_1" and so forth for all tracks.It has to do with the osc message I think.

In any case,I was not able to click on a track in logic and have lemur change interfaces.

This is slightly advanced stuff,so be patient.below is a basic script for lemur that accepts incoming osc message and selects an interface(page in touchosc terms) as well as a container tab.

on execution "on osc" - /select_track_x

selectinterface(y);selecttab(container_name,z);

where x is the track name,y is the interface number(starts at 0),and z is the container menu item(starts at 0 and goes up to whatever number you have that corresponds with the number of tabs the container has).

an example for a script named "/select/lass_strg/vln_all"

on execution "on osc" - /select/lass_strg/vlnI_all

selectinterface(5);selecttab(container_lass_strg,3);

the thing is you need a script for every track that uses a different set of controls,this is no small task in a large template.I've been working on mine for a few years now,and it keeps evolving.

If someone can confirm that touchosc does indeed allow for remote page selection,please correct me,it didn't a while back when I was using it more.
What I do now is select the track on one iPad and have a second iPad receive the osc message to select the controls for that track.A little simpler as lemur to lemur is simpler.

good luck
 
I'm not sure that Touchosc can select pages remotely.Lemur can however-via osc or midi message if scripted.

Now,you CAN use the touchosc logic plugin to have logic send out osc messages when you select a track,but I have not been able to get lemur to accept the message.I suspect either I'm formatting the message wrong in the script,or it simply can't be done.I used the monitoring app in OSX to see the osc message coming out of Logic when I click on a track,but that's as far as I can go.I think it must be just to populate the text box in a mackie control format,which is what the touchosc plugin is doing anyway.A couple things that I noticed-

-You can select audio or single midi objects as well as instrument channels,not multi midi objects,as the names were not broadcast out (at least for me)
-You need to be mindful of the track names so that there are no spaces,so "Audio 1" is no good,you'd have to do "Audio_1" and so forth for all tracks.It has to do with the osc message I think.

In any case,I was not able to click on a track in logic and have lemur change interfaces.

This is slightly advanced stuff,so be patient.below is a basic script for lemur that accepts incoming osc message and selects an interface(page in touchosc terms) as well as a container tab.

on execution "on osc" - /select_track_x

selectinterface(y);selecttab(container_name,z);

where x is the track name,y is the interface number(starts at 0),and z is the container menu item(starts at 0 and goes up to whatever number you have that corresponds with the number of tabs the container has).

an example for a script named "/select/lass_strg/vln_all"

on execution "on osc" - /select/lass_strg/vlnI_all

selectinterface(5);selecttab(container_lass_strg,3);

the thing is you need a script for every track that uses a different set of controls,this is no small task in a large template.I've been working on mine for a few years now,and it keeps evolving.

If someone can confirm that touchosc does indeed allow for remote page selection,please correct me,it didn't a while back when I was using it more.
What I do now is select the track on one iPad and have a second iPad receive the osc message to select the controls for that track.A little simpler as lemur to lemur is simpler.

good luck
Thank you very much for your great advices. I know, working on templates is a world by itself. Anyway, as soon as (and if) I'll figure it out I'll let You know.
Best,
 
on execution "on osc" - /select_track_x

selectinterface(y);selecttab(container_name,z);

where x is the track name,y is the interface number(starts at 0),and z is the container menu item(starts at 0 and goes up to whatever number you have that corresponds with the number of tabs the container has).

an example for a script named "/select/lass_strg/vln_all"

on execution "on osc" - /select/lass_strg/vlnI_all

selectinterface(5);selecttab(container_lass_strg,3);

@dgburns seems I yet again find myself wandering down your path!

Im a little confused by your post - were you able to execute lemur scripts via track selection in logic?

If so:
How do you get logic to transmit OSC info to lemur?
Are you able to share this lemur file? I'd like to see what I can gleen from your OSC targeting approach.

Thanks as always!
 
@dgburns seems I yet again find myself wandering down your path!

Im a little confused by your post - were you able to execute lemur scripts via track selection in logic?

If so:
How do you get logic to transmit OSC info to lemur?
Are you able to share this lemur file? I'd like to see what I can gleen from your OSC targeting approach.

Thanks as always!

Not possible to select a track in Logic and have and OSC message sent to Lemur. You need a control surface plugin to do that, and as far as I know, none exists.....Yet.

I HAVE tried the Hexler Osculator plugin that sends OSC messages out to Osculator, but while I was able to select a track in Logic and see activity in Osculator, I just can't seem to harvest the outgoing data from Logic into anything that I can send downstream to Lemur. I was able to use an OSC monitor app and could see that such things as track name are being sent out when you click on any given track, but I THINK it is part of a text field, not an argument in the osc message. This Hexler control plugin is simply not intended to be used in this way.It is designed to be a bridge between your control surface and logic so you can customize your control surface layout.

So all this to say it's def possible in theory to select a track in Logic and have Logic send out an OSC message to Lemur that Lemur understands and then react as you need it to (select interface, container etc etc) but this requires someone to code a control surface plugin that gets installed in Logic.

What I've resorted to doing is the opposite, I select a track in Logic by pressing a button in Lemur. But again, I'm simply calling up a screenset and then having cliclick point to the screen co-ords by using applescript (all of this in Osculator). And even then, I'm slowly abandoning this as I change templates, just far too much work for what it's worth.

good luck
 
Hey Guys! I'm a little late to the party but I have the solution. I stumbled across it this morning while trying to figure something similar out. If you use the Logic Osculator Plugin https://osculator.net/forum/threads/1725-OSCulator-Plug-in-for-Logic-Pro it will send a bunch of data to Osculator. The one you want to map in Osculator is called /logic/track/id. I mapped that to a program change message and send it to Lemur via the daemon out 0. Then in your lemur template you need to add a "On MIDI" script that will translate the incoming data to switch pages. You can copy the script from my example layout into whatever container you want to do the switching. This will also work for TouchOSC. You can check out my examples. I decided to use CC data for the TouchOSC version instead of Prg Cng. The only drawback for this workflow is your logic template needs to stay fixed or the track id's will change. But you can add to your Logic session, just make sure the tracks are below the ones you've mapped to Osculator. I tested up to 200 tracks so far, and the id's work great. Hope this is helpful to someone! Good luck!
 

Attachments

  • Logic Track ID Osculator to Lemur.zip
    128.4 KB · Views: 28
Hey Guys! I'm a little late to the party but I have the solution. I stumbled across it this morning while trying to figure something similar out. If you use the Logic Osculator Plugin https://osculator.net/forum/threads/1725-OSCulator-Plug-in-for-Logic-Pro it will send a bunch of data to Osculator. The one you want to map in Osculator is called /logic/track/id. I mapped that to a program change message and send it to Lemur via the daemon out 0. Then in your lemur template you need to add a "On MIDI" script that will translate the incoming data to switch pages. You can copy the script from my example layout into whatever container you want to do the switching. This will also work for TouchOSC. You can check out my examples. I decided to use CC data for the TouchOSC version instead of Prg Cng. The only drawback for this workflow is your logic template needs to stay fixed or the track id's will change. But you can add to your Logic session, just make sure the tracks are below the ones you've mapped to Osculator. I tested up to 200 tracks so far, and the id's work great. Hope this is helpful to someone! Good luck!

will investigate.....
 
Thing is there are two ways to do it and both involve a fixed template. I am assuming using Logic, obviously other DAWs may only have the Osuclator option.

1. dbawmp's Osculator solution
Pros: No environment messing
Cons: Need to use separate Osculator translation adding an extra layer, needs to be a fixed template in a specific order

2. Transformer Object in Environment
Pros: Tracks can be reordered in Arrange window, no separate software between DAW and Lemur/TouchOSC
Cons: Neds to be a fixed template

I ended up using Composer Tools Pro:

1. Because it has a neat preset management system with Categories and space for 100s of presets
2. Via a Transformer Object a preset can be recalled simply by selecting the track then pressing Recall on the IOS app.

Its a Lemur based app.

All you need is a Transformer object mapped to CC119 sending a Program Change to whatever number you assign to a preset cabled from a channel in the environment, cabled then to an Instrument object assigned to your Lemur port.

Still wish Logic had a way to store Transformer object with a track to make a patch that can be added anytime, but ho hum.
 
Thing is there are two ways to do it and both involve a fixed template. I am assuming using Logic, obviously other DAWs may only have the Osuclator option.

1. dbawmp's Osculator solution
Pros: No environment messing
Cons: Need to use separate Osculator translation adding an extra layer, needs to be a fixed template in a specific order

2. Transformer Object in Environment
Pros: Tracks can be reordered in Arrange window, no separate software between DAW and Lemur/TouchOSC
Cons: Neds to be a fixed template

I ended up using Composer Tools Pro:

1. Because it has a neat preset management system with Categories and space for 100s of presets
2. Via a Transformer Object a preset can be recalled simply by selecting the track then pressing Recall on the IOS app.

Its a Lemur based app.

All you need is a Transformer object mapped to CC119 sending a Program Change to whatever number you assign to a preset cabled from a channel in the environment, cabled then to an Instrument object assigned to your Lemur port.

Still wish Logic had a way to store Transformer object with a track to make a patch that can be added anytime, but ho hum.

So I'm way down the rabbit hole here, but here goes-

Use "/logic/track/name" instead. Demux it, which is the missing link for all this to work. Clicking on your tracks in Logic will populate the list in Osculator. From there, midi or OSC messages out to Lemur. Using track name means you can re-order your tracks and it doesn't break the system. Only re-naming the tracks will.

I'll be looking at using OSC messages instead of simple midi, because it's way more flexible and scalable. But it requires another step in Osculator (re-addressing the message out to Lemur.....simple really)
 
So I'm way down the rabbit hole here, but here goes-

Use "/logic/track/name" instead. Demux it, which is the missing link for all this to work. Clicking on your tracks in Logic will populate the list in Osculator. From there, midi or OSC messages out to Lemur. Using track name means you can re-order your tracks and it doesn't break the system. Only re-naming the tracks will.

I'll be looking at using OSC messages instead of simple midi, because it's way more flexible and scalable. But it requires another step in Osculator (re-addressing the message out to Lemur.....simple really)

But isnt the problem in Osculator that it only sees 8 tracks like an MCU? In my experiments I could not get past the first 8 without issues.

Also in my example, its does not as I see help as each track needs to still be hardwired to a program change. So you still need to have a permanent template.

Osculator or Logic Environment the loss of flexibility is the same. 1 step forward, 1 back.
 
But isnt the problem in Osculator that it only sees 8 tracks like an MCU? In my experiments I could not get past the first 8 without issues.

Also in my example, its does not as I see help as each track needs to still be hardwired to a program change. So you still need to have a permanent template.

Osculator or Logic Environment the loss of flexibility is the same. 1 step forward, 1 back.

Works like a charm over here. Trick is to use the Osculator entry "/logic/track/name" as I stated above AND to click on it and hit the command DEMUX. Now when you click on your Logic tracks in the arrange, they will populate Osculator with the track names UNDER the heading /logic/track/name. Now you can go ahead and assign a midi command to them like usual in Osculator.
Once again, I'm using OSC messages. What i do is use OSC routing in the event column, and then specify an OSC message to send to Lemur. In Lemur I create a script that tells Lemur what to do when it gets that OSC message..

In the example script here, I am selecting an interface, and then selecting a tab three containers deep. Naming containers becomes important.

Also, keep your Logic track names short, there is a restriction on name length as I discovered.

With a little work, you can basically click on a track and have it switch to show what you want in Lemur.

-edit-

I have entered a few hundred tracks with no problems. I have also done a quick test and re-ordering the tracks in Logic creates no issues. You are free to move your tracks around, so long as you don't re-name them.
 

Attachments

  • Screen Shot 2017-08-14 at 3.18.14 PM.png
    Screen Shot 2017-08-14 at 3.18.14 PM.png
    7.1 KB · Views: 51
  • Screen Shot 2017-08-14 at 3.18.36 PM.png
    Screen Shot 2017-08-14 at 3.18.36 PM.png
    3.6 KB · Views: 51
Last edited:
I have entered a few hundred tracks with no problems. I have also done a quick test and re-ordering the tracks in Logic creates no issues. You are free to move your tracks around, so long as you don't re-name them.

This is awesome! Teamwork for the win!
 
Works like a charm over here. Trick is to use the Osculator entry "/logic/track/name" as I stated above AND to click on it and hit the command DEMUX. Now when you click on your Logic tracks in the arrange, they will populate Osculator with the track names UNDER the heading /logic/track/name. Now you can go ahead and assign a midi command to them like usual in Osculator.
Once again, I'm using OSC messages. What i do is use OSC routing in the event column, and then specify an OSC message to send to Lemur. In Lemur I create a script that tells Lemur what to do when it gets that OSC message..

In the example script here, I am selecting an interface, and then selecting a tab three containers deep. Naming containers becomes important.

Also, keep your Logic track names short, there is a restriction on name length as I discovered.

With a little work, you can basically click on a track and have it switch to show what you want in Lemur.

-edit-

I have entered a few hundred tracks with no problems. I have also done a quick test and re-ordering the tracks in Logic creates no issues. You are free to move your tracks around, so long as you don't re-name them.

Great work!

This has some potential as a quick test in Logic indicates you can save a track(s) as a patch and add later and it will pick up the premade Osculator routings.

I will have to test and see if I can get Osculator communicating via my Lemur MIDI ports as I need to use Program Changes rather than OSC messages. Sure it can be done, but if it can this has more potential.

By the way, I dont think the Track Name length matters, I think Osculator abbreviates it but still recognises the track by its full name.
 
Great work!

This has some potential as a quick test in Logic indicates you can save a track(s) as a patch and add later and it will pick up the premade Osculator routings.

I will have to test and see if I can get Osculator communicating via my Lemur MIDI ports as I need to use Program Changes rather than OSC messages. Sure it can be done, but if it can this has more potential.

By the way, I dont think the Track Name length matters, I think Osculator abbreviates it but still recognises the track by its full name.
I am looking forward to the feedback on this. Lots of considerations right now as I am thinking about what will happen when my Mac Pro runs down, so thinking of moving to Windows and Cubase is looking like the option right now

Now sure though, as there is so much I have found I love in Logic Pro X.

So waiting patiently on this one ;)
 
Well I did some more tests. Not only does it work switching presets in Composer Tools Pro, it also seems to recall without using any further steps once I have linked each OSC command in Osculator to a Program Change!

No need to press Recall in Composer Tools Pro, its instant. Their instructions using regular Program Changes in the Logic environment sent the message but you had to press the Recall button in Composer Tools Pro, but for some reason this works instantly on changing track.

Best of all as Tracks are referenced by name, you can save Tracks as Patches, delete them from your project and reinstate them any time and they still link up with Osculator!!
 
Well I did some more tests. Not only does it work switching presets in Composer Tools Pro, it also seems to recall without using any further steps once I have linked each OSC command in Osculator to a Program Change!

No need to press Recall in Composer Tools Pro, its instant. Their instructions using regular Program Changes in the Logic environment sent the message but you had to press the Recall button in Composer Tools Pro, but for some reason this works instantly on changing track.

Best of all as Tracks are referenced by name, you can save Tracks as Patches, delete them from your project and reinstate them any time and they still link up with Osculator!!
I also have Composer Tools Pro, so would like to know about setting this up. I have TouchOSC and Lemur with CTP, but not worked with OSC messages before?

How would you go about setting this up?
 
I also have Composer Tools Pro, so would like to know about setting this up. I have TouchOSC and Lemur with CTP, but not worked with OSC messages before?

How would you go about setting this up?

First every KS preset in Composer Tools has a Program Change number. Follow the steps dgburns outlined #11 and then once you have a track captured change the message it sends to Program Change and the Message Number to match, thats it.

You just need to repeat this for every track.

Capturing a track in Osculator is as simple as ensuring the Demux command in the Edit menu is selected then selecting the track in Logic.

Instructions on how to set up Osculator are on their website. It will run in Trial mode so you can try it out first and even fully use it, it just times out every so often.

All thats required is you install the Osculator Logic CS plugin and have Osculator running.
 
Works like a charm over here. Trick is to use the Osculator entry "/logic/track/name" as I stated above AND to click on it and hit the command DEMUX. Now when you click on your Logic tracks in the arrange, they will populate Osculator with the track names UNDER the heading /logic/track/name. Now you can go ahead and assign a midi command to them like usual in Osculator.
Once again, I'm using OSC messages. What i do is use OSC routing in the event column, and then specify an OSC message to send to Lemur. In Lemur I create a script that tells Lemur what to do when it gets that OSC message..

In the example script here, I am selecting an interface, and then selecting a tab three containers deep. Naming containers becomes important.

Also, keep your Logic track names short, there is a restriction on name length as I discovered.

With a little work, you can basically click on a track and have it switch to show what you want in Lemur.

-edit-

I have entered a few hundred tracks with no problems. I have also done a quick test and re-ordering the tracks in Logic creates no issues. You are free to move your tracks around, so long as you don't re-name them.


Would you mind going through the Osculator set up step by step on this?
 
Hi guys,

To create a ThouchOSC and Lemur Logic mapped track selection recall you must be very familiar with the programming specifics, the Logic Controller Surface system and the Environment.

With the risk to go off topic I want to mention the followling news:
- the new AG TouchOSC Articulation Workstation works with Logic precised track selection recall.
You can set the track recall precisely in the a special Chanel Strip Header palette. The MIDI recall is manual via a TouchOSC button.

- the new AG Lemur Articulation Remote Workstation. The Articulations are teleported to the iPad in one go and the iPad Presets are changed via track selection automatically. You can set the iPad Preset recall precisely in the Channel Strip expanders. You can reorder the Logic tracks keeping the iPad page assignment because the Channel Strip mapping is an embedded info.
 
Top Bottom