A web-based keyboard implementing ReactJS which allows creating and loading tracks from a database and real-time computer-keyboard playing.
This synthesizer uses the Web Audio API to allow you to play in real-time, and also record and save tracks for later playback. The keyboard is only active when CAPS lock is engaged, allowing the user to navitage while the app is open.
- Organ
- Key
- Recorder
- Jukebox
- Track Player
These components follow Flux Application Architecture to render in real-time, and communicate with the database using AJAX requests for creating and loading tracks.
- Keeps track of every instance of a note being played vs time
- Upon playback, snapshots are taken over a 20ms interval of which notes were held down
- Toggles AudioContext Oscillator #type
- Uses AudioContext Oscillator #detune to apply slight variations of tuning over 4 Oscillators
- Effects AudioContext Osillator #frequency, referencing a global object which maps frequencies to note values
- Download this repository
- Install Rails and/or PostgreSQL (if necessary)
- Bundle install
- Create database/Run migrations
- Start Rails Server
- Open in browser
- Jam out on some funky tunes!