SwiftOSC icon indicating copy to clipboard operation
SwiftOSC copied to clipboard

SwiftOSC is an Open Sound Control client and server framework written in Swift.

SwiftOSC v1.4

Version License Platform

SwiftOSC is a Swift Open Sound Control (OSC) 1.1 client and server framework.

If you are using SwiftOSC in a project, let me know. I would love to make a list of projects using SwiftOSC.

Table of Contents

  • Installation
  • Quick Start
  • Projects Using SwiftOSC

Installation

pod 'SwiftOSC', '~> 1.4'

OR

Step 1

Clone or download repository from Github.

Step 2

Open SwiftOSC.xcworkspace and build SwiftOSC frameworks.

Step 3

Embed SwiftOSC into project.

Quick Start

OSC Server

Step 1

Import SwiftOSC framework into your project

import SwiftOSC

Step 2

Create Server

var server = OSCServer(address: "", port: 8080)

Step 3

Start server

server.start()

Step 4

Setup server delegate to handle incoming OSC Data

class OSCHandler: OSCServerDelegate {
    
    func didReceive(_ message: OSCMessage){
        if let integer = message.arguments[0] as? Int {
            print("Received int \(integer)")
        } else {
            print(message)
        }
    }
}
server.delegate =  OSCHandler()

OSC Client

Step 1

Import SwiftOSC framework into your project

import SwiftOSC

Step 2

Create client

var client = OSCClient(address: "localhost", port: 8080)

Step 3

Create a message

var message = OSCMessage(
    OSCAddressPattern("/"), 
    100, 
    5.0, 
    "Hello World", 
    Blob(), 
    true, 
    false, 
    nil, 
    impulse, 
    Timetag(1)
)

Create a bundle

var bundle = OSCBundle(Timetag(secondsSinceNow: 5.0), message)

Step 4

Send message

client.send(message)

Send bundle

// If the server fully supports timetags, like SwiftOSC, the bundle will be delivered at the correct time.
client.send(bundle)

Projects Using SwiftOSC

For additional information on Open Sound Control visit http://opensoundcontrol.org/.