QGrooves Plus

A highly configurable advanced music sequencer that enables users to craft songs by arranging provided loops on a track. Users can also record their own audio and manipulate it by trimming, moving, and applying a variety of audio effects. It uses multi-threaded audio worklet processors and a web assembly encoding module to encode songs to MP3 format in real time, allowing users to easily download their finished creations as MP3 files. It is fully responsive and WCAG compliant, with a full suite of keyboard shortcuts available.
Technologies used: Visual Studio Code, Vite, Vue 3, TypeScript, SCSS, Web Audio API, Web Assembly
QBackBeat

A highly configurable drum machine that allows users to create drum beats by activating drum samples on a grid. Like QGrooves Plus, it uses multi-threaded audio worklet processors and a web assembly encoding module to encode songs to MP3 format in real time, allowing users to easily download their finished creations as MP3 files. It will also display a VexFlow-driven notation view that will highlight notes during playback. It is fully responsive and WCAG compliant, with a full suite of keyboard shortcuts available.
Technologies used: Visual Studio Code, Vite, Vue 3, TypeScript, SCSS, VexFlow, Web Audio API
QSynth

A synthesizer that allows users to create and manipulate sounds by adjusting various parameters. It displays an oscilliscope that draws the waveform of the sound being generated based on frequency, amplitude, phase, harmonic, and detune settings. It will also display the envelope of the sound based on the attack, decay, sustain, and release settings.
Technologies used: Webstorm, Dart, StageXL, Web Audio API
QStrum

An app that allows users to place place notes on a staff and watch the strum and finger placement of chords on a virtual guitar and/or bass during playback. Users can select from a variety of instrument styles, chords, note patterns, and strum durations to create their own songs. Like QGrooves Plus and QBackBeat it uses multi-threaded audio worklet processors and a web assembly encoding module to encode songs to MP3 format in real time, allowing users to easily download their finished creations as MP3 files.
Technologies used: Webstorm, Dart, StageXL, Web Audio API
Song Brush

Draw a picture on a canvas and listen as your drawing is transformed into music! The app will analyze the shapes of your drawing and assign musical notes based on their position on the staff. It will then play the notes back in sequence, allowing you to create your own unique song. It will also display your drawing as notes on a staff, so you can see exactly how your drawings are being interpreted. Like QGrooves, QBackBeat, and QStrum, it uses multi-threaded audio worklet processors and a web assembly encoding module to encode songs to MP3 format in real time, allowing users to easily download their finished creations as MP3 files.
Technologies used: Webstorm, Dart, StageXL, Web Audio API
Guitar Crazy

A throwback to my time at Franktown Rocks, Guitar Crazy was inspired by the classic Guitar Hero and Rockband games, and was a flash-based application that allowed users to play along with a song by pressing the correct keys at the right time. It features a variety of characters, songs, and difficulty levels to choose from. A collaboration with multiple developers, I was responsible for coding the song editor, which allowed us to assign nodes to notes in the song that would be loaded into the playback engine.
Technologies used: Adobe Flash, ActionScript 2.0
Staff Champion

Aimed at helping students learn to read music, Staff Champion displayed a staff with a note on it and asked the user to identify the note. A highly configurable app, it could be loaded with various instruments, clefs, and note ranges. It also featured a game mode, where users could earn points by correctly identifying notes in a set amount of time, displaying a results screen at the end. It was designed to be used both in a classroom setting, and by students on their chromebooks or iPads.
Technologies used: Webstorm, Dart, StageXL