Automatically Playing Piano in VRChat (Chinese Bar)

📢 This article was translated by gemini-3.6-flash

Additionally, I wrote a model modification tutorial, which you can check out at: https://vrchat.yexca.net/

Introduction

Recently, a friend told me that the piano in VRChat can play automatically. So I learned how to do it and wrote this article to document the process.
Note: It seems to only work in PC mode. Of course, you can also try casting your desktop in VR (doge).

Without Using MIDI Files

1. Preparation

To achieve automatic piano playing, you need to install two software programs and one plugin:

1) loopMIDI

This software can be obtained directly from its official website: loopMIDI-Tobias Erichsen (tobias-erichsen.de)

Direct link: loopMIDISetup_1_0_16_27.zip (may become invalid due to version updates)

2) Jazz-Plugin

Please keep the default installation path during installation, otherwise it may not function properly.

Windows: Click here to download (Official Link) (If the official link fails to download, you can also Click here to download )

Mac OS X: Click here to download

Linux version: Click here to download

3) Browser Plugin: Jazz-MIDI

The Jazz-MIDI Chrome extension originally linked cannot currently be installed directly on newer versions of Chrome. You can build it yourself from the author’s open-source repository .

Building from Source (Windows)
  1. Install Git and Visual Studio, making sure the “Desktop development with C++” workload is installed.

  2. Clone the repository:

    1
    2
    
    git clone https://github.com/jazz-soft/jazz-midi.git
    cd jazz-midi
    
  3. Open x64 Native Tools Command Prompt for VS 2022 from the Start Menu, navigate to the native directory in the repository, and build (replace the path with your actual repository location):

    1
    2
    
    cd /d C:\path\to\jazz-midi\native
    nmake /f Makefile.Windows
    

    After the build completes, you will get native\jazz-midi.exe and native\manifest.exe. The Chrome extension source code is located in the firefox\jazz-midi directory, and the project does not require any additional JavaScript bundling steps.

  4. Open chrome://extensions in the Chrome address bar, enable “Developer mode”, click “Load unpacked”, and select the firefox\jazz-midi directory from the repository.

    If Jazz-Plugin was previously installed on your computer, the Native Messaging host is usually already registered and can be tested directly on MidiShow. You only need to proceed with the following configuration if the extension cannot connect to the local MIDI host or if MidiShow does not display any MIDI devices.

If the Extension Does Not Work Properly
  1. Run the following command in the native directory to generate the Native Messaging host configuration (replace the path with your actual location):

    1
    
    manifest.exe com.jazz_soft.jazz_midi "C:\path\to\jazz-midi\native\jazz-midi.exe"
    
  2. Open the generated com.jazz_soft.jazz_midi.chrome.json and change the extension ID in allowed_origins to the local extension ID displayed in chrome://extensions in Chrome.

  3. Register the configuration to the current user’s Chrome:

    1
    
    reg add "HKCU\Software\Google\Chrome\NativeMessagingHosts\com.jazz_soft.jazz_midi" /ve /t REG_SZ /d "C:\path\to\jazz-midi\native\com.jazz_soft.jazz_midi.chrome.json" /f
    
  4. Restart Chrome and test again.

Let an Agent Help with the Build

If you are unfamiliar with Git, Visual Studio, or the command line, you can send the following prompt to an Agent that can operate your local machine:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Please help me build and use the Jazz-MIDI Chrome extension on this Windows PC.

Source Repository: https://github.com/jazz-soft/jazz-midi

Please process in the following order:
1. First check the current environment, including Windows, Git, Visual Studio 2022, C++ desktop development tools, and whether Jazz-Plugin is installed.
2. If software or components required for the build are missing, please explain what is missing first, and complete the configuration if it can be configured automatically.
3. Clone the source repository, and build native\Makefile.Windows using Visual Studio's x64 Native Tools Command Prompt.
4. Locate the Chrome extension directory firefox\jazz-midi, and tell me how to load it in chrome://extensions.
5. Tell me the build results and the next steps to use it, then ask me if I can see the loopMIDI device in MidiShow.
6. If I answer that it doesn't work or I cannot see the MIDI device, then generate and register the Native Messaging host configuration, modify the local extension ID in allowed_origins if necessary, and then ask me to restart Chrome and test again.
7. Do not repeatedly modify system configurations before I confirm test results; explain what was executed and the results at each step.
Legacy Chrome Installation Method (For users who can still use older Jazz-MIDI versions)

Older versions of Chrome, Opera, or other Chromium browsers can try using the following links:

After downloading the CRX file, open chrome://extensions, enable “Developer mode”, and drag the CRX file onto the extensions page. The above links and installation method are for reference in legacy browsers only; if your current Chrome cannot install it or the extension doesn’t work, please use the source build method above.

2. Steps

1) Open loopMIDI and create a new project

To create a new project, enter a name in New port-name at the bottom right, then click the + (plus sign) at the bottom left.

loopMIDI_New

Once completed, the project will appear at the top. Here, Hello World is used as the project name.

loopMIDI_Hello-World

2) Start Playing

<1> Find the song to play

First, open the website MidiShow - Leading MIDI Music Exchange & Download Website

After registering and logging in, search for the song you want to play.

<2> Configure playback settings

As shown in the image, taking Hand in Hand as an example, click the 播放设置 (Playback Settings) button.

image

Settings are as shown. For MIDI 输出设备 (MIDI Output Device), select the project just created with loopMIDI, which is Hello World here.

image

<3> Start playing

At this point, head over to the piano in VRChat’s Chinese Bar, select a stool to sit on, and then click play on the webpage.

When Using MIDI Files

First, please make sure the MIDI file is a piano sheet score. Multi-track files may cause confusion; please edit them yourself if necessary.

1. Preparation

1) loopMIDI

This software can be obtained directly from its official website: loopMIDI-Tobias Erichsen (tobias-erichsen.de)

Direct link: loopMIDISetup_1_0_16_27.zip (may become invalid due to version updates)

2) MidiPiano

I obtained this software from a software download website (the first Google search result).

Website link: MidiPiano – Download (softonic.com)

2. Steps

1) Create a new project in loopMIDI

To create a new project, enter a name under “New port-name” at the bottom right, then click the “+” (plus sign) at the bottom left.

loopMIDI_New

Once completed, the project will appear at the top. Here, “Hello World” is used as the project name.

loopMIDI_Hello-World

2) Open MidiPiano and configure settings

Click the playlist where you can drag and drop files directly. Click Options, and set the output device to the project created in loopMIDI just now, which is Hello World here.

image

If a popup appears saying “MIDI Input and Output cannot be the same, it will crash!”

Please click Midi Input Device in Options, uncheck the project just created in loopMIDI, and then switch to Midi Output Device to enable it.

3) Start playing

Now go to the piano in the Chinese Bar, sit on a stool, select the song you want to play in the Playlist, and click Play.

References

[VRChat] How to Automatically Play Piano in Chinese Bar - Bilibili

Player Selection and Plugin Installation Instructions

This post is licensed under CC BY-NC-SA 4.0 by the author.
Last updated on 2026-10-30 00:00 +0900