Skip to content
liblo is an implementation of the Open Sound Control protocol for POSIX systems
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
build Remove premake4 files in preference for CMake-based instructions for … Feb 11, 2019
cmake CMake: link static lib to m or thread libs if necessary. Feb 11, 2019
doc Add C++ wrapper and all examples to doxygen, and turn on source brows… Apr 2, 2016
examples Replace HAVE_UNISTD_H with WIN32 in examples. May 23, 2017
src Thread function returns 0. Feb 11, 2019
INSTALL Initial revision Aug 7, 2004
NEWS Fix README regarding use of CMake on Windows. Mar 3, 2019
TODO Add an option '--no-configure' to Aug 19, 2013 Update version to 0.30 and update LO_SO_VERSION accordingly. Mar 3, 2019


liblo is a lightweight library that provides an easy to use implementation of the OSC protocol. For more information about the OSC protocol, please see:

The official liblo homepage is here:

liblo is portable to most UNIX systems (including OS X) and Windows. It is released under the GNU Lesser General Public Licence (LGPL) v2.1 or later. See COPYING for details.


To build and install liblo, read INSTALL in the main liblo directory. liblo is configured as a dynamically-linked library. To use liblo in a new application, after


you should install liblo with

make install

so that the liblo library can be located by your application.

To build with MS Visual Studio on Windows, please use CMake as described next. See build/ for more details.

Building with CMake

If you prefer the CMake build system, support has been added. Instead of the configure step listed in the previous section, create a build directory and initialize CMake:

mkdir ~/build/liblo
cmake ~/source/liblo/cmake <more options..>


See examples for example source code for a simple client and two servers:

  • example_server.c uses lo_server_thread_start() to create a liblo server in an separate thread.

  • nonblocking_server_example.c uses select() to wait for either console input or OSC messages, all in a single thread.

  • example_client.c uses liblo to send OSC messages to a server.

These examples will work without installing liblo. This is accomplished by a shell script. For example, examples/client_example is a shell script that runs the "real" program examples/.libs/example_client. Because of this indirection, you cannot run example_client with a debugger.


To debug applications using liblo, one option is to include all the liblo source code in the application rather than linking with the liblo library. For more information about this, please see the (libtool manual)1

To compile liblo with debugging flags, use,

./configure --enable-debug


liblo was written to support both IPv4 and IPv6, however it has caused various problems along the way because most of the currently available OSC applications like Pd and SuperCollider don't listen on IPv6 sockets. IPv6 is currently disabled by default, but you can enable it using

./configure --enable-ipv6
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.