Decks-DS - NDS DJ Deck Track Player - Downloadable ROM - V0.2 (10/11/26)
DJ deck for the Nintendo DS.
decks-ds is homebrew software for the Nintendo DS that plays full-length tracks from the SD card and lets you perform on them while they play. One DS is one deck. The track is streamed from the card in 8-beat pieces, so track length is not limited by the DS's memory. The glitch engine and effects are the ones from Breaks DS, applied to a whole track instead of a loop.
Included
DS ROM file
Five full-length Creative Commons song already converted.
Tracks
Tracks are WAV files converted to the deck's own format, either on the DS (BROWSE, pick the WAV, IMPORT) or on a PC with the included script. PCM WAV only (8, 16, 24 or 32-bit, or float; any sample rate; mono or stereo mixed to mono). No MP3 or OGG.
- Three quality settings: LO (11.9 kHz, 8-bit), HI (23.8 kHz, 16-bit), MAX (32.8 kHz, 16-bit). Whole tracks play at MAX.
- A track needs an exact, steady tempo. The converter takes the BPM from the file name or by hand, with a click check against the audio.
- Output is mono.
The deck
- Play, pause, and CUE (back to the start, stopped).
- Tempo fader with a centre detent and three ranges: 8, 16 or 50 percent. Pitch and tempo move together, as on a turntable. There is no key lock.
- Nudge on the shoulder buttons (4 percent while held). SELECT plus a shoulder button steps the tempo by 0.1 percent.
- Seek by touching the track overview. Jumps land on the next beat, bar or phrase, as set by the quantize button.
- Loop from 8 beats down to 1/8 beat. Slip mode: leaving a loop or roll jumps to where the track would have been.
- Four pads in three modes. CUE: four hot cues per track, jumps quantized to the beat, bar or phrase. ROLL: hold to repeat 1, 1/2, 1/4 or 1/8 beat. FX: hold for an effect of your choice per pad (brake, reverse, tape wow, gate, ring mod, drive or tremolo).
- Directional pad: live section rearrangement of the playing 2 bars (beat juggle).
- Effects page: filter (low-pass to high-pass with resonance), filter sweep, bitcrush, beat-locked gate, ring mod, drive and tremolo, each on an XY pad, momentary or held.
- Queue a second track and cut to it on the next beat, bar or phrase. At the end of a track the deck stops, loops it, or plays the queued one.
- Track browser with folders, name, BPM and length.
- Top screen: the whole track with cue markers and playhead, the current 2 bars with a beat grid, time remaining, BPM, tempo offset, sync state and buffer state.
- Setup: output gain, deck colour, end-of-track behaviour, sync settings, MIDI channel, an SD card speed test and stream diagnostics. Settings are saved to the card.
MIDI (needs a compatible slot 2 MIDI cart)
- Clock sync as follower (lock tempo and beat to an external clock at 1:1, half or double time) or master (send clock, start and stop at the deck's tempo).
- Note and CC input, with a channel filter (all channels or 1 to 16). Turned on in SETUP. Works with or without clock sync.
- Notes: 36 to 39 pads 1 to 4 (in the current pad mode, held for ROLL and FX), 40 to 43 jump to cue A to D, 48 to 51 roll 1, 1/2, 1/4, 1/8 beat (held), 60 brake, 61 reverse, 62 tape wow, 63 gate, 64 ring mod, 65 drive, 66 tremolo (all held), 72 play/pause, 73 CUE, 74 loop on/off, 75 cut to the queued track.
- CCs: 16 filter (64 off, below 64 low-pass down, above 64 high-pass up), 17 filter resonance, 18 crush amount (0 off), 22 tempo fader (64 centre, the ends are the current tempo range; ignored while following a clock), 26 gate rate (0 off), 29 ring mod on/off, 30 drive on/off, 31 tremolo on/off (on at 64 or above).
The CC numbers match Breaks DS where the control means the same thing.
decks-convert
decks-convert is the companion to decks-ds. Copy your songs to the card, launch it, tick the ones you want, press CONVERT, and they come out as decks-ds tracks, ready to play. No PC software. It decodes each file and cuts it with the deck's own converter: resampled so that eight beats are exactly one chunk, the first beat on a chunk boundary, 16-bit at 32768 Hz unless the tempo is too slow for the deck's buffer.
The one thing it needs is the tempo, exact to the hundredth, because the deck cuts every 8 beats and 0.1 BPM out is half a beat off after 5 minutes. It reads it from the file name ("My Song 128.mp3"), from the file's tag (ID3 BPM, or a BPM comment in OGG and FLAC), or you set it on a settings screen with the same -1 -.1 -.01 buttons the deck uses. The first beat is found automatically and can be set by hand, and a click check plays two bars from the start with a click on every beat so you can hear whether it sits on the kick.
What it does
- Reads MP3 (any encoder, ID3 tags skipped), OGG Vorbis and FLAC, up to 8 channels, any sample rate. Stereo is mixed to mono; more than two channels use the first two.
- Writes a decks-ds track (.dtk) next to the source under the same name.
- Tick any number of files and convert them in one run. The card is checked for room before the run starts. SKIP FILE drops the current file, STOP ALL ends the run; nothing partial is left behind.
- Each file shows its tempo and where it came from: the name, the tag, set by hand, or none. CONVERT asks for a tempo for every ticked file that has none (an option).
- Options: skip files already converted, delete the source after a successful conversion, take a tag tempo into a WAV name, ask for a tempo when there is none, output track or WAV, quality auto / MAX / HI / LO.
Installing
1. Copy the included decks-ds folder to the root of your DS flashcard's SD card.
2. Copy decks-ds.nds to wherever you launch homebrew from on the card.
3. Launch decks-ds.nds.
What you need
- A Nintendo DS or DS Lite (also runs on DSi and 3DS through homebrew) with a flashcard that supports SD access (DLDI). The tracks are streamed from the card, so this is required.
- An SD card with room for the tracks. A 5-minute song is about 20 MB at MAX quality.
- Optional: a slot 2 MIDI cart for clock sync and MIDI input.
Notes
* This is homebrew software, not an official Nintendo product.
* Version 0.1. Streaming and playback have been run on real hardware. Importing a WAV on the DS has been checked in an emulator only; expect one to two minutes for a 5-minute song. MIDI sync has not been run on hardware.
* Hot cues are kept in memory for the loaded track and are not saved to the card.
* Effects act on the resident 2 bars. There is no scratching or reversing across the whole track, no delay or reverb, and no headphone cue (use your mixer's cue).
* A slow SD card does not stop playback. If a piece of the track is late, the current 2 bars repeat once, in time, and playback carries on.