Version History
This chapter provides an overview of the version history for the MIDI Remote API, highlighting changes introduced in each version. Additionally, it explains considerations for maintaining backward compatibility when using different versions of the API with various versions of Cubase / Nuendo.
Version 1.1
- Added support for touch sensitive controls
- Added options to register IDLE callbacks
Version 1.0
- Initial release of the MIDI Remote API.
- Introduced core concepts, including Driver Setup, Surface Layout, and Host Mapping Pages.
- Supported basic communication between hardware MIDI controllers and Cubase / Nuendo.
Ensuring Backward Compatibility Across different Versions of the MIDI Remote API
Maintaining backward compatibility is crucial when working with different versions of the MIDI Remote API and various versions of Cubase / Nuendo. Backward compatibility ensures that scripts written using newer versions of the API can still function correctly with older versions of Cubase / Nuendo, even when new features have been introduced.
Feature Detection
When developing scripts, always check for the availability of specific features or functionalities introduced in later versions of the API. Use conditional statements or feature detection mechanisms to ensure that your script behaves appropriately across different versions.
Code Example:
var midiremote_api = require('midiremote_api_v1');
var deviceDriver = midiremote_api.makeDeviceDriver('DocuVendor', 'ExampleDevice Mk I', 'Example Author');
var fader = deviceDriver.mSurface.makeFader(0, 0, 1, 1)
// ...
// backward compatibility: check API 1.1 feature exists
if(fader.mSurfaceValue.mTouchState) {
var faderTouch = driver.mSurface.makeCustomValueVariable('faderTouch')
faderTouch.mMidiBinding.setInputPort(midiIn).setOutputPort(midiOut).bindToNote(0, 64)
fader.mSurfaceValue.mTouchState.bindTo(faderTouch)
}
Fallback Mechanisms
Implement fallback mechanisms or alternative behaviors for cases where a specific feature is not supported by the version of Cubase / Nuendo being used. This ensures that your script remains functional even in older environments.