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
|
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
|
deckRev
|
deckFwd
|
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
|
deckLoopPoint1
|
deckLoopPoint2
|
deckLoopPoint3
|
deckLoopPoint4
|
deckLoopPoint5
|
deckLoopPoint6
|
deckLoopPoint7
|
deckLoopPoint8
|
deckLoopSong
|
deckLoopMode |
Vinyl or Slip mode
|
deckSlowBpm
|
deckReverse
|
deckBrake
|
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
|
deckVocal
|
deckStem1 .. 4
|
deckStemMomentary1 .. 4 |
same as above but only as the button is pressed
|
deckSetStem1 .. 4
|
deckSyncKey
|
deckSyncKeyReset
|
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
|
loopMode |
0 vinyl mode, 1 slip mode
|
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
|
brake |
*not in FutureDJ
|
justLoaded |
*not in FutureDJ -- 1,2 (loading in progress), 4 (loading ended), 8 (progress), 16 (detection started), 32 (detection finished);
|
looppos1 .. looppos8 |
*not in FutureDJ
|
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
|
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]
|
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
|
brake
|
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)
|