Skip to content

Meld Studio script functions

Functions for C# (Cb.Call) and Python (cb.call). See Script functions for how to use them.

meldstudio.connect

Starts connecting to Meld Studio. It does not wait: Cuebot keeps trying in the background until it works.

Gives back: true once connecting has started (not when it is connected).

var answer = await Cb.Call("meldstudio.connect");
answer = cb.call("meldstudio.connect")

meldstudio.disconnect

Disconnects Cuebot from Meld Studio.

Gives back: true when done.

var answer = await Cb.Call("meldstudio.disconnect");
answer = cb.call("meldstudio.disconnect")

meldstudio.getScenes

Lists your Meld Studio scenes in order.

Gives back: A list of scenes. Each has id, name, current (true when showing) and staged (true when lined up next).

var answer = await Cb.Call("meldstudio.getScenes");
answer = cb.call("meldstudio.getScenes")

meldstudio.getSession

Gives you everything Meld Studio reports about your setup: scenes, layers, effects and audio tracks. For advanced scripts.

Gives back: An object with one entry per item, named by its id. Each entry holds the item's details as Meld Studio sends them.

var answer = await Cb.Call("meldstudio.getSession");
answer = cb.call("meldstudio.getSession")

meldstudio.getStatus

Tells you whether Meld Studio is connected, recording or live, and which scene is showing.

Gives back: isConnected, isRecording, isStreaming (true/false), currentScene (its name, or null) and apiVersion.

var answer = await Cb.Call("meldstudio.getStatus");
answer = cb.call("meldstudio.getStatus")

meldstudio.hideLayer

Hides a layer in Meld Studio. Fails with an error when no layer matches.

Value What to put in
layer The layer's name, like "Webcam", or its id.
scene Optional. The scene the layer is in. Leave it out to search the current scene first, then all scenes.

Gives back: false (the layer is hidden now).

var answer = await Cb.Call("meldstudio.hideLayer", new { layer = "Webcam" });
answer = cb.call("meldstudio.hideLayer", layer="Webcam")

meldstudio.invoke

Calls any of Meld Studio's own functions by name. For advanced users. Fails with an error when this Meld Studio version does not have it.

Value What to put in
method The Meld function name, like "setStagedScene". Needed.
args Optional. A list of values to pass to it, like [""].

Gives back: Meld Studio's answer, or null when it gives none.

var answer = await Cb.Call("meldstudio.invoke", new { method = "showStagedScene" });
answer = cb.call("meldstudio.invoke", method="showStagedScene")

meldstudio.isConnected

Checks whether Cuebot is connected to Meld Studio right now.

Gives back: true while connected, otherwise false.

var answer = await Cb.Call("meldstudio.isConnected");
answer = cb.call("meldstudio.isConnected")

meldstudio.recording

Starts or stops recording in Meld Studio. Fails with an error when Meld Studio is not connected.

Value What to put in
state Optional. "Start", "Stop" or "Toggle" (switch). Default "Toggle".

Gives back: true when recording now, false when not.

var answer = await Cb.Call("meldstudio.recording", new { state = "Start" });
answer = cb.call("meldstudio.recording", state="Start")

meldstudio.screenshot

Takes a screenshot in Meld Studio.

Value What to put in
vertical Optional. true takes it of the vertical (phone) canvas. Default false.

Gives back: true when done.

var answer = await Cb.Call("meldstudio.screenshot");
answer = cb.call("meldstudio.screenshot")

meldstudio.sendCommand

Runs one of Meld Studio's own commands, like saving a clip or showing the replay.

Value What to put in
command The Meld command name, like "meld.recordClip" or "meld.replay.show".

Gives back: true when done.

var answer = await Cb.Call("meldstudio.sendCommand", new { command = "meld.recordClip" });
answer = cb.call("meldstudio.sendCommand", command="meld.recordClip")

meldstudio.setEffectEnabled

Turns an effect on a Meld Studio layer on or off, like a blur or colour filter. Fails with an error when the layer or effect is not found.

Value What to put in
layer The layer's name, like "Webcam", or its id.
effect The effect's name, like "Blur", or its id.
state Optional. "Enabled", "Disabled" or "Toggle" (switch). Default "Toggle".
scene Optional. The scene the layer is in. Leave it out to search the current scene first.

Gives back: true when the effect is on now, false when off.

var answer = await Cb.Call("meldstudio.setEffectEnabled", new { layer = "Webcam", effect = "Blur", state = "Enabled" });
answer = cb.call("meldstudio.setEffectEnabled", layer="Webcam", effect="Blur", state="Enabled")

meldstudio.setLayerVisibility

Shows, hides or flips a layer in Meld Studio. Fails with an error when no layer matches.

Value What to put in
layer The layer's name, like "Webcam", or its id.
state Optional. "Visible", "Hidden" or "Toggle" (switch). Default "Toggle".
scene Optional. The scene the layer is in. Leave it out to search the current scene first, then all scenes.

Gives back: true when the layer is visible now, false when hidden.

var answer = await Cb.Call("meldstudio.setLayerVisibility", new { layer = "Webcam", state = "Hidden" });
answer = cb.call("meldstudio.setLayerVisibility", layer="Webcam", state="Hidden")

meldstudio.setTrackGain

Changes the volume (gain) of an audio track in Meld Studio. Fails with an error when no track matches.

Value What to put in
track The audio track's name, like "Music", or its id.
gain The volume as a number from 0 (silent) to 1 (full), like 0.5. It must be a number, not text.

Gives back: true when done.

var answer = await Cb.Call("meldstudio.setTrackGain", new { track = "Music", gain = 0.5 });
answer = cb.call("meldstudio.setTrackGain", track="Music", gain=0.5)

meldstudio.setTrackMuted

Mutes or unmutes an audio track in Meld Studio. Fails with an error when no track matches.

Value What to put in
track The audio track's name, like "Microphone", or its id.
state Optional. "Muted", "NotMuted" or "Toggle" (switch). Default "Toggle".

Gives back: true when the track is muted now, false when not.

var answer = await Cb.Call("meldstudio.setTrackMuted", new { track = "Microphone", state = "Muted" });
answer = cb.call("meldstudio.setTrackMuted", track="Microphone", state="Muted")

meldstudio.showLayer

Makes a layer in Meld Studio visible. Fails with an error when no layer matches.

Value What to put in
layer The layer's name, like "Webcam", or its id.
scene Optional. The scene the layer is in. Leave it out to search the current scene first, then all scenes.

Gives back: true (the layer is visible now).

var answer = await Cb.Call("meldstudio.showLayer", new { layer = "Webcam" });
answer = cb.call("meldstudio.showLayer", layer="Webcam")

meldstudio.showScene

Switches Meld Studio to another scene. Fails with an error when no scene matches or Meld Studio is not connected.

Value What to put in
scene The scene's name as Meld Studio shows it, like "Gameplay", or its id.

Gives back: The name of the scene that is now showing.

var answer = await Cb.Call("meldstudio.showScene", new { scene = "Gameplay" });
answer = cb.call("meldstudio.showScene", scene="Gameplay")

meldstudio.showSceneByName

Switches Meld Studio to another scene. Works just like meldstudio.showScene.

Value What to put in
sceneName The scene's name as Meld Studio shows it, like "Gameplay". An id works too.

Gives back: The name of the scene that is now showing.

var answer = await Cb.Call("meldstudio.showSceneByName", new { sceneName = "Gameplay" });
answer = cb.call("meldstudio.showSceneByName", sceneName="Gameplay")

meldstudio.streaming

Goes live or stops streaming in Meld Studio. Fails with an error when Meld Studio is not connected.

Value What to put in
state Optional. "Start", "Stop" or "Toggle" (switch). Default "Toggle".

Gives back: true when streaming now, false when not.

var answer = await Cb.Call("meldstudio.streaming", new { state = "Stop" });
answer = cb.call("meldstudio.streaming", state="Stop")