broadcasts OSC messages to Phoenix Channels from UDP streams
After reading Mr. Armstrong's post A Badass Way to Connect Programs Together, I thought it would be nice to use Open Sound Control sensors and devices to control a Phoenix application.
May I quote?
OSC should be renamed OAC – Open Anything Control
Not surprisingly, I found a myriad Elixir OSC parsers and decoders around. I've picked up @jwarwick's ex_osc because it works well with TouchOSC.
Take your Phoenix application,
add phoenix_osc
to your list of dependencies in mix.exs
:
def deps do
[
{:phoenix, ...
{:phoenix_osc, "~> 0.1.0", github: "zampino/phoenix_osc"},
...
]
end
Add Phoenix.OSC
module as handler into your Phoenix endpoint configuration (e.g config/config.exs
),
and optionally specify an UDP port to be listened to:
config :my_app, MyApp.Endpoint,
handler: Phoenix.OSC,
osc_udp_port: 8001, # defaults to 8000
pubsub: [name: Livex.PubSub,
adapter: Phoenix.PubSub.PG2],
...
and that's it.
Configure your device to emit OSC messages with an address of the form /topic:subtopic/event
.
Elm graphic signals controlled with TouchOSC:
- device feedback