Saving VST presets to browse in Push

Come here to discuss Push with other users.
For tech support, please head to http://www.ableton.com/help
nori.lam
Posts: 71
Joined: Tue Dec 16, 2014 9:53 am

Saving VST presets to browse in Push

Post by nori.lam » Fri Jan 30, 2015 8:04 pm

Hi everyone,

So I have found a great way to resave all my VST presets so that I can browse them in Push and thought I would share. I got the inspiration from this guy Andrew Graham.
https://www.youtube.com/watch?v=v9MRT78 ... freload=10

Since you all probably know, the only way to save a preset that is browsable in Push is to map them manually. For example this video is a great demo.

https://www.youtube.com/watch?v=1FuwJQu ... freload=10

Now the trick is to do this for every single preset. Instead of doing it manually, you can use a program called Sikuli to do that. It is designed to do repetitive mouse clicks and typing and is perfect for saving and renaming VST presets in a Live device :)

FYI:
-If you know a bit of Python, it will help you out lots.
-The toughest thing is to get the preset names for your VST.
-Have a bit of patience, as you may take a few rounds to get all your presets saved

Software needed:
http://www.sikuli.org
https://www.jetbrains.com/pycharm/download/ (recommended as this will make it easier to write some python code)

How Sikuli works:
Install and create a new script. The language syntax is python, so it definitely helps with some python knowledge.
Google is your friend if you dont have any python experience.

To get Sikuli to mouse click on an specific area, you can type the following

Code: Select all

click(Region(616,540,8,9))
The 'Region(616,540,8,9)' is a region on my screen. you can set this by hitting the 'create region' button at the top of
the menu bar.

To have Sikuli type some commands like CMD-r to rename a Live device you can add this

Code: Select all

type("r", Key.CMD)
To hit the 'Enter' key you need to send a keyup and keydown command.

Code: Select all

keyDown(Key.ENTER)
keyUp(Key.ENTER)

Putting it all together.

First steps - setup GUI window locations
Open your VST of choice and set up the mappings in Push (see first linked video on how to do this).

Now drag your VST window to a spot on your screen (use the exact same spot because we will setup Sikuli to mouse click 'open' vst window). On my mac, I use a program called bettersnap tool to set the VST window in the top right corner. This way if I have to rerun Sikuli, I have the exact same location.

Do the same for Live's main GUI. So it will always be in the same spot.
Using the Sikuli command click(Region()) set it to click on Lives main window.

Setup all the 'mouse clicks' that you want Sikuli to do, for example:

1. Highlight vst window
2. change to next preset
3. minimize vst window
4. Highlight live instrument device
5. CMD-R to allow renaming of instrument
6. type in present name (need to generate this before typing it in)
7. save preset
8. open VST window

The biggest challenge I found is generating the name for the presets. For example, some vst's will allow you to rename
an existing preset, this way you can select the name and copy it, then type it in with Sikuli.

Others dont allow that and then this is where having some programming skills comes in handy.
You can use python to search the VST preset directory and generate a list of names.

I have included my Script for AAS player. You can get a free library called Swatches and test it out yourself.
They have all the preset names listed on their website so I used that and saved it as a text file used in my script.
Just be sure that you set the click regions to match your screen resolution and of course the
root pathways.

To use the script just copy and paste it into a new script in Sikuli.

Hope this helps.

Nori


Sikuli script
----------------------------------------------

Code: Select all

# description
#    *Generates AAS Player presets for Push 
#    *resaves all presets as instrument racks
# 
# Does this:
#    *opens txt file with presets (full path)
#    *reads in presents one at a time 
#    *creates Live Rack (Live saves in generic folder)
#
# Notes:
#    *SET AAS PLAYER TO BANK-1, PRESET-1
#    * START WITH AAS PLAYER MINIMIZED
#
#    *keyboard set to USA, otherwise, strange characters show up
#    *After script is run, run matlab script to move all presets to subfolders
#        *Python's mkdir is a PITA
#    *screen res: stock laptop screen 
#    *Live is snapped to right half of screen
#    *Drag AAS Player to bottom left corner 
#
# osx 10.9.5
# Dec 20, 2014

##---------------------------------------------------------------------
#read in files, using python language
##---------------------------------------------------------------------
import os, errno, shutil, glob

# input outpt filenames
ext = '.acp' # alchemy preset
ext_rack = '.adg' #Live rack

live_instr_root = '/Volumes/data/production/Ableton/User Library/Presets/Instruments/Instrument Rack/'
root = '/Volumes/data/downloads/music/Ableton/Push/push_batch_vst_preset_saving/vst_presets/AAS_presets/'

# change below to different files, then change preset bank in AAS Player gui
preset_root_list = root + '3_Swatches presets.txt'


# focus Live
click(Region(857,23,209,19))
                
##---------------------------------------------------------------------
# read in preset names and subfolders
##---------------------------------------------------------------------
f = open(preset_root_list)
preset_list = [line.strip() for line in open(preset_root_list)]
f.close()

for preset_name in preset_list:
    # filter out category 
    if preset_name.find('zzzzz') == 0:
        categ = preset_name.replace('zzzzz','')
        #print categ
    else:
        ##---------------------------------------------------------------------
        # run sikuli code to generate live presets
        #    *Live is snapped to right half of screen
        #    *Drag AAS to bottom left corner 
        ##---------------------------------------------------------------------                
        
        ##---------------------------------------------------------------------
        # focus instrument rack, rename to preset and save
        ##---------------------------------------------------------------------
        
        click(Region(616,540,8,9))
        click(Region(616,540,8,9))
        type("r", Key.CMD)
        # print preset_name
        type(preset_name)
        
        # hit rack save button
        click(Region(857,541,7,5))
        keyDown(Key.ENTER)
        keyUp(Key.ENTER)
        
        ##---------------------------------------------------------------------
        # change preset
        ##---------------------------------------------------------------------
        # open AAS on Live rack
        click(Region(910,540,7,6))
        
        # click AAS 'next preset' ONLY 1 TIME
        click(Region(1301,282,9,9))

        # close AAS window
        click(Region(985,141,7,3))
        

Swatches preset. Copy and paste this into a text file and make sure the name matches that in the above script.

Code: Select all

zzzzz 30.8676?Hz
Fat 48
Rectangle Saws
S&H Looper
Three O Three
Obesitas
Profiler
Short Decay
Talking Bass
zzzzz Analog Essentials 
Melody Arp
Romantic Arp
Disto TB
Q Bass
Epic Pad
Phaser Pad
Random Loop
Rave Solo
zzzzz Angelicals 
Carpetry
Collateral
Fast Forward
Intro Sweep
Lovely Tines
Spiral
Sword of Iron
The Deep Edges
zzzzz Cardinals 
Oak Percussion
Doom Drum (var)
Wood Meets Metal Split
Glass Kalimba
Alien Random Syncer
Jupiter Swamp
Ominous Riser
New Planet
zzzzz Cinémathèque 
Jade
Lumber
Slategrey
Skyblue
Lilac
Nestre
Medium
Rosso
zzzzz Entangled Species 
Corrugated Soundboard
Drone Ensembler
Effervescent Beings
End Titles
Malaysian Sequence
Migi
Q-Pad
TD 75
zzzzz Frontier 
Asto
Glouse
Kroton
Odysseus
Organic
Theology
Electral
Cello
zzzzz Harmonic Geometry 
Solarize Pad
Motors On Strings
Crystallize
Riddle Echo
Thunder Drum
Tuskin Drum
Golden
String Tiles
zzzzz Journeys 
Byrd Watcher
Flutery Lutey
Ossuary
Persnickety Piezo
Seasick Santur
Suspension Bridge
Triad Fantasy
Vampire Planet
zzzzz KitNetix 
Hardwood Resodrums
Klangathon
Wind Gong
Gong Tree Scape
Water Chimescape
Cascades
Chimes from the other side
Marimba Organ
zzzzz Microsound Textures 
Cave Drips
Marbles Around
Water Tines
Underwater Pad
Epic Drums
Tundra
Scratch The Pipes
PulseMod Bass
zzzzz Plastic Pop 
5th Avenue
Attack of the Eighties
Chord Stab
Deerone
Digital Plastic
Digital Wired
Mayda
Orchestral Hit 01
zzzzz Reverence 
Krystal Castle
Seven C
Flangalang
MiddleCAFE
Tech Know 60
FlyingOverhead
Carolina Skies
Something Lurks II
zzzzz Sounds from BLKRTZ 
Broken Leslie
Detroit Classic
Driven Bubblers
Far East Radio
HAM Radio Defect
Short Circuit
Siren Bomb
Soft Moving Dub
zzzzz Starlight 
Crimson Touch
My Treat
Balcony
Burning Eden
Goddess' Bell
Liquid Dust
Next Outro
Solar Repetition
zzzzz Ultra FX 
7 am
Bonus
Car Alarm
Down the Memory Lane
Helisynth
Mark Tree Coin
Spiral Upward
Step 2 Down
Edit - changed subject title to better describe topic
Last edited by nori.lam on Sat Jan 31, 2015 9:00 am, edited 1 time in total.
Live 9.7
Push 2
OSX El Cap

nightscope
Posts: 100
Joined: Wed Dec 26, 2012 6:20 pm

Re: Building custom VST Push mappings

Post by nightscope » Sat Jan 31, 2015 5:04 am

Hmmm, how very interesting. I've a little macro program called Macro Express which does similar sort of window positioning, mouse hunting and wotnots. I shall be having a good rummage around with this paradigm.

Thanks for posting, I hadn't thought of using a macro program to automate things like this.

nori.lam
Posts: 71
Joined: Tue Dec 16, 2014 9:53 am

Re: Building custom VST Push mappings

Post by nori.lam » Sat Jan 31, 2015 8:53 am

Sweet. Let us know how your macro program works.

What is nice about Sikuli is that you can generate the preset names using python code.
VST's like Synthmaster and AAS player dont have any way get at the preset name from the GUI window, so I had to be creative in getting those names.

But whatever works right :)
Live 9.7
Push 2
OSX El Cap

login
Posts: 1821
Joined: Sat Jul 16, 2011 12:41 am

Re: Saving VST presets to browse in Push

Post by login » Sat Jan 31, 2015 9:08 pm

Quite interesting but a little too much hassle.

i just prefer using a M4L device for sending MIDI program change to plug ins to surf presets.

snappyass
Posts: 60
Joined: Sat Jan 04, 2014 1:40 pm

Re: Saving VST presets to browse in Push

Post by snappyass » Sat Jan 31, 2015 9:57 pm

elaborate

dna598
Posts: 855
Joined: Tue Sep 23, 2008 3:42 am

Re: Saving VST presets to browse in Push

Post by dna598 » Sun Feb 01, 2015 9:19 pm

props to the users that bring these features, but this is getting ridiculous. :x

I wont be trying this solutiuon out of principle and the practical time constraints involved.

If i was ableton, I would be red faced with embarrassment at the lack of coding prowess on display here. More words that come to mind are utter stagnation and very poor show.

:arrow:

edit-sorry for the rant, again props to OP.
ctrl + left/right = select transient

ctrl + shift + left/right = select between transients

ctrl + space = play selection

lovelight
Posts: 242
Joined: Thu Oct 13, 2005 9:01 pm
Contact:

Re: Saving VST presets to browse in Push

Post by lovelight » Sun Feb 08, 2015 8:16 pm

vst presets racks i made for: (you need the vst ofcause, so i put links to them so you can try the demo versions, if you dont have them)

RAW, http://www.robpapen.com/raw-demo.html

Gladiator, https://tone2.com/html/gladiator%202%20 ... sizer.html

IRIS 2, https://www.izotope.com/en/support/prod ... ads/iris-2

link to my public dropbox download, where my vst preset racks are :

https://www.dropbox.com/sh/nxp0sd1m8t5r ... WP5Ja?dl=0

let me know what you think, they are all grouped with EQ 8, and they all got as many parameters as possible, to use and twist with your Push:)

login
Posts: 1821
Joined: Sat Jul 16, 2011 12:41 am

Re: Saving VST presets to browse in Push

Post by login » Sun Feb 08, 2015 11:57 pm


jestermgee
Posts: 3930
Joined: Mon Apr 26, 2010 6:38 am
Contact:

Re: Saving VST presets to browse in Push

Post by jestermgee » Mon Feb 09, 2015 4:29 am

Yeah wrapping presets for Push is nothing new, we have been doing this since day 1 and many users have wrapped thousands of them.

Honestly though, I rarely use Push for browsing for presets any longer. I invested a lot of hours making preset files for Omnisphere and Trilian and often just load the default patch I created and use omnisphere for browsing as it's WAY easier to use that browser to locate files and now with the near release of Omni2 you can finally lock elements while you browse patches to test an ARP on a different preset etc. Push is IMHO limited and clunky for browsing and this is from a user with almost 2 years Push usage.

nori.lam
Posts: 71
Joined: Tue Dec 16, 2014 9:53 am

Re: Saving VST presets to browse in Push

Post by nori.lam » Tue Feb 10, 2015 5:42 pm

login wrote:
snappyass wrote:elaborate

https://m.youtube.com/watch?v=AdGZsisCOUQ
thx for the link.

I agree its a lot of work and Ableton should really have added this ages ago.

I did all this because I wanted to reduce mousing as much as possible.

Carpel tunnel is not my friend!
Live 9.7
Push 2
OSX El Cap

login
Posts: 1821
Joined: Sat Jul 16, 2011 12:41 am

Re: Saving VST presets to browse in Push

Post by login » Tue Feb 10, 2015 5:55 pm

nori.lam wrote:
login wrote:
snappyass wrote:elaborate

https://m.youtube.com/watch?v=AdGZsisCOUQ
thx for the link.

I agree its a lot of work and Ableton should really have added this ages ago.

I did all this because I wanted to reduce mousing as much as possible.

Carpel tunnel is not my friend!
Totally agree, I just prefer the MIDI Program change method because I hate the time it takes to load a new instance of the plug in. Also you can automate the changes

Lovelights
Posts: 57
Joined: Thu Jan 22, 2015 9:09 pm

Re: Saving VST presets to browse in Push

Post by Lovelights » Wed Feb 11, 2015 8:39 pm

Ok im new to this only had push for 2 weeks so..
Thanks for the links video, make things alot easyer

tedlogan
Posts: 1344
Joined: Thu Dec 20, 2012 7:23 pm
Location: Leamington Spa, UK
Contact:

Re: Saving VST presets to browse in Push

Post by tedlogan » Thu Feb 12, 2015 2:50 pm

-
Last edited by tedlogan on Tue Feb 17, 2015 9:49 am, edited 1 time in total.

lovelight
Posts: 242
Joined: Thu Oct 13, 2005 9:01 pm
Contact:

Re: Saving VST presets to browse in Push

Post by lovelight » Thu Feb 12, 2015 3:44 pm

you all got a good point, ive really dont wanna try program anything python or whatever, my brain cant deal with it, im to old for that stuff now:)i bought this push for getting away from the computer totally, and use it as an instrument, drummachine, goovebox and so on, it got really nice pods and pads, really good quality. so i dont understyand why i cant do that without all this stuf you are talking about, maybe i want to much i dont know but there are some lacks with this nice product,there should be easy for the able folks to fix. in the forums there are so many nice tricks, and many of them need a better brain, or take to much time to do, so if all those peoble can fix so many Things, why cant able do i,t so at leat i can understand it:)

nori.lam
Posts: 71
Joined: Tue Dec 16, 2014 9:53 am

Re: Saving VST presets to browse in Push

Post by nori.lam » Sat Feb 14, 2015 9:14 am

For all those who have nothing constructive to add to this thread, please refrain from posting. Especially negative rants and swearing.

I started this thread to share a method to create your own vst mappings for browsing in Push.

I think everyone who owns a Push and any VST already knows the limitations. Thats the whole purpose of this thread. To give a workaround until Ableton decides to add the feature.

If you have another method, please feel free to share. Questions? great.

I dont want this thread to focus on Push's lack of functionality but rather a solutions thread.
Last edited by nori.lam on Tue Feb 17, 2015 7:11 am, edited 1 time in total.
Live 9.7
Push 2
OSX El Cap

Post Reply