What's new

Template Tutorial Series [Expression Maps added]

Ok I got most things to work, except one thing: How does the whole Expression maps with program changes instead of keys thing work? I changed the 'Remote Settings' to 'Program Change Messages' and toyed around with the individual values, but nothing works right now. Not even sure if my Cubase is receiving any kind of data at all when pressing the Pad.
 
Ok I got most things to work, except one thing: How does the whole Expression maps with program changes instead of keys thing work? I changed the 'Remote Settings' to 'Program Change Messages' and toyed around with the individual values, but nothing works right now. Not even sure if my Cubase is receiving any kind of data at all when pressing the Pad.

Hi! Thanks for reporting! Indeed, there is a very small bug in the version of the project I uploaded:

- in Lemur Editor, make sure you add a tick in the empty box just in front of the Pads object. It should now output PC messages when buttons are pressed.

Let me know if this works!

EDIT: I've also fixed it in the uploaded Lemur file.
 
Last edited:
Works like a charm now, thanks a lot! :)
Now I have one more issue: I'm trying to set up a disabled VEPro template, where I can remotely enable the different instruments within VEPro. In 'Automation Mapping' I set CC125 to disable each instrument and in Lemur I created 2 buttons, one for disabling and one for enabling. The enable button sends out CC125 with a velocity of 1, the disable button sends out CC125 with a velocity of 127.
Now the weird thing is: it works but just for 1 or 2 tries. After that it stops working, and I have to reconnect the iPad in the Lemur editor for it to work again.
Does anyone know what might cause this?
 
Works like a charm now, thanks a lot! :)

Happy to help! Sorry about the bug :)

In 'Automation Mapping' I set CC125 to disable each instrument and in Lemur I created 2 buttons, one for disabling and one for enabling. The enable button sends out CC125 with a velocity of 1, the disable button sends out CC125 with a velocity of 127.
Now the weird thing is: it works but just for 1 or 2 tries. After that it stops working, and I have to reconnect the iPad in the Lemur editor for it to work again.
Does anyone know what might cause this?

Difficult to say...
Do the buttons still send out any MIDI after those 1 or 2 tries? Can you record those messages into a MIDI track in Cubase for example?
 
How are you sending the MIDI out? Custom script or the MIDI Mapping window in Lemur?
It not being able to send more kind of suggests some sort of continuous data output that does not stop, or some sort of MIDI feedback loop which "blocks" the data.

Edit: Also, for troubleshooting using a Monitor object can be pretty useful - if you are using a custom output script just add a monitor object somewhere in your project (where you can see it) and then get the Monitor.value to display the outgoing message - easy to keep an eye on what's happening like that.
 
How are you sending the MIDI out? Custom script or the MIDI Mapping window in Lemur?
It not being able to send more kind of suggests some sort of continuous data output that does not stop, or some sort of MIDI feedback loop which "blocks" the data.

Edit: Also, for troubleshooting using a Monitor object can be pretty useful - if you are using a custom output script just add a monitor object somewhere in your project (where you can see it) and then get the Monitor.value to display the outgoing message - easy to keep an eye on what's happening like that.
I used the Midi Mapping window. Just tried it with a custom script and now it seems to be working fine. :shocked:
Thanks for your help! :)
 
@Mihkel Zilmer, enjoying all your info here and in your videos. I've spent a lot of time deciding on a work flow and programming expression maps. I'm not unhappy with it, but weighing the advantages of possibly going the Lemur route. How does the Lemur come into play when playing in your lines, and after when setting articulations?
 
I used the Midi Mapping window. Just tried it with a custom script and now it seems to be working fine. :shocked:
Thanks for your help! :)

No problem, glad to hear it's working! Yeah - the MIDI Mapping section is problematic when using velocities - the range defined there is connected to the 'x' variable (button state). It's better to go with a custom script in these cases.
 
@Mihkel Zilmer, enjoying all your info here and in your videos. I've spent a lot of time deciding on a work flow and programming expression maps. I'm not unhappy with it, but weighing the advantages of possibly going the Lemur route. How does the Lemur come into play when playing in your lines, and after when setting articulations?

Thanks, good to hear the videos are useful!

Expression maps are great - and a really important part of my setup together with Lemur. I just really wish Steinberg would give them a much needed update..

I use Lemur for auditioning patches and for switching articulations during recording my lines. If I need to change articulations afterwards I just change them in the MIDI Editor, either on the Expression Map controller lane, or in the dropdown menu in the info bar.

There's another option - you can do a new recording pass and trigger different articulations. If you select an articulation in Lemur (or whichever way you control your Expression Maps) during recording, then that will overwrite any previously selected articulation.

Also be aware that for decent real-time performance you will want to have a wired MIDI connection - WiFi introduces quite a bit of latency.
 
If it was a plug n' play solution, it would be more tempting, but we all want a custom solution, so we really have to do it for ourselves. Seems it would be a bit of work to prepare all my libraries.

I have a pretty elaborate and unified system now, but my thinking is that our libraries will be getting more and more intelligent (Spitfire playable patches, VSL has announced something similar) so it might be that a year from now, such elaborate systems may not even be needed.
 
Thanks for putting these together Mihkel! Very well done and very interesting. I also use an iPad with my template but I run TouchOSC. I've configured many functions similar to the ones you've outlined...if I was as articulate as you I'd consider making some tutorials as well. :)
 
Thanks for putting these together Mihkel! Very well done and very interesting. I also use an iPad with my template but I run TouchOSC. I've configured many functions similar to the ones you've outlined...if I was as articulate as you I'd consider making some tutorials as well. :)

Thank you! I'd really like to know - what's life like on the other side? How is TouchOSC treating you? :) I kind of went down the Lemur path a long time ago but am now starting to wonder if I should give TouchOSC another go!
 
Btw does anyone know if there is any way to make instrument tracks send out Midi? I know they don't have it by default, but is there some kind of trickery that would make it possible? I still prefer a disabled tracks approach with instrument tracks, but also would really like to continue working with the Articulations showing up on my iPad.
 
I've now uploaded video #10 - the final video of the series.

I really want to thank all of you for your support and all the kind words I've received! I am very glad to hear that some of you have found these videos helpful. Workflow is such a highly personal thing - so much so that I am still genuinely surprised by how many people have responded positively to my way of approaching templates and have incorporated parts of it into their own setups.

In this final video I talk about:
- a few more general tips and tricks for template building
- hardware requirements of a multi-computer setup with VEPro
- third party premium Lemur projects
- other music software for touchscreens and tablets

Thank you for watching and stay tuned for a new series of videos talking about music productions tips and tricks!
 
Btw does anyone know if there is any way to make instrument tracks send out Midi? I know they don't have it by default, but is there some kind of trickery that would make it possible? I still prefer a disabled tracks approach with instrument tracks, but also would really like to continue working with the Articulations showing up on my iPad.

I only know of one other way - set up a Generic Remote with entries for each track. Then you can define the exact message that gets sent out when that specific track is selected (thus identifying the track) in the Generic Remote.

But there's a couple of obvious downsides to this:
1) Tracks in the Generic Remote are referenced by track number, not their name. So if you change the track order in your project then the entries won't match up any more.. so if you need to add new tracks and don't want to update your Generic Remote file, leave the new tracks at the bottom of your project
2) Setting up the Generic Remote device will be time-consuming, but you can speed it up by using a text editor, lots of copy-pasting and column editing mode for the value fields.
 
Thanks Mihkel! These are great. I've been following along and there are two things that I'm wondering if you've figured out.

(1) If I switch tracks while recording, the CC127 that Lemur sends to get the new track info gets transformed and recorded in the new track. So on playback, the keyswitches in Lemur will change each time. Have you found any way to prevent these from being recorded? I can't puzzle out any combinations of sends/inserts/input transformers that would do it.

(2) I like having the CC faders on Lemur follow the current values on the selected track. I do this with a separate send to Lemur that I toggle on for the selected track, and toggle off when leaving the track. I would love to find a way to just have the current midi data monitored for the selected track automatically, but can't figure out any way to do it.

Thanks again!
 
Some "not perfect but better" answers to my own questions:

(1) I add a Generic Remote mapping for record and keep track in Lemur if Cubase is recording. In the script that would send the CC127 to get the track ID number, I check if Cubase is recording, and if this is the case, I don't send the CC127. Instead, I stop the recording, wait a couple frames, and then send the CC127 then.

This means that track switching stops recording, but that is much less annoying than having track switching write a rogue event into the new track. And in my workflow, switching tracks while recording is usually a mistake rather than intentional, so that should be fine.

(2) No good answer here, but at least you can add a generic remote button to toggle one of the four midi sends. So I'm going to use send 4 as a monitor pointing back to Lemur, default it to off, and toggle it on from the Lemur interface when I want to see the status of all the CCs on the track. Chasing seems to work for this too, so that's pretty neat.
 
@Mihkel Zilmer Is there any way you would consider making your Expression Maps available? I'd be absolutely willing to part with a fee for them, nominal or otherwise :whistling:
 
Top Bottom