Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Latest commit 07c127f Jun 19, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
src minor update Jun 19, 2019
.gitignore updated gitignore. started 1.3.6 May 23, 2019 GNU General Public License v3.0 added Nov 17, 2017
firebase.json Improved directory structure May 23, 2019
package.json 1.3.7 Jun 19, 2019

Brief / Scope of Project

Making a musical instrument in a web browser

What I did

Made a Javascript web app, hosted by Firebase, which allows the user to type various keys on their keyboard, and hear different notes coming out of their speakers. The notes should retune with every key press! This means that music is played by intervals between subsequent notes, and not by absolute position / pitch of note.

Technologies I used

  • HTML
  • Canvas
  • Javascript (ES6)
  • Babel
  • npm
  • Webpack
  • Firebase
  • Web Hosting


Some melodies become a lot easier to play, e.g. arpeggios, since all that is needed is to repeat the intervals multiple times. Some things are harder, e.g. keeping track of where a specific pitch is. Some things are features (definitely not bugs) - e.g. if two notes are played simultaneously then the two events happen in a random order and one of two chords is possible. The note order is non-commutative! This instrument is therefore suited to melody, and not harmony, however quick arpeggios are fine.

You can’t perform that action at this time.