OSC Enabled Soundboard for VRChat
Go to file
Volkor 159a721ff0
Initial Commit
2022-11-17 15:56:07 +11:00
.gitignore Initial Commit 2022-11-17 15:56:07 +11:00
README.md Initial Commit 2022-11-17 15:56:07 +11:00
config.toml Initial Commit 2022-11-17 15:56:07 +11:00
osc-soundboard.py Initial Commit 2022-11-17 15:56:07 +11:00
requirements.txt Initial Commit 2022-11-17 15:56:07 +11:00


VolkorSoundBoard (VSB)

VSB is a cool python-based, OSC-enabled vrchat soundboard. It uses a avatars radial menu to trigger .wav files to play via a audio device, mostly voicemeeter.

Software setup

  1. Ensure python 3.10 (or older!!) is installed, and you have the requirements installed. pip install -r requirements.txt
  2. In the SFX folder, create a folder for the avatarid, for example avtr_3ec08725-aa6c-42ec-b411-a1466f69fb61, and then move the audio files in.
  3. Ensure that the files are named properly, with proper numbering at the start of the filename.
  4. Ensure that the files are in WAV format. I don't think the sound library supports playing anything else (and I haven't added it working)
  5. Edit the config.toml to match your settings.

Avatar setup

  1. Create a submenu with the corresponding osc-parameter settings triggered by a button.
    1. TODO: add a photo or something to show my example
  2. Enable OSC in game (or test with AV3Emulator!)
  3. Upload avatar (or play mode if AV3Emu) and run the button, and see if it is registered in the program.

Python 3.11 or newer

We use the tomli library for toml, but python 3.11 and newer has tomllib built into python, so you'll have to change the import and references.

Stuff I learned making this

  • How OSC works! (osc4py3 is neat, especially multithreading stuff)
  • signals library for clean ctrl+c exiting
  • playing audio on windows from python (sounddevice, soundfile)
  • reading toml files from python.

File naming

Files MUST be named correctly. 1. <name>. The number in the filename corresponds to the number in the parameter menu in VRC. Files MUST be in .wav format. Seriously. I'm not requiring ffmpeg for a small size reduction.