TIP: Imported Bank Assignment Workaround (Choose the bank to import to)

As specified in the TAKE5 manual, when importing a bank of patches into the TAKE5 as Sysex "Programs will load back into the same bank and program locations from which they were originally exported."

i.e. If you (or a vendor that sold you a bank of patches) created and exported that bank of patches from User Bank 01 on the TAKE5, that bank assignment is saved into the Sysex file.
This means that as default when importing that saved bank of patches back into any TAKE5 unit, they will automatically import to User Bank 01.
You can not choose which bank on your unit to import them.

There is a workaround for this as long as you don't mind getting your hand dirty with a little code editing.

You will need a hexadecimal code editor (Hex Editor).
I recommend 'Hex Fiend' to Mac users. http://hexfiend.com/
Windows and Linux users should be able to find a free Hex Editor easily enough with a quick google.


  • First, make a copy of the Sysex file that contains the bank you want to import to the TAKE5. (I'd always advise editing a copy, so you have the original to go back to if you mess up).
  • Open the Sysex file inside your Hex Editor.
  • The very first 8 characters of the Sysex file should be F0 01 35 02 - If you search the Sysex file, you will see this pattern multiple times (once at the beginning of each block of characters that denotes a single patch within the bank - so in the Sysex file for a bank of 16 patches, you will find this string 16 times within the code)
  • Each time you see the string F0 01 35 02 the number pair that directly follow it depicts the bank on the TAKE5 that patch belongs to. So a string of F0 01 35 02 00 for instance will import to bank 01. (Because Sysex is a 'zero indexed' file format, 00 = 01, 01 = 02 etc)
  • So in order to specify a different bank that the Sysex file should be imported into, we need to edit the file, replacing the number pair with the number pair that corresponds to our desired bank number (still with me?)
    Use the 'find + replace' function of your Hex Editor and swap out that number pair for the bank you prefer.
    Example: I have a bank file that was exported from User Bank 01. I want to import it to User Bank 03 on my TAKE5, So I find and replace all instances of 'F0 01 35 02 00' with 'F0 01 35 02 02' (remember in zero index '2' = '3')
  • Save changes to your Sysex file
  • Open your Sysex librarian of choice or your favorite DAW
  • Back up the current contents of your TAKE5 before proceding
  • Once you are safely backuped UP, send your newly edited Sysex bank file to you TAKE5

Here's a handy list of the Hexidecimal strings to replace for each of the USER Banks.

F0 01 35 02 00 = Bank 1
F0 01 35 02 01 = Bank 2
F0 01 35 02 02 = Bank 3
F0 01 35 02 03 = Bank 4
F0 01 35 02 04 = Bank 5
F0 01 35 02 05 = Bank 6
F0 01 35 02 06 = Bank 7
F0 01 35 02 07 = Bank 8

And if you have updated to TAKE5 Firmware 2.0 and above you will also have the extra 8 banks:

F0 01 35 02 08 = Bank 9
F0 01 35 02 09 = Bank A
F0 01 35 02 10 = Bank B
F0 01 35 02 11 = Bank C
F0 01 35 02 12 = Bank D
F0 01 35 02 13 = Bank E
F0 01 35 02 14 = Bank F
F0 01 35 02 15 = Bank G

*Note that a Sysex file can contain multiple banks.
If you want to import a Sysex file that contains more than one bank, you would need to complete the 'find and replace' procedure within the file for each bank.
Say you downloaded a single Sysex file called '6 Great Banks for the TAKE5', we can assume it contains 6 banks of possibly 16 sounds per bank.
If the first 10 characters of the file are F0 01 35 02 00 (User Bank 1), we might then assume that the banks will be imported into the TAKE5 to User Banks 1-6 (F0 01 35 02 00 - F0 01 35 02 05).
There would likely be 16 blocks of code beginning with F0 01 35 02 00, 16 blocks beginning with F0 01 35 02 01, and so on.
If we wanted to change which bank each of these was imported to, we would need to find and replace all instances of all 6 strings that we want to change within the same file.


**The above may be possible, without editing code, from inside the Soundtower editor and librarian, but I refuse to pay $69 for a librarian when every other synth company provides editors free of charge to their customers.
« Last Edit: April 08, 2023, 03:32:46 AM by Zonbizoku »

gbd

I've written up something similar on my blog:
https://www.horizonridge.studio/blog/edit-midi-sysex-data-with-hex-fiend

This is not something I do regularly as I find it easier to just save any patches to a new slot manually on the synth itself.

Makes sense!

I discovered this while doing some test runs with MIDI-OX to make sure I could restore my gig-ready custom patch bank: the bank data was stored in the .syx file and could not be overridden by anything on the keyboard. That being what it is, I'd call it a double-edged sword: if you know where you want to swing it, it cuts your problems out for you. I've decided I like it, as I'm already going to dump new sysex files with date/time stamps to my heart's content, so any copies of patches to new slots will be part of that process.

And I am very much not in the habit of buying sound banks, as tasty as some of them tend to be. Frankly, I'd rather fool off in the forest of modulation sources & destinations for hours.

The fact that it all exists as editable hex data, though, brings me peace of mind in a way, because ultimately that's a kind of universal language, and a simple-enough one that if one needs to make some changes for something important, it can be done.

I've written up something similar on my blog:

Nice one!
Slightly prettier than mine :)
PS can confirm still works with firmware 2.0.
You just have to take an extra second to mentally calculate which number pair relates to which letter based bank.

I am very much not in the habit of buying sound banks, as tasty as some of them tend to be. Frankly, I'd rather fool off in the forest of modulation sources & destinations for hours.

I here ya. I tend not to buy many.
Sometimes when I get a new synth I'll grab one just to back engineer any cool patches in them to help learn the synth though.

Quote
The fact that it all exists as editable hex data, though, brings me peace of mind in a way, because ultimately that's a kind of universal language, and a simple-enough one that if one needs to make some changes for something important, it can be done.

Yep
I'm a web developer by day, so I like if I can understand things on that level. (A code pattern I can understand and possibly bug check if I need to)
« Last Edit: April 11, 2023, 11:09:32 AM by Zonbizoku »

The new user banks don't apparently have the same number system. I can check them out but for instance Bank 13 (D) has 0C in the end of its "code". F0 01 35 02 12 is actually factory bank 3 (and you can write on those too!).

I downloaded Nick Semrads preset pack that was originally intended to banks 4-7. I edited them according to your instructions to banks 13-16 (D-G) but now they are on factory banks 3-6. I don't mind that at all but just so you know!

...
Here's a handy list of the Hexidecimal strings to replace for each of the USER Banks.

F0 01 35 02 00 = Bank 1
F0 01 35 02 01 = Bank 2
F0 01 35 02 02 = Bank 3
F0 01 35 02 03 = Bank 4
F0 01 35 02 04 = Bank 5
F0 01 35 02 05 = Bank 6
F0 01 35 02 06 = Bank 7
F0 01 35 02 07 = Bank 8

And if you have updated to TAKE5 Firmware 2.0 and above you will also have the extra 8 banks:

F0 01 35 02 08 = Bank 9
F0 01 35 02 09 = Bank A
F0 01 35 02 10 = Bank B
F0 01 35 02 11 = Bank C
F0 01 35 02 12 = Bank D
F0 01 35 02 13 = Bank E
F0 01 35 02 14 = Bank F
F0 01 35 02 15 = Bank G
...
You've messed it up a little. The proper numbers for the new extended user banks are:
F0 01 35 02 08 = Bank 9
F0 01 35 02 09 = Bank A
F0 01 35 02 0A = Bank B
F0 01 35 02 0B = Bank C
F0 01 35 02 0C = Bank D
F0 01 35 02 0D = Bank E
F0 01 35 02 0E = Bank F
F0 01 35 02 0F = Bank G

Basically the first byte determines user (0) or factory (1) locations. The second byte 0-F determines the bank number.