a common lisp implementation of the Open Sound Control protocol aka OSC
Find a file
nik gaffney ec7bbbe3ec isosceles
encode-int32 and decode-int32 should work for allegro, using a patch from Vincent Akkermans.

darcs-hash:20070226152053-2648a-ebccfc38619ab82bb8572b66e69d95dd12d658a3.gz
2007-02-26 23:20:53 +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 toscanite 2006-04-05 18:33:33 +08:00
osc-examples.lisp aproscapula 2006-02-11 07:38:40 +08:00
osc.asd isosceles 2007-02-26 23:20:53 +08:00
osc.lisp isosceles 2007-02-26 23:20:53 +08:00
README.txt isosceles 2007-02-26 23:20:53 +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 the 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 syncronisable timetags
  - 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 using pcre
  - 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
  2007-02-20
     - version 0.5
     - Allegro CL float en/decoding from vincent akkermans <vincent.akkermans@gmail.com> 
  2006-02-11
     - version 0.4
     - partial timetag implemetation 
  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