During the DJing with Sencha Touch talk at SenchaCon 2013 we finally unveiled and demonstrated Touch DJ.
Overview
Touch DJ is a full fledged DJ app. It takes inspiration from existing DJ hardware and desktop DJ software (such as Traktor and Serato Scratch Live).
The app implements the following features:
- Two CDJ-style audio decks
- Real Time Waveform Display
- Play / Cue
- Looping
- Pitch Adjustment
- Pitch Bending
- 2 Channel Audio Mixer
- 3 Band Equalizer (High, Mid, Low)
- Channel Volume Control
- Channel Volume Meters
- Deck Transport Buttons
- Track Browser
- Display Track Metadata and Cover Art
- Deck Load Buttons
- External MIDI Support
- Control App Functions from any MIDI Device / Software
- Includes Sample TouchOSC Layout
Screenshots
Development
The app was written using Sencha Touch 2.2 on the front-end and Node.js to serve the static content, support the Track Browser as well as the MIDI communication via WebSockets.
The client was also supported by the following 3rd party libraries:
- Wavesurfer.js
- Real-time Waveform Display
- Dragdealer.js
- Touch enabled Slider
- JavaScript ID3 Reader
- Parse ID3 Metadata and CoverArt from MP3 files
This application would not have been possible without the HTML5 Web Audio API. The Web Audio API was used to handle the playing of the audio tracks, implementing a 3 Band Equalizer, Channel Volume Control & Meter, as well as the Crossfader.
This is what the Audio Routing Graph looks like for the Touch DJ app:
Source
Touch DJ is available in open source under the MIT license. Feel free to fork the repo:
Stan Bershadskiy
Related Posts
-
Sencha Touch 2 Touch Events Re-firing
While generally we try to avoid native browser alert() and confirm() we sometimes have no…
-
Sencha Touch 2 Touch Events Re-firing
While generally we try to avoid native browser alert() and confirm() we sometimes have no…