I noticed that many users have created presets (.epr) for their favourite synths…
this is cool (thank you )
but I’d rather have instrument definitions (.eif), since then I can use these to combine many different instruments into one preset.
so I created a simple python script that would convert a preset (.epr) into an instrument definition (.eif).
(also as a kind of ‘educational’ exercise for me to understand the two formats )
- download the above file
(if you’re not familiar with git, simply click ‘raw’, then use your browser ‘file -> save as’ option)
- run it using
python pre2inst.py virus.epr
obviously substitute virus.epr for the epr file you wish to convert,
there are some limitations…
- It’s assuming one instrument is in the preset
- I’ve not tested the sysex at all
- It’s not minimised, as its for ‘editing’
- epr files have to be version 2
(version 1 -> version 2 , import into web editor then download this v2 version)
the EIF file it generates is really intended to be edited after creating to make it a little more ‘sensible’.
in particular, you may want to edit the categories.
the reason for this is presets use a concept of page and control sets which do not match perfectly to the categories of an instrument file…
you can have a two control sets called ‘oscillator’ in a preset as they are 'per page, but categories are unique on instrument definitions. so to ‘resolve’ this, the converter creates a category per page, naming it ‘page name - control set’
you’ll understand this when you see the EIF …it’s easier to see than it is to explain.
to improve ‘you can simply do a search n’ replace on the entire file
(this is important if you rename the category id, you need to also change it on associated parameters)
anyway… not sure how useful it is to others, but I thought I’d share
(also if your into python, you can see how easy it is for us to manipulate the json files used by electra one - though, im no python expert… Im C++ guy, but in this case python was quick n’ simple)
this file is open source so feel free to copy etc, also if you’d like to make changes send me a pull request via github
(if you don’t know how to do that, just post changes here … but make sure you are using the latest version of the file before changing/posting)