Hi ! Thanks a lot for your quick & nice reply ! Thanks again for your work !
After a long time, version 1.3 is just out.
Basically, it’s just a much more robust version. BTW, special thanks to @DNS for helping me testing this release thoroughly.
Other than lots of technical improvements and bugfixes that make it much more reliable, there a few new things.
- Support for non-ASCII characters.
- OS upgrade from the application menu. Now, it’s possible to upgrade without fiddling into the menus.
- Support for keyboard shortcuts in sample lists.
- Ctrl+U goes to parent directory.
- Ctrl+Shift+N adds a directory.
- Ctrl+R refreshes current directory.
- Ctrl+Shift+R renames selected item.
- Better integration with the desktop via the local browser popup menu.
- Audio preview of samples while loading.
- Support for Catalan (Valencian) translations.
It has been tested to work on i386 and amd64 PCs and on Raspberry Pi.
I hope you enjoy it.
great job! thank you so much for the great development!
Yeah, thank you so much !!
Just compiled it with openSUSE Tumbleweed (CPE OS Name: cpe:/o:opensuse:tumbleweed:20210401, Kernel: Linux 5.11.6-1-default, Architecture: x86-64), and it works great!
Is there any possibility to pay you a coffee or beer?
Hi!
This is awesome!
Great job, it works as it should!
Thank you!
I really appreciate the invitation. Thank you!
I’ve just added a sponsor button in GitHub.
After wasting so much time trying to get Transfer to work with Wine, always ending up booting to windows just for transferring samples to my Digitakt, I can’t overstate how happy I am to discover this. Thank you so much!
Maybe the issue was using a 32 bits app with a 64 bits wine ?
For some reason, I cannot install 32 bits wine on my distro – I had to resort to CrossOver to get self-contained 32 bits Wine installation. But this is a commercial app.
So happy to have a native app
Looks like you need to install a header file. If you Google that file name and which apt package needs to be installed, you should be able to find it.
What is that /home/nedcr/miniconda3/envs/ana/bin/x86_64-conda_cos6-linux-gnu-cc
path? You’re not using a simple gcc package installed by Kubuntu, it looks like some cloudy anaconda thing. That won’t look for headers in /use/include
because it has its own sandboxed environment.
The solution is probably to use the system compiler, not that one. Maybe simply by doing:
PATH=/use/bin:$PATH
and then starting again.
Hello @DG2 !!
I just felt the need to sign-up to elektronauts just to say THANK YOU !! for Elektroid !!
This is really a great thing !
I just made a donation via github sponsor button . It’s a small amount, but I hope you can appreciate that anyway .
Welcome to elektronauts, @clastano!
I really appreciate your words and your gesture. The amount is more than fair.
Also, I’m glad you liked Elektroid and find it useful.
Version 1.4 is just out.
This version only includes usability and visual improvements.
- Almost fully support for drag and drop. Every source and destination is implemented but, sadly, dragging from the device to the desktop file manager couldn’t be due to technical limitations.
- Status bar shows usage percentage of both +Drive and RAM.
- Cancel button cancels all tasks, not just the one that is currently running.
- Local browser self refreshes when changes on disk are detected.
- Redesign of popup menus.
- New icons.
But, perhaps, the most interesting thing is that I’m already working on project and sound management.
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.
I’m trying to use this with the Model:Samples and I keep getting timeout errors. These don’t seem to affect the Model:Cycles for some reason.
$ elektroid-cli -v df 2
DEBUG:connector.c:2364:(connector_init): Initializing connector to 'hw:2'...
DEBUG:connector.c:2373:(connector_init): Setting blocking mode...
DEBUG:connector.c:2385:(connector_init): Stopping device...
DEBUG:connector.c:1070:(connector_tx): Message sent (5): 00 00 00 00 01
DEBUG:connector.c:1377:(connector_rx): Message received (41): 00 11 00 00 81 19 14 01 02 03 50 52 51 10 13 11 12 20 21 22 23 30 31 32 40 41 42 4d 6f 64 65 6c 20 53 61 6d 70 6c 65 73 00
DEBUG:connector.c:1070:(connector_tx): Message sent (5): 00 01 00 00 02
DEBUG:connector.c:1377:(connector_rx): Message received (15): 00 12 00 01 82 30 30 33 30 00 31 2e 31 32 00
DEBUG:connector.c:2475:(connector_init): Connected to Model:Samples 1.12 (Model Samples)
Storage Size Used Available Use%
DEBUG:connector.c:1070:(connector_tx): Message sent (6): 00 02 00 00 05 01
DEBUG:connector.c:1137:(connector_rx_raw): Timeout!
DEBUG:connector.c:1070:(connector_tx): Message sent (6): 00 03 00 00 05 02
DEBUG:connector.c:1137:(connector_rx_raw): Timeout!
DEBUG:connector.c:2224:(connector_destroy): Destroying connector...
I apologize if this isn’t the best place for this - I can certainly make a Github issue if that’s better.
I prefer GitHub issues for technical issues but perhaps yours is not so it’s OK.
As you said, the device is not replying to the requests and hence the timeouts. By looking at the trace, you’re using the OS 1.12 while 1.13 is out. Is there any reason for this?
Elektron does not publish their machine’s SysEx protocols and therefore these do not appear in the OS release notes so this might work with the last version. Let me know if this is the case, please. BTW, you can use Elektroid (GUI) to upgrade your firmware.
Elektroid could have device descriptions per OS version to define devices more safely but it is a lot of work to keep tracking of the changes and it’s not very useful so I’m not gonna do this.
Thank you so much for your quick reply. You are absolutely right. I neglected to check the M:S and Elektron site for OS versions and assumed a new unit would be shipped with the latest OS I updated and It’s working great now.
Thanks again for the nice tool.
Just a small update on Elektroid 2.0.
Support for M:C has needed some development but it’s almost ready. If you want to try it, use the raw_fs
branch for now. It will be merged into the master
branch in a few days.
However, Elektroid 2.0 is gonna take even longer. The reason is that Elektroid projects and Transfer projects are not compatible with one another. Elektroid just provides support for native projects, i.e. the ones that you can directly download directly from the machines, while Transfer packages this project and all the related resources in the same file. For instance, in the case of a Digitakt it zips the project and the samples in its sample pool. But this is not the only case and it might apply to sounds on some machines too (at least the ones using samples) or in other cases.
Project uploading needs the opposite: uncompress the zip and upload the project and all related resources.
All this is super useful if we plan on sharing sounds, samples or projects with Elektroid or load the official Elektron sound packages with it.
As I want to include this in the 2.0 version and it’s quite a lot of work, it’s gonna take some time.
I am a Linux user. I installed and used the Elektroid GUI on my Linux computer today and transferred samples to my DT. It worked flawlessly the first time. Thanks for your awesome gift to the community, @DG2!
I am relatively new to the community. My first Elektron box was a Digitone, and I have performed sysex dumps (backups and restores) using the amidi utility with zero issues on my Linux laptop.
When I get my nerves up, I will perform full system restores of the DN and DT (not necessary at this point as they are pretty new).