Skip to content

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

License

Notifications You must be signed in to change notification settings

ExistentialAudio/SwiftOSC

Repository files navigation

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

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/.