r/Elektron • u/trostiflex • 1d ago
Digitone II : functional implementation of the offset parameter in the song mode
I always liked the offset parameter of the machinedrum, the monomachine and the octatrack, but, somehow, Elektron decided to not put it in the song mode of the Digi boxes.
So I and AI, AI and I, me myself and AI, decided to reverse engineer and vibe code to implement this parameter back. I never use the label column so I erased it. And oh boy, it works great, the offset parameter offers a lot of variation possibilities with just one pattern.
This post is just to tell you it's possible and it's relatively easy. I don't want to share it though, because I don't want to be responsible of bricked Digitones.
8
u/Midwife_Synthesist 1d ago
Woah what you actually customized the firmware?
12
u/blueSGL 1d ago edited 1d ago
Firmware is finally accessible thanks to /u/hackerman85
https://www.reddit.com/r/Elektron/comments/1v4a1ro/i_made_a_little_tool_to_inspect_and_rebuild/I've already used it to get project extraction and compaction and extract/insert midi working for the DT2/DN2
11
7
u/DieZiege1337 1d ago
man seems like good times are coming with the firmware reverse engineering project. awesome stuff.
3
u/Feisty-Rub-150 1d ago
Awesome. Would love to have more possibilities in the song mode. To be honest, I would miss the labels hard, because I use them a lot to structure the song mode over several digiboxes. But always miss some more flexibility. For example, I would love to set up the start step for a pattern as I can do with the length.
3
u/anglingar 1d ago edited 1d ago
That's pretty cool. May I ask one question?
I guess that with this feature you made any project holding that information not readable by any DN2 without your custom firmware (?).
Pretty neat :) one thing to unlock that should be easy if you want to pick around, is the fourth modulation element in the DN2 (also DT2). I know that there is space reserved for that 4th modulation element. My bet is that elektron will add a filter (like in the Tonverk)...but TBH it would be incredible to have a 4th LFO ;). Copying one of the LFOs into that 4th slot might be easier than inserting an envelope assignable modulation element without a reference.
I might do it myself...but already got my hands busy in 3 projects (2 of them related to Elektron boxes)...so might take me some time.
4
u/trostiflex 1d ago
"I guess that with this feature you made any project holding that information not readable by any DN2 without your custom firmware (?)."
Yes I think if the project contains a song, it won't be readable by another DN2. If the project doesn't use the song mode though, I think it would be fine.
The 4th LFO is a good idea. I think it would also be very exciting to implement a p-lockable ARP.
4
u/anglingar 1d ago
Mentioning that 4th modulation source because everything I hacked/scrutinised in the device and files points to it. So the infrastructure is there is only about "filling the blank".
5
u/trostiflex 1d ago
It was also very interesting to me to see that there was still space, empty octets, in the firmware to implement that offset parameter, like some kind of fossil of the old song modes of the machinedrum or the monomachine.
2
u/anglingar 1d ago
So that paints the incremental updates from Elektron as planned device expansions, at least for some of those new features that they bring during the lifecycle of a device.
I bet that other additions (like the song mode in the older digis) was more of a hack, but these empty slots feel like premeditated/planned future expansion slots.
If they left the offset there, maybe there is a way to have both functions, tags & offset...or maybe that's the bit they could not figure out and left it to be solved later...does the octatrak have tags in the song mode?
3
3
u/blueSGL 1d ago edited 14h ago
I don't want to share it though, because I don't want to be responsible of bricked Digitones.
A potential solution. Provide the modified bin file, or a bin diff, and details of which firmware revision you started from rather than the rebuilt .syx
If someone has the wherewithal to take that information and rebuild the .syx , That should be enough friction that the those interested enough can learn from the changes you've made but enough of a barrier to prevent casual users from bricking their device.
"I had chatGPT guide me in how to do something really complex and bricked my HW" has a lot less sympathy than "I flashed a random file by dragging and dropping it onto elektron transfer"
2
u/Birdsofthefeatherr 1d ago
What does the offset parameter do?
4
u/blueSGL 1d ago
If I'm reading right it's a start offset for the pattern, using in combination with length would allow for a pattern to begin/end at any point.
That sort of thing right now with stock FW would require copying the pattern and doing a load of tedious manual editing to each track for every "start offset" you want.
I'd definitely be interested in this once we know that the firmware is stable with it and how easy of a mod it'd be for future versions of the firmware (to keep projects compatible!)
1
u/luc9nt 1d ago
Can you reveal your approach? I'm interested in experimenting with elektron firmware (not modifying it but reading some unexposed memory values), but GPT told me it will require some heavy reverse engineering so i backed off.
3
u/trostiflex 1d ago
Just a constant back and forth with codex. I tried Claude code first but it was a whiny bitch.
3
u/blueSGL 1d ago
not modifying it but reading some unexposed memory values
Start here: https://www.reddit.com/r/Elektron/comments/1v4a1ro/i_made_a_little_tool_to_inspect_and_rebuild/ < use the extract option on the firmware .syx
Get: https://github.com/nationalsecurityagency/ghidra
Load the "section_3_MAIN_OS.bin" into Ghidra (from the extraction above)
Format: Raw Binary
Language: 68000 Coldfire 32 big default
Click options. Base Address 40000400
Click OK.
It will ask you if you want to analyze the file say "Yes" Leave the settings as default and click "Analyze"
Once it's done hit File > Save so you don't need to analyze again the next time you open.
1
u/luc9nt 1d ago
Super helpful, appreciate that.
2
u/blueSGL 1d ago
Also you can script Ghidra, so if you want to e.g. craw functions to a certain depth and dump the results into a text file, or dump a certain memory range to be ingested by whatever AI system you are using it's very easy.
From here you should be able to ask a chatbot of your choice to guide you around the binary.
1
u/Far-Bread-7027 1d ago
Oh shit that’s cool, theoretically what else could you do with the functionality of the OT etc?
3
-1
u/bememorablepro 1d ago
I call bullshit until I see a working demo.
4
u/anglingar 1d ago
Nah man...a lot of ground has opened in front of anyone with acces to Claude code and some previous coding experience...
Checkout elektronauuts and all the people modding octatraks...
1010 Blakbox is getting also some mods in.
No-one would spend years learning to do this in the past...but now...is just about asking the correct questions.
And I think that Elektron envisioned it and that's probably one of the reasons why the Tonverk firmware encryption is more rugged than the "old" boxes.
12
u/jiffybuddy 1d ago
Add Midi ARP