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 Event | OSC Address | OSC Arguments | Min | Max | Note |
---|---|---|---|---|---|
Note On | /pedalino/midi/note/# | float velocity int channel | 0 1 | 1
16 | # is the MIDI note number 0..127 |
Note Off | /pedalino/midi/note/# | float velocity int channel | 0 1 | 0 16 | # is the MIDI note number 0..127 |
Control Change | /pedalino/midi/cc/# | float value int channel | 0 1 | 1
16 | # is the MIDI CC number 0..127 |
Program Change | /pedalino/midi/pc/# | int channel | 1 | 16 | # is the MIDI PC number 0..127 |
Pitch Bend | /pedalino/midi/pitchbend/# | float bend | 0 | 1 | # is the MIDI channel 1..16 |
After Touch Poly | /pedalino/midi/aftertouchpoly/# | float pressure | 0 | 1 | # is the MIDI note number 0..127 |
After Touch Chennel | /pedalino/midi/aftertouchchannel/# | float pressure | 0 | 1 | # is the MIDI channel 1..16 |
Song Position Pointer | /pedalino/midi/songposition/# | int beats | 0 | 16383 | # is song position in beats (1/16 note) |
Song Select | /pedalino/midi/songselect/# | int number | 0 | 127 | # 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
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.