OSC API

Interacting from outside VR

OSC API

Introduction

Open Sound Control (OSC) is a standardized data protocol for communicating between devices.

In order to allow deep control over Microdose VR, we have created an OSC API. This enables you to send OSC signals to MDVR from your devices over the network, allowing you to change most of the important settings in the experience.

TouchOSC

TouchOSC is a fully modular control surface that runs on all iOS and Android devices. Send and receive Open Sound Control or MIDI messages over Wi-Fi to control all compatible software and hardware.

We maintain a TouchOSC Layout with all the latest Microdose VR OSC API Mappings configured for optimal use.

Download
You will need TouchOSC on your iOS or Android device

TouchOSC

MicrodoseVR-TouchOSC-Layout.touchosc - Download to device with TouchOSC installed

Click the tabs across the top of the layout to view different modules

Endpoints

The general structure of the endpoints is : /M/[Module]/[Setting]/[Value].

/M in the master namespace, which preceedes all endpoints. Next is the Module namespace, such as /Control or /Player. The Setting namespace may contain one or two nested strings for organization.

0 or 1 means you can send either 0 or 1 as a value, and generally is used for pressable buttons to trigger single events
0-1 means you can send any float value between 0 and 1 to granularly adjust the setting

The following are the exposed OSC endpoints Microdose will respond to:

/Player

  • /Throw + 0-1 - Nozzle Distance
  • /Reflex + 0-1 - Nozzle Reflexiveness
  • /Acceleration + 0-1 - Player Speed in the world
  • /Atlas + 0-1 - Player Scale in the world

Control

  • /BPM + 30-180 - Global BPM

  • /TimeDilation + 0-1 - Time Dilation

  • /TapBPM + 0 or 1 - Global BPM

  • /BPMLabel + {Current BPM} - Recieves current BPM

  • /Signal/Source/Modulator + 0 or 1 - Modulator Source

  • /Signal/Source/Audio + 0-1 - Audio Reactivity Source

  • /Signal/Source/Biofeedback + 0 or 1 - Biofeedback Source

  • /Signal/Source/OSC + 0 or 1 - OSC Source (WIP)

Output

  • /Mode/VR + 0 or 1 - Use VR Output Mode

  • /Mode/VJ + 0 or 1 - Use VJ Output Mode

  • /Mode/Fulldome + 0 or 1 - Use Fulldome Output Mode (Only available with subscription)

  • /Mode/MR + 0 or 1 - Use Mixed Reality Output Mode

  • /Mode/Demo + 0 or 1 - Use Demo Mode (nerfs advanced features)

  • /Screenshot + 0 or 1 - Take Screenshot

  • /PixelDensity + 0-1 - Adjust VR PixelDensity

/Fulldome

  • /Fulldome/YawAdjustment + 0 or 1 - Enables/Disables Fulldome Yaw Adjustments
  • /Fulldome/Yaw + 0-1 - Adjust Fulldome Yaw
  • /Fulldome/Yaw/+1 + 0 or 1 - Adjust Fulldome Yaw +1
  • /Fulldome/Yaw/-1 + 0 or 1 - Adjust Fulldome Yaw -1
  • /Fulldome/Yaw/+10 + 0 or 1 - Adjust Fulldome Yaw +10
  • /Fulldome/Yaw/-10 + 0 or 1 - Adjust Fulldome Yaw -10

/Set

  • /Collection/+1 + 0 or 1 - Load Next Collection
  • /Collection/-1 + 0 or 1 - Load Previous Collection
  • /Item/+1 + 0 or 1 - Load Next Brush
  • /Item/-1 + 0 or 1 - Load previous Brush

/PP (Post Processing)

  • /Mirror/Enabled + 0 or 1 - Toggle Mirror Post Processing

  • /Mirror/Preset/{1...10} + 0 or 1 - Load the desired preset from 10 total

  • /Mirror/XMirrors + 0 or 1 - How many X mirror iterations

  • /Mirror/YMirrors + 0 or 1 - How many Y mirror iterations

  • /Mirror/XOffset + 0 or 1 - How far to offset each X iteration

  • /Mirror/YOffset + 0 or 1 - How far to offset each X iteration

  • /Mirror/XCutoff + 0 or 1 - Where to cutoff the X iterations

  • /Mirror/YCutoff + 0 or 1 - Where to cutoff the Y iterations

  • /Mirror/XRangeMin + 0 or 1 - X iterations min range

  • /Mirror/XRangeMax + 0 or 1 - X iterations max range

  • /Mirror/YRangeMin + 0 or 1 - Y iterations min range

  • /Mirror/YRangeMax + 0 or 1 - Y iterations max range

/MediaPlayer

  • /Play + 0 or 1 - Start system audio
  • /Stop + 0 or 1 - Stop system audio
  • /NextTrack + 0 or 1 - Next Track in audio player
  • /PrevTrack + 0 or 1 - Previous Track in audio player