a common lisp implementation of the Open Sound Control protocol aka OSC
Go to file
nik gaffney 73f33aac45 semifloscular
openmcl version of decode-float32 uses decode-uint32 for correct negative float values.

darcs-hash:20051205190701-2648a-06b565475c79901f26175fd84374bdb0314381b6.gz
2005-12-06 03:07:01 +08:00
LGPL.txt seed 2005-01-26 21:52:24 +08:00
LICENCE.txt recognosce 2005-11-29 19:11:26 +08:00
osc-dispatch.lisp podoscaph 2005-03-14 22:05:05 +08:00
osc-examples.lisp atroscine 2005-08-11 17:02:31 +08:00
osc.asd semifloscular 2005-12-06 03:07:01 +08:00
osc.lisp semifloscular 2005-12-06 03:07:01 +08:00
README.txt semifloscular 2005-12-06 03:07:01 +08:00


Open Sound Control

This is a common-lisp implementation of the Open Sound Control
Protocol, aka OSC. The code should be close to ansi standard, and does
not rely on any external code/ffi/etc+ to do the basic encoding and
decoding of packets. since OSC does not specify a transport layer,
messages can be send using TCP or UDP (or carrier pigeons), however it
seems UDP is more common amongst the programmes that communicate using
the OSC protocol. the osc-examples.lisp file contains a few simple
examples of how to send and recieve OSC via UDP, and so far seems
reasonably compatible with the packets send from/to max-msp, pd,
supercollider and liblo. . .

more details about OSC can be found at . .,
    http://www.cnmat.berkeley.edu/OpenSoundControl/

the current version of this code is avilable using darcs
    darcs get http://fo.am/darcs/osc 

or via asdf-install.. .
         (asdf-install:install :osc)

limitations
  - doesnt send nested bundles or timetags later than 'now' 
  - will raise an exception if the input is malformed
  - doesnt do any pattern matching on addresses
  - sbcl/cmucl/openmcl specific float en/decoding 
  - only supports the type(tag)s specified in the OSC spec

things to do in :osc
  - address patterns
  - data checking and error handling
  - portable en/decoding of floats -=> ieee754 tests
  - doubles and other defacto typetags
  - correct en/decoding of timetags

things to do in :osc-ex[tensions|tras]
  - liblo like network wrapping 
  - add namespace exploration using cl-zeroconf


changes
  2005-12-05
     - version 0.3
     - fixed openmcl float bug (decode-uint32)
  2005-11-29 
     - version 0.2
     - openmcl float en/decoding
  2005-08-12
     - corrections from Matthew Kennedy <mkennedy@gentoo.org>
  2005-08-11
     - version 0.1
  2005-03-16
     - packaged as an asdf installable lump
  2005-03-11
     - bundle and blob en/de- coding
  2005-03-05
     - 'declare' scattering and other optimisations
  2005-02-08  
     - in-package'd
     - basic dispatcher
  2005-03-01
     - fixed address string bug
  2005-01-26 
     - fixed string handling bug
  2005-01-24 
     - sends and receives multiple arguments
     - tests in osc-tests.lisp
  2004-12-18 
     - initial version, single args only