How it works:
The Groove Scribe is written in HTML and Javascript and runs entirely in the browser. ABC Notation is used to create the printable sheet music. When notes are changed on the screen, new ABC Notation is generated which creates the sheet music. To play the music, Groove Scribe generates a MIDI file and plays it using the browser audio interface. The soundfont used by the midi player uses custom drum samples from Mike Johnston's kits.
All of the icons and images used by and created by the Groove Scribe are SVG or fonts so the interface scales to any resolution with no scaling artifacts. Try zooming in on the page to check it out.
How it swings:
The swing slider controls the amount of "swing" that is added to the playback. It does not effect the printable sheet music. To generate swing, a delay is added to the upbeat notes in the measure. The upbeat notes are the "a" and the "e" in a 16th note groove. (1e&a), and are the "&" notes in a 8th note groove. (1&2&3&4&). During MIDI generation, the program extends the duration of the downbeat notes and shortens the duration of the upbeat notes. The percentage of the swing controls the percentage of the note duration that the upbeat is delayed. (NewDelay = NormalDelay + (NormalDelay * SwingPercentage)
The following packages or technologies are used in this project: