Connecting Patchworld to external devices and software like DAWs (Digital Audio Workstations) and MIDI controllers opens up a world of possibilities for live performance, advanced sequencing, and integrating physical hardware into your VR creations. This guide covers the primary methods discussed and developed by the PatchXR team and its community.
There are two main protocols for external connection:
This method uses the official Patchworld Companion App to create a stable bridge between your headset and your computer.
On Windows:
loopMIDI
.+
button. Name them something clear, like PatchIn
and PatchOut
.On macOS:
Applications/Utilities
).Window > Show MIDI Studio
.Bus 1
and Bus 2
.PatchIn
for input and PatchOut
for output.Preferences > Link / Tempo / MIDI
.PatchIn
/PatchOut
or IAC Bus 1
/IAC Bus 2
).Use the dedicated MIDI blocks found in the library:
Midi Keys
: For sending/receiving polyphonic note messages.Midi CC
: For sending/receiving Control Change messages. You must set the specific CC number in the Inspector.Midi Key
: For sending/receiving a specific, single MIDI note.You can now send MIDI from your DAW to Patchworld instruments or send signals from Patchworld to control your DAW.
This method provides a more direct, but manual, way to send and receive data. It's useful for connecting to software like TouchOSC, Pure Data, Max/MSP, or custom Python scripts.
OSC communication relies on three things being correctly configured on both ends:
/ch1/note
, /mixer/fader1
).execute
block)The OSC connection must be configured within your patch.
execute
block.remote_ip [IP_ADDRESS]
(e.g., remote_ip 192.168.1.10
).port_in [PORT_NUMBER]
(e.g., port_in 3330
).port_out [PORT_NUMBER]
(e.g., port_out 5550
).execute
blocks once with a button
or onload
event to set the configuration for the session. The OSC Bridge
device in the library does this for you.msg_out
block: To send an OSC message. Name the block with the desired OSC address (e.g., /ch1cc1
). The jolt input sends the value.msg_in
block: To receive an OSC message. Name the block with the OSC address you expect to receive (e.g., /note1
). It will output a jolt with the received value.The community has developed solutions using a Python script and TouchOSC to create a powerful OSC-to-MIDI bridge.
/ch1note
: Note number for channel 1/ch1vel
: Velocity for channel 1/ch1noteoff
: Note off message/ch1cc1
: CC message for controller #1 on channel 1/ch1pitch
: Pitch bend for channel 1note off
events. A common community solution is to send a jolt with a velocity of 0
to signify note off
. Inside a receiving patch, you can use an if else
block to filter out these 0
value jolts so they don't retrigger a sound.Wi-Fi Settings
, click on your connected network, and scroll down to find the IP address. On Windows, open Command Prompt and type ipconfig
. On Mac, check System Settings > Network
.