Credits
musictokeys is built on these open projects. Thank you.
Sound and notes
- Basic Pitch by Spotify: the model that turns audio into notes. Apache-2.0.
- TensorFlow.js: runs the model in your browser. Apache-2.0.
- SpessaSynth by spessasus: the soundfont synthesizer. Apache-2.0.
- FluidR3Mono GM soundfont: FluidR3 by Frank Wen, mono conversion by Michael Cowgill, adaptation by S. Christian Collins (MuseScore). MIT. License and notices.
- HTDemucs (6-stem) by Meta AI Research: separates piano, vocals, guitar, bass and drums. Code MIT; the authors note the weights' license is unclear (trained on internal data, likely non-commercial use only). Run in the browser with unblend by Ryan5453 (MIT) and ONNX Runtime Web (MIT).
- alphaTab by CoderLine: reads MusicXML and Guitar Pro files. MPL-2.0, used unmodified.
- Tonal: chord names and music theory. MIT.
- @tonejs/midi: reading MIDI files. MIT.
App
- React, Zustand, idb-keyval, fflate, Vite and vite-plugin-pwa. MIT / Apache-2.0.
- Fonts: Bricolage Grotesque, DM Sans and Space Mono, via Google Fonts (SIL Open Font License).
Inspiration
The idea of a free, no-nonsense falling-notes piano trainer was inspired by Orfeo. musictokeys is a separate project with its own code.
Demo songs
The demo melodies (Beethoven, traditional) are in the public domain; the simple two-hand arrangements were written for musictokeys.