Low-overhead Open-Source multi-zone Music System

orels Music System is a very low-overhead music system you can use in your VRChat world. It is fast, incredibly configurable and easy-to-use.

Developed with ❤️ by orels1_orels1

Installation

  • Add to the VRChat Creator Companion using this link: Add to the VCC
  • Make sure the "orels-Music-System" Repository is added and selected in the Settings screen
  • Open your World project and add the "ORL Music System" Package

Setup

  • Make a new GameObject and add the MusicSystem component to it
  • Create two AudioSources, set them to 2D and set everything else the way you like
  • Drag the AudioSources into the MusicSystem's Source A and Source B slots
Music System Setup
Music System Setup

Now let's add some music that will play all across your world!

  • Create another GameObject anywhere in the scene and add the GlobalPlaylist component to it
  • Set the Music System reference to your MusicSystem GameObject. If you only have one - a button will be shown to quickly assign it
  • Add your Audio Clips to the Playlist array
  • Configure the settings to your liking
Example of a Global Playlist
Example of a Global Playlist

Most settings have tooltips or other help messages!

If you need localized music playback for specific areas of your world - you can utilize LocalPlaylist components

  • Add the LocalPlaylist component to any GameObject
  • Configure it similarly to the GlobalPlaylist component
  • Add a Trigger Collider to the same game object, and you should be good to go!

If you ever need to stop the music when the player enters an area - you can use the MuteZone component

  • Add MuteZone to any GameObject with a Trigger collider and it should work automatically
MuteZone Example
MuteZone Example

That's it for a general overview! If you want to learn about all the settings - check out the full docs

If you ever encounter any issues - hop by the Discord and ask for help!

v1.1.2 Release

Bug Fixes

  • Fixed a case where a potential Division By 0 could happen if the Long Break Track Count was set to 0
  • Fixed a bug where long break counter would increase when unpausing the same track, should only happen when new tracks are played

v1.1.0 Release

Enhancemenets

  • Music will now resume from the position it was paused at. This is supported for both cutting and fading
  • Exiting a Playlist area and going back in while it is still fading out - will start fading it back in, isntead of waiting for it to end and going to the next track

Bug Fixes

  • Fading in and out should respect the current volume of the AudioSource. This avoids sudden volume changes
  • Passing through an area with no audio while fading one playlist out and entering anohter local playlist should no longer trigger a track pause

v1.0.1 Release

Bug Fixes

  • Entering a Mute Zone no longer shifts the playlist into Paused state
  • Music System Inspector no longer breaks when the current Playlist is Paused
  • Remote players no longer trigger playlist transition
  • Music System will no longer crash if Global Playlist initializes before it
v1.0.0 Release
v1.0.0 Release

v1.0.0 Release

First release of orels Music System! I always wanted to make something like this for my own worlds, but never got around to it.

Recently - my friend Fins asked for such a system for his new world - Complex 7 and I had to help! What you see here is the initial version of the system mostly tailored to his needs.

There are many new features I'd like to add in the future, but this should be a good first step

New Features

  • GlobalPlaylist to play music everywhere in the World. Most useful for "main area" background music where making a giant collider is inconvenient
  • LocalPlaylist to play music in a specific area of the World. Has an ability to define the minimum amount of time the player must be in the area for the music to transition.
  • Support for multiple MusicSystems. E.g. one for actual music and one for ambient sounds
  • MuteZone to stop any music playback when entering an area
  • Some basic public api to Pause and Resume music playback