UNPKG

reaper-osc

Version:
358 lines 30.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PreviousSelectedTrackFxPreset = exports.NextSelectedTrackFxPreset = exports.SetSelectedTrackFxOpenUi = exports.SetSelectedTrackFxBypass = exports.SetSelectedTrackMonitoringMode = exports.SetSelectedTrackVolumeDb = exports.SetSelectedTrackVolume = exports.SetSelectedTrackPan2 = exports.SetSelectedTrackPan = exports.SetSelectedTrackName = exports.SetSelectedTrackSelect = exports.ToggleSelectedTrackRecordArm = exports.SetSelectedTrackRecordArm = exports.ToggleSelectedTrackSolo = exports.SetSelectedTrackSolo = exports.ToggleSelectedTrackMute = exports.SetSelectedTrackMute = exports.PreviousTrackFxPreset = exports.NextTrackFxPreset = exports.SetTrackFxOpenUi = exports.SetTrackFxBypass = exports.SetTrackMonitoringMode = exports.SetTrackVolumeDb = exports.SetTrackVolume = exports.SetTrackPan2 = exports.SetTrackPan = exports.SetTrackName = exports.SetTrackSelect = exports.ToggleTrackRecordArm = exports.SetTrackRecordArm = exports.ToggleTrackSolo = exports.SetTrackSolo = exports.ToggleTrackMute = exports.SetTrackMute = exports.SetLoopEnd = exports.SetLoopStart = exports.SetFrames = exports.SetBeat = exports.SetTime = exports.ToggleRepeat = exports.SetFastForward = exports.SetRewind = exports.ToggleRecord = exports.Pause = exports.Stop = exports.Play = exports.TriggerAction = exports.ResetSolos = exports.ToggleAutoRecordArm = exports.ToggleMetronome = void 0; exports.PreviousDeviceFxInstrumentParameterBank = exports.NextDeviceFxInstrumentParameterBank = exports.SelectDeviceFxInstrumentParameterBank = exports.PreviousDeviceFxParameterBank = exports.NextDeviceFxParameterBank = exports.SelectDeviceFxParameterBank = exports.PreviousDeviceFx = exports.NextDeviceFx = exports.SelectDeviceFx = exports.PreviousDeviceTrackBank = exports.NextDeviceTrackBank = exports.SelectDeviceTrackBank = exports.PreviousDeviceTrack = exports.NextDeviceTrack = exports.SelectDeviceTrack = exports.ZoomY = exports.ZoomX = exports.ScrollY = exports.ScrollX = exports.SetZoomOutY = exports.SetZoomInY = exports.SetZoomOutX = exports.SetZoomInX = exports.SetScrollDown = exports.SetScrollUp = exports.SetScrollRight = exports.SetScrollLeft = exports.SetRegionNumber = exports.SetRegionLength = exports.SetRegionTime = exports.SetRegionName = exports.SetMarkerNumber = exports.SetMarkerTime = exports.SetMarkerName = exports.GotoRegion = exports.GotoMarker = exports.ToggleSetLoop = exports.ToggleRewindByMarker = exports.SetSelectedTrackReceivePan = exports.SetSelectedTrackReceiveVolume = exports.SetSelectedTrackSendPan = exports.SetSelectedTrackSendVolume = exports.SetTrackReceivePan = exports.SetTrackReceiveVolume = exports.SetTrackSendPan = exports.SetTrackSendVolume = exports.PreviousSelectedFxPreset = exports.NextSelectedFxPreset = exports.SetSelectedFxOpenUi = exports.SetSelectedFxBypass = void 0; exports.commandToOscMessage = exports.RawMessage = exports.PreviousDeviceRegionBank = exports.NextDeviceRegionBank = exports.SelectDeviceRegionBank = exports.PreviousDeviceMarkerBank = exports.NextDeviceMarkerBank = exports.SelectDeviceMarkerBank = void 0; /** * Strongly typed commands accepted by {@link ReaperOscClient} for sending messages to Reaper * @module */ const Messages_1 = require("../Messages"); function ToggleMetronome() { return { type: 'metronome:toggle' }; } exports.ToggleMetronome = ToggleMetronome; function ToggleAutoRecordArm() { return { type: 'autoRecordArm:toggle' }; } exports.ToggleAutoRecordArm = ToggleAutoRecordArm; function ResetSolos() { return { type: 'soloReset' }; } exports.ResetSolos = ResetSolos; function TriggerAction(commandId, value) { return { type: 'action', commandId, value }; } exports.TriggerAction = TriggerAction; function Play() { return { type: 'transport:play' }; } exports.Play = Play; function Stop() { return { type: 'transport:stop' }; } exports.Stop = Stop; function Pause() { return { type: 'transport:pause' }; } exports.Pause = Pause; function ToggleRecord() { return { type: 'transport:record' }; } exports.ToggleRecord = ToggleRecord; function SetRewind(rewinding) { return { type: 'transport:rewind', rewinding }; } exports.SetRewind = SetRewind; function SetFastForward(fastForwarding) { return { type: 'transport:fastForward', fastForwarding }; } exports.SetFastForward = SetFastForward; function ToggleRepeat() { return { type: 'transport:repeat:toggle' }; } exports.ToggleRepeat = ToggleRepeat; function SetTime(time) { return { type: 'transport:time', time }; } exports.SetTime = SetTime; function SetBeat(beat) { return { type: 'transport:beat', beat }; } exports.SetBeat = SetBeat; function SetFrames(frames) { return { type: 'transport:frames', frames }; } exports.SetFrames = SetFrames; function SetLoopStart(time) { return { type: 'transport:loopStart', time }; } exports.SetLoopStart = SetLoopStart; function SetLoopEnd(time) { return { type: 'transport:loopEnd', time }; } exports.SetLoopEnd = SetLoopEnd; function SetTrackMute(trackNumber, muted) { return { type: 'track:mute', trackNumber, muted }; } exports.SetTrackMute = SetTrackMute; function ToggleTrackMute(trackNumber) { return { type: 'track:mute:toggle', trackNumber }; } exports.ToggleTrackMute = ToggleTrackMute; function SetTrackSolo(trackNumber, soloed) { return { type: 'track:solo', trackNumber, soloed }; } exports.SetTrackSolo = SetTrackSolo; function ToggleTrackSolo(trackNumber) { return { type: 'track:solo:toggle', trackNumber }; } exports.ToggleTrackSolo = ToggleTrackSolo; function SetTrackRecordArm(trackNumber, armed) { return { type: 'track:recordArm', trackNumber, armed }; } exports.SetTrackRecordArm = SetTrackRecordArm; function ToggleTrackRecordArm(trackNumber) { return { type: 'track:recordArm:toggle', trackNumber }; } exports.ToggleTrackRecordArm = ToggleTrackRecordArm; function SetTrackSelect(trackNumber, selected) { return { type: 'track:select', trackNumber, selected }; } exports.SetTrackSelect = SetTrackSelect; function SetTrackName(trackNumber, name) { return { type: 'track:name', trackNumber, name }; } exports.SetTrackName = SetTrackName; function SetTrackPan(trackNumber, pan) { return { type: 'track:pan', trackNumber, pan }; } exports.SetTrackPan = SetTrackPan; function SetTrackPan2(trackNumber, pan2) { return { type: 'track:pan2', trackNumber, pan2 }; } exports.SetTrackPan2 = SetTrackPan2; function SetTrackVolume(trackNumber, volume) { return { type: 'track:volume', trackNumber, volume }; } exports.SetTrackVolume = SetTrackVolume; function SetTrackVolumeDb(trackNumber, volumeDb) { return { type: 'track:volumeDb', trackNumber, volumeDb }; } exports.SetTrackVolumeDb = SetTrackVolumeDb; function SetTrackMonitoringMode(trackNumber, mode) { return { type: 'track:monitoringMode', trackNumber, mode: mode }; } exports.SetTrackMonitoringMode = SetTrackMonitoringMode; function SetTrackFxBypass(trackNumber, fxNumber, bypassed) { return { type: 'track:fx:bypass', trackNumber, fxNumber, bypassed }; } exports.SetTrackFxBypass = SetTrackFxBypass; function SetTrackFxOpenUi(trackNumber, fxNumber, open) { return { type: 'track:fx:openUi', trackNumber, fxNumber, open }; } exports.SetTrackFxOpenUi = SetTrackFxOpenUi; function NextTrackFxPreset(trackNumber, fxNumber) { return { type: 'track:fx:preset:next', trackNumber, fxNumber }; } exports.NextTrackFxPreset = NextTrackFxPreset; function PreviousTrackFxPreset(trackNumber, fxNumber) { return { type: 'track:fx:preset:previous', trackNumber, fxNumber }; } exports.PreviousTrackFxPreset = PreviousTrackFxPreset; function SetSelectedTrackMute(muted) { return { type: 'selectedTrack:mute', muted }; } exports.SetSelectedTrackMute = SetSelectedTrackMute; function ToggleSelectedTrackMute() { return { type: 'selectedTrack:mute:toggle' }; } exports.ToggleSelectedTrackMute = ToggleSelectedTrackMute; function SetSelectedTrackSolo(soloed) { return { type: 'selectedTrack:solo', soloed }; } exports.SetSelectedTrackSolo = SetSelectedTrackSolo; function ToggleSelectedTrackSolo() { return { type: 'selectedTrack:solo:toggle' }; } exports.ToggleSelectedTrackSolo = ToggleSelectedTrackSolo; function SetSelectedTrackRecordArm(armed) { return { type: 'selectedTrack:recordArm', armed }; } exports.SetSelectedTrackRecordArm = SetSelectedTrackRecordArm; function ToggleSelectedTrackRecordArm() { return { type: 'selectedTrack:recordArm:toggle' }; } exports.ToggleSelectedTrackRecordArm = ToggleSelectedTrackRecordArm; function SetSelectedTrackSelect(selected) { return { type: 'selectedTrack:select', selected }; } exports.SetSelectedTrackSelect = SetSelectedTrackSelect; function SetSelectedTrackName(name) { return { type: 'selectedTrack:name', name }; } exports.SetSelectedTrackName = SetSelectedTrackName; function SetSelectedTrackPan(pan) { return { type: 'selectedTrack:pan', pan }; } exports.SetSelectedTrackPan = SetSelectedTrackPan; function SetSelectedTrackPan2(pan2) { return { type: 'selectedTrack:pan2', pan2 }; } exports.SetSelectedTrackPan2 = SetSelectedTrackPan2; function SetSelectedTrackVolume(volume) { return { type: 'selectedTrack:volume', volume }; } exports.SetSelectedTrackVolume = SetSelectedTrackVolume; function SetSelectedTrackVolumeDb(volumeDb) { return { type: 'selectedTrack:volumeDb', volumeDb }; } exports.SetSelectedTrackVolumeDb = SetSelectedTrackVolumeDb; function SetSelectedTrackMonitoringMode(mode) { return { type: 'selectedTrack:monitoringMode', mode: mode }; } exports.SetSelectedTrackMonitoringMode = SetSelectedTrackMonitoringMode; function SetSelectedTrackFxBypass(fxNumber, bypassed) { return { type: 'selectedTrack:fx:bypass', fxNumber, bypassed }; } exports.SetSelectedTrackFxBypass = SetSelectedTrackFxBypass; function SetSelectedTrackFxOpenUi(fxNumber, open) { return { type: 'selectedTrack:fx:openUi', fxNumber, open }; } exports.SetSelectedTrackFxOpenUi = SetSelectedTrackFxOpenUi; function NextSelectedTrackFxPreset(fxNumber) { return { type: 'selectedTrack:fx:preset:next', fxNumber }; } exports.NextSelectedTrackFxPreset = NextSelectedTrackFxPreset; function PreviousSelectedTrackFxPreset(fxNumber) { return { type: 'selectedTrack:fx:preset:previous', fxNumber }; } exports.PreviousSelectedTrackFxPreset = PreviousSelectedTrackFxPreset; function SetSelectedFxBypass(bypassed) { return { type: 'selectedFx:bypass', bypassed }; } exports.SetSelectedFxBypass = SetSelectedFxBypass; function SetSelectedFxOpenUi(open) { return { type: 'selectedFx:openUi', open }; } exports.SetSelectedFxOpenUi = SetSelectedFxOpenUi; function NextSelectedFxPreset() { return { type: 'selectedFx:preset:next' }; } exports.NextSelectedFxPreset = NextSelectedFxPreset; function PreviousSelectedFxPreset() { return { type: 'selectedFx:preset:previous' }; } exports.PreviousSelectedFxPreset = PreviousSelectedFxPreset; function SetTrackSendVolume(trackNumber, sendNumber, volume) { return { type: 'track:send:volume', trackNumber, sendNumber, volume }; } exports.SetTrackSendVolume = SetTrackSendVolume; function SetTrackSendPan(trackNumber, sendNumber, pan) { return { type: 'track:send:pan', trackNumber, sendNumber, pan }; } exports.SetTrackSendPan = SetTrackSendPan; function SetTrackReceiveVolume(trackNumber, receiveNumber, volume) { return { type: 'track:recv:volume', trackNumber, receiveNumber, volume }; } exports.SetTrackReceiveVolume = SetTrackReceiveVolume; function SetTrackReceivePan(trackNumber, receiveNumber, pan) { return { type: 'track:recv:pan', trackNumber, receiveNumber, pan }; } exports.SetTrackReceivePan = SetTrackReceivePan; function SetSelectedTrackSendVolume(sendNumber, volume) { return { type: 'selectedTrack:send:volume', sendNumber, volume }; } exports.SetSelectedTrackSendVolume = SetSelectedTrackSendVolume; function SetSelectedTrackSendPan(sendNumber, pan) { return { type: 'selectedTrack:send:pan', sendNumber, pan }; } exports.SetSelectedTrackSendPan = SetSelectedTrackSendPan; function SetSelectedTrackReceiveVolume(receiveNumber, volume) { return { type: 'selectedTrack:recv:volume', receiveNumber, volume }; } exports.SetSelectedTrackReceiveVolume = SetSelectedTrackReceiveVolume; function SetSelectedTrackReceivePan(receiveNumber, pan) { return { type: 'selectedTrack:recv:pan', receiveNumber, pan }; } exports.SetSelectedTrackReceivePan = SetSelectedTrackReceivePan; function ToggleRewindByMarker() { return { type: 'transport:rewindByMarker:toggle' }; } exports.ToggleRewindByMarker = ToggleRewindByMarker; function ToggleSetLoop() { return { type: 'transport:setLoop:toggle' }; } exports.ToggleSetLoop = ToggleSetLoop; function GotoMarker(markerNumber) { return { type: 'transport:gotoMarker', markerNumber }; } exports.GotoMarker = GotoMarker; function GotoRegion(regionNumber) { return { type: 'transport:gotoRegion', regionNumber }; } exports.GotoRegion = GotoRegion; function SetMarkerName(id, name) { return { type: 'markerById:name', id, name }; } exports.SetMarkerName = SetMarkerName; function SetMarkerTime(id, time) { return { type: 'markerById:time', id, time }; } exports.SetMarkerTime = SetMarkerTime; function SetMarkerNumber(id, number) { return { type: 'markerById:number', id, number }; } exports.SetMarkerNumber = SetMarkerNumber; function SetRegionName(id, name) { return { type: 'regionById:name', id, name }; } exports.SetRegionName = SetRegionName; function SetRegionTime(id, time) { return { type: 'regionById:time', id, time }; } exports.SetRegionTime = SetRegionTime; function SetRegionLength(id, length) { return { type: 'regionById:length', id, length }; } exports.SetRegionLength = SetRegionLength; function SetRegionNumber(id, number) { return { type: 'regionById:number', id, number }; } exports.SetRegionNumber = SetRegionNumber; function SetScrollLeft(active) { return { type: 'viewport:scroll:left', active }; } exports.SetScrollLeft = SetScrollLeft; function SetScrollRight(active) { return { type: 'viewport:scroll:right', active }; } exports.SetScrollRight = SetScrollRight; function SetScrollUp(active) { return { type: 'viewport:scroll:up', active }; } exports.SetScrollUp = SetScrollUp; function SetScrollDown(active) { return { type: 'viewport:scroll:down', active }; } exports.SetScrollDown = SetScrollDown; function SetZoomInX(active) { return { type: 'viewport:zoom:in:x', active }; } exports.SetZoomInX = SetZoomInX; function SetZoomOutX(active) { return { type: 'viewport:zoom:out:x', active }; } exports.SetZoomOutX = SetZoomOutX; function SetZoomInY(active) { return { type: 'viewport:zoom:in:y', active }; } exports.SetZoomInY = SetZoomInY; function SetZoomOutY(active) { return { type: 'viewport:zoom:out:y', active }; } exports.SetZoomOutY = SetZoomOutY; function ScrollX(value) { return { type: 'viewport:scrollX', value }; } exports.ScrollX = ScrollX; function ScrollY(value) { return { type: 'viewport:scrollY', value }; } exports.ScrollY = ScrollY; function ZoomX(value) { return { type: 'viewport:zoomX', value }; } exports.ZoomX = ZoomX; function ZoomY(value) { return { type: 'viewport:zoomY', value }; } exports.ZoomY = ZoomY; function SelectDeviceTrack(index) { return { type: 'device:track:select', index }; } exports.SelectDeviceTrack = SelectDeviceTrack; function NextDeviceTrack() { return { type: 'device:track:next' }; } exports.NextDeviceTrack = NextDeviceTrack; function PreviousDeviceTrack() { return { type: 'device:track:previous' }; } exports.PreviousDeviceTrack = PreviousDeviceTrack; function SelectDeviceTrackBank(index) { return { type: 'device:trackBank:select', index }; } exports.SelectDeviceTrackBank = SelectDeviceTrackBank; function NextDeviceTrackBank() { return { type: 'device:trackBank:next' }; } exports.NextDeviceTrackBank = NextDeviceTrackBank; function PreviousDeviceTrackBank() { return { type: 'device:trackBank:previous' }; } exports.PreviousDeviceTrackBank = PreviousDeviceTrackBank; function SelectDeviceFx(index) { return { type: 'device:fx:select', index }; } exports.SelectDeviceFx = SelectDeviceFx; function NextDeviceFx() { return { type: 'device:fx:next' }; } exports.NextDeviceFx = NextDeviceFx; function PreviousDeviceFx() { return { type: 'device:fx:previous' }; } exports.PreviousDeviceFx = PreviousDeviceFx; function SelectDeviceFxParameterBank(index) { return { type: 'device:fx:parameterBank:select', index }; } exports.SelectDeviceFxParameterBank = SelectDeviceFxParameterBank; function NextDeviceFxParameterBank() { return { type: 'device:fx:parameterBank:next' }; } exports.NextDeviceFxParameterBank = NextDeviceFxParameterBank; function PreviousDeviceFxParameterBank() { return { type: 'device:fx:parameterBank:previous' }; } exports.PreviousDeviceFxParameterBank = PreviousDeviceFxParameterBank; function SelectDeviceFxInstrumentParameterBank(index) { return { type: 'device:fx:instrumentParameterBank:select', index }; } exports.SelectDeviceFxInstrumentParameterBank = SelectDeviceFxInstrumentParameterBank; function NextDeviceFxInstrumentParameterBank() { return { type: 'device:fx:instrumentParameterBank:next' }; } exports.NextDeviceFxInstrumentParameterBank = NextDeviceFxInstrumentParameterBank; function PreviousDeviceFxInstrumentParameterBank() { return { type: 'device:fx:instrumentParameterBank:previous' }; } exports.PreviousDeviceFxInstrumentParameterBank = PreviousDeviceFxInstrumentParameterBank; function SelectDeviceMarkerBank(index) { return { type: 'device:markerBank:select', index }; } exports.SelectDeviceMarkerBank = SelectDeviceMarkerBank; function NextDeviceMarkerBank() { return { type: 'device:markerBank:next' }; } exports.NextDeviceMarkerBank = NextDeviceMarkerBank; function PreviousDeviceMarkerBank() { return { type: 'device:markerBank:previous' }; } exports.PreviousDeviceMarkerBank = PreviousDeviceMarkerBank; function SelectDeviceRegionBank(index) { return { type: 'device:regionBank:select', index }; } exports.SelectDeviceRegionBank = SelectDeviceRegionBank; function NextDeviceRegionBank() { return { type: 'device:regionBank:next' }; } exports.NextDeviceRegionBank = NextDeviceRegionBank; function PreviousDeviceRegionBank() { return { type: 'device:regionBank:previous' }; } exports.PreviousDeviceRegionBank = PreviousDeviceRegionBank; function RawMessage(message) { return { type: 'raw', message }; } exports.RawMessage = RawMessage; /** Translates a typed command into the corresponding OSC message */ function commandToOscMessage(command) { var _a; switch (command.type) { // Global case 'metronome:toggle': return new Messages_1.OscMessage('/click'); case 'autoRecordArm:toggle': return new Messages_1.OscMessage('/autorecarm'); case 'soloReset': return new Messages_1.OscMessage('/soloreset'); case 'action': return new Messages_1.ActionMessage(command.commandId, (_a = command.value) !== null && _a !== void 0 ? _a : null); // Transport case 'transport:play': return new Messages_1.OscMessage('/play'); case 'transport:stop': return new Messages_1.OscMessage('/stop'); case 'transport:pause': return new Messages_1.OscMessage('/pause'); case 'transport:record': return new Messages_1.OscMessage('/record'); case 'transport:rewind': return new Messages_1.BooleanMessage('/rewind', command.rewinding); case 'transport:fastForward': return new Messages_1.BooleanMessage('/forward', command.fastForwarding); case 'transport:repeat:toggle': return new Messages_1.OscMessage('/repeat'); case 'transport:time': return new Messages_1.FloatMessage('/time', command.time); case 'transport:beat': return new Messages_1.StringMessage('/beat/str', command.beat); case 'transport:frames': return new Messages_1.StringMessage('/frames/str', command.frames); case 'transport:loopStart': return new Messages_1.FloatMessage('/loop/start/time', command.time); case 'transport:loopEnd': return new Messages_1.FloatMessage('/loop/end/time', command.time); // Track case 'track:mute': return new Messages_1.BooleanMessage(`/track/${command.trackNumber}/mute`, command.muted); case 'track:mute:toggle': return new Messages_1.OscMessage(`/track/${command.trackNumber}/mute/toggle`); case 'track:solo': return new Messages_1.BooleanMessage(`/track/${command.trackNumber}/solo`, command.soloed); case 'track:solo:toggle': return new Messages_1.OscMessage(`/track/${command.trackNumber}/solo/toggle`); case 'track:recordArm': return new Messages_1.BooleanMessage(`/track/${command.trackNumber}/recarm`, command.armed); case 'track:recordArm:toggle': return new Messages_1.OscMessage(`/track/${command.trackNumber}/recarm/toggle`); case 'track:select': return new Messages_1.BooleanMessage(`/track/${command.trackNumber}/select`, command.selected); case 'track:name': return new Messages_1.StringMessage(`/track/${command.trackNumber}/name`, command.name); case 'track:pan': return new Messages_1.FloatMessage(`/track/${command.trackNumber}/pan`, command.pan); case 'track:pan2': return new Messages_1.FloatMessage(`/track/${command.trackNumber}/pan2`, command.pan2); case 'track:volume': return new Messages_1.FloatMessage(`/track/${command.trackNumber}/volume`, command.volume); case 'track:volumeDb': return new Messages_1.FloatMessage(`/track/${command.trackNumber}/volume/db`, command.volumeDb); case 'track:monitoringMode': return new Messages_1.IntegerMessage(`/track/${command.trackNumber}/monitor`, command.mode); // Track FX (bypass is inverted on the wire: false = bypassed) case 'track:fx:bypass': return new Messages_1.BooleanMessage(`/track/${command.trackNumber}/fx/${command.fxNumber}/bypass`, !command.bypassed); case 'track:fx:openUi': return new Messages_1.BooleanMessage(`/track/${command.trackNumber}/fx/${command.fxNumber}/openui`, command.open); case 'track:fx:preset:next': return new Messages_1.OscMessage(`/track/${command.trackNumber}/fx/${command.fxNumber}/preset+`); case 'track:fx:preset:previous': return new Messages_1.OscMessage(`/track/${command.trackNumber}/fx/${command.fxNumber}/preset-`); // Selected track case 'selectedTrack:mute': return new Messages_1.BooleanMessage('/track/mute', command.muted); case 'selectedTrack:mute:toggle': return new Messages_1.OscMessage('/track/mute/toggle'); case 'selectedTrack:solo': return new Messages_1.BooleanMessage('/track/solo', command.soloed); case 'selectedTrack:solo:toggle': return new Messages_1.OscMessage('/track/solo/toggle'); case 'selectedTrack:recordArm': return new Messages_1.BooleanMessage('/track/recarm', command.armed); case 'selectedTrack:recordArm:toggle': return new Messages_1.OscMessage('/track/recarm/toggle'); case 'selectedTrack:select': return new Messages_1.BooleanMessage('/track/select', command.selected); case 'selectedTrack:name': return new Messages_1.StringMessage('/track/name', command.name); case 'selectedTrack:pan': return new Messages_1.FloatMessage('/track/pan', command.pan); case 'selectedTrack:pan2': return new Messages_1.FloatMessage('/track/pan2', command.pan2); case 'selectedTrack:volume': return new Messages_1.FloatMessage('/track/volume', command.volume); case 'selectedTrack:volumeDb': return new Messages_1.FloatMessage('/track/volume/db', command.volumeDb); case 'selectedTrack:monitoringMode': return new Messages_1.IntegerMessage('/track/monitor', command.mode); // Selected track FX (bypass inverted) case 'selectedTrack:fx:bypass': return new Messages_1.BooleanMessage(`/fx/${command.fxNumber}/bypass`, !command.bypassed); case 'selectedTrack:fx:openUi': return new Messages_1.BooleanMessage(`/fx/${command.fxNumber}/openui`, command.open); case 'selectedTrack:fx:preset:next': return new Messages_1.OscMessage(`/fx/${command.fxNumber}/preset+`); case 'selectedTrack:fx:preset:previous': return new Messages_1.OscMessage(`/fx/${command.fxNumber}/preset-`); // Selected FX (bypass inverted) case 'selectedFx:bypass': return new Messages_1.BooleanMessage('/fx/bypass', !command.bypassed); case 'selectedFx:openUi': return new Messages_1.BooleanMessage('/fx/openui', command.open); case 'selectedFx:preset:next': return new Messages_1.OscMessage('/fx/preset+'); case 'selectedFx:preset:previous': return new Messages_1.OscMessage('/fx/preset-'); // Track sends case 'track:send:volume': return new Messages_1.FloatMessage(`/track/${command.trackNumber}/send/${command.sendNumber}/volume`, command.volume); case 'track:send:pan': return new Messages_1.FloatMessage(`/track/${command.trackNumber}/send/${command.sendNumber}/pan`, command.pan); // Track receives case 'track:recv:volume': return new Messages_1.FloatMessage(`/track/${command.trackNumber}/recv/${command.receiveNumber}/volume`, command.volume); case 'track:recv:pan': return new Messages_1.FloatMessage(`/track/${command.trackNumber}/recv/${command.receiveNumber}/pan`, command.pan); // Selected track sends case 'selectedTrack:send:volume': return new Messages_1.FloatMessage(`/track/send/${command.sendNumber}/volume`, command.volume); case 'selectedTrack:send:pan': return new Messages_1.FloatMessage(`/track/send/${command.sendNumber}/pan`, command.pan); // Selected track receives case 'selectedTrack:recv:volume': return new Messages_1.FloatMessage(`/track/recv/${command.receiveNumber}/volume`, command.volume); case 'selectedTrack:recv:pan': return new Messages_1.FloatMessage(`/track/recv/${command.receiveNumber}/pan`, command.pan); // Marker/Region transport case 'transport:rewindByMarker:toggle': return new Messages_1.OscMessage('/bymarker'); case 'transport:setLoop:toggle': return new Messages_1.OscMessage('/editloop'); case 'transport:gotoMarker': return new Messages_1.IntegerMessage('/marker', command.markerNumber); case 'transport:gotoRegion': return new Messages_1.IntegerMessage('/region', command.regionNumber); // Marker write-by-ID case 'markerById:name': return new Messages_1.StringMessage(`/marker_id/${command.id}/name`, command.name); case 'markerById:time': return new Messages_1.FloatMessage(`/marker_id/${command.id}/time`, command.time); case 'markerById:number': return new Messages_1.IntegerMessage(`/marker_id/${command.id}/number`, command.number); // Region write-by-ID case 'regionById:name': return new Messages_1.StringMessage(`/region_id/${command.id}/name`, command.name); case 'regionById:time': return new Messages_1.FloatMessage(`/region_id/${command.id}/time`, command.time); case 'regionById:length': return new Messages_1.FloatMessage(`/region_id/${command.id}/length`, command.length); case 'regionById:number': return new Messages_1.IntegerMessage(`/region_id/${command.id}/number`, command.number); // Viewport scroll (boolean) case 'viewport:scroll:left': return new Messages_1.BooleanMessage('/scroll/x/-', command.active); case 'viewport:scroll:right': return new Messages_1.BooleanMessage('/scroll/x/+', command.active); case 'viewport:scroll:up': return new Messages_1.BooleanMessage('/scroll/y/-', command.active); case 'viewport:scroll:down': return new Messages_1.BooleanMessage('/scroll/y/+', command.active); // Viewport zoom (boolean) case 'viewport:zoom:in:x': return new Messages_1.BooleanMessage('/zoom/x/+', command.active); case 'viewport:zoom:out:x': return new Messages_1.BooleanMessage('/zoom/x/-', command.active); case 'viewport:zoom:in:y': return new Messages_1.BooleanMessage('/zoom/y/+', command.active); case 'viewport:zoom:out:y': return new Messages_1.BooleanMessage('/zoom/y/-', command.active); // Viewport scroll/zoom (rotary) case 'viewport:scrollX': return new Messages_1.FloatMessage('/scroll/x', command.value); case 'viewport:scrollY': return new Messages_1.FloatMessage('/scroll/y', command.value); case 'viewport:zoomX': return new Messages_1.FloatMessage('/zoom/x', command.value); case 'viewport:zoomY': return new Messages_1.FloatMessage('/zoom/y', command.value); // Device navigation case 'device:track:select': return new Messages_1.OscMessage(`/device/track/select/${command.index}`); case 'device:track:next': return new Messages_1.OscMessage('/device/track/+'); case 'device:track:previous': return new Messages_1.OscMessage('/device/track/-'); case 'device:trackBank:select': return new Messages_1.OscMessage(`/device/track/bank/select/${command.index}`); case 'device:trackBank:next': return new Messages_1.OscMessage('/device/track/bank/+'); case 'device:trackBank:previous': return new Messages_1.OscMessage('/device/track/bank/-'); case 'device:fx:select': return new Messages_1.OscMessage(`/device/fx/select/${command.index}`); case 'device:fx:next': return new Messages_1.OscMessage('/device/fx/+'); case 'device:fx:previous': return new Messages_1.OscMessage('/device/fx/-'); case 'device:fx:parameterBank:select': return new Messages_1.OscMessage(`/device/fxparam/bank/select/${command.index}`); case 'device:fx:parameterBank:next': return new Messages_1.OscMessage('/device/fxparam/bank/+'); case 'device:fx:parameterBank:previous': return new Messages_1.OscMessage('/device/fxparam/bank/-'); case 'device:fx:instrumentParameterBank:select': return new Messages_1.OscMessage(`/device/fxinstparam/bank/select/${command.index}`); case 'device:fx:instrumentParameterBank:next': return new Messages_1.OscMessage('/device/fxinstparam/bank/+'); case 'device:fx:instrumentParameterBank:previous': return new Messages_1.OscMessage('/device/fxinstparam/bank/-'); case 'device:markerBank:select': return new Messages_1.OscMessage(`/device/marker/bank/select/${command.index}`); case 'device:markerBank:next': return new Messages_1.OscMessage('/device/marker/bank/+'); case 'device:markerBank:previous': return new Messages_1.OscMessage('/device/marker/bank/-'); case 'device:regionBank:select': return new Messages_1.OscMessage(`/device/region/bank/select/${command.index}`); case 'device:regionBank:next': return new Messages_1.OscMessage('/device/region/bank/+'); case 'device:regionBank:previous': return new Messages_1.OscMessage('/device/region/bank/-'); // Raw case 'raw': return command.message; } } exports.commandToOscMessage = commandToOscMessage; //# sourceMappingURL=Commands.js.map