annotate external/oscpack/README @ 592:76c6b3fd0a05

First commit. Refer to the api [1] 'Philosophy of the implementation' for information on the approach used to implement CARFAC in C++. [1] aimc/C++/api/html/index.html
author flatmax
date Sat, 09 Feb 2013 23:53:48 +0000
parents 0284d2152e17
children
rev   line source
tomwalters@509 1 oscpack -- Open Sound Control packet manipulation library
tomwalters@509 2 http://www.audiomulch.com/~rossb/code/oscpack
tomwalters@509 3
tomwalters@509 4 Copyright (c) 2004-2005 Ross Bencina <rossb@audiomulch.com>
tomwalters@509 5
tomwalters@509 6 A simple C++ library for packing and unpacking OSC packets.
tomwalters@509 7
tomwalters@509 8
tomwalters@509 9 Oscpack is simply a set of C++ classes for packing and unpacking OSC packets.
tomwalters@509 10 Oscpack includes a minimal set of UDP networking classes for windows and posix
tomwalters@509 11 which are sufficient for writing many OSC applications and servers, but you are
tomwalters@509 12 encouraged to use another networking framework if it better suits your needs.
tomwalters@509 13 Oscpack is not an OSC application framework, it doesn't include infrastructure for
tomwalters@509 14 constructing or routing OSC namespaces, just classes for easily constructing,
tomwalters@509 15 sending, receiving and parsing OSC packets. The library should also be easy to use
tomwalters@509 16 for other transport methods (eg serial).
tomwalters@509 17
tomwalters@509 18 The key goals of the oscpack library are:
tomwalters@509 19
tomwalters@509 20 - to be a simple and complete implementation of OSC
tomwalters@509 21 - to be portable to a wide variety of platforms
tomwalters@509 22 - to allow easy development of robust OSC applications
tomwalters@509 23 (for example it should be impossible to crash a server
tomwalters@509 24 by sending it malformed packets, and difficult to
tomwalters@509 25 create malformed packets.)
tomwalters@509 26
tomwalters@509 27 Here's a summary of the key files:
tomwalters@509 28
tomwalters@509 29 osc/OscReceivedElements -- classes for parsing a packet
tomwalters@509 30 osc/OscPrintRecievedElements -- iostream << operators for printing packet elements
tomwalters@509 31 osc/OscOutboundPacket -- a class for packing messages into a packet
tomwalters@509 32 osc/OscPacketListener -- base class for listening to OSC packets on a UdpSocket
tomwalters@509 33 tests/OscUnitTests -- unit test program for the OSC modules
tomwalters@509 34 tests/OscSendTests -- examples of how to send messages
tomwalters@509 35 tests/OscReceiveTest -- example of how to receive the messages sent by OSCSendTests
tomwalters@509 36 examples/OscDump -- a program that prints received OSC packets
tomwalters@509 37
tomwalters@509 38
tomwalters@509 39
tomwalters@509 40 Building
tomwalters@509 41 --------
tomwalters@509 42
tomwalters@509 43 In general the idea is that you will embed this source code in your projects as you
tomwalters@509 44 see fit. The Makefile has an install rule for building a shared library and
tomwalters@509 45 installing headers in usr/local.
tomwalters@509 46
tomwalters@509 47 The Makefile works for Linux and MaxOS X except that if you are on a big endian
tomwalters@509 48 machine such as PowerPC Macintosh you need to edit the line which sets the
tomwalters@509 49 endianness to OSC_HOST_BIG_ENDIAN (see the makefile comment for details) or it won't
tomwalters@509 50 work. If you want to build and install liboscpack as a library on OS X you also need
tomwalters@509 51 to edit the $(LIBFILENAME) rule by commenting out the Linux case and uncommenting
tomwalters@509 52 the OS X case since OS X uses different gcc flags for shared libraries.
tomwalters@509 53
tomwalters@509 54 On Windows there is a batch file for doing a simple test build with MinGW gcc called
tomwalters@509 55 make.MinGW32.bat. This will build the test executables and oscdump in ./bin and run
tomwalters@509 56 the unit tests.
tomwalters@509 57
tomwalters@509 58 --
tomwalters@509 59
tomwalters@509 60
tomwalters@509 61 If you fix anything or write a set of TCP send/recieve classes
tomwalters@509 62 please consider sending me a patch. Thanks :)
tomwalters@509 63
tomwalters@509 64 For more information about Open Sound Control, see:
tomwalters@509 65 http://www.cnmat.berkeley.edu/OpenSoundControl/
tomwalters@509 66
tomwalters@509 67
tomwalters@509 68 Thanks to Till Bovermann for helping with POSIX networking code and
tomwalters@509 69 Mac compatibility, and to Martin Kaltenbrunner and the rest of the
tomwalters@509 70 reacTable team for giving me a reason to finish this library. Thanks
tomwalters@509 71 to Merlijn Blaauw for reviewing the interfaces. Thanks to Xavier Oliver
tomwalters@509 72 for additional help with Linux builds and POSIX implementation details.
tomwalters@509 73
tomwalters@509 74 Portions developed at the Music Technology Group, Audiovisual Institute,
tomwalters@509 75 University Pompeu Fabra, Barcelona, during my stay as a visiting
tomwalters@509 76 researcher, November 2004 - September 2005.
tomwalters@509 77
tomwalters@509 78 See the file LICENSE for information about distributing and using this code.
tomwalters@509 79
tomwalters@509 80