Looking for an API interface for controlling/interacting with Maschine+ hardware.
Absolutely not. It’s all very closed source.
For controller mode there’s some reverse engineering stuff out there on GitHub, to acess screens, even play video on it, some details about the sw handshake, etc… but so far anyone who tried eventually gave up and moved on.
@reffahcs has shared quite a few M+ HW details here:
https://community.native-instruments.com/discussion/21202/m-computer-internals-info/p8
If you ask about if there is a simple way to write a computer program that interacts with the Maschine+ (or if such program exists already), then no, i don't think so, never heard of something like that…
If you scour the net, you will find the person who created the M+ (No idea if he even still works at NI) had previously reverse engineered a big portion of Maschine before working for NI, I think it was open source too (Old man memory) his work will probably give you the closest you will get to an API.
Yeah there is definitely an API that exists but like @D-One mentioned it's not open source.
I've done a few USB packet captures with Wireshark and nothing really jumped out at me. From what I recall it's all done at the USB layer. There may be something at the IP layer that you could netcat/curl your way into but it's been a while, I'd have to go back through my notes.
"the person who created the M+"
Igor Vargotsky seems to have been one of the main guys. He left a few months ago.
The most info I ever saw about connecting and controlling the HW is this:
https://lerner98.medium.com/rage-against-the-maschine-3357be1abc48
It has some protocol details, the hanshake, etc.. All of this would only apply to the M+ in controller mode of course, since we cant access the data on the internal storage.
Other than that theres rebellion:
https://github.com/terminar/rebellion
At the end of the readme theres a "Special Thanks" section with many links to folks and resources who have done some significant work like Felicia Hummel (got video to run on the MK3 screens), Antonio Malara, etc…
All of the above resources are the best out there (AFAIK) for devs trying to access, modify or control NI HW devices.
Not everyone just moved on, just… waiting.
Just to get some info: Sam did a GREAT job with the medium article but made some false assumptions with the bootstrap process, the infos in the article are some sort of "incorrect". Eventually he get me into the right process of the reverse engineering process (and the kudos to all the great people who tinkered with NI devices).
well… that’s unfair, you can’t just be all mysterious like that and let me guessing on about what y’all (Rebellion) are waiting for… -.-
It's more - me. If you are interested a small "recap":
The project itself is a "zeitgeist" in time and an evidence, that we (the consumer) have possibilities to choose from, and we don't choose the best possible anymore or the possibilities are enough for the most of us - and a personal failure. Generally that's a really good result. For the hackers community it's a change.
When i began programming and hacking on hardware, there weren't that much possibilities to choose from, so you were/i was forced to get your hands dirty and create your own stuff when it was missing.
Or to make a product what you loved a little bit better. Maybe "not invented here" syndrome, not sure.
BUT: the situation is different now and the interest into getting hands dirty is lower. If it's not done in 1 day, it's uninteresting, Instagram is more interesting. If it means, learning basic programming, it's too much. That's really OK but i myself am not able to do the project on my own, i need a little support from other developers for a greater goal. I did the project as maintainer for 3 years active. No one was interested to join. That's a general failure for the project idea and general goal. There was not a single addition (in code lines or ideas others than "can you add support for ios" which is a completely different goal) at that time.
My personal vision to make a better "Push" out of the Maschine (because the hardware thing is awesome!) is paused. Technically, possible. But not with one person. Maybe i was blind myself and overestimated the interests in possibilities. If even i don't believe in the idea it's dead.
Also, interesting part: a big part of motivated joiners were interested in their own commercial goals without any return. "How can i integrate it in my project without any knowledge and support". That was really hurtful for this generally open project and me.
Another topic was: Native Instruments seemed to be really quiet and unsupportive (of course, i never really expected support), also the future and their devices were vague. we had some month/years where even support for Maschine MK3 in Ableton11 was more than basic and - useless. Still the future is unclear.
So what means "waiting"? Just that - waiting. I bought a used Maschine Plus today (shipment will maybe arrive Saturday or Monday). What's left is just personal motivation, someone with Dunning-Krueger syndrome, making music for himself, not a greater vision.
I don't want to archive the project. Also today i learned from the great work of @reffahcs in the forum which makes discussions really interesting on a technical side. So - let's see.
But yes. If i am honest, i'm in love to NI but also … gone or "moved on"… ;)
I must confess, I was not expecting a reply this deep, thanks for sharing.
I feel ya. I'm no dev, just a curious tinkerer that messes around with bits of simple code here and there, at one point i was learning the basics of MacOS development and decided NIPatcher could be a cool practical project to start, it's basically just a text replacer for the CSS-like language Maschine uses for it's GUI and the LUA hardware scripts it uses for the controllers. I thought: this project is so simple and yet can fix some issues thousands been complaining for years so surely more experienced devs will eventually contribute with something, even if just advice 'if you do it X way instead of Y it's better because Z'. To this day the NIPatcher thread is the top Maschine thread excluding the ones made by official NI accounts (like update threads and such), yet not a single person contributed anything… It's was hard to even get a couple of users to test it, lol. This is not a very DIY/tinkering oriented community to say the least. Since I have many hobbies, I moved on to other things. If this happens with a project so simple, I can only imagine on something way more complicated like Rebellion.
Regarding the future: It will align with the S-MK3 stack where it's sort of easy to mock around and modify the image the firmware updater uploads to the device, I am mentioning this because if you're excited about tinkering with the M+ you might be a lot more about eventual new HW.
Btw, I read yesterday about NIPatcher, thank you for your work and effort, i'll possibly adopt it/some things for Traktor when I have finished a bunch of daytime work and got my hands dirty on the Maschine+.
The tech stack even for the Maschine+ is great to do stuff, it's just too "closed/nailed up" even for the infrastructure that is used (Yocto, Congatec, …). Thats not a technical reason but understandable company decision. I am not sure (due to the nature of the S-MK3 hardware and some equal OS building stuff which is maybe used) if these company decisions are more "open" than with the Maschine+.
Regarding the hardware tinkering - yes, i'm still very interested and really happy to see the new stack (KKS49-MK3 sitting infront of me). Also i got some very awesome support from @reffahcs yesterday about his Maschine+ knowledge and work what have been done yet. Still waiting for my Maschine+ (not shipped yet from the seller so it will be maybe next week) and then, i'll need to find some spare time but: generally I would first like to check some details regarding the current situation on my own.
But this time: as i said, only for fun without a real goal ;)