Muscle Melody: Play Music With Your Muscle Movements (EMG)
by Upside Down Labs in Circuits > Sensors
61 Views, 3 Favorites, 0 Comments
Muscle Melody: Play Music With Your Muscle Movements (EMG)

Here’s a hands-free, muscle-powered musical instrument controller!
Using signals from your muscles (EMG), you can trigger virtual instruments in real-time. Whether you're a musician exploring new ways to create sound or someone interested in assistive technology, this project opens up exciting possibilities for gesture-controlled music.
In this project, we will demonstrate how muscle contractions recorded from 3 different muscles can be converted into different sounds with Neuro PlayGround Lite (NPG) Lite and a super cool web interface!
But before moving forward, let's understand EMG.
What is Electromyography (EMG)?
EMG measures the electrical activity produced by skeletal muscles. When you contract a muscle, it generates small electrical signals that can be detected using electrodes placed on the skin.
Note: This project is made by Aman Maheshwari
Supplies

HARDWARE:
- 1 × NPG-Lite
- 1 x Vibz playmate
- 7 × BioAmp Snap Cables
- 7 × Gel Electrodes
- 2 × Alcohol Swabs
- 1 × Laptop
SOFTWARE:
- Arduino IDE: https://www.arduino.cc/en/software
- Muscle Melody Web Interface: https://amanmahe.github.io/Muscle_game/
About Neuro PlayGround (NPG) Lite:
Neuro PlayGround (NPG) Lite is a compact Adafruit Feather form factor, 3-channel wireless biopotential signal amplifier designed for EMG, ECG, EOG, and EEG recording.
It offers Wi-Fi, Bluetooth, Zigbee, and Thread connectivity, along with patient protection, LEDs (User LED, charging LED, 6 addressable RGB LEDs), buttons (Reset and user button), LiPo battery charging, and USB-C with ESD protection. Its lightweight and user-friendly design makes it perfect for research, education, and wearable applications.
Neuro PlayGround Lite will be launched soon on CrowdSupply. Subscribe now to never miss out on any updates.
https://www.crowdsupply.com/upside-down-labs/neuro-playground-lite
Skin Preparation

Start by applying Nuprep Skin Preparation Gel to the areas where the electrodes will be placed. The Nuprep Gel gently exfoliates the top layer of the skin, removing dead cells and oils that can interfere with signal transmission.
After rubbing the gel in a circular motion for a few seconds, clean the area using an alcohol swab or wet wipe. This step ensures that your skin is ready for the best possible electrode contact—think of it as polishing the lens before taking a photo!
What is Nuprep Gel?
Nuprep is a mildly abrasive, highly conductive gel that improves electrode contact by reducing skin impedance. It's safe, effective, and causes minimal skin irritation.
Connecting BioAmp Cables

Once your skin is prepared, it’s time to connect BioAmp Snap Cables.
Connect 3 BioAmp Snap Cables to
- Positive of Channel 1 to A0P
- Negative of Channel 1 to A0N
- Positive of Channel 2 to A1P
- Negative of Channel 2 to A2N
- Positive of Channel 3 to A2P
- Negative of Channel 3 to A2N
- Refernece cable to REF
Electrode Placements

Now connect these BioAmp Snap Cables to gel electrodes and place them on targeted muscles.
- Positive and negative cables of Channel 1 - A0P and A0N will be placed on the finger extensor muscle of the left hand
- Positive and negative cables of Channel 2 - A1P and A1N will be placed on the finger extensor muscle of the right hand
- Positive and negative cables of Channel 3 - A2P and A2N will be placed on the Pectoralis major muscle on the left side of the chest
- Reference cable will be placed on the bony part at the backside of your palm
Uploading the Firmware
To get your NPG-Lite ready for action, upload the latest firmware using the Arduino IDE, to do this:
- Power up the Neuro PlayGround Lite (NPG Lite) by flipping the ON/OFF switch and connecting your NPG device to your laptop/PC with a Type-C Cable.
- Open the Chords Arduino Firmware folder on Github: https://raw.githubusercontent.com/upsidedownlabs/Chords-Arduino-Firmware/refs/heads/main/NPG-LITE-BLE/NPG-LITE-BLE.ino
- Copy your board's firmware sketch from the GitHub folder - this ensures you're always working with the latest version as updates roll out frequently.
- Launch the Arduino IDE and directly paste it into a new Arduino sketch window.
- Install the esp32 board from the boards menu. Note: you don’t need to install Arduino-ESP32 just install esp32.
- Install the required libraries, such as Adafruit NeoPixel. The IDE will usually prompt you to install any missing ones — just click “Install” when prompted.
- In the Arduino IDE:
- Go to Tools → Board and select ESP32 → ESP32C6 Dev Module
- Once your board is selected and libraries are installed, click the Upload button.
After the upload completes, remove the cable as your NPG Lite is ready to send EOG and other biopotential data wirelessly.
Running the Web Interface
)
Now comes the fun part: playing music with your muscle signals.
- Open web Interface: https://amanmahe.github.io/Muscle_game/
- Turn on the Bluetooth of your laptop/PC.
- Click on the Connect button to scan for available devices.
- Select NPG Lite and Click Connect
- The button will change to Disconnect to disconnect the data stream.
- Then, you can set the notch filter(50hz) and EMG filter by clicking on the Filter button.
- Set the threshold according to your muscle strength by clicking on the settings buttons.
- FLEX and hear those sweet, musical notes.
Troubleshooting
Getting an accurate EOG signal is very crucial for this project to work properly. Please check the link below for the tips for best signal acquisition: https://docs.upsidedownlabs.tech/guides/troubleshoot/tips/index.html
In case a weak EMG signal is detected, then ensure there is good electrode contact with the skin surface and you have prepared the skin using nuprep skin preparation gel properly.
If you face any issues with bluetooth connection, then restart NPG Lite and try to reconnect.
Conclusion
This project can be your stepping stone in the world of neuroscience and electrophysiology.
The possibilities are endless. What are you going to make using EMG signals?
Drop your feedback in the comments.
Need help? Reach out at support@upsidedownlabs.tech