Products/BlueSense and OSC
From BlueMelon
The BlueSense OSC (Open Sound Control) interface allows you to use BlueSense from within any environment which supports OSC. Cited from the OSC website:
"Open Sound Control (OSC) is a protocol for communication among computers, sound synthesizers, and other multimedia devices that is optimized for modern networking technology".
Examples of OSC enabled applications
- ChucK => OSC chuck.cs.princeton.edu/ Programming Language Library
- cl-osc www.cliki.net/OSC Programming Language Library
- Csound http://www.csounds.com/manual/html/OSC.html Software
- devosc: a unix device for reading OSC messages www.cnmat.berkeley.edu/Research Software
- DiABlu http://diablu.jorgecardoso.org Software
- DSSI ("Disposable Soft Synth Interface") dssi.sourceforge.net Other
- Impromptu http://impromptu.moso.com.au/ Software
- JackMiniMix http://www.ecs.soton.ac.uk/~njh/jackminimix/ Software
- Jamoma http://jamoma.org/ Programming Language Library
- KWlive hid2osc kwlive.dev.waag.org/ Software
- KWlive Realizer kwlive.dev.waag.org/ Software
- Liblo: Lightweight OSC API plugin.org.uk/liblo/ Programming Language Library
- MadJACK - MPEG Audio Deck http://www.ecs.soton.ac.uk/~njh/madjack/ Software
- Matlab OSC www.a2hd.com/software/ Programming Language Library
- Flash (FLOSC)
svn
Gateway
OSC support in BlueSense is achieved via a special gateway application. The gateway is based upon Java and JavaOSC. The gateway can be used as both a client or server (TCP and UDP protocols) for your OSC applications.
Installation and Setup
Check the OSC directory of the SDK. There are a number of scripts which you can use to start a server or client.
OSC messages
General
Send these messages to
/bluesense/master
- addIPAdress ip username password
- Adds a connection to an BlueSense ethernet router
- getDevices
- Returns a list of currently found BlueSense devices. The list is returned as individual osc messages:
/bluesense/device id name firmwareversion
- detectDevices count timeout
- Try to detect 'count' devices. The process stops when no devices have been found for 'timeout' miliseconds.
- detectDevice id timeout
- Try to detect the device with the given 'id'. The process stops wenn the device is found or after 'timeout' miliseconds.
- getListedDeviceCount
- Returns the number of found BlueSense devices:
/bluesense/deviceCount count
Individual BlueSense devices
You can send a OSC message to an specific BlueSense module:
/bluesense/id/message
- id: should be replace by the id of the module
- message: a specific message. Possible messages are listed below:
Analog input module
Events
/bluesense/id/lastSampledInput index value
Commands
- getResolution
/bluesense/id/getResolution returns /bluesense/id/resolution value
- getSampleDelay
/bluesense/id/getSampleDelay returns /bluesense/id/sampleDelay value
- getVoltageReference
/bluesense/id/getVoltageReference returns /bluesense/id/voltageReference value
- setResolution
/bluesense/id/setResolution value
Analog output module
Commands
- setOutputs
/bluesense/id/setOutputs v1 v2 v3 v4 v5 v6 v7 v8
- setOutput
/bluesense/id/setOutput index value
- getOutput
/bluesense/id/getOutput index returns /bluesense/id/output index value
- getOutputs
/bluesense/id/getOutputs returns /bluesense/id/output v1 v2 v3 v4 v5 v6 v7 v8
Digital (switch) input module
Events
/bluesense/id/lastSampledInput/index value /bluesense/id/lastSampledCounter/index value /bluesense/id/lastSampledRotary/index value
Commands
- requestNeedsBooleans: Switches boolean events for side 0 (A), 1 (B) on (1) or off (0).
/bluesense/id/requestNeedsBooleans side onoff
- requestNeedsCounter: Switches counter event for a port on (1) or off (0)
/bluesense/id/requestNeedsCounter port onoff
- requestNeedsRotary: Switches rotary event for a port on (1) or off (0)
/bluesense/id/requestNeedsRotary port onoff
Digital (open collector) output module
/bluesense/id/setouputs mask value
/bluesense/id/getoutputs returns /bluesense/id/outputs value
/bluesense/id/getoutput index returns /bluesense/id/output index value
/bluesense/id/setPWMs mask v1 v2 ... max v16
/bluesense/id/getPWMs returns /bluesense/id/PWMs mask v1 v2 ... max v16
/bluesense/id/getPWM index returns /bluesense/id/PWM index value
/bluesense/id/setPWM index value
DC motor module
/bluesense/id/setSpeeds v1 v2
/bluesense/id/setSpeed index value
/bluesense/id/getSpeed index returns /bluesense/id/speed index value
Relay module
/bluesense/id/setouputs mask value
/bluesense/id/getoutputs returns /bluesense/id/outputs value
/bluesense/id/getoutput index returns /bluesense/id/output index value
Servo module
- setAngles
/bluesense/id/setAngles v1 v2 v3 v4 v5 v6 v7 v8
- setAngle
/bluesense/id/setAngle index value
- getAngle
/bluesense/id/getAngle index returns /bluesense/id/angle index value
- getAngles
/bluesense/id/getAngles returns /bluesense/id/angles v1 v2 v3 v4 v5 v6 v7 v8
Stepper module
/bluesense/id/setConfiguration current autostop halfstep wavedrive fastdecay
/bluesense/id/setSpeed value
Router modules
/bluesense/id/setChannel channel


