Ok that is great! thanks Jaap
This will make it easier for me for getting the latest commits and test.
Cheers
Ok that is great! thanks Jaap
This will make it easier for me for getting the latest commits and test.
Cheers
I implemented a more reliable way to determine the name for a plugin or Max device to find its preloaded preset (if any). See:
@Martin or @flyweight I believe you both run Ableton on Windows, right? What return code does Python’s os.system(command) return on Windows when successful?
Hi Jaap,
>>> import platform
>>> platform.platform()
'Windows-10-10.0.19044-SP0'
>>> platform.system()
'Windows'
shows the output of the dir command.
>>> os.system("dir")
0
returns 0 (ok)
>>>os.system("command")
'command' is not recognized as an internal or external command,
operable program or batch file.
1
returns 1 (error)
Is obviously a non existing command.
Hi Tim, could you test specifically sendmidi. This is the code in the ElectraOneBase.py line 309:
# if found test if it works
testcommand = f"{ElectraOneBase._fast_sysex_cmd} dev '{E1_CTRL_PORT}'"
if self._run_command(testcommand):
self.debug(1,'Fast uploading of presets supported. Great, using that!')
ElectraOneBase._fast_sysex = True
else:
self.debug(1,'Fast uploading of presets not supported (command failed), reverting to slow method.')
ElectraOneBase._fast_sysex = False
I think I was getting ret code 1 when the command was found and run. But it was possibly an error state due to a single-client problem. (Console or browser open)
PS: I am in the middle of something and switching over to windows would break the process.
Hi Martin,
We are traveling. so i will test it during the weekend.
cheers
Tim
OK, no problem at all. @jhh I will test it tonight and will confirm.
I think given that @flyweight has used the script on windows with (apparently) working sendmidi, os.system also returns 0 for success on Windows. It is also consistent with what I read elsewhere.
no sendmidi did not work for me.
Ableton wil lock the driver so sendmidi cannot use it.
If 2 clients need to use the same midi device you can do that using loopmidi and then use midiox to route the traffic.
then both clients can use the same virtual midi port.
i use it for testing only and really do not like to run multiple programs just to make music.
you often have to reconfigure midiox to make it work due to locks devices wil be removed from midiox.
it might be possible the remotescript can do the routing to and from the virtual midi port. in that case you do not need an external program.
If the remote script does not need access to the ctl port out port when using sendmidi.
the Electra One ctl port needs to be inactive in Ableton.
No routing and virtual device would be required.
I can still try that and see if that works.
I wonder what benefits sendmidi wil give?
the remotescript works properly with 2 - 4 page templates.
Does sendmidi use a transport mechanism the python midi lib does not offer? like streaming or chunks of sysex?
Interesting thought! Probably sendmidi offers no benefits over using the Python MIDI library; I used it because I could not see another way if uploading large presets to the E1. Without sendmidi, uploading large presets like eg Analog takes more than 10 seconds…
Anyway, I’ll investigate, because not relying on external programs would be very good.
Its been a while since I touched Ableton. Just some thoughts and ideas.
I am currently trying to make the editor for the Mirage work properly.
But had another go with the latest commit and things work very well.
Its quite stable and spending time on making dedicated presets is really worth it.
What could be an improvement would be in the department of presets.
I am now adding things directly to ‘device.py’ although i know there is a dedicated script.
Will have to play with that.
Perhaps we could share the presets somehow.
For example I made a really nice one for the Bx SSL 4000 console.
Perhaps VST presets could be added to the git in some preset library section.
Currently the CC map can not be shared using the Electraone app page.
Or is there a way for that? I would also think that presets for the Ableton Remote scripts might cloak the preset collection. Perhaps martin can add a category for Ableton Remote Scripts, and as well Samplers. Maybe just Ableton and Samplers. And Bitwig if it has dedicated presets that can be shared. @martin
Cheers
Tim
Interesting ideas. For sure it would be great if people could contribute their presets for the specific plugins or devices or instruments they use. In principle there is a dedicated directory for preloaded presets in the remote script git repository. So people could send pull requests or something. But using the E1 web editor would,make it much easier also for less tech savvy people to contribute.
Ah ok great, let me still add the ccmaps and then I will try a pull request to the preloaded folder.
Like me !
. I love to design templates but i really don’t have time to code (…ok… I really don’t WANT to code to
). But for graphics, icons, design !! i love that ! i made a bunch of icons for my Streamdecks templates and love to design my preset of E1 … AND PIXEL DRAWING OF THE E1!!! I LOOOOVE that thing !!!
.
I only code when it’s necessary . I will do that, for example to hide and show pads or faders to make the E1 template more easy to use for me . Hopefully we can make a lot with no coding at all on the E1 ! And LUA, coding is really easy to use and there are lots of already made, examples to copy/past . But Still , it’s coding… the less , the best for me
.
Making templates on the E1 with the web editor for the Vst on Ableton that can be loaded automaticly on the E1 when we select it on Ableton (or not selecting on Ableton to ! a connection to the device/plugin even if it’s not selected on Ableton is for me even greater . just have to “select it” on E1 and even if you are somewhere else on Ableton (on another track or device) you can take control of the selected device/VST on E1 )… would be great … to be honest … WOULD BE AWESOME !!!
.
Also , i tried to figure out and understand the git for your script but still i am unshure …say not totaly shure
. Do we need to midi map the vst parameters through Ableton or does your remote script takes control of exposed vst parameters without this need ? like a push for example …or most of midi remote script in fact
?
Thanks @jhh for this already incredible first step for an easy integration of the E1 in the Ableton realm ! ![]()
The remote script automatically takes care of exposed vst/au plugin parameters. See GitHub - xot/ElectraOne: Ableton Live MIDI Remote Script for the Electra One fro detailed instructions.
You have to get your configuration right. Dumps should be enabled.
When you then open a vst and the script automatically creates a template for it you should find the template file (.epr) and the ccmap in the dump folder.
Yes the script takes care of the mapping. It assigns CC numbers and uses multiple midichannels if needed.
However if you have a vst that does not expose its controls then additional work is needed, (the Arturia plugins for example).
I have enable in Ableton the option so that always 128 controls are automatically exposed. I wrote somewhere here how…
By doing this I do not need to map anything for the plugins that auto populate.
The preset I created using the data from the dump dir.
yep. Something like that is really needed. I have two things to mentioned:
The website now runs on the google cloud. Part of the service is a file storage. I will add an option to attach extra files to presets in the app.
I like the idea that preset would be in @jhh git repo (of course if @jhh agrees). Having that on github like that would allow as to make an integration job there that would provision the presets to the controller. ie. web app getting fresh data from the github and offering bulk update of presets in electra. This of course triggers some other question and ideas but it feels it needs to be tackled anyways. I think that @moss already started with something similar in his bitwig script. He uses preset names to identify plugin presets and stuff…
In general I would be more in favour of having project files as an input (instead of preset files). This allows me to make sure that freshly generated presets (eprs) are in line with the latest firmware.
@martin I have no need for this. Also not sure why it is necessary for Ableton, since their API should provide this info as well?
my understanding is that the repo would contain presets for plugins. With defined names / project ids. The Ableton script could then use predefined preset for given device. Something like you are showing with the Diva preset in your latest video. I hope I get it right ![]()
I think there are two separate, independent, things at stake here.
.ccmap and .remap data (text) files. I could ‘manually’ integrate them in the remote script by merging them into Devices.py.Either way, I don’t think there is a need for yet another git repository. The ‘official’ versions of preset that are preloaded within the remote script are already maintained at the ElectraOne remote script git repo. And I will also make the current presets public within the website.