a common lisp implementation of the Open Sound Control protocol aka OSC
Go to file
nik gaffney 5b98b79ee7 aproscapula
extended timetag support, including a first attempt at using (get-universal-time)
for timestamping. still not ntp compatible.

darcs-hash:20060210233840-2648a-b16d4ceb60e9ed6d0a18b8b4ed051ebaf7336752.gz
2006-02-11 07:38:40 +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 aproscapula 2006-02-11 07:38:40 +08:00
osc-examples.lisp aproscapula 2006-02-11 07:38:40 +08:00
osc.asd aproscapula 2006-02-11 07:38:40 +08:00
osc.lisp aproscapula 2006-02-11 07:38:40 +08:00
README.txt aproscapula 2006-02-11 07:38:40 +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 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
  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