A JavaScript Pitch Shifting Library for EarSketch with Asm.js
Abstract
A JavaScript pitch shifting library based on asm.js was developed
for the EarSketch website. EarSketch is a Web Audio API-based
educational website that teaches computer science principles
through music technology and composition. Students write code
in Python and JavaScript to manipulate and transform audio loops
in a multi-track digital audio workstation paradigm. The pitchshifting
library provides a cross-platform, client-side pitchshifting
service to EarSketch to change the pitch of audio loop
files without modifying their playback speed. It replaces a
previous server-side pitch-shifting service with a noticeable
increase in performance. This paper describes the implementation
and performance of the library transpiled from a set of basic DSP
routines written in C and converted to Asm JavaScript using
emscripten.