Live Enhancement Suite: Using OCR and Macro to Speed Up Menu Entries

I’ve been an Ableton Live user for about six months and have viewed countless videos and tutorials. I’ve been using the colored Collections feature in Live to organize my plug-ins, but with a maximum of just seven groups, it’s too darn limited to be truly useful. I’ve seen various tutorials on physically moving VST DLL files, using shortcuts, etc., but they seemed a bit heavy handed and high maintenance.

So, out of the blue yesterday, I became aware of Live Enhancement Suite (LES), a free utility that adds many great features to Live. One feature in particular caught my eye and that was the ability to create a pop-up menu to organize and add plug-ins to your session. Unfortunately, there isn’t a nice GUI for creating the menu and you must manually edit a text file. Not a fun task with a lot of plug-ins.

After thinking about it for a bit, I came up with a solution of doing a screenshot of my collections, using optical character recognition (OCR) to convert them to text, and then writing a macro to create the LES menu items in the text file. Here are the steps. (I found free tools to do everything on Windows. You will need to find equivalents for Mac. The steps should be similar.)

Tools Needed:

  1. Screen capture software. I used PicPick (free) to do the screengrab and image scaling.
  2. Macro utility. I used AutoHotKey (free). I don’t know a Mac equivalent program. Maybe Keyboard Maestro (paid)?
  3. Optical Character Recognition (OCR). I used Adobe Acrobat (which required me to create a PDF of the image), but there are plenty of free apps and online services you can try. Online OCR (free) worked fine using an image file.

1. Take a screenshot of the plug-in names.

Ableton Live UI. Screenshot area highlighted
Screenshot

2. Next, scale up the image 300%.

3. Perform OCR on the screenshot. See “Tools Needed” section above for ways to accomplish.

Here’s the text after OCR. Note that there are some errors, but not that bad of a job, eh?!

4. Clean up the text. Make sure to delete spaces at the end of the lines, if any. Here’s the fixed up text.

5. Now, decide how you want to organize your plug-ins. Below is an example. Note that “Guitar” through “Other” are subcategories of the category “Effects”. Incidentally, subcategories of subcategories are allowed, but that might make your menu very cumbersome to traverse.

-Effects

-Guitar

-Modulation

-Pitch

-Other

-Multi-Effects

-Drums

Here, I’ve organized the plug-ins and added the category and subcategory names.

6. LES syntax and rules:

  • If a category has subcategories, it must have at least one entry besides the subcategories.
  • A semi-colon (;) beginning a line starts a comment.
  • A slash (/) beginning a line declares what follows to be a root category name.
  • A double-slash (//) beginning a line declares what follows to be a subcategory name.
  • Two dashes (–) adds a divider line.
  • Two periods (..) moves you up in the hierarchy. What this means is, if you have been adding things to a subcategory, but now want something added to the category “above” it, add .. You’ll need this when using –. This will become clearer in the example below.
  • Make sure you add “End” at the bottom of your file.

7. Below is our menu file so far:

1. This is a category.
2. This is a comment.
3. Since you have to have at least one entry (subcategories don’t count), I’ve moved Melodyne up. I’ve added a ` character (below ~ (tilde) on your keyboard) to the plug-in name to differentiate it from a subcategory name. You can use any character. Note that adding the character is optional and not required.
4. This is a subcategory.
5. At this point in the file, we are at the //Other subcategory level. The first .. moves us up to the /Effects category level. The second .. moves us up to the main level. This is important for the next step.
6. This adds a divider line at the main level. If you didn’t add both .. the line would appear after Morphoder. If you only had one .. the line would be after Melodyne.
7. This is a new category.

8. Plug-in entry syntax:

Title
Search query text

Usually, you’ll want the title the same or close to the plug-in name, but it doesn’t have to be. You might want to add a tip or description. For example:

Nectar 3 (for vocals)
“Nectar 3” vst

See the Troubleshooting section at the end for more information on the Search query text line.

9. Obviously, you could just edit each plug-in text to the proper syntax. However, if you have tons of plug-ins, that could take a long time and be very prone to errors. Macros to the rescue! Below is an AutoHotKey macro. The cursor needs to be at the beginning of the plug-in name before executing the macro.

; ^ = Control, + = Shift
 
^+8:: ;Ctrl Shift 8
; PLACE CURSOR AT BEGINNING OF COMMAND TEXT
Send, +{End}
Send, ^c
Send, {Right}{Enter}
Send, "^v
Send, " vst
Send, {Enter}{Down}
return

If you are trying to translate the macro to another utility, here is the meat of the macro:

Send, +{End} Press Shift + End. This selects the entire line (i.e., the plug-in name).
Send, ^c Press Control + C. Copy the selected text.
Send, {Right}{Enter} Press Right Arrow and then Enter. This unselects the text and inserts a new row.
Send, “^v Add a quote (“) and then press Control + V to paste the copied text on the new row.
Send, ” vst Add a quote (“) followed by a space and then “vst”.
Send, {Enter}{Down} Press Enter and then the Down Arrow.

 

10. Below is the result after using the macro on the Melodyne line. There will be some clean up necessary to edit titles, remove extra blank rows (not required), etc. Make sure to delete the ` in the plug-in name, if you added it for the title.

Below is the final menuconfig.ini file with various edits to tidy things up.

And finally, double-clicking the right mouse button in Ableton Live yields our new menu! Notice how the ` character helps to differentiate the plug-in Melodyne from subcategory entries, like “Guitar”, “Modulation”, etc. Also, notice the divider line between “Effects” and “Multi-Effects” on the main menu.

Troubleshooting

The most common error is misspelling. OCR has a habit of mistaking a lowercase L for a number 1 (e.g., “Me1odyne” vs “Melodyne”). Sometimes it adds a space where there isn’t one or doesn’t include one where it should. Dashes in names can throw it off as well. These type of OCR errors are really easy to miss when you are scanning through a long list. Of course, it’s not a deal breaker if you overlook something. You won’t know it until you try to pick that particular plug-in. It shouldn’t have an effect on the other plug-in entries.

Search Query Text

The second line in each LES menu entry is the search query text. It’s essentially what you would type into Live’s Search field with All results selected under Categories on the left. Sometimes, if the wrong plug-in gets loaded using LES, it may take some trial and error to get the right query text. Just use the actual Search query field in Live to find the right text to use. For example, “transient shaper” vst yielded three plug-ins for me.

LES always chooses the top item. So, if I wanted the second one above, “Transient Shaper,” I need to modify the search query. Keep in mind that even though Live only shows the plug-in name in the results list, you can include parts of the path, if needed. Also, the order of the search terms doesn’t matter.

Since this is a VST3 plug-in, I know it’s in a folder called “Schaack Audio Technologies”.

As such, I can change my query like this and only get the plug-in I want to appear:

The LES menu entry might would look like this:

TS-1 Transient Shaper
schaack “transient shaper” vst

VST2 vs VST3

In the example menu above, vst was added at the end of the search queries. This will find plug-in in either the VST or VST3 path. If we had used quotes, like “vst”, VST3 plug-ins would not be found since it would look for the full word vst. So, if you have VST2 and VST3 versions of the same plug-in, you’ll want to use vst3 instead of just vst.

Since I have a lot of plug-ins and most are VST2, I just did everything adding vst. Then, I selected Plug-ins on the left (you need to do this to see the path) and searched for each plug-in to see if it was in the VST or VST3 path. If VST3, I added the 3 to the menu entry. Below, I have a VST2 and VST3 version of the plug-in MISHBY.

My LES menu entry looks like:

MISHBY (Tape Abomination)
“MISHBY” vst3

Quotation Marks

Quotes around a word or phrase means the results will only include items with that exact word or phrase. So, comp and “comp” will yield different results. By itself, comp would return the compressor, as well as any other thing in Live that had those four letter. (Note that if you don’t see the term in a result, it is part of the path which isn’t shown.)

However, “comp” would return anything with only that word. It couldn’t be part of a word.

Ableton Native Plug-ins

Since Ableton native plug-ins don’t have “vst” in their path, make sure you don’t include that search term.  They should look like this:

Drum Rack
Drum Rack

Utility
Utility

Reverb
“Reverb”

Max for Live

I’ve found Max for Live files (.amxd) are sometimes problematic. Try leaving off the .amxd extension.

Chain Shaper (M4L)
“Chain Shaper V3.1b”

VST3 Plug-ins

While Live groups VST2 plug-ins by folder, it curiously groups VST3 files by vendor. If you haven’t already color-tagged them for Collections, I would go ahead and temporarily tag them to a free Collection group to create a list you can screenshot for OCR.

Other Thoughts

To help break up the menu, add some comments with divider lines. For example:

;=========================================
/Category Name
`Cool Plug-in for drums
"CoolDLL" vst
 
;__________________________________
//Subcategory Name
Yet Another Reverb That I Don't Use
"YAR" vst

Conclusion

Hopefully, you can follow the above steps. Remember too that LES does much more than this, including:

  • Closing all plug-in windows
  • Clearing a track
  • Simplified note drawing
  • Simplified panning
  • Clip coloring on track

Feel free to contact me if you have any questions or comments.

If you found this information helpful, please considering donating to help me keep this blog alive. Any amount would be appreciated. Thanks!

Leave a Reply