@tsempire I'll give the solution to those who need it.
Copy this code:
// Get a reference to the MIDI processor as MIDI player
const MIDIplayer = Synth.getMidiProcessor("MIDI Player1").asMidiPlayer();
// Get a reference to the transport buttons
const grpTranportBtn = [Content.getComponent("btnPlay"),
Content.getComponent("btnStop")];
for(b in grpTranportBtn)
{
// Make sure the buttons are not saved with the presets
b.set("saveInPreset", false);
// Assign the control callback to the transport buttons
b.setControlCallback(onTransportBtnControl);
}
// Also set the STOP button to be momentary
grpTranportBtn[1].set("isMomentary", true);
inline function onTransportBtnControl(component, value)
{
// get which button triggered the callback
local index = grpTranportBtn.indexOf(component);
// If it's the PLAY button
if(index == 0)
{
// if the PLAY button is pressed
if(value)
{
// start playing
MIDIplayer.play(0);
}
else
{
// keep the button's value to 1 if it's still playing
grpTranportBtn[0].setValue(1);
}
}
// if it's the STOP button
else
{
// only react if the mouse is clicked (not released)
if(!value)
return;
// stop playing
MIDIplayer.stop(0);
// set the PLAY button's value to 0
grpTranportBtn[0].setValue(0);
}
};
// on compilation, reset the playhead position to the beginning
// comment it out if not needed
MIDIplayer.setPlaybackPosition(0.0);
Create 2 buttons with the ID
btnPlay
btnStop