Did some experiments with Bitwig 6 and Osmose in MPE+ mode.
For that I connected the Osmose to the (Windows 11) PC and used Geert Bevin’s receivemidi tool to log the incoming midi data before sending it to Bitwig. The output of Bitwig was recorded with another instance of receivemidi. In between were loopmidi “virtual midi cables”.
Then I simply pressed and released a single key on Osmose.
When using the passthrough in Bitwig (setting Osmose as input and a virtual midi cable as output and then just monitoring at the output) then input and output midi events are identical regarding both values and timing between notes(with a delay of 20 ms in my case). So routing MPE+ through e.g. a The Grid MIDI processor should be no problem.
When recording and then replaying the MPE+ midi stream then it looks different though. Apparently Bitwig is decimating the controller data to 10 ms, which is against the idea of MPE+ of using e.g. channel pressure to shape an attack curve.
CC87 seems to be the least significant bits of channel pressure. If that is the case then it would make sense that this fluctuates in the MPE+ signal. In the attack phase CC87 seems still to be 0 - which would be according to spec where only 7 bit events are used to represent the initial attack curve.
Bitwig shows CC 87 as separate controller curve besides Channel pressure. So either it doesn’t support highres MIDI in the controller editor or I missed to switch some toggle or something?
When comparing the input from Osmose and the Bitwig output it becomes obvious that particularly the attack phase looks more decimated in the latter. For the Osmose MPE+ stream the value initially jumps from 0 to 42 and for the Bitwig output it jumps right to 97, the transition from 0 upwards isn’t captured. (Or more likely: The sensor isn’t providing the super light touch data in the first place…)
When sending back the Bitwig midi recording to the Osmose the resulting note sounds pretty much what I can remember I heard when pressing the key originally. (I only heard the original once and didn’t create an audio recording, so this is quite subjective).
But when looking at the representation of the attack curve in Bitwig I could imagine that this can already lead to an audible difference for certain presets.
So: Bitwig 6 Beta 1 still decimates controller data and doesn’t look like the best fit for an MPE+ recorder.
Unless there are some settings that can be tweaked that I am not aware of?
Here the data:
Edit: Please ignore the channel 1 remapping. I forgot to switch Channel All->1 to All->same. When switching this then the channels stay the same as they were in the input stream. Bitwig doesn’t seem to remap the channels then. The decimation approach stays exactly the same though.
Osmose MPE+ input stream:
D:\Apps>receivemidi dev “MIDIIN2 (Osmose)” pass “loopMIDI Port 1” ts
22:30:11.350 channel 12 channel-pressure 43
22:30:11.351 channel 12 note-on E3 127
22:30:11.351 channel 12 channel-pressure 56
22:30:11.354 channel 12 channel-pressure 71
22:30:11.357 channel 12 channel-pressure 88
22:30:11.361 channel 12 channel-pressure 105
22:30:11.367 channel 12 channel-pressure 111
22:30:11.374 channel 1 control-change 82 103
22:30:11.377 channel 16 control-change 82 106
22:30:11.378 channel 12 channel-pressure 116
22:30:11.384 channel 12 channel-pressure 119
22:30:11.394 channel 12 control-change 87 45
22:30:11.394 channel 12 channel-pressure 119
22:30:11.407 channel 12 control-change 87 74
22:30:11.411 channel 12 channel-pressure 118
22:30:11.411 channel 12 control-change 87 1
22:30:11.412 channel 12 channel-pressure 118
22:30:11.412 channel 12 control-change 87 74
22:30:11.414 channel 12 channel-pressure 117
22:30:11.414 channel 12 control-change 87 32
22:30:11.415 channel 12 channel-pressure 117
22:30:11.418 channel 12 control-change 87 120
22:30:11.418 channel 12 channel-pressure 103
22:30:11.419 channel 12 control-change 87 122
22:30:11.419 channel 12 channel-pressure 93
22:30:11.421 channel 12 control-change 87 59
22:30:11.421 channel 12 channel-pressure 86
22:30:11.422 channel 12 control-change 87 108
22:30:11.422 channel 12 channel-pressure 80
22:30:11.424 channel 12 control-change 87 81
22:30:11.425 channel 12 channel-pressure 76
22:30:11.425 channel 12 control-change 87 61
22:30:11.425 channel 12 channel-pressure 73
22:30:11.427 channel 12 control-change 87 13
22:30:11.428 channel 12 channel-pressure 71
22:30:11.428 channel 12 control-change 87 78
22:30:11.429 channel 12 channel-pressure 64
22:30:11.431 channel 12 control-change 87 94
22:30:11.431 channel 12 channel-pressure 59
22:30:11.432 channel 12 control-change 87 11
22:30:11.432 channel 12 channel-pressure 56
22:30:11.434 channel 12 control-change 87 44
22:30:11.435 channel 12 channel-pressure 53
22:30:11.435 channel 12 control-change 87 37
22:30:11.436 channel 12 channel-pressure 51
22:30:11.438 channel 12 control-change 87 95
22:30:11.438 channel 12 channel-pressure 49
22:30:11.439 channel 12 control-change 87 39
22:30:11.439 channel 12 channel-pressure 39
22:30:11.440 channel 12 control-change 87 61
22:30:11.441 channel 12 channel-pressure 31
22:30:11.441 channel 12 control-change 87 78
22:30:11.442 channel 12 channel-pressure 25
22:30:11.442 channel 12 control-change 87 26
22:30:11.444 channel 12 channel-pressure 21
22:30:11.445 channel 12 control-change 87 116
22:30:11.445 channel 12 channel-pressure 17
22:30:11.445 channel 12 control-change 87 53
22:30:11.448 channel 12 channel-pressure 15
22:30:11.448 channel 12 control-change 87 69
22:30:11.449 channel 12 channel-pressure 13
22:30:11.449 channel 12 control-change 87 18
22:30:11.451 channel 12 channel-pressure 12
22:30:11.451 channel 12 control-change 87 11
22:30:11.452 channel 12 channel-pressure 11
22:30:11.452 channel 12 control-change 87 122
22:30:11.454 channel 12 channel-pressure 9
22:30:11.455 channel 12 control-change 87 12
22:30:11.455 channel 12 channel-pressure 9
22:30:11.455 channel 12 control-change 87 59
22:30:11.456 channel 12 channel-pressure 8
22:30:11.458 channel 12 control-change 87 125
22:30:11.458 channel 12 channel-pressure 7
22:30:11.459 channel 12 control-change 87 79
22:30:11.459 channel 12 channel-pressure 7
22:30:11.461 channel 12 control-change 87 120
22:30:11.461 channel 12 channel-pressure 6
22:30:11.462 channel 12 control-change 87 55
22:30:11.462 channel 12 channel-pressure 6
22:30:11.464 channel 12 control-change 87 6
22:30:11.465 channel 12 channel-pressure 6
22:30:11.465 channel 12 note-off E3 0
22:30:11.466 channel 12 channel-pressure 0
22:30:12.376 channel 1 control-change 82 111
22:30:12.376 channel 16 control-change 82 16
Passthrough output from Bitwig. (timing jitter is +/- 1 ms and delay in my case about 22 ms).
D:\Apps>receivemidi dev “loopMIDI Port 2” ts
22:30:11.372 channel 1 channel-pressure 43
22:30:11.372 channel 1 note-on E3 127
22:30:11.372 channel 1 channel-pressure 56
22:30:11.375 channel 1 channel-pressure 71
22:30:11.378 channel 1 channel-pressure 88
22:30:11.381 channel 1 channel-pressure 105
22:30:11.389 channel 1 channel-pressure 111
22:30:11.395 channel 1 control-change 82 103
22:30:11.398 channel 1 control-change 82 106
22:30:11.398 channel 1 channel-pressure 116
22:30:11.405 channel 1 channel-pressure 119
22:30:11.414 channel 1 control-change 87 45
22:30:11.415 channel 1 channel-pressure 119
22:30:11.427 channel 1 control-change 87 74
22:30:11.432 channel 1 channel-pressure 118
22:30:11.432 channel 1 control-change 87 1
22:30:11.433 channel 1 channel-pressure 118
22:30:11.433 channel 1 control-change 87 74
22:30:11.434 channel 1 channel-pressure 117
22:30:11.435 channel 1 control-change 87 32
22:30:11.435 channel 1 channel-pressure 117
22:30:11.438 channel 1 control-change 87 120
22:30:11.439 channel 1 channel-pressure 103
22:30:11.440 channel 1 control-change 87 122
22:30:11.440 channel 1 channel-pressure 93
22:30:11.441 channel 1 control-change 87 59
22:30:11.442 channel 1 channel-pressure 86
22:30:11.442 channel 1 control-change 87 108
22:30:11.443 channel 1 channel-pressure 80
22:30:11.444 channel 1 control-change 87 81
22:30:11.445 channel 1 channel-pressure 76
22:30:11.446 channel 1 control-change 87 61
22:30:11.446 channel 1 channel-pressure 73
22:30:11.447 channel 1 control-change 87 13
22:30:11.448 channel 1 channel-pressure 71
22:30:11.449 channel 1 control-change 87 78
22:30:11.449 channel 1 channel-pressure 64
22:30:11.451 channel 1 control-change 87 94
22:30:11.452 channel 1 channel-pressure 59
22:30:11.452 channel 1 control-change 87 11
22:30:11.453 channel 1 channel-pressure 56
22:30:11.455 channel 1 control-change 87 44
22:30:11.455 channel 1 channel-pressure 53
22:30:11.456 channel 1 control-change 87 37
22:30:11.456 channel 1 channel-pressure 51
22:30:11.458 channel 1 control-change 87 95
22:30:11.459 channel 1 channel-pressure 49
22:30:11.459 channel 1 control-change 87 39
22:30:11.460 channel 1 channel-pressure 39
22:30:11.460 channel 1 control-change 87 61
22:30:11.461 channel 1 channel-pressure 31
22:30:11.462 channel 1 control-change 87 78
22:30:11.462 channel 1 channel-pressure 25
22:30:11.463 channel 1 control-change 87 26
22:30:11.464 channel 1 channel-pressure 21
22:30:11.465 channel 1 control-change 87 116
22:30:11.466 channel 1 channel-pressure 17
22:30:11.466 channel 1 control-change 87 53
22:30:11.468 channel 1 channel-pressure 15
22:30:11.469 channel 1 control-change 87 69
22:30:11.469 channel 1 channel-pressure 13
22:30:11.470 channel 1 control-change 87 18
22:30:11.471 channel 1 channel-pressure 12
22:30:11.472 channel 1 control-change 87 11
22:30:11.472 channel 1 channel-pressure 11
22:30:11.473 channel 1 control-change 87 122
22:30:11.474 channel 1 channel-pressure 9
22:30:11.475 channel 1 control-change 87 12
22:30:11.476 channel 1 channel-pressure 9
22:30:11.476 channel 1 control-change 87 59
22:30:11.476 channel 1 channel-pressure 8
22:30:11.478 channel 1 control-change 87 125
22:30:11.479 channel 1 channel-pressure 7
22:30:11.480 channel 1 control-change 87 79
22:30:11.480 channel 1 channel-pressure 7
22:30:11.482 channel 1 control-change 87 120
22:30:11.482 channel 1 channel-pressure 6
22:30:11.483 channel 1 control-change 87 55
22:30:11.483 channel 1 channel-pressure 6
22:30:11.485 channel 1 control-change 87 6
22:30:11.486 channel 1 channel-pressure 6
22:30:11.486 channel 1 note-off E3 0
22:30:11.486 channel 1 channel-pressure 0
22:30:12.397 channel 1 control-change 82 111
22:30:12.397 channel 1 control-change 82 16
Output from Bitwig when replaying the recorded MIDI notes:
D:\Apps>receivemidi dev “loopMIDI Port 2” ts
22:30:59.849 channel 1 channel-pressure 97
22:30:59.852 channel 1 note-on E3 127
22:30:59.859 channel 1 channel-pressure 110
22:30:59.869 channel 1 channel-pressure 116
22:30:59.869 channel 1 control-change 82 106
22:30:59.879 channel 1 channel-pressure 119
22:30:59.889 channel 1 control-change 87 45
22:30:59.899 channel 1 control-change 87 65
22:30:59.909 channel 1 channel-pressure 103
22:30:59.909 channel 1 control-change 87 109
22:30:59.919 channel 1 channel-pressure 71
22:30:59.919 channel 1 control-change 87 75
22:30:59.929 channel 1 channel-pressure 49
22:30:59.929 channel 1 control-change 87 110
22:30:59.939 channel 1 channel-pressure 15
22:30:59.939 channel 1 control-change 87 29
22:30:59.949 channel 1 channel-pressure 7
22:30:59.949 channel 1 control-change 87 127
22:30:59.959 channel 1 channel-pressure 0
22:30:59.959 channel 1 control-change 87 6
22:30:59.966 channel 1 note-off E3 0
22:31:00.870 channel 1 control-change 82 16