Close

Open Sound Control (OSC)

A project log for Pedalinoâ„¢

Smart wireless MIDI foot controller for guitarists and more.

alf45taralf45tar 06/01/2018 at 09:010 Comments

Open Sound Control (OSC) is an open, transport-independent, message-based protocol developed for communication among computers, sound synthesizers, and other multimedia devices. Although the OSC specification does not enforce any particular type of transport, OSC is nowadays mostly used over traditional networks known as IP (Internet Protocol).

The OSC protocol uses the IP network to carry messages from a source to a destination. Sources of OSC messages are usually called OSC Clients, and destinations OSC Servers.

Pedalino is both able to receive (as a server), and send to several destinations (as multiple clients).

UDP and TCP are network protocols used for communicating OSC messages between two devices. UDP is the most widely used at the moment.

Pedalino supports UDP protocol only for transmitting and receiving OSC messages because TCP has more latency than UDP.

Pedalino will listen for OSC messages on UDP port 8000 and broadcast OSC messages on UDP port 9000 on the same WiFi LAN segment it is connected.

OSC namespace

OSC specification does not define any namespace. There is no de-facto standard too.

Pedalino OSC namespace for incoming and outcoming MIDI events is:

MIDI EventOSC AddressOSC ArgumentsMinMaxNote
Note On/pedalino/midi/note/#float velocity int channel0 11
16
# is the MIDI note number 0..127
Note Off/pedalino/midi/note/#float velocity int channel0 10
16
# is the MIDI note number 0..127
Control Change/pedalino/midi/cc/#float value int channel0 11
16
# is the MIDI CC number 0..127
Program Change/pedalino/midi/pc/#int channel116# is the MIDI PC number 0..127
Pitch Bend/pedalino/midi/pitchbend/#float bend01# is the MIDI channel 1..16
After Touch Poly/pedalino/midi/aftertouchpoly/#float pressure01# is the MIDI note number 0..127
After Touch Chennel/pedalino/midi/aftertouchchannel/#float pressure01# is the MIDI channel 1..16
Song Position Pointer/pedalino/midi/songposition/#int beats016383# is song position in beats (1/16 note)
Song Select/pedalino/midi/songselect/#int number0127# is song number 0..127
Tune Request/pedalino/midi/tunerequest/
Start/pedalino/midi/start/
Continue/pedalino/midi/continue/
Stop/pedalino/midi/stop/
Active Sensing/pedalino/midi/activesensing/
Reset/pedalino/midi/reset/

OSC-to-MIDI and MIDI-to-OSC

Pedalino is able to converts incoming OSC messages to MIDI events and outgoing MIDI events to OSC messages.

The bottom line is you can connect MIDI devices (or software) that does not suport OSC natively with OSC enabled software (or device) without any hard to configure software bridge.

Discussions