Skip to content

merumerutho/MAXMXDS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MAXMXDS

.MAS DJ deck for Nintendo DS

MAXMXDS (MAXmod MiX software for DS) is a DJ-style tracker module player for Nintendo DS homebrew. It is built on the ashes of XMXDS as an improved version.

It plays .mas files (converted from XM/MOD/IT/S3M via mmutil) with real-time performance controls, 32-channel software mixing, and demoscene visualizers.

Inspired by PT-1210 for Amiga. Uses blocksds's fork of MaxMod as sound engine (Mode-C software mixer on ARM7).

Works with both real hardware (flashcarts) and emulators. File navigation on hardware requires FAT filesystem access. Alternatively, emulator builds can embed songs at compile time (NitroFS).

Distributed under MIT license.

Features

  • 32-channel software mixing with per-channel mute/solo
  • BPM control with lock, nudge, and tap tempo
  • 8 cue points (touch) + 1 hot cue (buttons) with jump and set
  • Rolling loop with quantized divisions (4/8/16/32/64/128 rows)
  • Beat-synced stutter (rhythmic volume gate)
  • Semitone transpose (+-12)
  • Pattern loop mode
  • Per-channel oscilloscope waveforms
  • Audio-reactive visualizers

Controls

Playback

Input Action
A Play / Stop
UP / DOWN BPM +1 / -1
LEFT / RIGHT Nudge tempo (+-4% while held)
START Toggle BPM lock
X Toggle pattern loop

Cue / Transport

Input Action
B Set hot cue to current position
B + LEFT/RIGHT Move hot cue -1 / +1
Y (release) Jump to hot cue (at pattern end)
L / R Transpose down / up (semitone)

DJ Effects

Input Action
SELECT + UP Toggle rolling loop
SELECT + LEFT/RIGHT Halve / double loop division
SELECT + DOWN Toggle beat stutter

Navigation

Input Action
SELECT + START Open file browser

Bottom Screen

Touch the tab strip to switch between three modes:

  • CH — 8x4 channel oscilloscope grid. Touch top half of a cell to mute, bottom half to solo.
  • CUE — 8 cue point buttons (top=jump, bottom=set) and a tap tempo zone.
  • VFX — Visualizer effect selector (8 effects) with SIZE and GAP sliders.

Converting Songs

MAXMXDS plays .mas files. Convert with mmutil:

mmutil -d -y -m mysong.xm -omysong.mas

Batch convert:

python scripts/mas.py -i /path/to/songs -o data

Building

Requires devkitPro (devkitARM + libnds).

Also requires mmutil to be available in your environment variables.

Song setup

Create a songs folder at the same level as the Makefile. Inside it, organize your MOD / XM / IT / S3M files in any folder structure you like (e.g. by playlist, genre, etc.):

songs/
├── techno/
│   ├── track1.xm
│   └── track2.mod
├── jungle/
│   └── amen_break.it
└── chill.s3m

All files found recursively will be converted to .mas format during the build.

Build targets

make native      # for real hardware (flashcart + DS)
make emulator    # for emulator (No$GBA)

Output: release/MAXMXDS.nds

About

A NDS homebrew built on top of MaxMod, to play MOD/IT/S3M/XM modules on a Nintendo DS as a DJ deck.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors