https://github.com/Mayuresh1611/Paper-Piano Skip to content Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} Mayuresh1611 / Paper-Piano Public * Notifications * Fork 4 * Star 159 * Piano like no other, Piano on Paper License MIT license 159 stars 4 forks Branches Tags Activity Star Notifications * Code * Issues 0 * Pull requests 0 * Discussions * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Discussions * Actions * Projects * Security * Insights Mayuresh1611/Paper-Piano This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main BranchesTags Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 12 Commits models models piano_keys piano_keys src src .gitignore .gitignore LICENSE.txt LICENSE.txt README.md README.md requirements.txt requirements.txt run.py run.py View all files Repository files navigation * README * MIT license PAPER PIANO Now we don't need to buy Piano if we want to play music. We can play piano on paper, although it may not give feeling of pressing keys on piano but it gets work done! demo.mp4 Currently it only supports maximum 2 fingers (1 finger of both hands). Support for more fingers and highly susceptible training model is on the way. 1. Setting up project 2. How to Use 3. Training and Adjusting 4. Contributing to this project SETTING UP PROJECT Python version 3.11 and above 1. Clone the repository git clone https://github.com/Mayuresh1611/ Paper-Piano.git 2. run command pip install -r requirements.txt in the command line. 3. Execute run.py file HOW TO USE This is a little trickier part as the project requires you to set up a webcam in the specific angle at a specific height and distance. Also stronger the light, better the performance. STUFF YOU WILL REQUIRE 1. webcam or you can use third-party tools for webcam. 2. Two A4-sized white paper, horizontally joined together. 2 rectangles need to be drawn at both ends of the paper with a black marker, thicker lines yield better results. 3. Recommended position for the webcam will be such that it can capture the finger and shadow beneath the finger and should have both boxes we drew on joined paper in the FOV of the camera. Just like shown in the demo video. 4. Light source in front, ie. behind the camera would be preferred. Casting sharp shadows. 5. Hand with all fingers. TRAINING AND ADJUSTING * During training the model on your finger, the first window will appear where box will be drawn around the tip of the finger. If the box does not cover complete finger and little surrounding of the finger. Adjust the camera accordingly. * In the training stage, do not move your finger furiously, move it slowly giving out every angle. * While training, during the touched finger state, do press the finger but not too hard. In an untouched finger state, do not touch paper, you can get near paper but not too close. Lift the finger high like you would normally do. * CNN has been used to train over the data, it distinguishes the touched and untouched finger, if the results are not satisfactory, retrain the model. CONTRIBUTING TO THIS PROJECT If we make this project into a complete working piano on paper. It would give access of piano and instruments for those who cannot afford it. like me :) * There are no set rules or code of conduct as of now. Anyone wtih better ideas and improvement is welcomed. * The only rules are 1. The name of the function should match the functionality it is doing. 2. Use comments only when required. 3. Share with the ones who can improve this project even more. About Piano like no other, Piano on Paper Resources Readme License MIT license Activity Stars 159 stars Watchers 1 watching Forks 4 forks Report repository Releases No releases published Packages 0 No packages published Contributors 2 * @Mayuresh1611 Mayuresh1611 Mayuresh1611 * @tandav tandav Alexander Rodionov Languages * Python 100.0% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.