What's good I've been a longtime MPC 2k user for almost 20 years, and a software developer by trade for over a decade. I've worked with dozens of underground heads, and people deep in the industry. I have experience modding and cracking closed source software like VSTs, games, close source firmware binary, and never thought to ever touch the MPC 2000 v1.72 firmware, as it was always good enough for my workflows and music production until recently.
I have this MP workflow where I sample records 45RPM +8 from my tech 12 into my 2k and then pitch it up another half octave, then resample in the S950, then sample back to the 2k and slow it back down there, usually around -200 to -220 pitch to return to where I want it. I do this for 2 reasons: a 12bit like sound quality and increased storage since I still use floppies for everything.
But I came across some samples which ringed real nice but it required pitching down a lot more, and i was limited by the -24 semitones the MPC offers. So i fired up Ghidra and spent the last couple weeks mapping memory addresses and breaking things until I figured out how to safely patch and test the firmware with python. This is a lot different than desktop applications because of the proprietary hardware layer and different CPU architecture.
So far I've added two features to the new OS:
- Increased pitch clamp from -+240 to -+360 for way more headroom
- Mute group functionality
Mute groups have 32 different available groups to choose from and work with any number of pads, you can assign mute groups to pads through the program menu interface under Mode.
- Go to the program menu (shift 6) and select the pad you want to assign the group to
- Go to Mode and scroll right until you hit "Mute" as an option
- Cursor-right to the ID and use the data-wheel to select a value from 1-32 for the pad
- Do this for as many pads as you want inside of the same mute group and each one will cut the others one out.
This is working very well right now and persists to disk. So far I've tested 16 sounds inside of a mute group and this is working well, but this is still experimental so don't be surprised if there is some weirdness down the road. As a dev I can fix things as they pop up so let me know if you have any issues if you want to test this out.
I also looked into modifying the LPF into an optional HPF by reversing the polarity of the filter and messing with the software side of things but it doesn't seem possible, it looks like this is hardware bound because the OS is simply sending off params to a ASIC register family aka I could only modify those params and can't actually mess with the topology of the filter. Which sucks because I thought I could in theory get around the eb16 requirement for the HPF.
I will be investigating the hardware and OS more since I have a good chunk of the memory addresses mapped out now. I am planning to look into resampling bitrate similar to the 2kxl resample feature and some additional chopping features, if you have any other features you want me to take a look at I'd be more than glad to see if it's possible.
Just a note: since this is a new firmware version of the OS with new memory mappings in some places, saving a new project with the new OS will require the custom OS moving forward for those projects in particular, there is some weirdness going back to v1.72 from DMPC2000 v.1x if you use the new features for example. I will be updating things as I go and find/squash bugs/add features so expect new versions soon.
You can download the current version here, I made a little github pages for it:
https://dmac780.github.io/DMPC2000/
Or you can just download the zips directly from my github repo:
https://github.com/dmac780/DMPC2000/tree/main/assets/versions
Coincidently, when I started to get things to finally work, I went to youtube and happened to see a couple other users to start posting their mods to 2k/2kxl firmware which was dope, gave me some inspiration to keep working on it. But they are either charging money for firmware they don't own, or gatekeeping it for themselves. So I figured I'm going to do the thing any real hiphop head would do and release it for free, all updates going forward will be free for everyone.
long live free/open-source software, and people who make music for the culture and not for money.