Custom Firmware on the OP-1

i messed around with it for a second, but then i got scurred…
its not that complicated tho just look at how the original file is laid out before you start making changes.

Below are the .db parameters for “smartphone” which is a trash preset (no offense). The value strings after “start” and “end” are the start and end values for each sample (drum hit) in the patch. These change from patch to patch and I have no idea of determining what they need to be for any patches I make with the OP-1 drum utility.

Anyone have any luck with this? Is it easier than I’m making it out to be?
Can the .aif file extension created by the Drum Utility be changed to .raw instead? Is there some special conversion process?

{“drum_version”:2,“dyna_env”:[2048,8192,0,12032,0,0,0,0],“end”:[60747978,130423514,154682126,186289742,207886318,240183790,292953778,370477450,396789400,424525702,466826098,522590874,550002538,635082172,667006310,848227634,887784834,927244644,1020119658,1055789314,1091576650,1117815556,1147584906,1186841816],“fx_active”:false,“fx_params”:[10944,32767,9496,8000,8000,8000,8000,8000],“fx_type”:“delay”,“lfo_active”:false,“lfo_params”:[9192,-32767,8688,5280,0,0,0,0],“lfo_type”:“value”,“name”:“smartphone”,“octave”:0,“pitch”:[0,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],“playmode”:[8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192],“reverse”:[8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192],“start”:[0,60752036,130427572,154686184,186293800,207890376,240187848,292957836,370481508,396793458,424529760,466830156,522594932,550006596,635086230,667010368,848231692,887788892,927248702,1020123716,1055793372,1091580708,1117819614,1147588964],“type”:“drum”,“volume”:[8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192,8192]}

###############################
#Breakdown (From what I understand): #
###############################
## “drum_version” Controls Σ(゜ロ゜;)
## “dyna_env” Controls the envelope of the patch (i.e. button 2 stuff)
## “end” Controls end values for the samples in the patch (i.e. White Encoder)
## “fx_active” Controls On/Off for FX (i.e. button 3)
## “fx_params” Controls where the values of the FX sit
## “fx_type” Controls what FX is inserted
## “lfo_active” Controls On/Off for LFO (i.e. button 4)
## “lfo_params” Controls where the values for the LFO sit
## “lfo_type” Controls which LFO is selected
## “name” Controls the name of the patch (I assume you could easily substitute the
## name of your .raw file here but I could be wrong)
## “octave” Controls which octave the patch rests in
## “pitch” Controls pitch parameters of each hit in the patch (i.e. Blue Encoder)
## “playmode” Controls which playmode the sample will use (i.e Shift + Orange Encoder)
## “reverse” Controls reverse mode for simple (i.e. Shift + Blue Encoder)
## “start” Controls start of each sample in the patch (i.e. Green Encoder)
## “type” Controls the folder the patch is placed in
## “volume” Controls the level of the sample to tape (i.e. Orange Encoder)

Info gathered using DB Browser for SQLite (Henceforth pronounced “SKWI-Lite”)

The #'s are for easier documenting for my more savvy developer friends.

i could be mistaken but i thought that all that info is saved in the header of the .aif file
maybe try to view the .aif in a text editor

@docshermsticks said:
i could be mistaken but i thought that all that info is saved in the header of the .aif file
maybe try to view the .aif in a text editor

@docshermsticks
Ah yes. The missing element. Doc you are a genius.

na i’m no genius just trying to help :slight_smile:

yeah understanding the values for the markers (start|end) is a bit weird.
It’s probably easier to create a drumkit with the old Steve Duda tool or on the op1.fun drumkit editor and then copy the values from the resulting .aif header into the database.

The custom firmware is wonderful. I have chronic neck pain (crooked spine) and having to lean over to see which track I was on was a really big UX flaw with the op-1 for me. I’ve always wanted the tape graphic flipped, and I’ve also always thought the effects should default to be much more subtle by default, so I was thrilled to see you fixed those. The instructions were perfect as well. I know all of this takes time and effort (and skill) so I just wanted to say thank you, it means a lot.

1 Like

Hi!
Do you think it would be possible to add custom (micro)tuning (pitch shifting) to each note with a bit of hacking? Not just global detuning, but like each note would receive it’s own personal detune value.
Thanks

No. Not with the current know-how from this thread. We can’t manipulate the actual inner workings of the firmware.
Playing around with graphics and enabling the effects and synths which are already implemented in the firmware is possible. So is changing the factory patches.
But changes of behavior will need binary patching of the executable code in the firmware.

Meaning, we would need to:

  • establish an ability to fully disassemble the code of the firmware (e.g. in IDA pro or radare2)
  • map out the firmware and determine which code does what
  • modify parts, keeping the rest intact and the fw bootable
  • reassemble the code back into the .ldr format
  • use wavis packer to create a final .op1 file
  • download into your op-1, see it crashing, debug, rinse, repeat ;o)

I explained those steps a few times somewhere in this thread and I don’t think anyone has made significant new progress in the first step…

Hey, so I just ran through the awesome op1repacker tool, and updated the firmware. However, when I go to load synths, iter doesn’t appear in the list :frowning: what’s good? Does this not work on 225 or something, am I late to the party?

@dicey said:
Hey, so I just ran through the awesome op1repacker tool, and updated the firmware. However, when I go to load synths, iter doesn’t appear in the list :frowning: what’s good? Does this not work on 225 or something, am I late to the party?

Did you run those commands in the repacker? There’s individual commands for each option. Ie. Tape invert, moose cwo graphic, iter synth, filter effect, iter graphic…

I did it ages ago, but if you travel back through this thread you’ll find where I did it, I think I explained where I got stuck and exactly what I did.

I was 100% just following the instructions by @wavi and other awesome dudes who put all the work in. The custom firmware is awesome and these guys deserve se kind of trophy from TE.

Good luck!

@ludicrouSpeed said:

I was 100% just following the instructions by @wavi and other awesome dudes who put all the work in. The custom firmware is awesome and these guys deserve se kind of trophy from TE.

Good luck!

Hey, thanks @ludicrouSpeed. I did follow the directions – I went back and looked through your reports, but I thiiiink I made it through the steps just fine. I am mostly certain of this because the filter does show up with the other FX, the tape tracks are on top, the CWO is a moose, etc. It just doesn’t show ITER in the list!

Good news is that I downloaded an ITER patch from op1.fun and loading that’s given me access (and I get the cool graphics for it, too). So really, it’s not a big deal. Just weird!

I wonder if it has something to do with the contents of storage, or if I need to cleari t out and let it rebuild everything, or something. IDK. Weird.

And oh yes – I agree, @wavi and @TabascoEye and whoever else has worked on this are heroes and I really appreciate them and their work. I hope that TE makes this sort of stuff easier for folks like them going forward!

1 Like

might be stupid but are u looking at the list for the presets?
if you are and u don’t have any iter presets, it may not show up in the list?
try the other one that just changes engines

Yeah, @docshermsticks makes a good point… That would be the shift+T1 (big 1 of 4)… Why didn’t they call these ABCD to avoid confusion? NM… And yes, one slap for me for not mentioning @TabascoEye specifically.

@docshermsticks said:
might be stupid but are u looking at the list for the presets?
if you are and u don’t have any iter presets, it may not show up in the list?
try the other one that just changes engines

@ludicrouSpeed said:
Yeah, @docshermsticks makes a good point… That would be the shift+T1 (big 1 of 4)… Why didn’t they call these ABCD to avoid confusion? NM… And yes, one slap for me for not mentioning @TabascoEye specifically.

ohhhh snap – that’s it. i had no idea that there was a button that just changes engines; i’ve been changing through the preset list this entire time. y’all the best. thanks so much!

@dicey ok awesome. DBL win!

nice!

Hello, im new to this section of the forum…the other day I did something and messed around and had the multifilter with drive effect on my screen…i dont kno wat i did…im interested in the custom firmware and how to load it and if there is any risk in loading it…is there a place in the topic discussion i should refer to?

@attacka you probably loaded a patch from here that had the filter enabled. That’s the only way to get to that screen on vanilla firmware.

@TabascoEye said:
@attacka you probably loaded a patch from here that had the filter enabled. That’s the only way to get to that screen on vanilla firmware.

I loaded a bandcamp files…how do you get the custom firmware tho?