Skip to content

Latest commit

 

History

History
62 lines (41 loc) · 1.72 KB

README.md

File metadata and controls

62 lines (41 loc) · 1.72 KB

Phoenix.OSC Build Status

broadcasts OSC messages to Phoenix Channels from UDP streams

Short Story Long

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.

Usage

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.

Broadcast Topics and Events

Configure your device to emit OSC messages with an address of the form /topic:subtopic/event.

Some Example

Elm graphic signals controlled with TouchOSC:

demo.png spiro.png

TODOS

  • device feedback