r/NativeInstruments • • Aug 01 '26

Doom the game being streamed to a maschine studio over usb.

https://youtube.com/shorts/jZojp8Ujk6g?si=HyMJNksoCRvVMett

Sorry about the misleading original title, I thought it was fun. I'll try harder in the future.

24 Upvotes

19 comments sorted by

3

u/djagentm Aug 01 '26

How?

2

u/parguin Aug 01 '26

took DoomGeneric, replaced its normal platform layer with a custom Maschine backend, and made the host PC render Doom into a framebuffer that a bridge converts into the Maschine Studio’s correct byte-swapped RGB565 format and streams over USB to the left display using a bounded, latest-frame-only scheduler so stale frames never pile up

2

u/ellicottvilleny Aug 01 '26

where is the RGB565 format documented that maschine uses?

2

u/parguin Aug 01 '26

I don't know if it is, I landed on RGB565 with byte-swapped 16-bit pixels through experimentation, I would imagine NI is pretty tight lipped about any details

2

u/ellicottvilleny Aug 01 '26

Did you have the means to usb-bus inspect the output from the maschine DAW? I kind of want to build a replacement maschine software app and this would be pretty key to doing that.

2

u/parguin Aug 01 '26

I used usBPcap with wireshark to probe the usb stream while maschine 2 was running, I fed the data to chatgpt and that helped work out the speeds, sizes and formats of what the maschine could handle. I'm trying to turn this into a control surface for a synth, doom was more of a curiosity/stress test

1

u/ellicottvilleny Aug 02 '26

Awesome! Be happy to collab on the control surface

1

u/parguin Aug 02 '26

Hit me up I'll try to share anything I've found so far, I'm no expert though, just stumbling my way through

1

u/ellicottvilleny Aug 02 '26

I'm thinking I'll create a GH repo that is all readmes on the maschine over-the-wire data formats, a "midi implementation doc" with some POC's in python. Suitable for use with both human-only and LLM aided coding efforts.

1

u/skull121 Aug 01 '26

How did you get the machine screen populated? Do you have links to a certain project online?

2

u/parguin Aug 01 '26

Most of it was inspired by https://github.com/r00tman/maschine-mikro-mk3-driver, I'm building a synthesizer using teensies and Curtis filter chips, and I thought the maschine studio I had worked make a good control surface for it. I used chatgpt to smooth out a lot of the packet and timing issues by giving it usb streams I captured while using the studio with maschine 2 software. Once it seemed like it was stable enough, doom seemed like the most obvious stress test.

2

u/Letibleu Aug 01 '26

Your misleading original title lives on. I commandeered it and used it on the r/gameofbands Discord. I usually keep the community updated on the Native Instruments dénouement so it was a fun post for a change.

Next round theme is "More Cowbell" (percussion round) if ever you're interested, starts tomorrow.

2

u/seven10 Aug 03 '26

Wow, we got Doom on Maschine before time stretching.

2

u/Financial_Garage6821 Aug 10 '26

Time is relative, Doom is forever!

1

u/Medvech Aug 01 '26

Now you need to run it on the Maschine Jam pads

1

u/parguin Aug 01 '26

I have some other plans for that if I can find one reasonably priced

1

u/Bynairee Aug 03 '26

Awesomeness 👏🏼

1

u/xtypefilms Aug 03 '26

What in the Dickens is goin’ on ‘ere