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 Connectors category of the Library:
| Block | Thumbnail | Description |
|---|---|---|
| Midi Keys | Send/receive polyphonic note messages. | |
| Midi CC | Send/receive Control Change messages. Set the CC number in the Inspector. | |
| Midi Key | Send/receive a single, specific 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).The OSC connection must be configured within your patch.
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).onload event to set the configuration for the session. The OSC Bridge device in the library does this for you.| Block | Thumbnail | Description |
|---|---|---|
| OSC Send | Sends an OSC message. Set the OSC address in the text field (e.g. /ch1cc1 :0). The jolt input sends the trigger and its value is available as :0. |
|
| OSC Receive | Receives an OSC message matching the configured address (e.g. /note1) and emits 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 1For routing jolts wirelessly within your patch — without any external software — use the wireless jolt blocks:
| Block | Thumbnail | Description |
|---|---|---|
| Send Jolt | Broadcasts a jolt to all Receive Jolt blocks sharing the same channel name. | |
| Receive Jolt | Receives a jolt from the matching Send Jolt block. |
These are ideal for connecting blocks across different groups or devices without drawing cables, and support multiplayer synchronization via the "Broadcast Multiplayer" inspector option on Send Jolt.
note 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.