Here’s the story of the instrument files
The idea of the instrument and preset files
When we started the Electra project we were primarily focused on the instrument files. The idea was (and still is) that an instrument served two purposes:
- Describe the MIDI implementation of a particular device, e.g. a Virus B. It could cover all incoming and outgoing MIDI messages, parsing, and assigment to the parameters.
- Provide a palette of controls. That would cover controls for all available parameters, groupped to categories, as well as all the overlays and value lists would be defined.
- Provide meta information about the device itself. Type of device, brand, make, labels, tags, etc.
The instrument file, however, would not carry information about such things such as a MIDI port or a MIDI channel. In other words there would not be anything specific to someones studio environment.
(so, both of you @thetechnobear and @joris.roling are right)
The second type of file was a preset. We saw (and still see) preset as a collection of controls of various devices for environment of a specific user. It means that in a preset devices are assigned to their MIDI ports and channels.
A user can build a preset in three ways:
- Create the controls ad hoc, e.g. using the MIDI learn
- Import an Instrument file and use the predefined controls from the pallete
- Combine both above ways
I think the concept is quite powerful. If you think about it, the Instrument file can be used for Electra but it could also serve as a source of information if somebody wanted to generate nice documents with a MIDI implementations of synths, etc.
Why more attention went to the preset files in the past
At the time when the first Electras were sold they mostly went to users who wanted it for a specific hardware synth. It it matched the synths I had in my studio at that time Chroma, TX7, Virus B, MKS-50, Mopho, Bit99, etc. The instrument files were created and they were available directly in the web editor - the original version. I think only the very old Electra matadors such as @markus.schloesser, @xiizoo, @RobinC and a few others used it.
But as time went there were more and more people who wanted to use Electra for other synths and for VST. We realized that we do not have resources for making all the instrument files. But we also saw that vast majority of users was very preset-oriented. I could see many reasons for that. The most important ones were:
- Lots of other tools / devices are preset oriented. Therefore people think in the “preset-mode”
- It is easier and more fun to create a preset - you get something working back very soon. Working on an Instrument file has more overhead.
At that point Tomas and I decided to turn things around. We invested our time to improving the Preset editor. The idea was that it will be always possible to generate Instrument files out of presets at later stage.
Fun part was that @thetechnobear made a tool for such a conversion immediately after he got his Electra
What could be done in (near and far) future
The situation is different now from what it used to be. There are over 80 public presets and there are many users who are interested in the Instrument files. It means there is quite some data that could be converted to the instrument files and new instrument files could be created. I am happy that this thing was brought back and that you guys see the beauty of that.
I removed the example instrument files from the github in the past and the JSON schema was never published. I will revisit what was done and will put it back to github. This might not be overnight. The reason is that the original instrument files were designed for the Preset format version 1. That format supported controls with a single value only (faders and lists). For those, it was kind of obvious to connect MIDI messages with a particular type of control that would be available in the palette. The current preset format (version 2) brings multi-value controls. With these it becomes more subjective and opinioned how the default controls on the palette should look like. e.g. one user may prefer ADSR as one control while someone else would like to have four faders. This might still need some thinking. I am very very open to a discussion about this. But as you know my time is not unlimited If we were able to make some joint effort, it would be great.