a common lisp implementation of the Open Sound Control protocol aka OSC
Find a file
j.forth 3ef5a50d7a integrate new timetag implementation
Ignore-this: 52c88aaef2bbd2921a90d4f423c89c7e

Also update .asd and add a new package definition file.

darcs-hash:20100925133104-16a00-69352e864aefbb59e43ce4e62a32f8ebd5d1810e
2012-07-03 21:54:22 +01: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-time.lisp integrate new timetag implementation 2012-07-03 21:54:22 +01:00
osc.asd integrate new timetag implementation 2012-07-03 21:54:22 +01:00
osc.lisp integrate new timetag implementation 2012-07-03 21:54:22 +01:00
package.lisp integrate new timetag implementation 2012-07-03 21:54:22 +01:00
README.md deutoscolex 2011-04-19 12:04:51 +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 from github

git clone https://github.com/zzkt/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
  • doesn't do any pattern matching on addresses
  • float en/decoding only tested on sbcl, cmucl, openmcl and allegro
  • 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

  • 2011-04-19
    • converted repo from darcs->git
  • 2007-02-20
  • 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
  • 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