Midiex

DocumentationPackage

About this library

OSCx is an Elixir library for encoding and decoding Open Sound Control (OSC) messages.

OSC is a flexible protocol that can be used for a wide variety of real-time tasks, such as controlling multimedia devices.

The API of this module is based on the older osc_ex library. It was designed to be close to a 'drop in' replacement.

Note that this library is deliberately minimilistic and no network transport or process logic is included.

What is Open Sound Control (OSC)?

OSC is a network protocol for real-time communication between computers and other digital devices. It is used to control sound synthesizers, lighting systems, and other multimedia devices. OSC is a lightweight and flexible that is well-suited for real-time applications. OSC is an open standard, which means that anyone can develop software or hardware that supports OSC.

For more detailed information see https://opensoundcontrol.stanford.edu/.

Protocol or content format?

Because OSC does not define features typical of protocols such as command-response patterns, error handling or negotiation, it may be more accurate to describe OSC as a content format, like JSON or XML. An application that uses OSC only needs to be able to parse and encode to and from the OSC format.

None the less, its versatility makes it useful and why it's incorporated into music performance sofware such as SuperCollider.

OSC concepts

Below is a summary of key OSC concepts:

Examples

For some simple examples of using this library, see Examples or the OSCx Livebook tour.

Installation

Adding it to your Elixir project

The package can be installed by adding oscx to your list of dependencies in mix.exs:

def deps do
  [
    {:oscx, "~> 0.1.1"}
  ]
end

Using within Livebook and IEx

Mix.install([{:oscx, "~> 0.1.1"}])

Documentation can be found at https://hexdocs.pm/oscx.