MyGo 云音乐
Go와 MyGo로 만든 서드파티 네이버 클라우드 뮤직 데스크톱 클라이언트
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Camera-based gesture instrument — play music with your hands, powered by a self-trained neural net running entirely client-side in the browser
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
AirKeys turns your webcam into a musical instrument. Eight gestures — fist, point, peace, open palm, pinch, OK sign, rock on, call me — each always play the same fixed note, laid out as a one-octave diatonic scale (do through do), so cycling through them plays an actual, reproducible melody instead of an approximate one (see the in-app Songs tab for ready-made tunes). Everything — hand tracking, gesture recognition, and audio — runs client-side, in your browser, with no account and no setup.README 전문 보기 ↗A camera-based gesture instrument that runs entirely in the browser — live demo.
Eight hand gestures each play a fixed note of a one-octave scale, so you can play real melodies (the in-app Songs tab has a few). You can also teach it gestures of your own. Hand tracking, gesture recognition and audio all run client-side: no account, no setup, nothing sent to a server.
The project is also a testbed for applied ML done properly — evaluating a gesture classifier on people it has never seen, then fixing what that reveals. It is a work in progress: see ROADMAP.md.
Webcam --> MediaPipe (21 landmarks + pretrained gesture) ---\
--> pinch (pure geometry) |
--> self-trained MLP (offline-trained, 3 poses) >--> Rule Engine --> Tone.js audio
--> your taught gestures (client-side kNN) -/
[all in the browser] [gesture -> musical action]
Built with Next.js, TypeScript, MediaPipe, Tone.js and scikit-learn. Design choices — why everything runs client-side, how the models ship without an inference runtime: docs/architecture.md.
The shipped MLP was trained on my hand only. Re-evaluated on other people's hands (HaGRID, 9k subjects) and on live webcam recordings:
| Evaluation | Accuracy |
|---|---|
| Shipped MLP — my hand (original test) | 99.8 % |
| Shipped MLP — 1,309 people it never saw | 71.9 % [70.2, 73.6] |
| Logistic regression trained on 6,753 HaGRID people, 9 gestures — people it never saw | 98.0 % [97.4, 98.5] |
| Same model — my live webcam (2 sessions), the 8 gestures | 98.0 % |
| Same model — my live webcam (2 sessions), recognizing "no gesture" | 6 % |
Brackets are bootstrap 95 % confidence intervals over subjects. Webcam results hold across artificial light and daylight. Generalizing to new hands is solved by training on many people. The open problem is rejection: resting or half-formed hands are taken for gestures, which would play wrong notes. That is the next phase of the roadmap; the app keeps the original MLP until then.
More detail:
Requires Python 3.11+, Node.js 18+, uv and a webcam.
git clone https://github.com/anastber/air-keys.git && cd air-keys
make install # Python + Node dependencies; downloads the MediaPipe model into frontend/public/
make dev # http://localhost:3000
make help lists the other commands: tests, lint, dataset validation, model evaluation.
The 8 gestures form one octave: fist = do, point = re, peace = mi, open palm = fa, pinch = sol, OK sign = la, rock on = ti, call me = do (an octave up). Raising or lowering your hand shifts the octave. The Songs tab has ready-made melodies, and the Rules tab remaps any gesture.
To add a gesture of your own, name it in the "Teach a Gesture" panel and hit Record: it captures ~20 samples and is recognized right away. Taught gestures stay in your browser's localStorage.
MIT — see LICENSE. The HaGRID dataset used for training and evaluation (Kapitanov et al.) is distributed under its own license, a variant of CC BY-SA 4.0, and is not redistributed here.