{{ joshbrown.dev }}

~ making rocks think for nearly 20 years ~

portfolio

QGrooves Plus

loading...
QGrooves Plus loop track editing
1 of 5

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

loading...
QBackBeat drum machine
1 of 6

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

loading...
QSynth synthesizer
1 of 4

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

loading...
QStrum guitar
1 of 5

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

loading...
Song Brush
1 of 3

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

loading...
Guitar Crazy splash screen
1 of 7

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

loading...
Staff Champion
1 of 5

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