Skip to content

Stream Deck, VTube Studio, Voicemod, Wave Link, Lumia, MIDI and T.I.T.S.

C# methods for a Run C# code step. See C# methods for how to use them.

StreamDeckSetTitle

Changes the text on a Stream Deck key. Find the key by the Button ID you set on it in Stream Deck. Add a state (0 or 1) to change only that state's title.

void StreamDeckSetTitle(string buttonId, string title)
void StreamDeckSetTitle(string buttonId, string title, int state)

Gives back: Nothing.

Example

CPH.StreamDeckSetTitle("deaths", "Deaths: 3");

StreamDeckSetValue

Changes the value shown on a Stream Deck key or dial, found by its Button ID.

void StreamDeckSetValue(string buttonId, string value)

Gives back: Nothing.

Example

CPH.StreamDeckSetValue("volume-dial", "75");

StreamDeckSetState

Switches a two-state Stream Deck key to state 0 or state 1, found by its Button ID.

void StreamDeckSetState(string buttonId, int state)

Gives back: Nothing.

Example

CPH.StreamDeckSetState("mic-key", 1);

StreamDeckToggleState

Flips a two-state Stream Deck key to its other state, found by its Button ID.

void StreamDeckToggleState(string buttonId)

Gives back: Nothing.

Example

CPH.StreamDeckToggleState("mic-key");

StreamDeckShowAlert

Flashes the warning icon on a Stream Deck key, found by its Button ID. Handy to show that something failed.

void StreamDeckShowAlert(string buttonId)

Gives back: Nothing.

Example

CPH.StreamDeckShowAlert("start-stream");

StreamDeckShowOk

Flashes the check mark icon on a Stream Deck key, found by its Button ID. Handy to show that something worked.

void StreamDeckShowOk(string buttonId)

Gives back: Nothing.

Example

CPH.StreamDeckShowOk("start-stream");

StreamDeckSetBackgroundColor

Fills a Stream Deck key with one colour, like "#FF0000" or "red". Add a state (0 or 1) to colour only that state.

void StreamDeckSetBackgroundColor(string buttonId, string color)
void StreamDeckSetBackgroundColor(string buttonId, string color, int state)

Gives back: Nothing.

Example

CPH.StreamDeckSetBackgroundColor("live-key", "#FF0000");

StreamDeckSetBackgroundLocal

Shows a picture file from your computer on a Stream Deck key. Add a state (0 or 1) to change only that state. The colour setting is ignored in Cuebot.

void StreamDeckSetBackgroundLocal(string buttonId, string imageFile)
void StreamDeckSetBackgroundLocal(string buttonId, string imageFile, int state)
void StreamDeckSetBackgroundLocal(string buttonId, string imageFile, string color)
void StreamDeckSetBackgroundLocal(string buttonId, string imageFile, string color, int state)

Gives back: Nothing.

Example

CPH.StreamDeckSetBackgroundLocal("live-key", @"C:\Stream\Icons\live.png");

StreamDeckSetBackgroundUrl

Shows a picture from a web link on a Stream Deck key. Add a state (0 or 1) to change only that state. The colour setting is ignored in Cuebot.

void StreamDeckSetBackgroundUrl(string buttonId, string imageUrl)
void StreamDeckSetBackgroundUrl(string buttonId, string imageUrl, int state)
void StreamDeckSetBackgroundUrl(string buttonId, string imageUrl, string color)
void StreamDeckSetBackgroundUrl(string buttonId, string imageUrl, string color, int state)

Gives back: Nothing.

Example

CPH.StreamDeckSetBackgroundUrl("live-key", "https://example.com/live.png");

VTubeStudioTriggerHotkeyById

Presses a VTube Studio hotkey. Cuebot finds it by its id or by its name.

bool VTubeStudioTriggerHotkeyById(string hotkeyId)

Gives back: true when it worked, false when it failed (a warning goes to the log).

Example

bool ok = CPH.VTubeStudioTriggerHotkeyById("a1b2c3d4");
CPH.LogInfo($"Hotkey pressed: {ok}");

VTubeStudioTriggerHotkeyByName

Presses a VTube Studio hotkey by its name, like "Wave". An id works too.

bool VTubeStudioTriggerHotkeyByName(string hotkeyName)

Gives back: true when it worked, false when it failed (a warning goes to the log).

Example

bool ok = CPH.VTubeStudioTriggerHotkeyByName("Wave");
CPH.LogInfo($"Hotkey pressed: {ok}");

VTubeStudioLoadModelById

Loads a different VTube Studio model. Cuebot finds it by its id or by its name.

bool VTubeStudioLoadModelById(string modelId)

Gives back: true when it worked, false when it failed.

Example

bool ok = CPH.VTubeStudioLoadModelById("d4e5f6a7");
CPH.LogInfo($"Model loaded: {ok}");

VTubeStudioLoadModelByName

Loads a different VTube Studio model by its name, like "Cat Form". An id works too.

bool VTubeStudioLoadModelByName(string modelName)

Gives back: true when it worked, false when it failed.

Example

bool ok = CPH.VTubeStudioLoadModelByName("Cat Form");
CPH.LogInfo($"Model loaded: {ok}");

VTubeStudioActivateExpression

Turns on a VTube Studio expression. Give its file name, like "Happy.exp3.json".

bool VTubeStudioActivateExpression(string expressionFile)

Gives back: true when it worked, false when it failed.

Example

CPH.VTubeStudioActivateExpression("Happy.exp3.json");

VTubeStudioDeactivateExpression

Turns off a VTube Studio expression. Give its file name, like "Happy.exp3.json".

bool VTubeStudioDeactivateExpression(string expressionFile)

Gives back: true when it worked, false when it failed.

Example

CPH.VTubeStudioDeactivateExpression("Happy.exp3.json");

VTubeStudioGetModelPosition

Asks VTube Studio where your model is: its X and Y position, rotation and size.

VTSModelPosition? VTubeStudioGetModelPosition()

Gives back: The position (PositionX, PositionY, Rotation, Size), or null when VTube Studio did not answer.

Example

var pos = CPH.VTubeStudioGetModelPosition();
if (pos != null) CPH.LogInfo($"Model at {pos.PositionX}, {pos.PositionY}, size {pos.Size}");

VTubeStudioMoveModel

Moves your VTube Studio model over a number of seconds (0 to 2). With relative true, it moves from where it is now. Leave a value out to keep it as it is.

bool VTubeStudioMoveModel(double seconds, bool relative, double? posX = null, double? posY = null, double? rotation = null, double? size = null)

Gives back: true when it worked, false when it failed.

Example

CPH.VTubeStudioMoveModel(0.5, false, 0.0, -0.3);

VTubeStudioColorTintAll

Tints your whole VTube Studio model one colour, like "#FF8800" (add two more digits for see-through). Mix with scene lighting goes from 0 to 1.

bool VTubeStudioColorTintAll(string hexColor, double mixWithSceneLighting = 0)

Gives back: true when it worked, false when it failed or the colour was not #RRGGBB.

Example

CPH.VTubeStudioColorTintAll("#FF8800");

VTubeStudioColorTintByNames

Tints only the model parts (art meshes) whose names match exactly. Colour like "#00FF00", scene lighting mix 0 to 1.

bool VTubeStudioColorTintByNames(string hexColor, double mixWithSceneLighting, List<string> filterValues)

Gives back: true when it worked, false when it failed or the colour was not #RRGGBB.

Example

CPH.VTubeStudioColorTintByNames("#00FF00", 0, new List<string> { "HairFront", "HairBack" });

VTubeStudioColorTintByNameContains

Tints only the model parts (art meshes) whose names contain one of your words. Colour like "#00FF00", scene lighting mix 0 to 1.

bool VTubeStudioColorTintByNameContains(string hexColor, double mixWithSceneLighting, List<string> filterValues)

Gives back: true when it worked, false when it failed or the colour was not #RRGGBB.

Example

CPH.VTubeStudioColorTintByNameContains("#00FF00", 0, new List<string> { "Hair" });

VTubeStudioColorTintByTags

Tints only the model parts (art meshes) whose tags match exactly. Colour like "#0000FF", scene lighting mix 0 to 1.

bool VTubeStudioColorTintByTags(string hexColor, double mixWithSceneLighting, List<string> filterValues)

Gives back: true when it worked, false when it failed or the colour was not #RRGGBB.

Example

CPH.VTubeStudioColorTintByTags("#0000FF", 0.5, new List<string> { "clothes" });

VTubeStudioColorTintByTagContains

Tints only the model parts (art meshes) whose tags contain one of your words. Colour like "#0000FF", scene lighting mix 0 to 1.

bool VTubeStudioColorTintByTagContains(string hexColor, double mixWithSceneLighting, List<string> filterValues)

Gives back: true when it worked, false when it failed or the colour was not #RRGGBB.

Example

CPH.VTubeStudioColorTintByTagContains("#0000FF", 0.5, new List<string> { "cloth" });

VTubeStudioColorTintByNumber

Tints only the model parts (art meshes) with the numbers you list. Colour like "#FF00FF", scene lighting mix 0 to 1.

bool VTubeStudioColorTintByNumber(string hexColor, double mixWithSceneLighting, List<int> artMeshNumbers)

Gives back: true when it worked, false when it failed or the colour was not #RRGGBB.

Example

CPH.VTubeStudioColorTintByNumber("#FF00FF", 0, new List<int> { 0, 3, 7 });

VTubeStudioRandomColorTint

Tints your whole VTube Studio model one random colour. Fun for a channel point reward.

bool VTubeStudioRandomColorTint()

Gives back: true when it worked, false when it failed.

Example

CPH.VTubeStudioRandomColorTint();

VTubeStudioResetAllColorTints

Removes all colour tints, so your model looks normal again (tints it plain white).

bool VTubeStudioResetAllColorTints()

Gives back: true when it worked, false when it failed.

Example

CPH.VTubeStudioResetAllColorTints();

VTubeStudioSendRawRequest

Sends any VTube Studio request by its type name, with its data written as JSON text. For advanced users who know the VTube Studio API.

string VTubeStudioSendRawRequest(string requestType, string data)

Gives back: The answer's data as JSON text, or empty text when it failed.

Example

string answer = CPH.VTubeStudioSendRawRequest("StatisticsRequest", "");
CPH.LogInfo(answer);

VoiceModSelectVoice

Switches Voicemod to another voice. Cuebot finds it by its id or by its name.

void VoiceModSelectVoice(string voiceId)

Gives back: Nothing. A failure only writes a warning to the log.

Example

CPH.VoiceModSelectVoice("Robot");

VoiceModGetCurrentVoice

Asks Voicemod which voice is picked right now.

string VoiceModGetCurrentVoice()

Gives back: The voice's id, or empty text when Voicemod did not answer.

Example

string voice = CPH.VoiceModGetCurrentVoice();
CPH.LogInfo($"Current voice: {voice}");

VoiceModVoiceChangerOn

Turns the Voicemod voice changer on.

bool VoiceModVoiceChangerOn()

Gives back: true when the voice changer is now on, otherwise false.

Example

bool on = CPH.VoiceModVoiceChangerOn();
CPH.LogInfo($"Voice changer on: {on}");

VoiceModVoiceChangerOff

Turns the Voicemod voice changer off.

bool VoiceModVoiceChangerOff()

Gives back: true when the voice changer is now off, otherwise false.

Example

CPH.VoiceModVoiceChangerOff();

VoiceModHearMyVoiceOn

Turns on "hear my voice" in Voicemod, so you hear yourself.

bool VoiceModHearMyVoiceOn()

Gives back: true when it is now on, otherwise false.

Example

CPH.VoiceModHearMyVoiceOn();

VoiceModHearMyVoiceOff

Turns off "hear my voice" in Voicemod.

bool VoiceModHearMyVoiceOff()

Gives back: true when it is now off, otherwise false.

Example

CPH.VoiceModHearMyVoiceOff();

VoiceModBackgroundEffectOn

Turns Voicemod's background effects on.

bool VoiceModBackgroundEffectOn()

Gives back: true when they are now on, otherwise false.

Example

CPH.VoiceModBackgroundEffectOn();

VoiceModBackgroundEffectOff

Turns Voicemod's background effects off.

bool VoiceModBackgroundEffectOff()

Gives back: true when they are now off, otherwise false.

Example

CPH.VoiceModBackgroundEffectOff();

VoiceModCensorOn

Turns on Voicemod's bad-language beep.

void VoiceModCensorOn()

Gives back: Nothing. A failure only writes a warning to the log.

Example

CPH.VoiceModCensorOn();

VoiceModCensorOff

Turns off Voicemod's bad-language beep.

void VoiceModCensorOff()

Gives back: Nothing. A failure only writes a warning to the log.

Example

CPH.VoiceModCensorOff();

VoiceModGetVoiceChangerStatus

Checks whether the Voicemod voice changer is on, as Voicemod last told Cuebot.

bool VoiceModGetVoiceChangerStatus()

Gives back: true when it is on; false when it is off or not known yet.

Example

bool on = CPH.VoiceModGetVoiceChangerStatus();
CPH.LogInfo($"Voice changer on: {on}");

VoiceModGetHearMyselfStatus

Checks whether "hear myself" is on in Voicemod, as Voicemod last told Cuebot.

bool VoiceModGetHearMyselfStatus()

Gives back: true when it is on; false when it is off or not known yet.

Example

bool on = CPH.VoiceModGetHearMyselfStatus();
CPH.LogInfo($"Hear myself: {on}");

WaveLinkGetInputIdentifier

Finds the id of a Wave Link input (channel) by its name, like "Game". Other Wave Link methods need this id.

string WaveLinkGetInputIdentifier(string inputName)

Gives back: The input's id, or empty text when there is no input with that name.

Example

string id = CPH.WaveLinkGetInputIdentifier("Game");
CPH.LogInfo($"Game input: {id}");

WaveLinkGetMicrophoneIdentifier

Finds the id of a microphone in Wave Link by its name.

string WaveLinkGetMicrophoneIdentifier(string microphoneName)

Gives back: The microphone's id, or empty text when there is none with that name.

Example

string mic = CPH.WaveLinkGetMicrophoneIdentifier("Wave:3");
CPH.LogInfo($"Mic id: {mic}");

WaveLinkInputMute

Mutes a Wave Link input in one mixer: "Local" (or "Monitor") for what you hear, "Stream" for what viewers hear.

void WaveLinkInputMute(string identifier, string mixer)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string id = CPH.WaveLinkGetInputIdentifier("Music");
CPH.WaveLinkInputMute(id, "Stream");

WaveLinkInputUnmute

Unmutes a Wave Link input in one mixer: "Local" (or "Monitor") or "Stream".

void WaveLinkInputUnmute(string identifier, string mixer)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string id = CPH.WaveLinkGetInputIdentifier("Music");
CPH.WaveLinkInputUnmute(id, "Stream");

WaveLinkInputToggleMute

Flips a Wave Link input between muted and unmuted in one mixer: "Local" (or "Monitor") or "Stream".

void WaveLinkInputToggleMute(string identifier, string mixer)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string id = CPH.WaveLinkGetInputIdentifier("Music");
CPH.WaveLinkInputToggleMute(id, "Local");

WaveLinkInputSetVolume

Sets a Wave Link input's volume in one mixer, from 0 to 100.

void WaveLinkInputSetVolume(string inputIdentifier, string mixer, int volume)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string id = CPH.WaveLinkGetInputIdentifier("Music");
CPH.WaveLinkInputSetVolume(id, "Stream", 40);

WaveLinkInputGetVolume

Reads a Wave Link input's volume in one mixer (0 to 100). The input can be given by id or name.

long WaveLinkInputGetVolume(string inputIdentifier, string mixer)

Gives back: The volume as a whole number, or 0 when it is not known.

Example

long volume = CPH.WaveLinkInputGetVolume("Music", "Stream");
CPH.LogInfo($"Music volume: {volume}");

WaveLinkInputFilterEnable

Turns on one filter (effect) of a Wave Link input. Give the input id and the filter id.

void WaveLinkInputFilterEnable(string inputIdentifier, string filterIdentifier)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string input = CPH.WaveLinkGetInputIdentifier("Mic");
string filter = CPH.WaveLinkInputGetFilterIdentifier(input, "Reverb");
CPH.WaveLinkInputFilterEnable(input, filter);

WaveLinkInputFilterDisable

Turns off one filter (effect) of a Wave Link input. Give the input id and the filter id.

void WaveLinkInputFilterDisable(string inputIdentifier, string filterIdentifier)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string input = CPH.WaveLinkGetInputIdentifier("Mic");
string filter = CPH.WaveLinkInputGetFilterIdentifier(input, "Reverb");
CPH.WaveLinkInputFilterDisable(input, filter);

WaveLinkInputFilterToggle

Flips one filter (effect) of a Wave Link input on or off. Give the input id and the filter id.

void WaveLinkInputFilterToggle(string inputIdentifier, string filterIdentifier)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string input = CPH.WaveLinkGetInputIdentifier("Mic");
string filter = CPH.WaveLinkInputGetFilterIdentifier(input, "Reverb");
CPH.WaveLinkInputFilterToggle(input, filter);

WaveLinkInputGetFilterIdentifier

Finds the id of a filter (effect) on a Wave Link input by the filter's name.

string WaveLinkInputGetFilterIdentifier(string inputIdentifier, string filterName)

Gives back: The filter's id, or empty text when there is none with that name.

Example

string input = CPH.WaveLinkGetInputIdentifier("Mic");
string filter = CPH.WaveLinkInputGetFilterIdentifier(input, "Reverb");
CPH.LogInfo($"Reverb id: {filter}");

WaveLinkInputGetFilterState

Checks whether a filter (effect) on a Wave Link input is turned on. The filter can be given by id or name.

bool WaveLinkInputGetFilterState(string inputIdentifier, string filterIdentifier)

Gives back: true when the filter is on, otherwise false.

Example

string input = CPH.WaveLinkGetInputIdentifier("Mic");
bool on = CPH.WaveLinkInputGetFilterState(input, "Reverb");
CPH.LogInfo($"Reverb on: {on}");

WaveLinkInputFilterBypassBypassed

Skips every filter of a Wave Link input in one mixer ("Local" or "Stream"), so it sounds dry.

void WaveLinkInputFilterBypassBypassed(string inputIdentifier, string mixer)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string input = CPH.WaveLinkGetInputIdentifier("Mic");
CPH.WaveLinkInputFilterBypassBypassed(input, "Stream");

WaveLinkInputFilterBypassEnabled

Stops skipping the filters of a Wave Link input in one mixer ("Local" or "Stream"), so they run again.

void WaveLinkInputFilterBypassEnabled(string inputIdentifier, string mixer)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string input = CPH.WaveLinkGetInputIdentifier("Mic");
CPH.WaveLinkInputFilterBypassEnabled(input, "Stream");

WaveLinkInputFilterBypassToggle

Flips filter skipping (bypass) of a Wave Link input on or off in one mixer ("Local" or "Stream").

void WaveLinkInputFilterBypassToggle(string inputIdentifier, string mixer)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string input = CPH.WaveLinkGetInputIdentifier("Mic");
CPH.WaveLinkInputFilterBypassToggle(input, "Stream");

WaveLinkInputSetFilterBypassBypassed

Same as WaveLinkInputFilterBypassBypassed: skips every filter of the input in one mixer.

void WaveLinkInputSetFilterBypassBypassed(string inputIdentifier, string mixer)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string input = CPH.WaveLinkGetInputIdentifier("Mic");
CPH.WaveLinkInputSetFilterBypassBypassed(input, "Stream");

WaveLinkInputSetFilterBypassEnabled

Same as WaveLinkInputFilterBypassEnabled: the input's filters run again in one mixer.

void WaveLinkInputSetFilterBypassEnabled(string inputIdentifier, string mixer)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string input = CPH.WaveLinkGetInputIdentifier("Mic");
CPH.WaveLinkInputSetFilterBypassEnabled(input, "Stream");

WaveLinkInputSetFilterBypassToggle

Same as WaveLinkInputFilterBypassToggle: flips filter skipping of the input in one mixer.

void WaveLinkInputSetFilterBypassToggle(string inputIdentifier, string mixer)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string input = CPH.WaveLinkGetInputIdentifier("Mic");
CPH.WaveLinkInputSetFilterBypassToggle(input, "Stream");

WaveLinkMicrophoneMute

Mutes a microphone in Wave Link. Give the microphone's id.

void WaveLinkMicrophoneMute(string microphoneIdentifier)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string mic = CPH.WaveLinkGetMicrophoneIdentifier("Wave:3");
CPH.WaveLinkMicrophoneMute(mic);

WaveLinkMicrophoneUnmute

Unmutes a microphone in Wave Link. Give the microphone's id.

void WaveLinkMicrophoneUnmute(string microphoneIdentifier)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string mic = CPH.WaveLinkGetMicrophoneIdentifier("Wave:3");
CPH.WaveLinkMicrophoneUnmute(mic);

WaveLinkMicrophoneToggleMute

Flips a Wave Link microphone between muted and unmuted. Give the microphone's id.

void WaveLinkMicrophoneToggleMute(string microphoneIdentifier)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string mic = CPH.WaveLinkGetMicrophoneIdentifier("Wave:3");
CPH.WaveLinkMicrophoneToggleMute(mic);

WaveLinkMicrophoneSetVolume

Sets a microphone's gain (how loud it picks you up). Wave Link 3 uses percent (0 to 100); older Wave Link uses the microphone's own scale.

void WaveLinkMicrophoneSetVolume(string microphoneIdentifier, double volume)

Gives back: Nothing. A failure only writes a warning to the log.

Example

string mic = CPH.WaveLinkGetMicrophoneIdentifier("Wave:3");
CPH.WaveLinkMicrophoneSetVolume(mic, 60.0);

WaveLinkMicrophoneGetVolume

Reads a microphone's gain (how loud it picks you up) from Wave Link.

double WaveLinkMicrophoneGetVolume(string microphoneIdentifier)

Gives back: The gain as a number, or 0 when it is not known.

Example

string mic = CPH.WaveLinkGetMicrophoneIdentifier("Wave:3");
double gain = CPH.WaveLinkMicrophoneGetVolume(mic);
CPH.LogInfo($"Mic gain: {gain}");

WaveLinkOutputMute

Mutes a whole Wave Link mixer: "Local" (or "Monitor") for what you hear, "Stream" for what viewers hear.

void WaveLinkOutputMute(string mixer)

Gives back: Nothing. A failure only writes a warning to the log.

Example

CPH.WaveLinkOutputMute("Stream");

WaveLinkOutputUnmute

Unmutes a whole Wave Link mixer: "Local" (or "Monitor") or "Stream".

void WaveLinkOutputUnmute(string mixer)

Gives back: Nothing. A failure only writes a warning to the log.

Example

CPH.WaveLinkOutputUnmute("Stream");

WaveLinkOutputToggleMute

Flips a whole Wave Link mixer between muted and unmuted: "Local" (or "Monitor") or "Stream".

void WaveLinkOutputToggleMute(string mixer)

Gives back: Nothing. A failure only writes a warning to the log.

Example

CPH.WaveLinkOutputToggleMute("Local");

WaveLinkSetOutputVolume

Sets the volume of a whole Wave Link mixer ("Local" or "Stream"), from 0 to 100.

void WaveLinkSetOutputVolume(string mixer, int volume)

Gives back: Nothing. A failure only writes a warning to the log.

Example

CPH.WaveLinkSetOutputVolume("Local", 80);

LumiaSendCommand

Runs a Lumia Stream chat command, like "rainbow", to change your lights. Empty text does nothing.

void LumiaSendCommand(string command)

Gives back: Nothing.

Example

CPH.LumiaSendCommand("rainbow");

LumiaSetToDefault

Puts your Lumia Stream lights back to their normal (default) look.

void LumiaSetToDefault()

Gives back: Nothing.

Example

CPH.LumiaSetToDefault();

MidiSendNoteOn

Plays a MIDI note on one of Cuebot's MIDI Out connections, found by its id. Channel 1 to 16, note and velocity 0 to 127. Add a time in milliseconds and true to stop the note after that time.

void MidiSendNoteOn(Guid deviceId, int channel, int note, int velocity, int duration = 0, bool sendNoteOff = false)

Gives back: Nothing.

Example

CPH.MidiSendNoteOn(Guid.Parse("3f2b8c1e-5d4a-4e7b-9c1d-2a6f8e0b4c3d"), 1, 60, 100, 500, true);

MidiSendNoteOnByName

Plays a MIDI note on a MIDI Out connection, found by its name. Channel 1 to 16, note and velocity 0 to 127. Add a time in milliseconds and true to stop the note after that time.

void MidiSendNoteOnByName(string name, int channel, int note, int velocity, int duration = 0, bool sendNoteOff = false)

Gives back: Nothing.

Example

CPH.MidiSendNoteOnByName("Lights Controller", 1, 60, 100, 500, true);

MidiSendControlChange

Sends a MIDI control change (like moving a knob) on a MIDI Out connection, found by its id. Channel 1 to 16, controller and value 0 to 127.

void MidiSendControlChange(Guid deviceId, int channel, int controller, int value)

Gives back: Nothing.

Example

CPH.MidiSendControlChange(Guid.Parse("3f2b8c1e-5d4a-4e7b-9c1d-2a6f8e0b4c3d"), 1, 7, 100);

MidiSendControlChangeByName

Sends a MIDI control change (like moving a knob) on a MIDI Out connection, found by its name. Channel 1 to 16, controller and value 0 to 127.

void MidiSendControlChangeByName(string name, int channel, int controller, int value)

Gives back: Nothing.

Example

CPH.MidiSendControlChangeByName("Lights Controller", 1, 7, 100);

MidiSendRaw

Sends one raw MIDI message on a MIDI Out connection, found by its id. The command is the message kind, like 0x90 for Note On. For advanced users.

void MidiSendRaw(Guid deviceId, int command, int channel, int data1, int data2)

Gives back: Nothing.

Example

CPH.MidiSendRaw(Guid.Parse("3f2b8c1e-5d4a-4e7b-9c1d-2a6f8e0b4c3d"), 0x90, 1, 60, 100);

MidiSendRawByName

Sends one raw MIDI message on a MIDI Out connection, found by its name. The command is the message kind, like 0x90 for Note On or 0xB0 for a control change.

void MidiSendRawByName(string name, int command, int channel, int data1, int data2)

Gives back: Nothing.

Example

CPH.MidiSendRawByName("Lights Controller", 0xB0, 1, 7, 100);

ThrowingSystemThrowItemByName

Throws an item at your model in T.I.T.S., by the item's name. You can set how many times and the seconds between throws.

bool ThrowingSystemThrowItemByName(string itemName, double delay = 0.05, int amount = 1)

Gives back: true when T.I.T.S. threw it, otherwise false.

Example

bool thrown = CPH.ThrowingSystemThrowItemByName("Tomato", 0.1, 5);
CPH.LogInfo($"Thrown: {thrown}");

ThrowingSystemActivateTriggerByName

Starts a trigger you set up in T.I.T.S., by its name.

bool ThrowingSystemActivateTriggerByName(string triggerName)

Gives back: true when T.I.T.S. accepted it, false when it failed or the name was empty.

Example

bool ok = CPH.ThrowingSystemActivateTriggerByName("Rain of Hearts");
CPH.LogInfo($"Trigger started: {ok}");