Stream Deck Plugin for controlling Notch playback & values using OSC.
This plugin enables you to control playback of Notch Standalone and send OSC values (both numbers and text) into Standalone & Builder.
Side note: The plugin can be used to send to any OSC device, it's just pre-configured with all the OSC addresses for Notch.
The plugin is written with:
- Javascript, CSS & HTML for the app GUI
- C++ for functions of the plugin.
This is an unofficial opensource plugin and support is not provided by the Notch team.
Pre-compiled releases for Windows are at https://github.com/lukemalcolm/streamdeck-notch/releases
To use:
- Download the release file.
- Browse to it in File Explorer
- Double click on it to install
Buttons:
- Momentary Button (float)
- Toggle Button (float)
- Text String Button
- Restart Timeline*
- Go to time (secs)*
- Switch layer*
- Play*
- Pause*
** IMPORTANT: Transport commands (Play, Pause, Switch Layer, Go To Time, Reset Timeline) only work in Standalone not Builder.*
The plugin allows has global settings for target IP and Port.
To use the plugin within your Notch project, enable OSC and OSC Transport Control:
- Menu->Project Settings
- Go to Protocols tab
- Tick: OSC Enabled
- Tick: Transport
IMPORTANT: The playhead MUST be playing for OSC to be received in Builder.
To monitor incoming OSC into Notch:
- Menu->View->Connection Monitor
- Pane will appear that shows inbound OSC traffic
At present the project is Windows only and tested for compilation on Visual Studio 2019. The project file and solution are in the Windows folder.
The VS project has two targets: Release & Debug that both build to: Sources\com.elgato.notch.sdPlugin\notchStreamDeck.exe
To use the plugin while developing you must copy all files (including the .exe icons & manifest.json) within Sources\com.elgato.notch.sdPlugin
to C:\Program Files\Elgato\StreamDeck\Plugins\com.elgato.notch.sdPlugin
. There are two scripts DeployDebug.cmd and DeployRelease.cmd that make this quick and easy.
NB: Stream Deck must be fully closed to be able to overwrite files in the StreamDeck\Plugins
directory.
Key files in Sources directory:
com.elgato.notch.sdPlugin\Sources\Windows\com.elgato.notch.sdPlugin.sln/xcproj
- Visual Studio Solution & Project Filescom.elgato.notch.sdPlugin\manifest.json
- Configuration file StreamDeck app. Sets the actions / icons etc.com.elgato.notch.sdPlugin\pi.html
- The Property Inspector HTML file that renders the GUI in Stream Deck app.com.elgato.notch.sdPlugin\pi.js
- The Property Inspector JS logic, which receives and sends messages to the Stream Deck app via WebSockets and acts on the HTML.Windows\NotchStreamDeckPlugin.h/cpp
- C++ plugin app. Inherits class from ESDBasePlugin. Receives and Sends actions to the Stream Deck app over WebSockets.Windows\NotchOSCActions.h/cpp
- Looks after the actual sending of OSC messages.Common
- Contains the boilerplate for Stream Deck plugins.
Elgato SDK Debugging Documentation
To debug the Property Inspector UI via Chrome, point a browser to: http://localhost:23654/
while Stream Deck app is running and showing a Notch plugin button configuration dialog. See more at:
To debug the C++ code:
- Add Registry Setting:
- Location:
HKEY_CURRENT_USER\Software\Elgato Systems GmbH\StreamDeck
- Key name:
html_remote_debugging_enabled
- Type:
DWORD
- Value:
1
- Location:
- Build a Debug target of notchStreamDeck.exe and copy it into the plugin directory:
C:\Program Files\Elgato\StreamDeck\Plugins\com.elgato.notch.sdPlugin
- Start Stream Deck app
- Attach the Visual Studio debugger to the notchStramDeck.exe process.
When developing, you'll be putting files directly into your plugin folder. However if you wish to package your release into a plugin package for distribution, you'll need to use the Distribution Tool.
Command (run from Sources directory): DistributionTool.exe -b -i com.elgato.notch.sdPlugin -o ..\Release
This project uses the following opensource libraries:
- ASIO from Boost
- JSON for Modern C++
- !oscpp library by Stefan Kersten [email protected]
- Websocket++