oscpad

Crates.iooscpad
lib.rsoscpad
version0.2.3
sourcesrc
created_at2016-01-20 06:35:23.751889
updated_at2019-10-12 03:46:13.952698
descriptionOSC 'control panel' server with shared-state web controls
homepagehttps://github.com/bburdette/oscpad
repositoryhttps://github.com/bburdette/oscpad.git
max_upload_size
id3933
size132,344
Ben Burdette (bburdette)

documentation

https://github.com/bburdette/oscpad/wiki/Get-started-with-oscpad

README

oscpad

Configurable web controls with shared state, which send OSC messages. Overview/tutorial here

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
Commit count: 285

cargo fmt