Adjustable recording offset for MIDI controllers

Bitwig contains an audio ‘Recording offset’ in audio settings. This proposal is for the MIDI equivalent set per MIDI controller (for use with HW instruments).

When recording with MIDI controllers as HW instruments and monitoring directly from the instrument (rather than through Bitwig), it would be lovely to be able to specify a MIDI recording offset to offset the MIDI notes.

For example, I record drums using my Alesis electric mesh kit. I monitor directly from the Alesis while recording, but I’m actually using sounds from VSTs for the project itself. The MIDI notes from my Alesis get recorded by Bitwig roughly 9ms too late, so I need to apply a recording offset of 9ms to compensate.

The HW instrument device already contains a latency offset parameter. However, this parameter is actually performing a different function: it gets applied to MIDI notes which are sent to the MIDI instrument (such that if your MIDI notes are quantised to the grid, the MIDI instrument plays the sound at exactly the right time). The recording offset that I’m talking about is an offset applied to MIDI notes as they are recorded. When using a HW instrument, it’s actually beneficial to have both offsets: The recording offset ensures that the MIDI notes are recorded at exactly the right time based on your direct monitoring from the instrument itself, and the HW instrument latency offset ensures that when Bitwig plays back the MIDI notes through the hardware instrument the instrument plays the sound at exactly the right time.

Like with the audio ‘Recording offset’ setting, the MIDI recording offset would have to be determined by the user. In fact, if you’ve already ensured that your audio recording offset is set correctly, the MIDI recording offset can be determined by recording the audio output from the MIDI instrument and checking the latency between the recorded audio and the start of the recorded MIDI note.

Workaround:

MIDI notes get recorded too late when monitoring directly from a MIDI instrument. Therefore they need moving forward in time. It’s not possible to do this while recording. However, if you add a Time Shift device to the instrument track on which the MIDI is recorded, and then create a new instrument track and set the Time Shift track as the input for the new track. Then you can arm record on the new track and start playback, and Bitwig will rerecord the MIDI notes into the new track with the Time Shift offset applied.