Inspiration A MIDI keyboard can sit unused because its owner doesn’t know what to practise or whether they’re improving. Dust Off turns that instrument into a shared workspace with an AI teacher that can demonstrate, respond to real playing, and prepare the next exercise. What it does Dust Off helps beginners learn through short, interactive exercises. The agent highlights notes with finger numbers, plays a demonstration, and reads the student’s notes, timing, and velocity to give feedback. It can also save personalised lessons. These stay in the library, where the app demonstrates, listens, and grades independently. Students can use a physical MIDI controller, computer keyboard, or on-screen keys. How we built it We built Dust Off with plain JavaScript, Web Audio, Web MIDI, and WebMCP, hosted on Netlify. WebMCP tools such as show_notes, play_notes, listen, and save_lesson let the agent work directly with the piano page. The page handles musical timing and analysis, while the agent decides what to teach. Lessons and practice observations are stored locally. Challenges we ran into The biggest challenge was browser compatibility: Codex’s in-app browser supported WebMCP calls but did not grant MIDI access, while Chrome supported our MIDI controller. We built a small local Node.js relay that forwards Chrome’s hardware input into the same Codex piano page where WebMCP operates. Real testing also exposed duplicate events from mirrored MIDI ports, premature phrase endings while beginners searched for keys, and outdated performance results after a listening window closed. Accomplishments that we're proud of We demonstrated a complete interaction with a real MIDI keyboard: the agent taught an exercise, demonstrated notes, read physical playing, gave feedback, and saved a personalised lesson. We also completed an independent chord lesson and reviewed its results with the agent. What we learned Musical timing belongs in the application, not in model round trips. WebMCP works well when tools represent meaningful actions—demonstrate a phrase, analyse a performance, save a lesson—rather than individual clicks. Testing with a real beginner also showed how important patience and clear feedback are. What's next for Dust Off We want to simplify hardware setup, improve phrase capture and progress tracking, and make saved lessons easier to share across browsers. We’ll also expand exercises for chord transitions, rhythm, and even touch while keeping practice approachable for beginners.

Built With

Share this project:

Updates

Submission history