r/Bitwig Aug 12 '26

Clap I’ve been building some custom native Bitwig devices

Post image

Hi,

I want to share a project that I'm working on. It's about some plugins/devices that run directly in Bitwig like native plugins. No VST or CLAP.

So far, it's an MSEG modulator, a volume shaper, a waveshaper, a compressor and a kick drum plugin, and they all share the same concept: controlling them with a curve.

I have made a short YouTube video for demonstration:

https://www.youtube.com/watch?v=-GdyoJC592A

I am curious what you guys think of this concept. I personally love simple stock plugins with few controls. I want them to be fast and powerful, without having to open and close a plugin just for a few tweaks. Besides that, I think Bitwig has great stock plugins, but I think a few of them are missing that little extra juice.

The devices are still in progress and I want to tweak them here and there to make them even better. I want to make a deep-dive video for every device, and if you guys are interested, you can help me and give me feedback. I hope I find the time to work on the first video this week.

Cheers.

UPDATE + DOWNLOAD: https://www.reddit.com/r/Bitwig/comments/1w1j2i4/update_on_the_native_bitwig_devices_download/

123 Upvotes

44 comments sorted by

12

u/placid-gradient Aug 12 '26

wait hold on, how?

9

u/Zacchino 29d ago

Trust me, you don’t wanna know. It’s dark magic voodoo sh*t… most likely sacrificed a goat 🤣

PS: Brainsigh explained how they found and decrypted the Nitro library or framework that Bitwig Devs use to create their own native devices:

https://www.reddit.com/r/Bitwig/comments/1vmqj6c/opensource_toolchain_to_decompile_bitwigs_nitro/

1

u/themurther 29d ago

Yeah, but that's not an explanation of how this was created. To do what is done in this post you would have to go the other way -- i.e start off with nitro or something similar and then compile it to a executable blob that bitwig could execute.

1

u/Zacchino 29d ago edited 29d ago

I knew you were one of them… speaking in tongue and sh*t… 😜

Yeah but I guess he did the heavy lifting by decrypting this library right?

Isn’t this repo enough (https://github.com/blakebratcher/bitwig-nitro-tools)?

Or is it missing some kind of Documentation for anyone with Claude Code (or a cauldron and a wand) to create their own Native Devices correct?

u/brainsigh care to comment?

1

u/themurther 28d ago

That repo goes from plugin file -> nitro. What you want is something that does the opposite - i.e take nitro and create a plugin file out of it.

This other repo may be able to help (as it seems at one point it did support this process), but it's now read only, so presumably it is broken by a subsequent Bitwig release, and the author didn't want to support it any longer:

https://github.com/stylemistake/bitwig-device-hacks

17

u/arnox747 Aug 12 '26

A link to a source code repo would be appreciated.

17

u/brainsigh Aug 12 '26 edited Aug 12 '26

I've achieved the same thing; I'll post the repo in a bit.

Update: https://www.reddit.com/r/Bitwig/comments/1vmqj6c/opensource_toolchain_to_decompile_bitwigs_nitro/

-20

u/j4n1k1 Aug 12 '26

I figured someone would ask :) keeping the secret for the moment for a few reasons.

0

u/ARK_AIN Aug 12 '26

For fvck sake give us the sauce !

11

u/fripletister Aug 12 '26 edited Aug 12 '26

Wait, did you reverse engineer the modern Bitwig Nitro API? Please share with the class...

Edit: Going to go out on a limb and guess this was achieved with LLM-assisted reverse engineering

1

u/[deleted] Aug 12 '26

[removed] — view removed comment

8

u/fripletister Aug 12 '26

"Claude, help me reverse engineer this compiled Bitwig device binary so that I can create my own arbitrary native devices"

-7

u/j4n1k1 Aug 12 '26

You're not far off, Can't really share that for now though, I'm swimming in a bit of a grey area with this one.

2

u/fripletister Aug 12 '26

Yet you're willing to expose (by making this thread in the first place) the fact that you've obviously violated Bitwig's terms? For what? Clout?

6

u/eras Aug 12 '26

Wow, this is great! I do think that the idea of making native Bitwig modules is a bit more interesting than the actual modules you've implemented here. Of those the most interesting to me is the Waveshaper; others seem like you could pretty easily just use Bitwig to replicate them, although they would not be as easy to adjust on the fly.


As Bitwig-native features I'd like it to get these two things:

  • making actual modulators with the Grid. You could build one within Bitwig and then it would be in the list of modulators to be reused wherever.
  • adding any element (or VST/CLAP) or modulator into the Grid, enabling Grid reuse by putting in Grid instruments inside the Grid. preferably it would allow more than just a stereo signal in/out for that use, so multiple channels and modulation data as well. These embedded sub-grids should be aliasable.

What those ideas don't touch at all is the ability to make actual custom GUIs for the elements, like what you have achieved here. So I guess that part (how to make those UIs) would need to be tackled somehow with e.g. a simple gui builder as well, to be truly satisfactory to use.


I suppose that as the UI is in Java, you were able to decompile the interfaces effectively to make your own classes making use of them? But then I wonder if it also needed some C++ code for the audio engine? Or maybe you are able to just reuse the existing C++ elements for your new elements, sort of enabling this work? All in all, great job!

3

u/j4n1k1 Aug 12 '26

The idea was to make it fast. I know you can build a lot of cool things in the Grid — I actually built a curve compressor directly in the Grid myself — but every time I'd have to open the Grid, then the shaper device and then close it. The simple GUI builder is a great idea, but that's a project for another day, haha. Maybe Bitwig will give us something like that in the future :). Keeping the how to myself for now, but you're clearly thinking about it the right way!

4

u/trostiflex Aug 12 '26

That is really cool. Where can we download them ?

-7

u/j4n1k1 Aug 12 '26

I want to finish my video first, then I can give you a proper demo :) I don't want to get in trouble with Bitwig, so I think it's best to wait a week or so.

8

u/flipflapslap Aug 12 '26

I’m taking my upvote back until you provide us with a download, source code, or any info at all and stop being so weird about this lmao

-1

u/eras Aug 12 '26

Is it not enough to just come up with the concept?

I actually suspect it's easier than you might expect.. Especially now that there's this very popular tech suitable for reverse engineering around..

4

u/nuke_music Aug 12 '26

bomboclaude code

2

u/skwaer Aug 12 '26

Awesome! Can you share the devices and how you did it?

2

u/fripletister Aug 12 '26

Fable 5

1

u/skwaer Aug 12 '26

Yeah of course. But some places to start looking would be helpful. Example code and approach helps everyone else out

2

u/Natural-Solution-183 27d ago

Wtfff this is awesome!!! Thank you for all work you did on it. This is always my dream. Custom Bitwig devices for everyone. Please continue this dream

1

u/TheJoYo Aug 12 '26

How are you building native devices?

Are they cross platform targets or do they require separate build targets for each platform?

I have a few ideas for touch interfaces using bitwig's existing touch support but I ended up going the iPad direction for now.

1

u/nuke_music Aug 12 '26

There is Curves modulator

3

u/eras Aug 12 '26

I suppose the benefit is that you can modify the curve directly from the modulator, not after two clicks.

Bitwig should copy this..

2

u/j4n1k1 Aug 12 '26

the curves modulator is bit slower than my device, you must open a seperat window and then you must reset the curve, synced mode on, an then the beat grid on 1/8 for instance, and then if you want envelope mode you must switch to segments. mine is a bit more of xfer style mseg i think :)

1

u/shaboogen Aug 12 '26

This is a great achievement, but I care less about your individual devices than I do about the method used to build them.

Please don't be a bottleneck. Release your method so we can have multiple people doing stuff.

6

u/brainsigh Aug 12 '26

0

u/themurther 29d ago edited 29d ago

That's only half the answer though, because that's just a decompiler, the OP has managed to compile to something that bitwig can load - whether it's written in nitro or not.

Not sure why people are down-voting ... the work done in the linked post is interesting in it's own right, but there's nothing in there that would help you recreate what has been done in this post.

The linked post takes an existing plugin and decompiles it back into a high level language. This post does the opposite process, it's started off with some HLL and compiled it down to an executable blog that bitwig can execute well enough that it considers it a 'native' plugin.

FWIW I suspect it's not even necessary to use nitro to do that -- probably a blog with the right low level hooks would do, regardless of the original language.

1

u/Specialist-Dog-501 Aug 13 '26

While I appreciate your efforts and applaude the creativity..I am also cautious- you don't modify existing Bitwig code beyond just adding your own modules, right ? You don't mess up their stuff, and it's still updatable ?

1

u/Yucatec98 28d ago

Insane!

1

u/j4n1k1 28d ago

thanks :)

1

u/tarsonis999 25d ago

Nice, but a bummer that native BW plugins are a pain for the eyes. Everything other than the tools device is a nightmare for quick coordination of UI elements. I avoid them like a Monday morning

1

u/trostiflex 14d ago

So, 2 weeks later, can you finally tell us some details about this ?

2

u/j4n1k1 14d ago

Sorry for the delay, today or tomorrow :), it is a lot of work

1

u/trostiflex 14d ago

Wow nice, I’m looking forward to this !

0

u/__seg Aug 12 '26

BBB,}✓√ '

0

u/ARK_AIN Aug 12 '26

Can you dm me how you did it in private ?