Crates.io | ot-tools-io |
lib.rs | ot-tools-io |
version | 0.4.3 |
created_at | 2025-04-28 02:15:15.497549+00 |
updated_at | 2025-08-29 16:46:26.593142+00 |
description | A library crate for reading/writing binary data files used by the Elektron Octatrack DPS-1. |
homepage | https://gitlab.com/ot-tools/ot-tools-io/ |
repository | https://gitlab.com/ot-tools/ot-tools-io/ |
max_upload_size | |
id | 1651695 |
size | 514,653 |
rust library crate for reading/writing binary data files used by the Elektron Octatrack DPS-1
Library crate for reading/writing Octatrack binary data files.
Most of this is just the serde
and
bincode
crates with a bunch of
function definitions for reading/writing different files or creating new types.
The majority of fields contained within binary data files have been reverse engineered. See the list in ./TODO.md for information about missing/unknown data fields.
The plan for 1.0.0
onwards (when I get there)
X.0.0
--> Elektron have released a new OS version which introduces
breaking changes in the files. Ongoing versions of this library will only support
those latest OS changes. Backwards compatibility between OS versions will not be provided.0.X.0
--> I'm releasing changes which will break existing codebases.0.0.X
--> Anything else.The JSON / YAML data structures are a bit ... weird. I have done my best to not parse the underlying data into new structures, keeping it so that the library returns data that is as-close-to-the-raw-data-as-possible.
Like, the arrangements data could do with some work to deal with all the
{"empty": ""}
arranger rows. Header fields probably don't need to be there
and can be injected in during deserialization.
The following projects were used a starting references for the initial
serialization/deserialization efforts of data files (mostly the .ot
files).
Without them, ot-tools probably wouldn't exist.
A special shout out to OctaEdit by Rusty (no longer available) which showed the community what it was possible to do. Hopefully there are lots of moonbeams and bunny rabbits wherever you are.
Other rust based credits: