stagedings is a modern API to navigate scenes and subscenes that has been configured in a mididings script
🤔 Why stagedings?
- It offers a modern, web-based interface with enhanced flexibility and real-time control capabilities
- It is an alternative of the legacy
livedings UI, which was based on Tkinter 🪓- ⚙️ Adds a HTTP layer that facilitates control and navigation allowing the abstraction of OSC subcalls
- 🔥 That layer offers an Open API specification, so it is possible to generate a client SDK in multiple language with an Open Api Code generator like Kiota making possible to control mididings in .NET, Go, Java, PHP, Python, Ruby and TypeScript using the openapi.json file available from the Swagger or ReDoc UI.
- A mididings scene patch dictionary defined in the
runsection of a mididings script is required to work correctly
- 🗒️ See the mididings documentation on the
runsection here for how to structure your patch
- Web UI with real-time scene/subscene updates
- FastAPI backend with full REST and WebSocket support
- Multiple clients supported
- Use the mididings OSC interface
- It exposes a fully compliant OpenAPI spec for easy generation of SDK clients in any language, enabling flexible remote control of mididings
- Direct navigation through scenes and subscenes
- Exposes the Restart, Panic, Query and Quit commands
- Endpoints for direct navigation through scenes and subscenes
- Endpoints to the Restart, Panic, Query and Quit commands
- Clone this repository
- In the stagedings/src directory
- Create a .env file
- Add the key STAGEDINGS_WS_HOST with the server name and the port of your choice:
- STAGEDINGS_WS_HOST=localhost:5000
- Add the key STAGEDINGS_WS_HOST with the server name and the port of your choice:
- Create a .env file
- mididings community >= 20250818 with OSC support
- See the mididings README for build instructions
- pip install fastapi
- pip install jinja2
- pip install uvicorn[standard]
-
In the stagedings/src directory
- uvicorn main:app --port 5000 --host 0.0.0.0
-
Then navigate to http://localhost:5000
- / for the menu
- /ui for the frontend
- /docs or /redoc for API documentation
We welcome bug reports, feature ideas, and contributions! Please open an issue or discussion
All files in this repository are released under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 or later of the License.