# Template Tutorial Series [Expression Maps added]



## Mihkel Zilmer

----------------------------

*EDIT: September 2019*

_It's been two years since I made the template tutorial videos in this thread. Here is a little 2019 update - a fair bit has changed. The rest of the videos still contain useful ideas for anyone wanting to build a large orchestral template, but you should definitely watch the update first and find out what has changed in my personal workflow since 2017._









Template Tutorial Series: 2019 Update


This is a 2019 update & introduction to the Template Tutorial Series from 2017. Watch this before watching the rest of the series! VI Control thread with tut...




youtu.be





*Original post below:

--------------------------*

As some of you know by now, I've been working on a series of videos that explain my approach to templates, and look at how I go about using Cubase, Lemur and VEPro. These videos have been turning up on my YouTube channel very-very slowly over the past few months, as I've not had much time to produce them over the summer. However, in the next couple of weeks I'm aiming to finish the entire series - there are 10 videos planned in total.

*Disclaimer: Ultimately, workflow preferences are highly personal. I'm not advocating the "best" approach here, just some methods that I personally consider to be very effective. *I hope that my approach can provide other people with a starting point for designing their own templates. Where possible, I also talk about alternatives to my choices.

Thanks for watching!

You can download my Lemur project here (mk19, Nov 2017):
https://drive.google.com/open?id=1fE9M8tiNLK-nDF5B24DzubUTZ97jR80E
Included articulations lists: Spitfire Symphonic Strings, Spitfire Chamber Strings, Cinematic Studio Strings, Berlin Strings Main Library, Berlin Strings Exp. D, Spitfire Symphonic Brass, Berlin Brass Main library, Spitfire BML Woodwinds (only partially updated for SSWW), Berlin Woodwinds + Exp. A, B, C, Spitfire Percussion, Berlin Percussion Main Library + Exp. A, all of the Spitfire Albion libraries, Metropolis ARK 1 and a few others.

You can download my Expression Maps here (mk21, Jan 2018):
https://drive.google.com/open?id=1kPHuqNy1wcLVOw_9_EkFsMxw56Y5cpti
While most of these use the most recent version of these libraries currently available, I think there might be a few in there that I've forgotten to update, so they might be missing some patches. *Spitfire *libraries use UACC, so all Kontakt instances share the same MIDI channel. *Orchestral Tools *libraries have variable MIDI channels, so the Output Mapping section of the Expression Map might need editing to match your setup. For a list of the libraries included check post #43:
Template Tutorial Series [Expression Maps added]










​


----------



## Mihkel Zilmer

​


----------



## Rob Elliott

Looking forward to checking these out. No matter how long one has been doing this - there is always potentially 'a better way'. Schedules are not getting more relaxed. If you don't want there to be a drop off in music / production quality - a solid template is where you can make up the difference. Thanks again.


----------



## Mihkel Zilmer

Thanks Rob, hope you can find something useful in there! Please let me know if you want me to elaborate on anything or otherwise wish to discuss certain aspects - I'd be happy to do so, and am always looking to learn more about it myself! 

I've just add a new episode to the original post - #7: VEPro Setup. Next up, Lemur - that'll be 2 longish ones because there's a lot to cover..


----------



## jononotbono

Just started watching these as I'm always interested in watching how others work. Really like how the Articulations show up on your Lemur Template when you select a Track in Cubase. Looks really slick! If I could make a request, could you do a tutorial on Lemur? I'm currently using Metagrid as I thought I would give it a try and loving it so far but do own Lemur and may venture into using it more soon.


----------



## Mihkel Zilmer

jononotbono said:


> Just started watching these as I'm always interested in watching how others work. Really like how the Articulations show up on your Lemur Template when you select a Track in Cubase. Looks really slick! If I could make a request, could you do a tutorial on Lemur? I'm currently using Metagrid as I thought I would give it a try and loving it so far but do own Lemur and may venture into using it more soon.



Thanks! Will do - track selection following & articulation switching is coming up next, in video #9 - should be online in the next few days. 

Meanwhile I've just uploaded #8 - Lemur: part 1. This video covers MIDI over USB, CC faders in Lemur and setting up Visibility buttons using Lemur, Project Logical Editor and a Generic Remote device.


----------



## jononotbono

Great! Always interested in anything like this!


----------



## Spip

I've just watched them all. Bravo ! 
Your tutorials are really great, well done and everything is explained in details. 

Thank you very much !


----------



## Spip

Just a quick question about http://www.midimux.net (Midimux). 

In the http://www.midimux.com/downloads/StudiomuxManual.pdf (manual), they say : 

"Installation on Windows

Before installing the Studiomux server make sure, that you have installed the NET Framework 4.5 or higher "

Is it still true ? 

On the windows webpage, they only write about Windows 7 and 8, nothing on W10. And it seems not needed for 8, though. The date (2012) of this package is also really old.

Do you have installed it or is it now included in Windows 10 by default ?

Thanks in advance.


----------



## gsilbers

great vids although i use logic :(


----------



## Mihkel Zilmer

Spip said:


> I've just watched them all. Bravo !
> Your tutorials are really great, well done and everything is explained in details.



Thanks for watching, glad to hear it has been helpful!

Regarding NET framework - I am 99% sure this is included in W10. You can check your system - just open Windows Features ("Turn Windows Features on or off") - .NET framework will likely be the first entry in this list.


----------



## Garlu

These videos are great! Thanks a lot for doing that, Mihkel!!
Looking forward to more!


----------



## Mihkel Zilmer

I decided to remove video #9 and re-record it. All the excellent feedback I received made me re-think a couple of things about my approach. I've changed to using Program Changes, improved FPS performance and changed the track identifying method to enable moving and copying tracks without messing up track order.

The new video is now online! I talk about how to set up Lemur to respond to track selection changes in Cubase and how to store, display and activate different articulations with Lemur.


----------



## wbacer

Mihkel, thank you so much for taking the time to put together this video series.
All of this info is extremely helpful.


----------



## Fishforce

Thanks so much for sharing your knowledge Mihkel! I very much appreciate your videos! 

Best,
Mat


----------



## Pablocrespo

this videos are a treasure, I don´t think I could program all that stuff in lemur but it is very helpful keep it going

thank you for your hard work!

(Edited to keep the thread on topic)


----------



## Mihkel Zilmer

I took my previous Lemur part 2 video offline because 3 excellent comments were made:
1) The FPS performance was sub-par
2) The Generic Remote system I used previously was found generally not flexible enough because changing track order would mess up the articulations displayed
3) Using floating keyswitch values seemed unnecessarily complex to most people

For the new version regular NoteOn keyswitches got swapped out with Program Changes so that they wouldn't ever clash with instruments any more.

FPS performance was improved by using a different project structure and different kinds of objects for storing articulations.

For track selection I realised I could have every track send out the same message via Generic Remote when they were selected - that quickly lead me down the path of using transformers to identify each track, as it would mean I could move & duplicate tracks freely and they keep their settings, always sending the same MIDI message out.
Also, thanks to @rgames! His post on the Steinberg forum helped me figure out how to delete any unnecessary outgoing MIDI.

I've learned MIDI Kinetics also uses a similar, although actually even more clever way of using MIDI transformers to identify tracks like this.


----------



## Nite Sun

@Mihkel Zilmer

I've learned a shit ton from your template tutorial series and am very grateful for you taking the time to share your valuable knowledge. I can't imagine how many hours of work it must of taken you to put together the lemur/cubase templates and the videos. Cheers!


----------



## MIDI Kinetics

Lemur is great. All DAW makers should think about deeper integration with touchscreens to make communication more seamless and powerful.


----------



## Sami

@MIDI Kinetics
Congratulations for your product, it is truely great. Also great work @Mihkel Zilmer ! Your tutorials are fantastic, I just gotta say it once more.


----------



## Sami

@MIDI Kinetics is there written documentation for CTP or just the knowledgebase?


----------



## lucor

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.


----------



## Mihkel Zilmer

lucor said:


> 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.


----------



## lucor

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?


----------



## Mihkel Zilmer

lucor said:


> Works like a charm now, thanks a lot!



Happy to help! Sorry about the bug  



lucor said:


> 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?


----------



## lucor

Mihkel Zilmer said:


> 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?


Nope, looks like it stops sending out MIDI after those tries.


----------



## Mihkel Zilmer

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.


----------



## lucor

Mihkel Zilmer said:


> 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. 
Thanks for your help!


----------



## jamwerks

@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?


----------



## Mihkel Zilmer

lucor said:


> I used the Midi Mapping window. Just tried it with a custom script and now it seems to be working fine.
> 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

jamwerks said:


> @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.


----------



## jamwerks

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.


----------



## jmauz

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.


----------



## Mihkel Zilmer

jmauz said:


> 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!


----------



## lucor

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.


----------



## Mihkel Zilmer

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!


----------



## Mihkel Zilmer

lucor said:


> 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.


----------



## pilgrim

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!


----------



## pilgrim

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.


----------



## Sami

@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


----------



## Mihkel Zilmer

pilgrim said:


> 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.



Hi there! Sorry for the super slow reply! You seem to have pretty much come to the right conclusions by yourself 

For changing tracks during recording, that's something I never do, but your solution is a good one to stop the rogue CC127 message from getting recorded.

And setting up a MIDI send is the only way I can think of to get changing CC values back to Lemur.


----------



## Mihkel Zilmer

Sami said:


> @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



Sorry for taking ages to get back to you - it's been a crazy busy time.. 

Anyway - I am exporting the Expression Maps right now, in case you are still interested. I will add a link here as soon as I am done. I wouldn't ever want to charge any money for them, especially as I am sure there a little inconsistencies or errors here and there. Hope this helps and stay tuned for the link!


----------



## Mihkel Zilmer

Here's a link to my Expression Maps. While most of these use the most recent version of these libraries currently available, I think there might be a few in there that I've forgotten to update, so they might be missing some patches.

Woodwinds:
- Spitfire Symphonic Woodwinds
- Berlin Woodwinds Legacy
- Berlin Woodwinds Exp. A, B, C
- Berlin Woodwinds Revive

Brass:
- Spitfire Symphonic Brass
- Berlin Brass

Percussion:
- Spitfire Percussion (only mallets & timps)
- Berlin Percussion
- Spitfire Ricotti Mallets (missing xylo)

Strings:
- Spitfire Symphonic Strings
- Spitfire Chamber Strings
- Berlin Strings
- Berlin Strings Exp. D
- Cinematic Studio Strings

Miscellaneous:
- Spitfire Harp
- Spitfire Steel Drums
- Spitfire Harp Swarms
- Metropolis ARK 1, 2
- Albion 1, ONE, 2, 3, 5

*Spitfire *libraries use UACC, so all Kontakt instances share the same MIDI channel. *Orchestral Tools *libraries have variable MIDI channels, so the Output Mapping section of the Expression Map might need editing to match your setup.

https://drive.google.com/open?id=1kPHuqNy1wcLVOw_9_EkFsMxw56Y5cpti
[URL='https://drive.google.com/open?id=1kPHuqNy1wcLVOw_9_EkFsMxw56Y5cpti'][/URL]


----------



## wbacer

Mihkel Zilmer said:


> Here's a link to my Expression Maps. While most of these use the most recent version of these libraries currently available, I think there might be a few in there that I've forgotten to update, so they might be missing some patches.
> 
> Woodwinds:
> - Spitfire Symphonic Woodwinds
> - Berlin Woodwinds Legacy
> - Berlin Woodwinds Exp. A, B, C
> - Berlin Woodwinds Revive
> 
> Brass:
> - Spitfire Symphonic Brass
> - Berlin Brass
> 
> Percussion:
> - Spitfire Percussion (only mallets & timps)
> - Berlin Percussion
> - Spitfire Ricotti Mallets (missing xylo)
> 
> Strings:
> - Spitfire Symphonic Strings
> - Spitfire Chamber Strings
> - Berlin Strings
> - Berlin Strings Exp. D
> - Cinematic Studio Strings
> 
> Miscellaneous:
> - Spitfire Harp
> - Spitfire Steel Drums
> - Spitfire Harp Swarms
> - Metropolis ARK 1, 2
> - Albion 1, ONE, 2, 3, 5
> 
> *Spitfire *libraries use UACC, so all Kontakt instances share the same MIDI channel. *Orchestral Tools *libraries have variable MIDI channels, so the Output Mapping section of the Expression Map might need editing to match your setup.



Thanks Mihkel, I'm still using the lemur template that I tweaked based on the one you created in your tutorials, works like a charm. I was even able to adapt it work with Vienna's Synchron Strings.


----------



## agarner32

These tutorials are done really well. Thanks Mihkel.

I have a pretty big VEP/Cubase template and instruments are grouped by manufacturer. I'm now thinking it might make more sense to group them by instrument, all piccolos, all flutes all oboes, etc. I originally did it by company so I could stay with the same basic sound, but for work flow I can see by instrument could help workflow. I'm curious how others organize their instruments.


----------



## marcodistefano

Hi Mihkel, wonderful tutorials

I am encountering an issue

Everything is exactly as you said but when a track is selected I see a lot of data going on in the output, after a few seconds the layout changes showing articulations but the data does not stop and then loopmidi mutes the midi out

Any idea? Is like there is a feedback which never ends, it comes from polypressure since I tried to exclude it with transformers and issue is solved but of course layout does not change

Thanks


----------



## marcodistefano

marcodistefano said:


> Hi Mihkel, wonderful tutorials
> 
> I am encountering an issue
> 
> Everything is exactly as you said but when a track is selected I see a lot of data going on in the output, after a few seconds the layout changes showing articulations but the data does not stop and then loopmidi mutes the midi out
> 
> Any idea? Is like there is a feedback which never ends, it comes from polypressure since I tried to exclude it with transformers and issue is solved but of course layout does not change
> 
> Thanks




I solved the issue doing the following

- I don't have any local transformer on the track
- I have a transformer on the midi send that send a program change when receives a CC 127 with the function exclusive insert

It works great and is much simpler, is it really needed to have also the transformer on the track?

Marco


----------



## Mihkel Zilmer

marcodistefano said:


> I solved the issue doing the following
> 
> - I don't have any local transformer on the track
> - I have a transformer on the midi send that send a program change when receives a CC 127 with the function exclusive insert
> 
> It works great and is much simpler, is it really needed to have also the transformer on the track?
> 
> Marco



Thank you! Good to hear you got it solved! 

Indeed you can avoid the first transformer, and just use in one transformer and the Insert Exclusive function! Unfortunately I was not aware of this function at the time that I made my video and learned of it just a couple days later  Oh well..


----------



## lucor

Regarding the issue with missing midi sends on instrument tracks, I just found this which is very exciting! 

Unfortunately it isn't sold seperately from their Composer Tools Pro, but at least it seems to be almost 50% off at the moment.


----------



## pilgrim

The MK video above gave me a clue for an even simpler solution for following instrument track selection.

Put a plugin in some consistent slot. It can be bypassed, so the actual plugin doesn't matter so much as its controls. I use the built-in tremolo.

Set up a generic remote to transmit two values from the plugin on the selected track to lemur: one for the value that channel indicates on the midi track method, one for 0-127. I use rate and depth. If you have less than 127 tracks, you only need one.

Using a monitor in lemur, turn the dials of the controls you have picked until lemur is receiving the values you want. Then bypass the plugin and leave it there.

When you switch tracks, Cubase will now send the two generic remote values to lemur, after sending the track selection changed message. It always sends them in the same order, even if the values are the same between two tracks, so it's easy to handle them.

I've been using this for the past couple weeks for my one-off instruments that I want expression map control on lemur for, and it works great.

A bespoke plugin that just let you enter the 0-127 values directly would be nicer than having to dial it in on the tremolo knobs, but is not necessary.


----------



## stigc56

I have been studying the nice videos that Mihkel has made. And the I went "bananas" and set-up a kind of ArticulationExpression creater (!) in Excel, using VBA. So in Excel I manage all the different abbreviations for the articulations, and use VBA to "harvest" all the art for a specific instrument, and creating the string that goes in Lemur. This way you don't have to sit and do it all manually. Now I'm looking into a way to have excel + VBA to help me edit VST Expression Maps templates that I have created. I want to share all this, because it takes so much time. So here is a link to VST Expression maps for VSL Synchron Strings & Percussion: https://www.dropbox.com/sh/aslsurrvnm9ud4k/AAAymQpQ-885owuKmbP9JHzKa?dl=0


----------



## lucor

pilgrim said:


> The MK video above gave me a clue for an even simpler solution for following instrument track selection.
> 
> Put a plugin in some consistent slot. It can be bypassed, so the actual plugin doesn't matter so much as its controls. I use the built-in tremolo.
> 
> Set up a generic remote to transmit two values from the plugin on the selected track to lemur: one for the value that channel indicates on the midi track method, one for 0-127. I use rate and depth. If you have less than 127 tracks, you only need one.
> 
> Using a monitor in lemur, turn the dials of the controls you have picked until lemur is receiving the values you want. Then bypass the plugin and leave it there.
> 
> When you switch tracks, Cubase will now send the two generic remote values to lemur, after sending the track selection changed message. It always sends them in the same order, even if the values are the same between two tracks, so it's easy to handle them.
> 
> I've been using this for the past couple weeks for my one-off instruments that I want expression map control on lemur for, and it works great.
> 
> A bespoke plugin that just let you enter the 0-127 values directly would be nicer than having to dial it in on the tremolo knobs, but is not necessary.


That sounds great! Could you please elaborate how to correctly set up the Generic remote (and/or post a screenshot of it)? I tried to follow, but I'm not getting it right.


----------



## pilgrim

lucor said:


> That sounds great! Could you please elaborate how to correctly set up the Generic remote (and/or post a screenshot of it)? I tried to follow, but I'm not getting it right.



Sure! Pasted below. You should be able to save as xml and import it as a generic remote to see my setup. This sends the rate and depth knobs from a tremolo plugin (the one under modulation -> tremolo) in the first insert slot to CC123 and CC124 on channel 16 of the generic remote. You should see midi traffic right away while you turn the knobs in the plugin ui for the selected track.

Edit: pasting here didn't work. See here:


----------



## Mihkel Zilmer

pilgrim said:


> The MK video above gave me a clue for an even simpler solution for following instrument track selection.
> 
> Put a plugin in some consistent slot. It can be bypassed, so the actual plugin doesn't matter so much as its controls. I use the built-in tremolo.
> 
> Set up a generic remote to transmit two values from the plugin on the selected track to lemur: one for the value that channel indicates on the midi track method, one for 0-127. I use rate and depth. If you have less than 127 tracks, you only need one.
> 
> Using a monitor in lemur, turn the dials of the controls you have picked until lemur is receiving the values you want. Then bypass the plugin and leave it there.
> 
> When you switch tracks, Cubase will now send the two generic remote values to lemur, after sending the track selection changed message. It always sends them in the same order, even if the values are the same between two tracks, so it's easy to handle them.
> 
> I've been using this for the past couple weeks for my one-off instruments that I want expression map control on lemur for, and it works great.
> 
> A bespoke plugin that just let you enter the 0-127 values directly would be nicer than having to dial it in on the tremolo knobs, but is not necessary.



Thanks for sharing this! I'm going to give it a try!




stigc56 said:


> I have been studying the nice videos that Mihkel has made. And the I went "bananas" and set-up a kind of ArticulationExpression creater (!) in Excel, using VBA. So in Excel I manage all the different abbreviations for the articulations, and use VBA to "harvest" all the art for a specific instrument, and creating the string that goes in Lemur. This way you don't have to sit and do it all manually. Now I'm looking into a way to have excel + VBA to help me edit VST Expression Maps templates that I have created. I want to share all this, because it takes so much time. So here is a link to VST Expression maps for VSL Synchron Strings & Percussion: https://www.dropbox.com/sh/aslsurrvnm9ud4k/AAAymQpQ-885owuKmbP9JHzKa?dl=0



Thank you Stig! Sounds like a great method for making the process quicker and more streamlined!


----------



## marcodistefano

Mihkel Zilmer said:


> Thanks for sharing this! I'm going to give it a try!
> 
> 
> 
> 
> Thank you Stig! Sounds like a great method for making the process quicker and more streamlined!



Hi Mihkel,
Just wanted you to know that I recently published a video of my orchestral template where I built upon your lemur project.
I added credit to your work, which was very helpful to understand how to have automatic articulations. I changed few things and adapted to my libraries.
I also made a few corrections on the expression maps, some of them were not correctly mapped to UACC and added other spitfire libraries (LCO, BHT, Swarm)
Here is the link to the post
https://vi-control.net/community/th...-cubase-lemur-vepro-and-spitfire-audio.68852/

Thanks again!
Marco


----------



## lucor

So, I finally purchased Composer Tools Pro by @MIDI Kinetics, admittedly mainly for the Recall Plugin. I appreciate all the work that went into the Lemur Project itself, but unfortunately it's just too much for me. All I want is a big table of keyswitches and some faders and buttons that switch on track selection, just like in @Mihkel Zilmer's version. But I really need my instrument tracks. 

However I have some trouble to make it work with Mihkel's template. If I understand correctly, the Recall plugin works like this: selecting a track in Cubase sends CC126 to Lemur, which in return sends CC127 back to Cubase (same as before), and after receiving this CC127 another Generic Remote will trigger the Recall plugin, which then sends out a specific Program Change on a specific Midi Channel back to Lemur.
Now this is all very much like Mihkel's solution, except that he uses Poly Pressure instead of Program Changes. Is there an easy way to adjust Mihkel's file so that it works with Program Changes? I tried just switching the 'execution' dropdown menu for the MIDI_IN script from 'A0 - Key Pressure' to 'C0 - Program Change' but no luck.
Also, how can I monitor if Lemur actually receives those Program Changes (because I'm not sure it does)? I know there's a monitor object, but I have no clue how to use it for a situation like this.
I feel the documentation for Lemur is pretty incomplete, and the forums are completely gone, so I'm pretty much stuck and thankful for every bit of help!


----------



## Mihkel Zilmer

lucor said:


> But I really need my instrument tracks.



My method only works with MIDI tracks I'm afraid, as it relies on a MIDI send...



lucor said:


> I tried just switching the 'execution' dropdown menu for the MIDI_IN script from 'A0 - Key Pressure' to 'C0 - Program Change' but no luck.



This should be all you need to do to switch the type of incoming message.. 



lucor said:


> Also, how can I monitor if Lemur actually receives those Program Changes (because I'm not sure it does)? I know there's a monitor object, but I have no clue how to use it for a situation like this.



Insert a Monitor object somewhere. Then edit the MIDI_IN script and add this line:
Monitor.value=MIDI_ARGS;

The value field of the Monitor will now display the incoming MIDI signal detected by the MIDI_IN script whenever a new incoming signal is detected. It will display three numbers separated by commas: {'CC number','value','channel number - 1'}

Hope this helps!


----------



## husselblum

pilgrim said:


> Sure! Pasted below. You should be able to save as xml and import it as a generic remote to see my setup. This sends the rate and depth knobs from a tremolo plugin (the one under modulation -> tremolo) in the first insert slot to CC123 and CC124 on channel 16 of the generic remote. You should see midi traffic right away while you turn the knobs in the plugin ui for the selected track.
> 
> Edit: pasting here didn't work. See here:




I can't really get my head around it. Does this clever workaround with the Tremolo VST in the mixer work with Mihkels fantastic Lemur Template? I get his inital template to work but since I'm using instrument tracks it doesn't really help me out.
I get the values on the Monitor in Lemur but don't really know what they respond to. I thought the SelectBank and SelectTrack corrspond to the articulation changes in Mihkels template, eg. Bank1 for HiWoodWinds and Track 20 for Spitfire Oboe or something like that. But what are CC123 and CC124 then for? Are those the CCs Mihkel uses 126 for, or ... ? Unfortunately I'm a noob and at my wits end, would really appreciate if someone could help me out.


----------



## husselblum

husselblum said:


> I can't really get my head around it. Does this clever workaround with the Tremolo VST in the mixer work with Mihkels fantastic Lemur Template? I get his inital template to work but since I'm using instrument tracks it doesn't really help me out.
> I get the values on the Monitor in Lemur but don't really know what they respond to. I thought the SelectBank and SelectTrack corrspond to the articulation changes in Mihkels template, eg. Bank1 for HiWoodWinds and Track 20 for Spitfire Oboe or something like that. But what are CC123 and CC124 then for? Are those the CCs Mihkel uses 126 for, or ... ? Unfortunately I'm a noob and at my wits end, would really appreciate if someone could help me out.



Nevermind, got it working. Thanks a lot both pilgrim and Mihkel!


----------



## Solara_Audio

Dear @Mihkel Zilmer, your tutorials are among the most helpful videos on the topic I've seen in a while. Thank you very much for sharing your knowledge in such a clear and structured way. I've learned a lot!


----------



## mac88104

OMG this is the thread of the century here ! Guys you rocks ! Thanks


----------



## jononotbono

I really want to start using Lemur but I have a 27inch Touch screen and just don't know how to get it to work using a dedicated PC. I have asked before but I'm not sure what "Android Box" to buy, or even how one works. These tutorials are great!


----------



## mac88104

I have bought my Android TV Box 2 years ago on aliexpress. It's a noname but it works well with my Acer T232HL, I just have to start the box prior to the touchscreen otherwise the screen does not work in touch mode.


----------



## jononotbono

mac88104 said:


> I have bought my Android TV Box 2 years ago on aliexpress. It's a noname but it works well with my Acer T232HL, I just have to start the box prior to the touchscreen otherwise the screen does not work in touch mode.



Is the Android TV box basically a computer? I have a dedicated PC someone gave me (it’s very basic) with the intention of using it for a Touch Screen Computer. I’m guessing the Android TV box is used because you download Apps and Lemur is an App? Using Lemur on a PC would be brilliant but I don’t know if that’s possible?


----------



## mac88104

The Android TV box is basically an Android phone. I bought it only for Lemur. I guess you can find an Android emulator for PC.


----------



## mac88104

https://www.androidauthority.com/best-android-emulators-for-pc-655308/

Most are free


----------



## jononotbono

mac88104 said:


> https://www.androidauthority.com/best-android-emulators-for-pc-655308/
> 
> Most are free



Thanks. I’m going to try an emulator and see how it goes!


----------



## mac88104

You are welcome


----------



## jononotbono

mac88104 said:


> You are welcome



Just tried a free emulator, bought Lemur through Google Play and it works. Now to set up an Adhoc Connection and start creating my ultimate Touch Screen layouts! Thanks again. So happy it works without having to buy any more hardware!


----------



## jononotbono

Mihkel Zilmer said:


> As some of you know by now, I've been working on a series of videos that explain my approach to templates, and look at how I go about using Cubase, Lemur and VEPro. These videos have been turning up on my YouTube channel very-very slowly over the past few months, as I've not had much time to produce them over the summer. However, in the next couple of weeks I'm aiming to finish the entire series - there are 10 videos planned in total.
> 
> *Disclaimer: Ultimately, workflow preferences are highly personal. I'm not advocating the "best" approach here, just some methods that I personally consider to be very effective. *I hope that my approach can provide other people with a starting point for designing their own templates. Where possible, I also talk about alternatives to my choices.
> 
> Thanks for watching!
> 
> You can download my Lemur project here (mk19, Nov 2017):
> https://drive.google.com/open?id=1fE9M8tiNLK-nDF5B24DzubUTZ97jR80E
> Included articulations lists: Spitfire Symphonic Strings, Spitfire Chamber Strings, Cinematic Studio Strings, Berlin Strings Main Library, Berlin Strings Exp. D, Spitfire Symphonic Brass, Berlin Brass Main library, Spitfire BML Woodwinds (only partially updated for SSWW), Berlin Woodwinds + Exp. A, B, C, Spitfire Percussion, Berlin Percussion Main Library + Exp. A, all of the Spitfire Albion libraries, Metropolis ARK 1 and a few others.
> 
> You can download my Expression Maps here (mk21, Jan 2018):
> https://drive.google.com/open?id=1kPHuqNy1wcLVOw_9_EkFsMxw56Y5cpti
> While most of these use the most recent version of these libraries currently available, I think there might be a few in there that I've forgotten to update, so they might be missing some patches. *Spitfire *libraries use UACC, so all Kontakt instances share the same MIDI channel. *Orchestral Tools *libraries have variable MIDI channels, so the Output Mapping section of the Expression Map might need editing to match your setup. For a list of the libraries included check post #43:
> Template Tutorial Series [Expression Maps added]
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ​




Thanks so much for this! I'm going to give this a go and see what it's like!


----------



## ThomasNL

pilgrim said:


> Sure! Pasted below. You should be able to save as xml and import it as a generic remote to see my setup. This sends the rate and depth knobs from a tremolo plugin (the one under modulation -> tremolo) in the first insert slot to CC123 and CC124 on channel 16 of the generic remote. You should see midi traffic right away while you turn the knobs in the plugin ui for the selected track.
> 
> Edit: pasting here didn't work. See here:




Hey man,

Smart move! Got it working up until getting values of CC123 and CC124 in Lemur but i'm stuck on how to script it so you can store both CC values in variables. Because when setting the script to ON MIDI and then 123 to 124 it only picks those values of the latest incoming message. What script are you using to send it to the right articulation set?

Thanks in advance!


----------



## Mihkel Zilmer

ThomasNL said:


> Hey man,
> 
> Smart move! Got it working up until getting values of CC123 and CC124 in Lemur but i'm stuck on how to script it so you can store both CC values in variables. Because when setting the script to ON MIDI and then 123 to 124 it only picks those values of the latest incoming message. What script are you using to send it to the right articulation set?
> 
> Thanks in advance!



For storing CC values:

- Make two new expressions, these can NOT be in the top level because of how setexpression works.
In my example, I have created them in the Bank container and called them cc123 and cc124.
- Make 2 new scripts in the top level of the project
- Set one of them to Execute - On MIDI - Control Change - 123 to 123
- Set the other to Execute - On MIDI - Control Change - 124 to 124
- The code for your new scripts will be, respectively:
setexpression(Bank,'cc123',MIDI_ARGS[1]);
and
setexpression(Bank,'cc124',MIDI_ARGS[1]);

- Now all you have to do is to edit the original MIDI_IN script:
- Change it to Execute on Control Change.
- Change the second and third line to read:
decl y=Bank.cc123;
decl chn=Bank.cc124;

I've added a quick screenshot here showing most of the relevant changes.

Hope this helps!


----------



## Juanma48

Mihkel Zilmer said:


> As some of you know by now, I've been working on a series of videos that explain my approach to templates, and look at how I go about using Cubase, Lemur and VEPro. These videos have been turning up on my YouTube channel very-very slowly over the past few months, as I've not had much time to produce them over the summer. However, in the next couple of weeks I'm aiming to finish the entire series - there are 10 videos planned in total.
> 
> *Disclaimer: Ultimately, workflow preferences are highly personal. I'm not advocating the "best" approach here, just some methods that I personally consider to be very effective. *I hope that my approach can provide other people with a starting point for designing their own templates. Where possible, I also talk about alternatives to my choices.
> 
> Thanks for watching!
> 
> You can download my Lemur project here (mk19, Nov 2017):
> https://drive.google.com/open?id=1fE9M8tiNLK-nDF5B24DzubUTZ97jR80E
> Included articulations lists: Spitfire Symphonic Strings, Spitfire Chamber Strings, Cinematic Studio Strings, Berlin Strings Main Library, Berlin Strings Exp. D, Spitfire Symphonic Brass, Berlin Brass Main library, Spitfire BML Woodwinds (only partially updated for SSWW), Berlin Woodwinds + Exp. A, B, C, Spitfire Percussion, Berlin Percussion Main Library + Exp. A, all of the Spitfire Albion libraries, Metropolis ARK 1 and a few others.
> 
> You can download my Expression Maps here (mk21, Jan 2018):
> https://drive.google.com/open?id=1kPHuqNy1wcLVOw_9_EkFsMxw56Y5cpti
> While most of these use the most recent version of these libraries currently available, I think there might be a few in there that I've forgotten to update, so they might be missing some patches. *Spitfire *libraries use UACC, so all Kontakt instances share the same MIDI channel. *Orchestral Tools *libraries have variable MIDI channels, so the Output Mapping section of the Expression Map might need editing to match your setup. For a list of the libraries included check post #43:
> Template Tutorial Series [Expression Maps added]
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ​



Hello Michael.After so long, I do not know if you will see this message.I have learned a lot thanks to your excellent tutorials, but I have some questions, please:I downloaded your Lemur project and tried to understand how to adapt it to my template.The list of expression maps that you download from your links have an .xml extension and do not correspond to the expression extension maps of cubase that ends in .expressionmap.Are these really expresion maps for cubase?Or something I do not understand?So with the Lemur template, you do not have to do anything to make it work? , Just indicate my midi ports route?And in cubase, what should I do?If this is very complicated ......, could you please indicate a way to configure buttons in Lemur to quickly change instrument articulation in kontakt?It is what I would be most interested in, being able to change from Lemur instead of changing joints through Keytswiches from my midi controller keyboard.Thank you very much for your videos and for teaching us all this.


----------



## Mihkel Zilmer

Juanma48 said:


> Hello Michael.After so long, I do not know if you will see this message.I have learned a lot thanks to your excellent tutorials, but I have some questions, please:I downloaded your Lemur project and tried to understand how to adapt it to my template.The list of expression maps that you download from your links have an .xml extension and do not correspond to the expression extension maps of cubase that ends in .expressionmap.Are these really expresion maps for cubase?Or something I do not understand?So with the Lemur template, you do not have to do anything to make it work? , Just indicate my midi ports route?And in cubase, what should I do?If this is very complicated ......, could you please indicate a way to configure buttons in Lemur to quickly change instrument articulation in kontakt?It is what I would be most interested in, being able to change from Lemur instead of changing joints through Keytswiches from my midi controller keyboard.Thank you very much for your videos and for teaching us all this.



Sorry for my slow reply, just responded to you in PM.


----------



## Tisabel

Mihkel Zilmer said:


> Here's a link to my Expression Maps. While most of these use the most recent version of these libraries currently available, I think there might be a few in there that I've forgotten to update, so they might be missing some patches.
> 
> Woodwinds:
> - Spitfire Symphonic Woodwinds
> - Berlin Woodwinds Legacy
> - Berlin Woodwinds Exp. A, B, C
> - Berlin Woodwinds Revive
> 
> Brass:
> - Spitfire Symphonic Brass
> - Berlin Brass
> 
> Percussion:
> - Spitfire Percussion (only mallets & timps)
> - Berlin Percussion
> - Spitfire Ricotti Mallets (missing xylo)
> 
> Strings:
> - Spitfire Symphonic Strings
> - Spitfire Chamber Strings
> - Berlin Strings
> - Berlin Strings Exp. D
> - Cinematic Studio Strings
> 
> Miscellaneous:
> - Spitfire Harp
> - Spitfire Steel Drums
> - Spitfire Harp Swarms
> - Metropolis ARK 1, 2
> - Albion 1, ONE, 2, 3, 5
> 
> *Spitfire *libraries use UACC, so all Kontakt instances share the same MIDI channel. *Orchestral Tools *libraries have variable MIDI channels, so the Output Mapping section of the Expression Map might need editing to match your setup.
> 
> 
> [URL='https://drive.google.com/open?id=1kPHuqNy1wcLVOw_9_EkFsMxw56Y5cpti'][/URL]



thanks as well


----------

