How to control playback cursor position?

Is there a way to tell the external controller, at what song position we are?
Maybe also, the names of the available Markers.

And very important: How to set the song position via Midi Remote.

I am not 100% sure I have understood what do you need

Anyhow, you can use 8 buttons on a midi controller and assign them to 8 markers [8 or more, obv, or make multiple pages]

The idea was not to jump to markers, but directly to jump to freely defined positions (Bar position).

With the old GenericMidi, there was a “Transport”, “Nudge +Bar” to jump to the next /previous full bar. So I got the current song position via Midi Timecode and then I could calculate how often I needed to call Transport Nudge Bar to get to the song position. So I could manage positions on my remote controller and directly go to the desired position. Or 1 or 2 bars before, if you want a little more context. There is still a key commend, but key commends often don’t work, if you have a plug in open.

Oh I understand now, I am still learning midi remote, will try to think about this

Anyhow, you already know that you can mix midi remote with legacy midi generic on the same controller? You could solve this way

I know, but I don’t like the idea of spending time to develop a controller, that soon will not work anymore.


The bad thing is, that they already announce the discontinuation before the new Midi Remote can substitute the old functionality.

Would be nice, if they would officially decided to keep the old Generic Remote API. It wasn’t that bad as many people think. The new API is far away from complete, at least if feels not final.

Hi, if you want to setup a script for this one, you can use the following function in order to get the transport position:

page.mHostAccess.mTransport.mTimeDisplay.mPrimary.mTransportLocator.mOnChange

In order to set the position you can use:

page.mHostAccess.mTransport.mTimeDisplay.mPrimary.mTransportLocator.setTime(timeString)

Meanwhile I found what I was searching for:

Don’t know what the difference is between Nudge Bar and Nudge Cursor? Does anyone know.

@m.c: I will give it a try. Good that this forum somehow replaces the not existing documentation. :notes:

Nudge cursor R/L depends on your grid type. If set to bar, there is no difference with the ±1 bar.

The setTime function seem to need an activeMapping. Do you have any idea, from where you get that?

setTime (activeMapping: MR_ActiveMapping, timeString: string): void

I am in an

midiInput.mOnSysex = function(activeDevice, midiMessage) {

function, but I only have an activeDevice.

Yes. I do such things inside the mOnActivate event.

Very nice, thank you. :+1:
It’s working.

Below you can find my implemention, in case someone is interested in.

var state = {
	activeMapping: undefined
}

page.mOnActivate = function(activeDevice, activeMapping) {
    state.activeMapping = activeMapping
}
.bind({
	state
})

midiInput.mOnSysex = function(activeDevice, midiMessage) {
    if (state.activeMapping === undefined) return;
    var timeString = arrayToString(midiMessage.slice(2,-1))
    console.log("SysEx (go to position):"+ timeString)
    page.mHostAccess.mTransport.mTimeDisplay.mPrimary.mTransportLocator.setTime(state.activeMapping, timeString)
}.bind({
	state
})