Let‘s speculate about 6.0
- KVRist
- 485 posts since 1 Mar, 2010
One of the downsides of Bitwig being such an innovative DAW is people hold it to a higher standard. Interesting how that works with people, isn’t it?
Some folks are crying about chord tracks and complaining they can’t make music in Bitwig, meanwhile I’m thankful every time I open multiple projects at once, remember that not all DAWs have proper PDC, or a plugin crashes and doesn’t crash the entire DAW.
Some folks are crying about chord tracks and complaining they can’t make music in Bitwig, meanwhile I’m thankful every time I open multiple projects at once, remember that not all DAWs have proper PDC, or a plugin crashes and doesn’t crash the entire DAW.
-
- KVRian
- 670 posts since 11 Apr, 2006
I have actually used Max a lot. I am fully aware of what you are linking me to. There is probably not anything you could tell me about Max that I don't already know.xbitz wrote: Mon Jun 02, 2025 6:02 am In Ableton Live’s M4L (Max for Live) environment, JavaScript can be used for implementing business logic within patches, so for ex. it can be used
You should not use JavaScript for manipulating events in Max. If you use JS, the event loses its timestamping and becomes "sloppy" and will have timing deviations by several milliseconds. This is because the JS engine runs out-of-process, and Max gives up trying to deal with synchronous response when exchanging data between its internal engine and the JS engine, so any events (including MIDI) that you hand off to the JS engine just end up finishing "eventually" which at a minimum will mean losing the timing accuracy integration with Ableton Live, making it deviate by a millisecond or so at a minimum, and several milliseconds at worst. It also uses WAY more CPU power than to perform that exchange.
If you use one of those many step sequencers people build with M4L, and it has really sloppy timing, and you open it up and see that they gave up trying to use Max and built the logic with JS, now you know why it's sloppy.
-
- KVRian
- 670 posts since 11 Apr, 2006
I use Bitwig all the time and have made plenty of things with it. Overall, it's great. I think the reason people seem to vent a bit more frustration with Bitwig is that, as you say, Bitwig has all of this amazing internal power, and then it feels like they fumble it a bit right near the goal when presenting the interface to that power to the user. Like you have this amazing modulation system, but setting up a modulation to use a value range of "1.0" requires clicking 4 times, either moving the mouse to the inspector area or opening up a context menu, holding a modifier for one of the clicks to get into text value edit mode, then typing "1" and pressing enter. Max for Live is a buggy, unreliable mess for modulation in comparison, but assigning a modulation to use a default useful value requires 2 clicks and no typing. That sort of thing. I could go on to point out similar kinds of problems with automation editing, arrangement editing (like moving blocks of time around…) you get the idea.coroknight wrote: Mon Jun 02, 2025 6:30 pm Some folks are crying about chord tracks and complaining they can’t make music in Bitwig, meanwhile I’m thankful every time I open multiple projects at once, remember that not all DAWs have proper PDC, or a plugin crashes and doesn’t crash the entire DAW.
I'd still rather use Bitwig than Live for almost everything that I would do with either of those DAWs, but it feels like, to me, if they spent a bit more effort on the usability aspect of its powerful features, people would actually reap much more benefit from all of the effort that Bitwig has clearly put into making the audio internals of Bitwig so powerful, accurate, and reliable.
-
- KVRAF
- 5144 posts since 3 Oct, 2013
^^^ I don’t want to over-script myself, I have enough of that at work with Quarkus and Vert.x Reactive Architecture
. I just want to be able to perform operations on groups of notes, that’s all. It always annoys me when I have to do the same thing over and over again
^^^ For example, when you want to build an arpeggio, no plugin really fits the job – the truth lies somewhere between manual and machine-based solutions
or FLS handles note groups, so you can come up with something like forming groups per block or per pitch basis — awesome

An FLS-like Python engine, where things can be done with ChatGPT in 30 seconds, would be more than enough for me too. The main thing is, a chosen hobby should help you ease your mind, not add more fuel to it – that’s what it’s for, no needs any stress, frustration here
ps. By the way, they’ve now added the Python engine under Patcher too, so now modulators can be coded as well (:: https://forum.image-line.com/viewtopic.php?t=333502 sick
) — FLS is heading in quite an interesting direction, indirectly, the DAW supports LLMs — or rather the scripts generated by them — which is a much better idea than Logic’s ChatGPT window, now you can script Edison(wave editor), the Piano Roll, the Patcher(their modular env), and the MIDI remote, ... they have own LLM engine too https://alpha-gopher.image-line.com/?_g ... QyNTcyMzQz
or FLS handles note groups, so you can come up with something like forming groups per block or per pitch basis — awesome

An FLS-like Python engine, where things can be done with ChatGPT in 30 seconds, would be more than enough for me too. The main thing is, a chosen hobby should help you ease your mind, not add more fuel to it – that’s what it’s for, no needs any stress, frustration here
ps. By the way, they’ve now added the Python engine under Patcher too, so now modulators can be coded as well (:: https://forum.image-line.com/viewtopic.php?t=333502 sick
You do not have the required permissions to view the files attached to this post.
"Where we're workarounding, we don't NEED features." - powermat
-
- KVRian
- 759 posts since 26 Sep, 2007
I wish that was true. They still don't seem to have anything going in the way of holistic product design vision. It's feature bolt-ons left and right.
-
- KVRAF
- 5144 posts since 3 Oct, 2013
I think it’s a good direction if the DAW’s surface stays beginner-friendly, not turning into a Reaper. But inside, you can code basically anything you can think of – without constant prompt writing, which only leads to frustration and kills creativity, I think their problem is that the codebase is so old they can’t really tell what will be ready when. They just dive into everything, then whatever has a chance of being finished, they go for that, and the rest just keeps getting delayed all the time, so, for example, the Python engines that builds on top of the already working parts and doesn’t fundamentally affect their operation gets integrated, while the rest is always up in the air
anyway let's go back to BWS
"Where we're workarounding, we don't NEED features." - powermat
- KVRAF
- 26935 posts since 3 Feb, 2005 from in the wilds
I doubt the majority of users are coders.xbitz wrote: Tue Jun 03, 2025 10:01 am I think it’s a good direction if the DAW’s surface stays beginner-friendly, not turning into a Reaper. But inside, you can code basically anything you can think of
-
- KVRer
- 18 posts since 25 Sep, 2024
bitwig 6? I doubt it
- KVRian
- 1245 posts since 27 Nov, 2014
Maybe 5.6 on Thursday?
-
- KVRAF
- 5144 posts since 3 Oct, 2013
That’s why I’m saying it’s a good solution: LLM > Python > DAW. I’d like a script that, in every bar, deletes the first two notes and sets the remaining ones to MIDI channel 15. And it creates a python script which can be reused. But what would be really annoying is if you had to type that in every single time. The fact that the script sits in the middle is the right direction
in BWS it would just need a bit more love
chatGTP edition (lazy to fact-check it, but as I see it's more or less correct)
🎛 Bitwig Scripting: What You Can and Cannot Do
You Can (with Workarounds):
Control Bitwig via JavaScript (Control Surface API):
Send/receive MIDI, control knobs/faders, access device parameters.
But: No native access to the Piano Roll / Note Editor directly.
Manipulate MIDI in real-time using modulators and the Grid:
Create custom note processors inside Grid (e.g., randomizers, transposers, probability tools).
Build arpeggiators, sequencers, step modifiers in Grid.
Hacky Solutions:
Use NoteFX devices or Grid patches as pseudo-scripts.
Automate devices via scripting, but actual note manipulation is still indirect.
You Cannot (at least not directly):
Write a JavaScript that says:
"For every bar, delete the 2nd note in the MIDI clip."
Nope—there’s no direct access to MIDI note data like in REAPER or FL Studio.
Access the MIDI Editor programmatically.
Directly manipulate arrangement-level clips (without hacks).
The Bitwig Workaround Dance
If you really need note manipulation:
Grid MIDI Processor (within a track):
Build a Grid patch that alters incoming MIDI in real-time.
Example: A "delete every 2nd note" effect can be approximated with conditional triggers.
External Tools + Import:
Write Python scripts outside Bitwig (e.g., use Mido or mido.py to manipulate MIDI files).
Import the processed MIDI back into Bitwig.
Max4Live in Ableton + ReWire/Link (yeah, ugly):
Create custom Max patches in Ableton.
Sync via Ableton Link or virtual MIDI ports.
Controller API Abuse:
Use the JavaScript API to trigger commands indirectly via control mappings.
For example, you could simulate certain behaviors by controlling device parameters via controller scripts.
Why Is It Like This?
Bitwig’s architecture is designed for real-time modulation, not offline batch processing of MIDI clips. They seem to have intentionally avoided the Reaper-style "here’s the entire DAW state, have fun!" approach, perhaps for stability or conceptual consistency.
So, What’s the Realistic Path?
If you want real-time performance tweaks, Bitwig’s Grid and modulators are stellar.
If you need offline, precise MIDI processing, you’ll hit limits and need to:
Use Grid patches as pseudo-scripts.
Or, accept that external MIDI manipulation (via Python, JavaScript outside Bitwig) is the current workaround.
You do not have the required permissions to view the files attached to this post.
"Where we're workarounding, we don't NEED features." - powermat
- KVRAF
- 26935 posts since 3 Feb, 2005 from in the wilds
I can only speak for myself, but none of that interests me in the slightest.xbitz wrote: Tue Jun 03, 2025 3:20 pm That’s why I’m saying it’s a good solution: LLM > Python > DAW. I’d like a script that, in every bar, deletes the first two notes and sets the remaining ones to MIDI channel 15. And it creates a python script which can be reused. But what would be really annoying is if you had to type that in every single time. The fact that the script sits in the middle is the right direction
By the time I make such a script, or adjust an existing one to a specific use case, then check to make sure it did what I expected, I can manually do the edit faster and with less mental overhead.
Plus, the monthly subscription for the LLM cost significantly more than what I pay for my DAW.
-
- KVRAF
- 5144 posts since 3 Oct, 2013
^^^ I only needed what brings phrase-based workflow into FL – meaning it applies the same operation to (dynamically created)groups of notes, once I have the idea, I don't want to waste time dragging notes around or swapping MIDI channels and all that, for ex. who wants to delete specific notes one by one from bar-based phrases when it could be done with a single click?
There's no way to do it faster manually
It’s not real-time like BWS devices, but at least I’m not wasting time constantly checking if another variation might work better — I’m actually getting somewhere, ... actually, the newly added Patcher scripting can now do real-time note manipulations — but at that point, you might as well just use the BWS Note Grid
There's no way to do it faster manually
You do not have the required permissions to view the files attached to this post.
"Where we're workarounding, we don't NEED features." - powermat
-
- KVRAF
- 5573 posts since 30 May, 2006 from Hollow Earth
pdxindy wrote: Tue Jun 03, 2025 4:19 pm By the time I make such a script, or adjust an existing one to a specific use case, then check to make sure it did what I expected, I can manually do the edit faster and with less mental overhead.
ABEFLGMOPPRRST 
