Elektroid 2.0-beta is just out.
This release just adds management for project, sound and other kind of data for every Elektron machine. Other than this, and Portuguese (Brazilian) translations, there have been lots of changes internally and now there’s even an internal API to define device filesystems. If a device provides a directoy listing and some operations over the elements, it will be easy to add support for it on Elektroid.
I don’t know the Model:Cycles ID but this is super easy to fix. Skip to the end.
The reason it’s a beta release is because it has only been tested on Digitakt and I can not test it wih the remaining actual machines. So I need your help here if you’re interested.
Also, it’s a beta because I’d like to know which directories you see in the data filesystem with this command.
$ elektroid-cli list-data 0:/
D -1 0000 0 0 0B projects
D -1 0000 0 0 0B soundbanks
The reason is that these directories are not compatible with each other so a virtual filesystem could be defined to provide direct access to that directory. This is what I’ve done in the Digitakt and it offers projects and sounds filesystems besides the samples filesystem. (I named the filesystem “sounds” instead of “soundbanks”. Much better I think.)
These are the technical details.
The Digitakt is defined as the following for you to try.
static const struct connector_device_desc DIGITAKT_DESC = {
.name = "Digitakt",
.alias = "dt",
.id = DTAKT_ID,
.fss = FS_SAMPLES | FS_DATA_PRJ | FS_DATA_SND,
.storages = STORAGE_PLUS_DRIVE | STORAGE_RAM
};
But the remaining devices, they are defined like this.
static const struct connector_device_desc DIGITONE_DESC = {
.name = "Digitone",
.alias = "dn",
.id = DTONE_ID,
.fss = FS_DATA_ALL,
.storages = 0
};
As you see, FS_SAMPLES
, FS_DATA_PRJ
, FS_DATA_SND
and FS_DATA_ALL
are all filesystems and are the only ones available at the moment. FS_DATA_PRJ
, FS_DATA_SND
are virtual filesystems that are just redirections to access the projects and soundbanks directories that FS_DATA_ALL
provides.
In the case of the Digitone, the field fss
could be defined as FS_DATA_PRJ | FS_DATA_SND
but I thought I would leave it like this for the 2.0-beta as it is safer because instead of “soundbanks” it might have “presets”. Same applies to every other device. Perhaps there’s even a song directory for some devices.
So, let me know what are your thoughts on these things.
PR are always welcome.
I hope it’s useful for Linux users.
How to add the Model:Cycles ID
The ID I talked about is the 6th byte in the first message received. In the Digitakt case, it is 0x0c
as you can see.
$ elektroid-cli ld
0 Elektron Digitakt MIDI 1
$ elektroid-cli -v info-device 0
DEBUG:connector.c:1982:(connector_init): Initializing connector to 'hw:0'...
DEBUG:connector.c:1991:(connector_init): Setting blocking mode...
DEBUG:connector.c:2003:(connector_init): Stopping device...
DEBUG:connector.c:875:(connector_tx): Message sent (5): 00 00 00 00 01
DEBUG:connector.c:1182:(connector_rx): Message received (51): 00 fe 00 00 81 0c 23 01 02 03 05 04 50 52 51 10 13 11 12 20 21 22 23 30 31 32 36 40 41 42 46 53 54 55 56 57 58 59 5a 5b 5c 5d 44 69 67 69 74 61 6b 74 00
DEBUG:connector.c:875:(connector_tx): Message sent (5): 00 01 00 00 02
DEBUG:connector.c:1182:(connector_rx): Message received (15): 00 ff 00 01 82 30 30 35 33 00 31 2e 33 30 00
DEBUG:connector.c:2093:(connector_init): Connected to Digitakt 1.30 (Digitakt)
Digitakt 1.30 (Digitakt)
DEBUG:connector.c:1842:(connector_destroy): Destroying connector...
You just need to put this value in connector.c
line 50.