I made a free online tool to unpack EZKeys MIDI packs.

Discussion in 'Software' started by kabaragoya, Dec 31, 2023.

  1. kabaragoya

    kabaragoya Ultrasonic

    Joined:
    Dec 31, 2023
    Messages:
    31
    Likes Received:
    25
    I found myself so upset at Toontrack, having purchased "MIDI" content that I wasn't able to access unless I purchased a $179 VST. No trials, no refunds. That's BS.

    And so I decided to be the solution. I built a tool to extract all of the MIDI files from your content pack, and I put it online for everyone to use for free.

    https://ezkeys.kabaragoya.com/

    If you're reading this and you own EZKeys MIDI packs, I'd really appreciate it if you let me know if any of them don't work with my tool. Make a quick note of the time and I'll be able to find it in the web server logs.
     
    • Like x 8
    • Love it! x 5
    • Winner x 1
    • Interesting x 1
    • Useful x 1
    • List
  2.  
  3. Ryck

    Ryck Guest

    Edit: It seems like you're spamming. You've revived about 4 posts on this issue, and now you're creating another one. Don't you think it would be enough with just this one, or maybe post it on the sister site? I don't know... it seems to me.
     
    Last edited by a moderator: Dec 31, 2023
    • Like Like x 1
    • Useful Useful x 1
    • List
  4. syrius

    syrius Member

    Joined:
    Jan 4, 2021
    Messages:
    26
    Likes Received:
    14
    I just tested with an old midi file name 000500@EZKEYS_MIDI 2 minutes ago and received a GTFO message so it looks like that didn't work.
     
  5. kabaragoya

    kabaragoya Ultrasonic

    Joined:
    Dec 31, 2023
    Messages:
    31
    Likes Received:
    25
    @Ryck not my intention, sir! I'm just excited and I'd made a list of folks who had asked for help with this topic.

    I do sincerely apologize if I've stepped on any toes. If the mods want me to remove any of them, I'm happy to oblige.
     
  6. kabaragoya

    kabaragoya Ultrasonic

    Joined:
    Dec 31, 2023
    Messages:
    31
    Likes Received:
    25
    @syrius I'm on it! Thanks for the report.

    Which pack are you trying to upload? Note that it has to be a valid EZKeys MIDI pack or it won't know what to do with it.
     
  7. syrius

    syrius Member

    Joined:
    Jan 4, 2021
    Messages:
    26
    Likes Received:
    14
    This file is from 2013. it was probably installed at the same time I installed this old version of ezkey. I retrieve this file from one of my old backup disk. If you cannot do anything with it, then just ignore it. Thank you
     
    • Interesting Interesting x 1
    • List
  8. El Cycer

    El Cycer Producer

    Joined:
    Sep 9, 2023
    Messages:
    303
    Likes Received:
    135
    I tried your converter with a couple of midi packs: it works. I'm interested to know how you were able to translate that strange format into a regular .mid file
     
  9. Prendergast

    Prendergast Producer

    Joined:
    Jun 9, 2020
    Messages:
    127
    Likes Received:
    103
    Now this sounds promising.
    Will this work with Midi Packs for Drums as well (EZDrummer and Superior)?
     
  10. planetdestroyer

    planetdestroyer Newbie

    Joined:
    Apr 14, 2020
    Messages:
    2
    Likes Received:
    0
    Sweet nice work.

    Care to share how you are doing this? or at least share all the nice midi packs zips you manage to scavenge through this? :)
     
  11. El Cycer

    El Cycer Producer

    Joined:
    Sep 9, 2023
    Messages:
    303
    Likes Received:
    135
    Do you need Toontrack midi files? Search for "EZkeys MIDI Packs Bundle" on the usual website
     
  12. kabaragoya

    kabaragoya Ultrasonic

    Joined:
    Dec 31, 2023
    Messages:
    31
    Likes Received:
    25
    "Easy!" - I spent almost a week reverse engineering their absurd proprietary format using a hex editor and the MIDI spec.

    The data was all in there, surrounded by {other crap}. A lot of it was a binary implementation of the same hierarchy scheme that they usually implement with folder structures.
     
  13. kabaragoya

    kabaragoya Ultrasonic

    Joined:
    Dec 31, 2023
    Messages:
    31
    Likes Received:
    25
    EZDrummer and EZBass packs are shipped as folder structures full of .mid files, which is exactly what my converter produces.

    In other words: you don't need a converter. So... no?
     
  14. kabaragoya

    kabaragoya Ultrasonic

    Joined:
    Dec 31, 2023
    Messages:
    31
    Likes Received:
    25
    Well, I used Ruby to code the converter. I made extensive use of a hex editor and a hex/dec calculator, as I had to learn how to do thinks like calculate BPM based on the number of ticks per quarter note. It was educational.

    Python gets all of the love, but Ruby is the sharpest weapon.

    I think that you're joking about scavenging packs, right? I built this because I already had packs that I wanted to use. For the record, one of the things I'm most proud of is that my app doesn't write any files to the local ephemeral filesystem; the entire process of iterating through the binary blob, pulling out the MIDI header/track chunks, and then creating entries with smart naming in a zip archive is done entirely in-memory. For the non-programmers, this is otherwise known as "hard" or "showing off".
     
    • Interesting Interesting x 3
    • Like Like x 1
    • List
  15. clone

    clone Audiosexual

    Joined:
    Feb 5, 2021
    Messages:
    7,568
    Likes Received:
    3,335
    One thing I found interesting about how they structure stuff; when I first installed EZdrummer, I noticed it doesn't even matter if the main folder structure is correct. You can make one root directory, and dump in all that stuff with no need to even be careful; the way you do with many other plugins/programs. You could use a dump truck to fill the folder. And they all still work somehow.

    i bookmarked your link and i will check it later. Might have to accumulate some files first.
     
  16. kabaragoya

    kabaragoya Ultrasonic

    Joined:
    Dec 31, 2023
    Messages:
    31
    Likes Received:
    25
    Could you explain what you mean? What is "the usual website"?

    You do need Toontrack EZKeys MIDI packs... I think maybe I don't understand what you're actually asking since you've already used the tool. What else would it be for? :)
     
  17. kabaragoya

    kabaragoya Ultrasonic

    Joined:
    Dec 31, 2023
    Messages:
    31
    Likes Received:
    25
    I don't want to be shitty to the coders who came up with that system, because I'm sure that they regret using folders. However, the sane thing to do would have been to ship the MIDI files with a JSON (or even XML!) file that contains metadata about each MIDI file. Just way easier to build and work with. Using named folders to create functionality is just *janky* in practice.
     
  18. Rasputin

    Rasputin Platinum Record

    Joined:
    Jun 29, 2012
    Messages:
    382
    Likes Received:
    250
    Love it!

    I wish more people wrote utilities to unpack proprietary schemes.
     
    • Like Like x 2
    • Agree Agree x 1
    • List
  19. Choosename

    Choosename Platinum Record

    Joined:
    Nov 24, 2023
    Messages:
    515
    Likes Received:
    217
    Location:
    Milky way
    Is it possible an offline utils?
     
  20. planetdestroyer

    planetdestroyer Newbie

    Joined:
    Apr 14, 2020
    Messages:
    2
    Likes Received:
    0
    Absolutely joking and you actually sparked my curiosity to try to do this myself with python.

    Inevitably gave up and just created a simple script to loop through my files and send requests to your site :).

    That being said, any possibility to code in a bulk option? I think that would be super useful feature!
     
  21. kabaragoya

    kabaragoya Ultrasonic

    Joined:
    Dec 31, 2023
    Messages:
    31
    Likes Received:
    25
    Kudos for trying your hand at it! One of my life goals is to encourage people to use coding to solve problems creatively.

    There has to be an allegory which captures the inevitable immediate response to "what was previously impossible is now possible"... "yes, but can you make it easier?" :winker:

    Heroku imposes an arbitrary limit to both RAM and request duration. Because I do the entire process in RAM, it's very possible that someone could blow things up by trying to upload them all at once. It's also a fair bit more complicated to deal with multi-file uploads, and considering that the current solution is working well, I think I'm going to call this one wrapped for the moment.

    After all, why would any one person have more than 5-10 of these packs? It can't take that long to upload each of them.
     
Loading...
Loading...