Synth patches at a fraction of the size

Hi folks,

The other month, there was a discussion on one of the other threads about how each and every one of our synth presets contains some audio data. It’s a robotic voice saying “Op1 patch”. I guess TE included it as synth patches are saved as Aiff files which usually contain some audio data and that they wanted it to be obvious to anybody previewing a synth preset Aiff file on their computer that this was an op-1 synth patch file rather than a file containing “real” audio data. Somebody on that other thread commented about how wasteful that seemed, and I totally agree! I suddenly had a thought that if I removed the audio data, the synth preset might still work, but at a fraction of the file size.

I know a little bit about the structure and format of aiff files in general and in particular the Op-1 application data stored in the aiff’s “application chunk”. This is because I wrote a tool in Java that generates Op-1 drum kits (and am currently writing an Android app to help with things like preset management, drumkit generation, splitting album files into 2 mono tape tracks). Anyways, I tinkered around with the code a bit and wrote myself a little tool that will strip the audio data from these synth presets.

Then I ran the tool over @cuckoo’s excellent Opines set of synth patches and loaded the modified patches onto my Op-1. They still work!!

Each of the modified presets is roughly 440 bytes in length, as opposed to the full fat 57 KB files that contain the “Op-1 patch” robotic voice sample.

Sooooo… my thoughts are that this could allow us to store many, many more patches on the Op-1 than we are constrained in storing right now. I have yet to test this theory, but that will perhaps be a task for tonight when everyone else has gone to bed :slight_smile:

holy shit - how cool. so i wonder if the current limitation is by data or patch count. should the former apply we’d now have so much more space to save patches.very nice @yoof

Exactly, I really hope it’s limited by size of data and not number of patches. Will test it tonight.

I think it’s limited to patch count, unfortunately—I think some people here have reported that even with free space there is still a limit to the number of patches that can be saved for each instrument. I may be wrong though!

Yes, I remember some patch limits that have been reported on lots of threads… if that turns out to be true, I might ask TE’s opinion about possibly rethinking that limit for synth patches, as it definitely seems that they support synth patches with and without the audio data.

Just to capture that information here too:

Apparently 100 synth patches. Will test it out tonight with some modified patches.

My theory about it is that at least some of the preset data, like name and type, is pre-loaded to fixed size structures in RAM memory, for quick access while displaying the menus. So, they end up limiting the number of patches regardless of their size… but is just a guess.

I see what you mean @punji, it's more of a RAM constraint than disk - plausible theory.

Anyways, I tested it. I removed all possible files except the ones in the user folders and then loaded about 110 of my modified patches. Unfortunately it let me transfer exactly 100 modified patches, but no more. So, the limit of 100 synth patches is true. Shame, but a fun experiment :)

By the way @punji, is that your site: ? Really cool :) And at least I now have 100 random patches to look forward messing with ;)

@yoof Yes, I did that a long time ago… :slight_smile:

a few years ago I managed to pull apart the firmware file, removed all the presets out of the sqlite tables, and stick it all back together again and successfully load onto my OP-1

the same patch limits remained - so there is probably some hard limits set in the sharc code somewhere (which is in an encrypted file beyond my probing abilities)

I feel like a lab rat here. I hope my patches weren’t hurt :wink:

Sounds like some real forensic work there @husker.

Haha @cuckoo, they sounded great before and after my messing with them :wink:

I wrote to TE this morning describing the experiment and asked whether the limit was constrained by RAM or disk. Tobias replied very promptly:

"Hello Chris,

Thank you for your email. Good work. The 100 limit is a system setting that we chose to be well within limits for what would be theoretically possible. This number may change in a future OS version.


Sounds like they left some “wiggle room”.

Note he didn’t say whether would be changed in THIS APRIL’S OS update… :stuck_out_tongue:

Of course not :wink:

…looking forward to your Android app, @yoof.

Great detective work @yoof! Hope we get more space for synth patches at some point.

Thanks @Needles, cheers @vehka :slight_smile:

Re Android app, I just had a cool moment! It looks totally crap, just text fields to help me drive functionality, but I actually managed to connect my Android phone to my Op-1 (with an USB OTG cable) and tell it to take Album Side A, split it into two mono tracks and replace tracks 3 and 4 on tape. … and it worked!!! How cool!

The crap bits though:

(1) This is dependent on the Android device supporting OTG (USB On-the-go). I think this is becoming more commonplace and most newer devices support OTG.

(2) I’m having trouble figuring out how to do file operations through the interface that Android exposes for accessing USB devices. For now, I’m pigging backing off the fact that the Files app on my phone jumps in and sets up a mount point for the Op-1 when I plug it in and set it to DISK mode. I’ve then hard coded that mount point in my app and have used it to successfully test my split to mono functionality. This hard coded mount path is obviously crap and not portable to other devices though, so will need to figure out some proper solution there.

Anyways, cool nonetheless!

Thanks @Needles, cheers @vehka :slight_smile:
take Album Side A, split it into two mono tracks and replace tracks 3 and 4 on tape. … and it worked!!! How cool!

imagine if TE had the sense to release some specs and update the firmware to allow interchange that ends up in the OP1’s internal database, so you can have takes and regions and things… anyway congrats on hacking yet another aspect of it.