Skip to content

Wave Link script functions

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

wavelink.addAppToChannel

Sends an app's sound to a Wave Link channel, like putting Spotify on the Music channel. Only for Wave Link 3. Fails with an error when Wave Link is not connected.

Value What to put in
channel The channel, by name or id, like "Music" or "Game".
app Optional. The app, by name or id, like "Spotify". Leave it empty for the app that is in front right now.

Gives back: The name of the app that was moved.

var answer = await Cb.Call("wavelink.addAppToChannel", new { channel = "Music", app = "Spotify" });
answer = cb.call("wavelink.addAppToChannel", channel="Music", app="Spotify")

wavelink.addOutputToMix

Plays a Wave Link mix on an output device. Only for Wave Link 3. Fails with an error when Wave Link is not connected.

Value What to put in
device The output device, by name or id, like "Headphones".
mix The mix, by name or id, like "Stream Mix" or "Monitor Mix".

Gives back: true when done.

var answer = await Cb.Call("wavelink.addOutputToMix", new { device = "Speakers", mix = "Monitor Mix" });
answer = cb.call("wavelink.addOutputToMix", device="Speakers", mix="Monitor Mix")

wavelink.connect

Looks for Wave Link and starts connecting. It does not wait: Cuebot keeps trying in the background. Wave Link only runs on Windows and macOS.

Gives back: true when Wave Link can run on this computer (connecting has started), false when it cannot (for example on Linux).

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

wavelink.disconnect

Disconnects Cuebot from Wave Link.

Gives back: true when done.

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

wavelink.getChannels

Lists your Wave Link channels (in Wave Link 1.x/2.x: inputs) and how they are set.

Gives back: A list of channels. Each has id, name, type, muted, volume, mixes (mute, volume and filterBypassed per mix), effects (name, enabled) and apps.

var answer = await Cb.Call("wavelink.getChannels");
answer = cb.call("wavelink.getChannels")

wavelink.getInputDevices

Lists your Wave Link input devices (in Wave Link 1.x/2.x: microphones) and their settings.

Gives back: A list of devices. Each has id, name, type and inputs (muted, gain, gainDb, gainLocked, micPcMix, lowCut, clipGuard).

var answer = await Cb.Call("wavelink.getInputDevices");
answer = cb.call("wavelink.getInputDevices")

wavelink.getMixes

Lists your Wave Link mixes, like Stream Mix and Monitor Mix.

Gives back: A list of mixes. Each has id, name, muted and volume.

var answer = await Cb.Call("wavelink.getMixes");
answer = cb.call("wavelink.getMixes")

wavelink.getOutputDevices

Lists your Wave Link output devices, like headphones and speakers.

Gives back: main (the main output's name), monitoredMix (the mix you hear) and devices (each with id, name and outputs: muted, volume, mixId).

var answer = await Cb.Call("wavelink.getOutputDevices");
answer = cb.call("wavelink.getOutputDevices")

wavelink.getStatus

Tells you about the Wave Link connection and what Cuebot found in it.

Gives back: isConnected, isAvailable, status (a status line), api ("3" for Wave Link 3, "legacy" for 1.x/2.x), port, interfaceRevision and how many channels, mixes, inputDevices and outputDevices there are.

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

wavelink.isConnected

Checks whether Cuebot is connected to Elgato Wave Link right now.

Gives back: true while connected, otherwise false.

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

wavelink.setChannelEffect

Turns an effect on a Wave Link channel on or off (in Wave Link 1.x/2.x: an input filter). Fails with an error when Wave Link is not connected.

Value What to put in
channel The channel, by name or id, like "Music" or "Game".
effect The effect or filter, by name or id, like "Noise Gate".
state Optional. "Enabled", "Disabled" or "Toggle" (switch). Default "Toggle".

Gives back: The new state: true for on, false for off.

var answer = await Cb.Call("wavelink.setChannelEffect", new { channel = "Microphone", effect = "Noise Gate", state = "Enabled" });
answer = cb.call("wavelink.setChannelEffect", channel="Microphone", effect="Noise Gate", state="Enabled")

wavelink.setChannelMute

Mutes or unmutes a Wave Link channel. Fails with an error when Wave Link is not connected.

Value What to put in
channel The channel, by name or id, like "Music" or "Game".
mix Optional. Only in this mix, like "Stream Mix". Leave it empty for the whole channel (Wave Link 1.x/2.x: both mixes).
state Optional. "Muted", "NotMuted" or "Toggle" (switch). Default "Toggle".

Gives back: The new state: true when muted, false when not.

var answer = await Cb.Call("wavelink.setChannelMute", new { channel = "Music", mix = "Stream Mix", state = "Muted" });
answer = cb.call("wavelink.setChannelMute", channel="Music", mix="Stream Mix", state="Muted")

wavelink.setChannelVolume

Changes the volume of a Wave Link channel. Fails with an error when Wave Link is not connected.

Value What to put in
channel The channel, by name or id, like "Music" or "Game".
volume The volume in percent, 0-100, like 50.
mix Optional. Only in this mix, like "Stream Mix". Leave it empty for the channel itself.
relative Optional. true adds the number to the current value instead (use a minus number to go down). Default false.

Gives back: The new volume.

var answer = await Cb.Call("wavelink.setChannelVolume", new { channel = "Music", volume = 30 });
answer = cb.call("wavelink.setChannelVolume", channel="Music", volume=30)

wavelink.setFilterBypass

Skips (bypasses) all filters on a Wave Link input, or turns them back on. Only for Wave Link 1.x/2.x. Fails with an error when Wave Link is not connected.

Value What to put in
channel The channel, by name or id, like "Music" or "Game".
mix Optional. Only in this mix, like "Stream Mix". Leave it empty for both mixes.
state Optional. "Bypassed", "NotBypassed" or "Toggle" (switch). Default "Toggle".

Gives back: The new state: true when the filters are skipped, false when they work.

var answer = await Cb.Call("wavelink.setFilterBypass", new { channel = "Microphone", state = "Bypassed" });
answer = cb.call("wavelink.setFilterBypass", channel="Microphone", state="Bypassed")

wavelink.setInputClipGuard

Turns Clipguard (it stops your mic from distorting when you get loud) of a Wave Link input on or off. Fails with an error when Wave Link is not connected.

Value What to put in
device The input device or microphone, by name or id, like "Wave:3".
state Optional. "On", "Off" or "Toggle" (switch). Default "Toggle".

Gives back: The new state: true for on, false for off.

var answer = await Cb.Call("wavelink.setInputClipGuard", new { device = "Wave:3", state = "On" });
answer = cb.call("wavelink.setInputClipGuard", device="Wave:3", state="On")

wavelink.setInputGain

Changes the gain (how loud the mic picks you up) of a Wave Link input. Fails with an error when Wave Link is not connected.

Value What to put in
device The input device or microphone, by name or id, like "Wave:3".
gain The gain. Wave Link 3: 0-100 percent. Wave Link 1.x/2.x: the microphone's own gain number.
relative Optional. true adds the number to the current value instead (use a minus number to go down). Default false.

Gives back: The new gain.

var answer = await Cb.Call("wavelink.setInputGain", new { device = "Wave:3", gain = 60 });
answer = cb.call("wavelink.setInputGain", device="Wave:3", gain=60)

wavelink.setInputLowCut

Turns the low cut filter (it removes deep rumble) of a Wave Link input on or off. Fails with an error when Wave Link is not connected.

Value What to put in
device The input device or microphone, by name or id, like "Wave:3".
state Optional. "On", "Off" or "Toggle" (switch). Default "Toggle".

Gives back: The new state: true for on, false for off.

var answer = await Cb.Call("wavelink.setInputLowCut", new { device = "Wave:3", state = "On" });
answer = cb.call("wavelink.setInputLowCut", device="Wave:3", state="On")

wavelink.setInputMute

Mutes or unmutes a Wave Link input device, like your microphone. Fails with an error when Wave Link is not connected.

Value What to put in
device The input device or microphone, by name or id, like "Wave:3".
state Optional. "Muted", "NotMuted" or "Toggle" (switch). Default "Toggle".

Gives back: The new state: true when muted, false when not.

var answer = await Cb.Call("wavelink.setInputMute", new { device = "Wave:3", state = "Muted" });
answer = cb.call("wavelink.setInputMute", device="Wave:3", state="Muted")

wavelink.setMainOutput

Picks the main output device in Wave Link: where you listen. Fails with an error when Wave Link is not connected.

Value What to put in
device The output device, by name or id, like "Headphones".

Gives back: The name of the new main output.

var answer = await Cb.Call("wavelink.setMainOutput", new { device = "Headphones" });
answer = cb.call("wavelink.setMainOutput", device="Headphones")

wavelink.setMicPcBalance

Changes the Mic/PC balance of a Wave Link input: how much of your mic versus your computer sound you hear. Fails with an error when Wave Link is not connected.

Value What to put in
device The input device or microphone, by name or id, like "Wave:3".
balance The balance, 0-100, like 50.
relative Optional. true adds the number to the current value instead (use a minus number to go down). Default false.

Gives back: The new balance.

var answer = await Cb.Call("wavelink.setMicPcBalance", new { device = "Wave:3", balance = 50 });
answer = cb.call("wavelink.setMicPcBalance", device="Wave:3", balance=50)

wavelink.setMixMute

Mutes or unmutes a whole Wave Link mix. Fails with an error when Wave Link is not connected.

Value What to put in
mix The mix, by name or id, like "Stream Mix" or "Monitor Mix".
state Optional. "Muted", "NotMuted" or "Toggle" (switch). Default "Toggle".

Gives back: The new state: true when muted, false when not.

var answer = await Cb.Call("wavelink.setMixMute", new { mix = "Stream Mix", state = "Muted" });
answer = cb.call("wavelink.setMixMute", mix="Stream Mix", state="Muted")

wavelink.setMixVolume

Changes the volume of a whole Wave Link mix. Fails with an error when Wave Link is not connected.

Value What to put in
mix The mix, by name or id, like "Stream Mix" or "Monitor Mix".
volume The volume in percent, 0-100, like 80.
relative Optional. true adds the number to the current value instead (use a minus number to go down). Default false.

Gives back: The new volume.

var answer = await Cb.Call("wavelink.setMixVolume", new { mix = "Monitor Mix", volume = 80 });
answer = cb.call("wavelink.setMixVolume", mix="Monitor Mix", volume=80)

wavelink.setMonitoredMix

Picks which Wave Link mix you hear on your main output. Fails with an error when Wave Link is not connected.

Value What to put in
mix The mix, by name or id, like "Stream Mix" or "Monitor Mix".

Gives back: The name of the mix you hear now.

var answer = await Cb.Call("wavelink.setMonitoredMix", new { mix = "Stream Mix" });
answer = cb.call("wavelink.setMonitoredMix", mix="Stream Mix")

wavelink.setOutputVolume

Changes the volume of a Wave Link output device. Only for Wave Link 3. Fails with an error when Wave Link is not connected.

Value What to put in
device The output device, by name or id, like "Headphones".
volume The volume in percent, 0-100, like 70.
relative Optional. true adds the number to the current value instead (use a minus number to go down). Default false.

Gives back: The new volume.

var answer = await Cb.Call("wavelink.setOutputVolume", new { device = "Headphones", volume = 70 });
answer = cb.call("wavelink.setOutputVolume", device="Headphones", volume=70)

wavelink.switchMonitoring

Switches what you hear between Monitor Mix and Stream Mix. Only for Wave Link 1.x/2.x; Wave Link 3 fails with an error (use wavelink.setMonitoredMix). Fails with an error when Wave Link is not connected.

Gives back: The name of the mix you hear now.

var answer = await Cb.Call("wavelink.switchMonitoring");
answer = cb.call("wavelink.switchMonitoring")