Archive for April, 2011

Open Sound Control Version 1.7

I’ve posted another update to the Bespoke Open Sound Control Library. This release addresses an issue with the underlying TcpServer spinning in its listener thread. Thank you to the DMXControl developers for posting this issue to the Forums and pointing out an excellent way to address it.

This release also changes the default expected byte order (endianness) from Big to Little endian. Not sure why I originally defaulted to Big endian, since this library’s primary platform is Windows (Little endian) – thus, there were unnecessary byte swaps happening for integral data types.

If you’re using the library as both a transmitter and a receiver, this has no noticeable consequence. However, if, for example, you’re transmitting OSC packets from a Big endian device, and receiving them through the Bespoke OSC Library on a Little endian PC, you’ll need to change the library’s “expected” byte order. To do this, simply change the OscPacket.LittleEndianByteOrder static property to “false”.

Additionally, I fixed an issue with asynchronous, inline data handling within the TcpServer. Thus, I’ve toggled the default data handling behavior for TCP messages from synchronous to asynchronous handling. Under synchronous data handling, each client worker thread would block when waiting for data. If the client stopped before the server, this isn’t a problem – the thread would catch the disconnect and gracefully end. However, if you stopped a running OscServer that had active TCP clients connected, the Stop() call would hang until all of the clients disconnected – not a happy solution. With asynchronous data handling, the server correctly terminates all active client connections.

Finally, I’ve added explicit project configurations for x64 platforms and have included pre-compiled x64 binaries (along with x86 binaries).