• Stars
    star
    251
  • Rank 156,404 (Top 4 %)
  • Language
    Swift
  • License
    MIT License
  • Created almost 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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