Pipo

Wireless MIDI & OSC sensing for creative applications

Jul 08, 2025

Project update 4 of 8

All About Open Sound Control (OSC)

by Rupert R

Hi Pipo fans, thank you for being here! We are still taking orders for our campaign if you haven’t reserved yours yet!

Today I want tell you more about OSC, why it is a great option for wireless communication, and show you some latency measurement results.

Open Sound Control

OSC has gained more and more traction in the music and audiovisual field over the last years as a convenient method to make devices communicate over the network. Indeed, it offers a great balance between flexibility and performance. Nowadays, most music or audiovisual software can easily receive OSC, making it a great choice for devices like Pipo.
If you are not familiar with OSC, at its core, it is simply a data format that is sent over the network as UDP packets. In short, an OSC message consists in an address pattern, a type and a value, making them easy to use. Sending them as UDP packets allows to speed up the transmission. Indeed, UDP is a connectionless protocol (it does not wait for the receiver to respond to start sending the data), making it much quicker that TCP. UDP is commonly used for real time applications like gaming, streaming, etc. This UDP solution allows for low latency and fast transfers but with the tradeoff of the potential packet loss in case the network is not reliable. Because OSC is mainly meant to be used on local networks, the chances for losing packets are very low, making it ideal for such applications.
Another great value with OSC for wireless applications is that the receiver does not have to trigger the connection nor identifies the sender. Which means one Pipo can be swapped for another one at anytime, no need to pair again or manually connect like with Bluetooth.
However, OSC cannot fit all uses cases. For example, it cannot send musical notes, and requires some network considerations to work great. That’s why Pipo also has MIDI functionalities, which are quick and intuitive to use when one wants to deal with musical applications.

Measuring latency

You might already know how critical is latency when dealing with audiovisual and interaction systems. Lower latency means higher reactivity and smoother experience overall.
To show you what you can expect from Pipo in realistic usage conditions, I measured the total latency of a Pipo Motion in WiFi OSC and USB modes.

Here I measured the total duration between the moment a sensor value is acquired and when its corresponding OSC message is received and usable on a PC.
Since one of the event happens in Pipo, and the other one will be received wirelessly on the PC, I had to come up with a centralized solution to measure this latency. After some testing I opted to perform the measurement on my oscilloscope as illustrated by the diagram below.

The setup works as it follows: Pipo triggers a pulse on a pin once a valid sensor measurements is captured (and a pulse on another pin when the message is sent). The reception feedback trigger is obtained through a serial message from the PC. I made a small program on the PC side to trigger a serial event whenever an OSC message is received, allowing to display Pipo pulses and PC trigger on the same oscilloscope plot. This allowed me to measure the time difference between the signals very easily.
One last things to consider in this setup is the USB-to-serial adapter latency which would not be present in a normal usage, so it had to be quantified: I measured the USB to serial round trip to be 2.8 ms in average (+/- 1 ms), so let’s assume 1.4 ms in each direction to simplify things.

The plot shows one of the OSC latency measurements I performed. In average I measured 6ms, shown on the plot measurements.
On these measurements we should subtract the 1.4 ms from the USB to serial. Which means in average this setup was running with 5 ms latency from sensor to usable data on the PC! This shows OSC is doing very well, even when going over Wifi.
I did similar measurements with Midi over USB (native), and obtained 3 ms latency. Overall I was impressed by the very small latency difference between a cable solution and sending through Wifi OSC.
There will be more optimizations to come on the firmware to further lower the Pipo processing by 1 or 2ms, and these early results are looking very good to me!

Hope you found this update interesting! If you like the project, consider supporting Pipo and reserve it at its campaign price!
Spreading the word about it is also great support!


Sign up to receive future updates for Pipo.

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects