= rosc - OpenSound Control for Ruby
== Synopsis

    require 'osc'

    Host = 'localhost'
    Port = 5000

    s = OSC::UDPServer.new
    s.bind Host, Port

    c = OSC::UDPSocket.new
    m = OSC::Message.new('/foo', 'fi', Math::PI, 42)
    c.send m, 0, Host, Port

    s.add_method '/f*', 'fi' do |msg|
      domain, port, host, ip = msg.source
      puts "#{msg.address} -> #{msg.args.inspect} from #{host}:#{port}"
    end
    Thread.new do
      s.serve
    end
    sleep 5

    #=> /foo -> [3.14159274101257, 42] from localhost:50843

== Requirements
- Ruby

== Details
See the OSC home page[1], especially the "State of the Art" paper (for an
overview) and the specification. This library makes OSC easy, but you will
still need to understand OSC concepts and limitations.

The important classes are Message, Bundle, UDPSocket, and UDPServer. If you
want to make your own server on a different transport (e.g. TCP or UNIX
sockets, which are still on the TODO list), you will want to use the Server
mixin.

See the TODO list.

1. http://www.cnmat.berkeley.edu/OpenSoundControl

== Examples
Send me your interesting examples and I'll include them.

== License
Copyright (C) 2007 Hans Fugal

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
