MIDI recording accuracy in Bitwig

Thats one of the big reasons that I havent bothered going very far with any of the MPE+ or MIDI 2.0 high res topics that I have sometimes talked about here in recent years. And there are so many ‘black boxes’ that we cannot see inside, and only usually learn anything about the details of the slewing a particular synth uses if the developer happens to talk about it or related issues in a public forum.

Control scripts are alive and well. A long time ago I did consider looking at using these as a gateway to pluggin into high res data within Bitwig, but I probably got frustrated that I knew far less about the scripts than I thought I did, and that there wasnt a vast amount of documentation from Bitwig that discussed what sort of internal resolution they actually use for this data. But its entirely possible I overlooked a source of info about that. And I dont think I ever poked at their Osmose-specific controller script since that came out, my thoughts on the subject pre-dated the availability of that one entirely.

2 Likes

yeah, the controller api is ‘poorly documented’ …

its very easy to create simple stuff, but there is no real documentation (rather than just api descriptions), for how everything fits together.
there is a suppose to be controller scripting guide, under help, but its not there for me… just the api html doc.

when I last looked at this (and I just did a quick ook, and still looks the same), the issue was basically you have NoteInput which represents the track input.
this allows you to get the midi in, potentially massage it, then forward to the track.

so far so good ! BUT…

the expressive midi is just a simple ‘on/off’ api call…
similarly the ability to set a notexpression is limited to polyaftertouch.

beyond that, all you can do is send(raw)Midi to the track, but I doubt that that will result in a note expression…
that said, it would be worth a test…
(but it doesn’t provide hires support, as its still just ‘midi’ at this point, so 7bit)

really what we need is to see what is behind setExpressiveMidi(), and do we have access to the same data structures.( spoiler: I dont think we do ;))

its also possible you could do this by bypassing NoteInput and using Track, but few things do that besides simple creation of parameter knobs which represent thier inputs…

Im very used to coding against apis even that don’t have documentation, but the one is pretty weird.
I think the ‘issue’ is, its seems likes its aimed ‘end user scripting’, rather than giving access to the guts. so some things appear overly complicated.

that said… I think my ‘disappointment’ is probably just because we had a specific idea/task, which it doesn’t really support. I can think of many tasks that would be very simple to implement using it…
e.g. It previously took me about 10 mins to create an MPE controller script for Eigenharp and Soundplane.

2 Likes

Installed macOS Sequoia on my 2014 Macbook Pro via OpenCore Legacy Patcher now. Tadaa, Bitwig 6 runs again! :slight_smile:
First time when installing the root patches it stalled when installing the Nvidia drivers though. Apparently update didn’t work, had to start with a clean install. So backup everything up front (as you always should) and be prepared for some iterations. And some features won’t work (E.g. Apple Intelligence needing an Apple Silicon chip, no DRM in Safari (works in Google and Firefox though)) But the things that matter to me seem to work on first sight. Very cool project!

2 Likes

Beta 12 of Bitwig 6 includes some changes to the smoothing of automation data. Since I am not one of the people that properly tested issues previously, I cannot say whether these changes have improved the situation that some people have complained about.