Scripting actions and notifications (list): Difference between revisions

From Xylio
Jump to navigation Jump to search
 
(12 intermediate revisions by the same user not shown)
Line 48: Line 48:
|-
|-
|setSamplerMasterVolume
|setSamplerMasterVolume
|-
|setBoothVolume
|-
|setMic2OnAir
|-
|setMic2Volume
|-
|setMic2EqLow
|-
|setMic2EqMid
|-
|setMic2EqHigh
|-
|-
|}
|}
Line 319: Line 331:
|-
|-
|deckUnload
|deckUnload
|-
|deckRev
|-
|deckFwd
|-
|-
|deckResetPitch
|deckResetPitch
Line 369: Line 377:
|-
|-
|deckLoopSong
|deckLoopSong
|-
|deckLoopMode || Vinyl or Slip mode
|-
|-
|deckSlowBpm
|deckSlowBpm
|-
|-
|deckReverse
|deckReverse
|-
|deckBrake
|-
|-
|deckEqLowKill
|deckEqLowKill
Line 539: Line 543:
|-
|-
|deckSyncKeyReset
|deckSyncKeyReset
|-
|deckQuantize
|-
|deckSlip
|-
|setTempValue
|-
|deckInstantLoad
|-
|deckLoopAdjustLeft
|-
|deckLoopAdjustRight
|-
|deckLoopAdjustBoth
|-
|-
|}
|}
Line 565: Line 583:
|-
|-
|recording
|recording
|-
|loopMode || 0 vinyl mode, 1 slip mode
|-
|-
|lbMode || 0 current list, 1 browser, 2 sidelist/automix list
|lbMode || 0 current list, 1 browser, 2 sidelist/automix list
Line 622: Line 638:
|-
|-
|timecodeIn || *not in FutureDJ
|timecodeIn || *not in FutureDJ
|-
|brake || *not in FutureDJ
|-
|-
|justLoaded || *not in FutureDJ -- 1,2 (loading in progress), 4 (loading ended), 8 (progress), 16 (detection started), 32 (detection finished);
|justLoaded || *not in FutureDJ -- 1,2 (loading in progress), 4 (loading ended), 8 (progress), 16 (detection started), 32 (detection finished);
Line 680: Line 694:
|-
|-
|stemVocal || only vocal
|stemVocal || only vocal
|-
|defaultLoop
|-
|quantize
|-
|slip
|-
|-
|}
|}
Line 760: Line 780:
|-
|-
|timeRemain || float [s]
|timeRemain || float [s]
|-
|timeTotal
|-
|-
|artist-title || string (UTF-8)
|artist-title || string (UTF-8)
Line 824: Line 846:
|-
|-
|timecodeIn
|timecodeIn
|-
|brake
|-
|-
|reverse
|reverse
Line 931: Line 951:
|-
|-
|markerType
|markerType
|-
|markerPos
|-
|defaultLoop
|-
|quantize
|-
|slip
|-
|originalKeyName
|-
|currentKeyName
|-
|originalKeyColor
|-
|currentKeyColor
|-
|loopInPos
|-
|loopOutPos
|-
|tempValue
|-
|-
|}
|}

Latest revision as of 10:43, 27 April 2024

Actions

Actions are called by the script itself. So the direction is SCRIPT -> FUTUREDECKS.
Here is a list of the actions you can call:

Global actions (sliders/knobs)

Name Description
setCrossfader
setCFCurve
setCFAudio
setCFVideo
setCuePflMix
setCuePgmMix
setMasterBalance
setMasterVolume
setMasterGain
setMonitorVolume
setMonitorGain
setPreview
setMicVolume
setMicGain
setMicEqLow
setMicEqMid
setMicEqHigh
lbMoveCursor list/browser move selection (increment)
setPitchRange 1 = 4%; 2 = 8%; 3 = 16%; 4 = 24%; 5 = 32%; 6 = 50%;
setSamplerMasterVolume
setBoothVolume
setMic2OnAir
setMic2Volume
setMic2EqLow
setMic2EqMid
setMic2EqHigh

Global actions (buttons/switches)

Name Description
reload_skin this is very useful when you map a skin and don't want to restart the software everytime you modify/edit the skin xml file (you can even assign a keyboard shortcut for it)
reload_midi this is very useful when you map a MIDI/HID hardware controller and don't want to restart the software everytime you modify/edit the controller js file
minimize
maximize
closeapp
lbToggleSelect list/browser toggle selection
lbBrowserSelect browser select
lbListSelect list select
listInsert
listInsertAll
listNew
listDelete
listEdit
listExport
listLoad
listSaveAs
listAdd
listAddDir
listRemove
listClear
listRandom
listShuffle
listDragUp
listDragDown
listDragTop
listDragBottom
listSelect
record
mixNext
setAutoDj
previewSong
searchStop
autoDjMore
autoDjLess
limiter
reloadSkin
reloadMidi
phonesSplit
syncLock
masterFxAdd
masterFxSel
samplesSel
micFxSel
micFxAdd
micTalkOver
micOnAir
setMicTalkOver
setMicOnAir
micEqLowKill
micEqMidKill
micEqHighKill
samplerPlay
samplerStop
samplerInstant plays only while you keep the button pressed
samplerVolume
sampler1 .. sampler8 these are used to mirror the UI sampler play buttons thus they can work in normal, stutter and instant mode (as configured in the software)
hidePanel
showPanel
showPrevPanel
showNextPanel
sleep
showHelp
showCfg
setPhonesSplit

Deck actions (sliders/knobs)

Name Description
setDeckVolume
setDeckPitch
setDeckPitchKey
setDeckPos
setDeckCutoff
setDeckGain
setDeckEqLow
setDeckEqMid
setDeckEqHigh
searchDeckJW implemented as increments mode (deck,+/-inc,totalPositionsPerCompleteRevolution)
scratchDeckJW implemented as increments mode (deck,+/-inc,totalPositionsPerCompleteRevolution)
moveDeckJogWheel implemented as increments mode (deck,+/-inc,totalPositionsPerCompleteRevolution)
holdDeckJogWheel
moveDeckPitch implemented as increments mode (deck,+/-inc)
deckFxPanDW fx sliders (dry-wet, param1, param2)
deckFxFlangerDW
deckFxPhaserDW
deckFxReverbDW
deckFxEchoDW
deckFxDelayDW
deckFxBeatwawDW
deckFxPanP1
deckFxFlangerP1
deckFxPhaserP1
deckFxReverbP1
deckFxEchoP1
deckFxDelayP1
deckFxBeatwawP1
deckFxPanP2
deckFxFlangerP2
deckFxPhaserP2
deckFxReverbP2
deckFxEchoP2
deckFxDelayP2
deckFxBeatwawP2
deckFx1DryWet toggle effects banks
deckFx1Param1
deckFx1Param2
deckFx2DryWet
deckFx2Param1
deckFx2Param2

Deck actions (buttons/switches)

Name Description
deckLBLoad list/browser load
deckFxSel
deckFxAdd
deckSync
deckMatch
deckMonitor
deckBoost
deckMute
deckInMaster
deckEditBpm
deckSaveBpm
deckTapBpm
deckBackToTop
deckSetCue
deckCue
deckPlayPause
deckCuePlay
deckBendDown
deckBendUp
deckUnload
deckResetPitch
deckLoadNext
deckLoopInEnd
deckLoopExit
deckLoopExitOrReloop
deckLoopReloop
deckLoopPrev
deckLoopNext
deckLoopLess
deckLoopMore
deckLoop1_16
deckLoop1_8
deckLoop1_4
deckLoop1_2
deckLoop1
deckLoop2
deckLoop4
deckLoop8
deckLoop16
deckLoop32
deckLoopNormal64ths
deckLoopInstant64ths
deckLoopSong
deckSlowBpm
deckReverse
deckEqLowKill
deckEqMidKill
deckEqHighKill
deckSearchLeft
deckSearchRight
deckScratch
deckSkipBeatPrev
deckSkipBeatNext
deckSkipBarPrev
deckSkipBarNext
deckKeyLock
deckAnalogIn
deckTimecodeIn
deckFxEdit1
deckFxEdit2
deckFxEdit3
deckFxEdit4
deckFxLoad1
deckFxLoad2
deckFxLoad3
deckFxLoad4
deckFxOn1
deckFxOn2
deckFxOn3
deckFxOn4
deckFxPan
deckFxFlanger
deckFxPhaser
deckFxReverb
deckFxEcho
deckFxDelay
deckFxBeatwaw
deckFxTremolo
deckCueIn
deckCueOut
deckCuePos1
deckCuePos2
deckCuePos3
deckCuePos4
deckCuePos5
deckCuePos6
deckCuePos7
deckCuePos8
deckCuePos9
deckCuePos10
deckCuePos1Clear
deckCuePos2Clear
deckCuePos3Clear
deckCuePos4Clear
deckCuePos5Clear
deckCuePos6Clear
deckCuePos7Clear
deckCuePos8Clear
deckCuePos9Clear
deckCuePos10Clear
deckCuePosClear
deckFx1Prev toggle effects banks
deckFx1Next
deckFx1SetOn
deckFx1ToggleOn
deckSetFx1
deckFx2Prev
deckFx2Next
deckFx2SetOn
deckFx2ToggleOn
deckSetFx2
setDeckMonitor
setDeckAnalogIn
deckSetCFAssign assign the deck to the crossfader: to the left side, right side or simply skip the crossfader (THRU); input values: 0 (left), 1 (THRU), 2 (right))
deckCFAssignToLeft
deckCFAssignToThru
deckCFAssignToRight
deckInstr only instruments stem(s)
deckVocal only vocal stem
deckStem1 .. 4 order of stems: vocal, drums, bass, other instruments
deckStemMomentary1 .. 4 same as above but only as the button is pressed
deckSetStem1 .. 4
deckKeyDown
deckKeyUp
deckSyncKey
deckSyncKeyReset
deckQuantize
deckSlip
setTempValue
deckInstantLoad
deckLoopAdjustLeft
deckLoopAdjustRight
deckLoopAdjustBoth

Notifications

Notifications are pushed to the script by FutureDecks. So the direction is FUTUREDECKS -> SCRIPT.
Here is a list of the notifications you will receive:

Global notifications

Name Description
sampler1 .. sampler8 normal (classic) notification: 0 if no sample is loaded, 1 if a sample is loaded (optionally, you can also use param2 (float): 0.0 paused, 1.0 playing)
samplerBlink1 .. samplerBlink8 same as above but also with automatic blinking: 0 (off) no sample loaded, 1 (on) sample loaded and paused, 0/1 (blinking) sample playing
onAir *not in FutureDJ
talkOver *not in FutureDJ
autoDj *not in FutureDJ
random *not in FutureDJ
recording
lbMode 0 current list, 1 browser, 2 sidelist/automix list
lbBrowsing signal only (whenever the user browse for tracks using the controller - useful if you want to change to the browser/lists panel in a skin - you can then use the justLoaded notification to go back to the initial panel)
pitchRange

Deck notifications

Name Description
beatPos beat position into the bar (eg. 1,2,3,4)
play
cue
keyLock
pitchIs0
loopSize
loopIn
looping
loopBlink off (no loopIn, no looping); blink (loopIn, no looping yet); on (no loopIn, looping);
monitor
onbeat
cuepos1
cuepos2
cuepos3
cuepos4 .. cuepos16 *not in FutureDJ
cueposin *not in FutureDJ
cueposout *not in FutureDJ
artist *not in FutureDJ
title *not in FutureDJ
analogIn *not in FutureDJ
timecodeIn *not in FutureDJ
justLoaded *not in FutureDJ -- 1,2 (loading in progress), 4 (loading ended), 8 (progress), 16 (detection started), 32 (detection finished);
slicepos slicer / slicer loop positions (what's active 1..8)
reverse
fxPan
fxFlanger
fxPhaser
fxReverb
fxEcho
fxDelay
fxBeatwaw
fxCutoffLP
fxCutoffHP
fxBitCrusher
fxTremolo
fx1 the current effect (0-based) index in bank 1
fx2
fx1On if the current effect in bank 1 is on or off
fx2On
killLow
killMid
killHigh
micKillLow *not in FutureDJ
micKillMid *not in FutureDJ
micKillHigh *not in FutureDJ
sequencer
stem1 .. 4
stemInstr only instruments
stemVocal only vocal
defaultLoop
quantize
slip

Values (getValue)

These are like the notifications but instead of the script waiting for them to be sent, it can request their value anytime. So the direction is SCRIPT -> FUTUREDECKS.
Here is a list of the values you can request (using getValue):

Global values

Name Description
onAir
talkOver
autoDj
random
lbMode
sampler1loaded
sampler2loaded
sampler3loaded
sampler4loaded
sampler5loaded
sampler6loaded
sampler7loaded
sampler8loaded
sampler1playing
sampler2playing
sampler3playing
sampler4playing
sampler5playing
sampler6playing
sampler7playing
sampler8playing
crossfader
cfAudio
cfVideo
pitchRange
monitorGain [-40..0dB]

Deck values

Name Description
bpm float
currentBpm float
pitch 100ths of % [-5000..+5000]
timeElapsed float [s]
timeRemain float [s]
timeTotal
artist-title string (UTF-8)
artist string (UTF-8)
title string (UTF-8)
jogWheelAngle float [0..359.(9)]
beatDiff float [-1..1]
play
cue
keyLock
pitchIs0
loopSize
looping
loopIn
monitor
cuepos1
cuepos2
cuepos3
cuepos4
cuepos5
cuepos6
cuepos7
cuepos8
cuepos9
cuepos10
onbeat
vumeterDeck float [dB]
vumeterDeckL float [dB]
vumeterDeckR float [dB]
vumeterMic float [dB]
vumeterMasterL float [dB]
vumeterMasterR float [dB]
analogIn
timecodeIn
reverse
micKillLow
micKillMid
micKillHigh
killLow
killMid
killHigh
fxPan
fxFlanger
fxPhaser
fxReverb
fxEcho
fxDelay
fxBeatwaw
fxPanDryWet
fxFlangerDryWet
fxPhaserDryWet
fxReverbDryWet
fxEchoDryWet
fxDelayDryWet
fxBeatwawDryWet
fxPanParam1
fxFlangerParam1
fxPhaserParam1
fxReverbParam1
fxEchoParam1
fxDelayParam1
fxBeatwawParam1
fxPanParam2
fxFlangerParam2
fxPhaserParam2
fxReverbParam2
fxEchoParam2
fxDelayParam2
fxBeatwawParam2
fx1 current effect for bank 1
fx2 current effect for bank 2 (0 flanger, 1 echo, 2 beatwaw, 3 reverb, 4 delay, 5 pan, 6 phaser; etc. Note that the order or the actual effects list might change.)
fx1Total how many effects to choose from in bank 1
fx2Total how many effects to choose from in bank 2
fx1DryWet
fx2DryWet
fx1Param1
fx2Param1
fx1Param2
fx2Param2
originalKey original musical key index starting with 0 (none, A, A#, B, C, C#, D, D#, E, F, F#, G, G#, Am, A#m, Bm, Cm, C#m, Dm, D#m, Em, Fm, F#m, Gm, G#m)
currentKey current musical key index (the same as above if the key was not altered)
key current key change (eg. 1 semitone)
stem1 .. 4
markerColor
markerName
markerType
markerPos
defaultLoop
quantize
slip
originalKeyName
currentKeyName
originalKeyColor
currentKeyColor
loopInPos
loopOutPos
tempValue