MediaWiki API result

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "continue": {
        "gapcontinue": "Windows:_should_you_use_DirectSound(default),_WASAPI_or_ASIO",
        "continue": "gapcontinue||"
    },
    "warnings": {
        "main": {
            "*": "Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/> for notice of API deprecations and breaking changes."
        },
        "revisions": {
            "*": "Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
        }
    },
    "query": {
        "pages": {
            "7": {
                "pageid": 7,
                "ns": 0,
                "title": "Scripting actions and notifications (list)",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "== Actions ==\n\nActions are called by the script itself. So the direction is SCRIPT -> FUTUREDECKS.<br/>\nHere is a list of the actions you can call:\n\n=== Global actions (sliders/knobs) ===\n{|class=\"wikitable\"\n! align=\"left\"| Name\n! Description\n|-\n|setCrossfader\n|-\n|setCFCurve\n|-\n|setCFAudio\n|-\n|setCFVideo\n|-\n|setCuePflMix\n|-\n|setCuePgmMix\n|-\n|setMasterBalance\n|-\n|setMasterVolume\n|-\n|setMasterGain\n|-\n|setMonitorVolume\n|-\n|setMonitorGain\n|-\n|setPreview\n|-\n|setMicVolume\n|-\n|setMicGain\n|-\n|setMicEqLow\n|-\n|setMicEqMid\n|-\n|setMicEqHigh\n|-\n|lbMoveCursor || list/browser move selection (increment)\n|-\n|setPitchRange || 1 = 4%; 2 = 8%; 3 = 16%; 4 = 24%; 5 = 32%; 6 = 50%;\n|-\n|setSamplerMasterVolume\n|-\n|setBoothVolume\n|-\n|setMic2OnAir\n|-\n|setMic2Volume\n|-\n|setMic2EqLow\n|-\n|setMic2EqMid\n|-\n|setMic2EqHigh\n|-\n|}\n\n=== Global actions (buttons/switches) ===\n{|class=\"wikitable\"\n! align=\"left\"| Name\n! Description\n|-\n|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)\n|-\n|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\n|-\n|minimize\n|-\n|maximize\n|-\n|closeapp\n|-\n|lbToggleSelect || list/browser toggle selection\n|-\n|lbBrowserSelect || browser select\n|-\n|lbListSelect || list select\n|-\n|listInsert\n|-\n|listInsertAll\n|-\n|listNew\n|-\n|listDelete\n|-\n|listEdit\n|-\n|listExport\n|-\n|listLoad\n|-\n|listSaveAs\n|-\n|listAdd\n|-\n|listAddDir\n|-\n|listRemove\n|-\n|listClear\n|-\n|listRandom\n|-\n|listShuffle\n|-\n|listDragUp\n|-\n|listDragDown\n|-\n|listDragTop\n|-\n|listDragBottom\n|-\n|listSelect\n|-\n|record\n|-\n|mixNext\n|-\n|setAutoDj\n|-\n|previewSong\n|-\n|searchStop\n|-\n|autoDjMore\n|-\n|autoDjLess\n|-\n|limiter\n|-\n|reloadSkin\n|-\n|reloadMidi\n|-\n|phonesSplit\n|-\n|syncLock\n|-\n|masterFxAdd\n|-\n|masterFxSel\n|-\n|samplesSel\n|-\n|micFxSel\n|-\n|micFxAdd\n|-\n|micTalkOver\n|-\n|micOnAir\n|-\n|setMicTalkOver\n|-\n|setMicOnAir\n|-\n|micEqLowKill\n|-\n|micEqMidKill\n|-\n|micEqHighKill\n|-\n|samplerPlay\n|-\n|samplerStop\n|-\n|samplerInstant || plays only while you keep the button pressed\n|-\n|samplerVolume\n|-\n|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)\n|-\n|hidePanel\n|-\n|showPanel\n|-\n|showPrevPanel\n|-\n|showNextPanel\n|-\n|sleep\n|-\n|showHelp\n|-\n|showCfg\n|-\n|setPhonesSplit\n|-\n|}\n\n=== Deck actions (sliders/knobs) ===\n{|class=\"wikitable\"\n! align=\"left\"| Name\n! Description\n|-\n|setDeckVolume\n|-\n|setDeckPitch\n|-\n|setDeckPitchKey\n|-\n|setDeckPos\n|-\n|setDeckCutoff\n|-\n|setDeckGain\n|-\n|setDeckEqLow\n|-\n|setDeckEqMid\n|-\n|setDeckEqHigh\n|-\n|searchDeckJW || implemented as increments mode (deck,+/-inc,totalPositionsPerCompleteRevolution)\n|-\n|scratchDeckJW || implemented as increments mode (deck,+/-inc,totalPositionsPerCompleteRevolution)\n|-\n|moveDeckJogWheel || implemented as increments mode (deck,+/-inc,totalPositionsPerCompleteRevolution)\n|-\n|holdDeckJogWheel\n|-\n|moveDeckPitch || implemented as increments mode (deck,+/-inc)\n|-\n|deckFxPanDW || fx sliders (dry-wet, param1, param2)\n|-\n|deckFxFlangerDW\n|-\n|deckFxPhaserDW\n|-\n|deckFxReverbDW\n|-\n|deckFxEchoDW\n|-\n|deckFxDelayDW\n|-\n|deckFxBeatwawDW\n|-\n|deckFxPanP1\n|-\n|deckFxFlangerP1\n|-\n|deckFxPhaserP1\n|-\n|deckFxReverbP1\n|-\n|deckFxEchoP1\n|-\n|deckFxDelayP1\n|-\n|deckFxBeatwawP1\n|-\n|deckFxPanP2\n|-\n|deckFxFlangerP2\n|-\n|deckFxPhaserP2\n|-\n|deckFxReverbP2\n|-\n|deckFxEchoP2\n|-\n|deckFxDelayP2\n|-\n|deckFxBeatwawP2\n|-\n|deckFx1DryWet || toggle effects banks\n|-\n|deckFx1Param1\n|-\n|deckFx1Param2\n|-\n|deckFx2DryWet\n|-\n|deckFx2Param1\n|-\n|deckFx2Param2\n|-\n|}\n\n=== Deck actions (buttons/switches) ===\n{|class=\"wikitable\"\n! align=\"left\"| Name\n! Description\n|-\n|deckLBLoad || list/browser load\n|-\n|deckFxSel\n|-\n|deckFxAdd\n|-\n|deckSync\n|-\n|deckMatch\n|-\n|deckMonitor\n|-\n|deckBoost\n|-\n|deckMute\n|-\n|deckInMaster\n|-\n|deckEditBpm\n|-\n|deckSaveBpm\n|-\n|deckTapBpm\n|-\n|deckBackToTop\n|-\n|deckSetCue\n|-\n|deckCue\n|-\n|deckPlayPause\n|-\n|deckCuePlay\n|-\n|deckBendDown\n|-\n|deckBendUp\n|-\n|deckUnload\n|-\n|deckResetPitch\n|-\n|deckLoadNext\n|-\n|deckLoopInEnd\n|-\n|deckLoopExit\n|-\n|deckLoopExitOrReloop\n|-\n|deckLoopReloop\n|-\n|deckLoopPrev\n|-\n|deckLoopNext\n|-\n|deckLoopLess\n|-\n|deckLoopMore\n|-\n|deckLoop1_16\n|-\n|deckLoop1_8\n|-\n|deckLoop1_4\n|-\n|deckLoop1_2\n|-\n|deckLoop1\n|-\n|deckLoop2\n|-\n|deckLoop4\n|-\n|deckLoop8\n|-\n|deckLoop16\n|-\n|deckLoop32\n|-\n|deckLoopNormal64ths\n|-\n|deckLoopInstant64ths\n|-\n|deckLoopSong\n|-\n|deckSlowBpm\n|-\n|deckReverse\n|-\n|deckEqLowKill\n|-\n|deckEqMidKill\n|-\n|deckEqHighKill\n|-\n|deckSearchLeft\n|-\n|deckSearchRight\n|-\n|deckScratch\n|-\n|deckSkipBeatPrev\n|-\n|deckSkipBeatNext\n|-\n|deckSkipBarPrev\n|-\n|deckSkipBarNext\n|-\n|deckKeyLock\n|-\n|deckAnalogIn\n|-\n|deckTimecodeIn\n|-\n|deckFxEdit1\n|-\n|deckFxEdit2\n|-\n|deckFxEdit3\n|-\n|deckFxEdit4\n|-\n|deckFxLoad1\n|-\n|deckFxLoad2\n|-\n|deckFxLoad3\n|-\n|deckFxLoad4\n|-\n|deckFxOn1\n|-\n|deckFxOn2\n|-\n|deckFxOn3\n|-\n|deckFxOn4\n|-\n|deckFxPan\n|-\n|deckFxFlanger\n|-\n|deckFxPhaser\n|-\n|deckFxReverb\n|-\n|deckFxEcho\n|-\n|deckFxDelay\n|-\n|deckFxBeatwaw\n|-\n|deckFxTremolo\n|-\n|deckCueIn\n|-\n|deckCueOut\n|-\n|deckCuePos1\n|-\n|deckCuePos2\n|-\n|deckCuePos3\n|-\n|deckCuePos4\n|-\n|deckCuePos5\n|-\n|deckCuePos6\n|-\n|deckCuePos7\n|-\n|deckCuePos8\n|-\n|deckCuePos9\n|-\n|deckCuePos10\n|-\n|deckCuePos1Clear\n|-\n|deckCuePos2Clear\n|-\n|deckCuePos3Clear\n|-\n|deckCuePos4Clear\n|-\n|deckCuePos5Clear\n|-\n|deckCuePos6Clear\n|-\n|deckCuePos7Clear\n|-\n|deckCuePos8Clear\n|-\n|deckCuePos9Clear\n|-\n|deckCuePos10Clear\n|-\n|deckCuePosClear\n|-\n|deckFx1Prev || toggle effects banks\n|-\n|deckFx1Next\n|-\n|deckFx1SetOn\n|-\n|deckFx1ToggleOn\n|-\n|deckSetFx1\n|-\n|deckFx2Prev\n|-\n|deckFx2Next\n|-\n|deckFx2SetOn\n|-\n|deckFx2ToggleOn\n|-\n|deckSetFx2\n|-\n|setDeckMonitor\n|-\n|setDeckAnalogIn\n|-\n|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))\n|-\n|deckCFAssignToLeft\n|-\n|deckCFAssignToThru\n|-\n|deckCFAssignToRight\n|-\n|deckInstr || only instruments stem(s)\n|-\n|deckVocal || only vocal stem\n|-\n|deckStem1 .. 4 || order of stems: vocal, drums, bass, other instruments\n|-\n|deckStemMomentary1 .. 4 || same as above but only as the button is pressed\n|-\n|deckSetStem1 .. 4\n|-\n|deckKeyDown\n|-\n|deckKeyUp\n|-\n|deckSyncKey\n|-\n|deckSyncKeyReset\n|-\n|deckQuantize\n|-\n|deckSlip\n|-\n|setTempValue\n|-\n|deckInstantLoad\n|-\n|deckLoopAdjustLeft\n|-\n|deckLoopAdjustRight\n|-\n|deckLoopAdjustBoth\n|-\n|}\n\n== Notifications ==\n\nNotifications are pushed to the script by FutureDecks. So the direction is FUTUREDECKS -> SCRIPT.<br/>\nHere is a list of the notifications you will receive:\n\n=== Global notifications ===\n{|class=\"wikitable\"\n! align=\"left\"| Name\n! Description\n|-\n|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)\n|-\n|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\n|-\n|onAir || *not in FutureDJ\n|-\n|talkOver || *not in FutureDJ\n|-\n|autoDj || *not in FutureDJ\n|-\n|random || *not in FutureDJ\n|-\n|recording\n|-\n|lbMode || 0 current list, 1 browser, 2 sidelist/automix list\n|-\n|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)\n|-\n|pitchRange\n|-\n|}\n\n=== Deck notifications ===\n{|class=\"wikitable\"\n! align=\"left\"| Name\n! Description\n|-\n|beatPos || beat position into the bar (eg. 1,2,3,4)\n|-\n|play\n|-\n|cue\n|-\n|keyLock\n|-\n|pitchIs0\n|-\n|loopSize\n|-\n|loopIn\n|-\n|looping\n|-\n|loopBlink || off (no loopIn, no looping); blink (loopIn, no looping yet); on (no loopIn, looping);\n|-\n|monitor\n|-\n|onbeat\n|-\n|cuepos1\n|-\n|cuepos2\n|-\n|cuepos3\n|-\n|cuepos4 .. cuepos16 || *not in FutureDJ\n|-\n|cueposin || *not in FutureDJ\n|-\n|cueposout || *not in FutureDJ\n|-\n|artist || *not in FutureDJ\n|-\n|title || *not in FutureDJ\n|-\n|analogIn || *not in FutureDJ\n|-\n|timecodeIn || *not in FutureDJ\n|-\n|justLoaded || *not in FutureDJ -- 1,2 (loading in progress), 4 (loading ended), 8 (progress), 16 (detection started), 32 (detection finished);\n|-\n|slicepos || slicer / slicer loop positions (what's active 1..8)\n|-\n|reverse\n|-\n|fxPan\n|-\n|fxFlanger\n|-\n|fxPhaser\n|-\n|fxReverb\n|-\n|fxEcho  \n|-\n|fxDelay\n|-\n|fxBeatwaw\n|-\n|fxCutoffLP\n|-\n|fxCutoffHP\n|-\n|fxBitCrusher\n|-\n|fxTremolo\n|-\n|fx1 || the current effect (0-based) index in bank 1\n|-\n|fx2\n|-\n|fx1On || if the current effect in bank 1 is on or off\n|-\n|fx2On\n|-\n|killLow  \n|-\n|killMid\n|-\n|killHigh\n|-\n|micKillLow || *not in FutureDJ\n|-\n|micKillMid || *not in FutureDJ\n|-\n|micKillHigh || *not in FutureDJ\n|-\n|sequencer\n|-\n|stem1 .. 4\n|-\n|stemInstr || only instruments\n|-\n|stemVocal || only vocal\n|-\n|defaultLoop\n|-\n|quantize\n|-\n|slip\n|-\n|}\n\n== Values (getValue) ==\n\nThese 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.<br/>\nHere is a list of the values you can request (using getValue):\n\n=== Global values ===\n{|class=\"wikitable\"\n! align=\"left\"| Name\n! Description\n|-\n|onAir\n|-\n|talkOver\n|-\n|autoDj\n|-\n|random\n|-\n|lbMode\n|-\n|sampler1loaded\n|-\n|sampler2loaded\n|-\n|sampler3loaded\n|-\n|sampler4loaded\n|-\n|sampler5loaded\n|-\n|sampler6loaded\n|-\n|sampler7loaded\n|-\n|sampler8loaded\n|-\n|sampler1playing\n|-\n|sampler2playing\n|-\n|sampler3playing\n|-\n|sampler4playing\n|-\n|sampler5playing\n|-\n|sampler6playing\n|-\n|sampler7playing\n|-\n|sampler8playing\n|-\n|crossfader\n|-\n|cfAudio\n|-\n|cfVideo\n|-\n|pitchRange\n|-\n|monitorGain || [-40..0dB]\n|}\n\n=== Deck values ===\n{|class=\"wikitable\"\n! align=\"left\"| Name\n! Description\n|-\n|bpm || float\n|-\n|currentBpm || float\n|-\n|pitch || 100ths of % [-5000..+5000]\n|-\n|timeElapsed || float [s]\n|-\n|timeRemain || float [s]\n|-\n|timeTotal\n|-\n|artist-title || string (UTF-8)\n|-\n|artist || string (UTF-8)\n|-\n|title || string (UTF-8)\n|-\n|jogWheelAngle || float [0..359.(9)]\n|-\n|beatDiff || float [-1..1]\n|-\n|play\n|-\n|cue\n|-\n|keyLock\n|-\n|pitchIs0\n|-\n|loopSize\n|-\n|looping\n|-\n|loopIn\n|-\n|monitor\n|-\n|cuepos1\n|-\n|cuepos2\n|-\n|cuepos3\n|-\n|cuepos4\n|-\n|cuepos5\n|-\n|cuepos6\n|-\n|cuepos7\n|-\n|cuepos8\n|-\n|cuepos9\n|-\n|cuepos10\n|-\n|onbeat\n|-\n|vumeterDeck || float [dB]\n|-\n|vumeterDeckL || float [dB]\n|-\n|vumeterDeckR || float [dB]\n|-\n|vumeterMic || float [dB]\n|-\n|vumeterMasterL || float [dB]\n|-\n|vumeterMasterR || float [dB]\n|-\n|analogIn\n|-\n|timecodeIn\n|-\n|reverse\n|-\n|micKillLow\n|-\n|micKillMid\n|-\n|micKillHigh\n|-\n|killLow\n|-\n|killMid\n|-\n|killHigh\n|-\n|fxPan\n|-\n|fxFlanger\n|-\n|fxPhaser\n|-\n|fxReverb\n|-\n|fxEcho\n|-\n|fxDelay\n|-\n|fxBeatwaw\n|-\n|fxPanDryWet\n|-\n|fxFlangerDryWet\n|-\n|fxPhaserDryWet\n|-\n|fxReverbDryWet\n|-\n|fxEchoDryWet\n|-\n|fxDelayDryWet\n|-\n|fxBeatwawDryWet\n|-\n|fxPanParam1\n|-\n|fxFlangerParam1\n|-\n|fxPhaserParam1\n|-\n|fxReverbParam1\n|-\n|fxEchoParam1\n|-\n|fxDelayParam1\n|-\n|fxBeatwawParam1\n|-\n|fxPanParam2\n|-\n|fxFlangerParam2\n|-\n|fxPhaserParam2\n|-\n|fxReverbParam2\n|-\n|fxEchoParam2\n|-\n|-\n|fxDelayParam2\n|-\n|fxBeatwawParam2\n|-\n|fx1 || current effect for bank 1\n|-\n|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.)\n|-\n|fx1Total || how many effects to choose from in bank 1\n|-\n|fx2Total || how many effects to choose from in bank 2\n|-\n|fx1DryWet\n|-\n|fx2DryWet\n|-\n|fx1Param1\n|-\n|fx2Param1\n|-\n|fx1Param2\n|-\n|fx2Param2\n|-\n|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)\n|-\n|currentKey || current musical key index (the same as above if the key was not altered)\n|-\n|key || current key change (eg. 1 semitone)\n|-\n|stem1 .. 4\n|-\n|markerColor\n|-\n|markerName\n|-\n|markerType\n|-\n|markerPos\n|-\n|defaultLoop\n|-\n|quantize\n|-\n|slip\n|-\n|originalKeyName\n|-\n|currentKeyName\n|-\n|originalKeyColor\n|-\n|currentKeyColor\n|-\n|loopInPos\n|-\n|loopOutPos\n|-\n|tempValue\n|-\n|}"
                    }
                ]
            },
            "4": {
                "pageid": 4,
                "ns": 0,
                "title": "Should you get a Mac or a Windows machine / a laptop or a desktop",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "Disclaimer: the following are the opinions and beliefs of Xylio staff (and they might even be subjective)<br/>\n<br/>\nA desktop is much more powerful than a laptop, but a laptop is portable.<br/>\nFor DJ-ing portability is a big advantage. So, most of the times a DJ carries around a laptop. Except for resident DJs which sometimes have the luxury of using a powerful desktop at the location.<br>\n<br>\nHow to choose between a Mac and a Windows machine -- first and foremost is a matter of preference. If you prefer one over the other you should definitely stick to your choice. Both can accomplish the same tasks and FutureDecks works ok on both. In terms of the actual machines, from the hardware point of view, Macs tend to be better built and usually have better processors and higher quality components and displays. If you were to configure a Windows laptop with the exact same internals as a Mac laptop (exact processor type (not only i5/i7 but down to the exact type id - eg.i5 3317U), memory, display type/quality/resolution, SSD/hard drive, etc) you will be amazed on the price difference between them -- or more precisely on the lack of a price difference. If you factor in the battery life you get from them, the difference is practically non-existant.<br>\n<br>\nIf on the other hand you don't care for the latest hardware components or simply don't want to spend a lot of money on a Mac, then a Windows laptop is indeed a very good choice - especially very good in terms of what you get for your money. You can get a decent machine at less than a half (or even a third) that of a Mac.<br>\n<br>\nOn the software side things are a bit more different though - all Macs come by default with CoreAudio which is a high-quality and very low latency audio software interface to the actual audio device (soundcard). This ensures that you will have very low latencies (usually between 1ms to 15ms) and everything works perfectly and with all audio devices out-of-the-box. On Windows to reach the same latencies and quality you have to have a soundcard with an ASIO driver -- which unfortunately not all have -- mostly only the professional ones (and some of the hardware controllers which have the sound I/O built-in, but not all have ASIO). In terms of resources allocated to the audio apps - Macs also usually fair better. A Mac is a machine more targeted to media creation/multimedia/audio work than a Windows machine which is more targeted as an office machine. That's not to say you can't use them both for either task."
                    }
                ]
            }
        }
    }
}