Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bburdette/oscpad
multi user OSC control panel server
https://github.com/bburdette/oscpad
elm osc-messages rust
Last synced: about 2 months ago
JSON representation
multi user OSC control panel server
- Host: GitHub
- URL: https://github.com/bburdette/oscpad
- Owner: bburdette
- License: mit
- Created: 2015-11-09T19:45:24.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-06-21T22:13:12.000Z (over 1 year ago)
- Last Synced: 2024-10-13T20:25:54.832Z (2 months ago)
- Topics: elm, osc-messages, rust
- Language: Rust
- Homepage:
- Size: 922 KB
- Stars: 22
- Watchers: 4
- Forks: 1
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# oscpad
Configurable web controls with shared state, which send OSC messages. [Overview/tutorial here](https://github.com/bburdette/oscpad/wiki/Get-started-with-oscpad)This is my 'getting to know you' project for elm and rust.
The idea is to have a simple way to configure a set of touch enabled buttons, sliders, and labels, which are presented on a web page. When the user manipulates the controls, websocket messages are sent to the server, which in turn sends out OSC messages to one or more target IP addresses. Incoming OSC messages can also change the control state, which is reflected in the clients. OSC is an easy protocol to support, good for 'internet of things' activities, such as robots, lamps, electronic instruments, etc.
Right now the controls are working for the most part. There is a label, button, slider, and sizer. There's an example project, echotest, which changes numbers in labels based on slider movement. There's also guisend, which reads a json control configuration file and sends it to oscpad, replacing whatever controls were there before.
Ultimately I'll make oscpad into a rust library as well as an application, for single-executable projects.
### Some notes on elm compiling.
The elm build requires ambr, part of the amber cargo package. Install that with cargo install amber.
From the project directory, use ./build-elm.sh to build the elm and merge the js into stringDefaults.rs. Then do cargo build to get the rust server. Run the rust server with ./runit.sh. So to sum up:
0) cargo install amber
1) ./build-elm.sh
2) cargo build
3) ./runit.sh