MIDI and OSC Trigger Tutorial

A quick guide to setting up midi and osc in sdk2, and how to set up reaper to control the midi triggers. Use the video for the Unity demonstration, then test the change in a backed-up Creator Companion project before using it in production.

Recommended Setup

Open a Worlds SDK project, isolate the interaction in a small test scene, and confirm ownership, synchronization, and local-only behavior before adding polish.

  1. Start from a backed-up Creator Companion project.
  2. Apply one Unity-side change at a time, then test the result before adding the next dependency.
  3. Check the relevant descriptor, SDK warnings, and upload target before publishing.
VRChat note

Udon, CyanTrigger, and prefab tutorials sit on top of VRChat networking rules. Always decide whether the behavior should be local, synced, owner-controlled, or rebuilt for late joiners.

Playlist Companion

Creator: akalink
Watch on YouTube: https://www.youtube.com/watch?v=BnHlyqvqbSs

Good Fit

Use this tutorial for the world interaction shown in the video. Build it in a duplicate scene first, then check ownership, sync, SDK Builder warnings, and a private upload before adding it to the live world.

Before You Start

  • Confirm you are using the supported VRChat Unity version for the project.
  • Open the project through VRChat Creator Companion when possible.
  • Check for red Console errors before assuming the tutorial step is the problem.
  • Make a backup or duplicate scene before changing assets, controllers, prefabs, or SDK settings.

Follow-Along Checklist

  • Identify whether the interaction needs UdonSharp, CyanTrigger, or a prefab-only setup.
  • Test with two clients when ownership, pickup state, audio, UI, or scoring can differ per player.
  • Keep synced variables and expensive update loops small before expanding the system.
Help! The video was made for an older SDK or Unity version.

Older tutorial UI labels can drift. Use the current SDK panels, Builder messages, and a private test upload before relying on the setup.

Help! The result works in Unity but not in VRChat.

Test in a built VRChat instance. Runtime permissions, networking, platform restrictions, and SDK validation can change behavior that looks fine in the editor.

Help! I want to apply this to a production project.

Rebuild it in a small copy first, then move only the confirmed pieces into the production avatar or world. That keeps tutorial experiments from becoming permanent project clutter.

Official References

Related Docs

Topics: triggers, osc, midi