How daihongyu974-commits/djman works
DJMAN is a browser-based playlist mixer: users add local tracks or Audius tracks, the engine analyzes and orders them, then plays and automatically mixes successive tracks under panel control. The README documents the major engine sections; the sampled source confirms the React-to-engine startup, local-file handling, deck and transport behavior, and Web Audio processing. Most engine details are in one file, so the internal components below share that path; unsampled wiring is not expanded.
Main entry points: engine.js Playback transport · DjmanApp.tsx Mixer page · main.tsx React bootstrap
Components 18
Interface
- React bootstrap
src/main.tsx - Mixer page
src/djman/DjmanApp.tsx - Device controls
src/djman/engine.js - Screen and status
src/djman/engine.js - Control manual
src/djman/engine.js
Track preparation
- Playlist UI
src/djman/engine.js - Local track intake
src/djman/engine.js - Audius search and download
src/djman/engine.js - BPM and beat analysis
src/djman/engine.js - Key analysis and sorting
src/djman/engine.js
Mix engine
- Playback transport
src/djman/engine.js - Track decks
src/djman/engine.js - Transition scheduler
src/djman/engine.js - Master effects
src/djman/engine.js - Samples and loops
src/djman/engine.js
Audio and catalog
- Audius API
- Browser Web Audio
Other components
- DJ / listener
Connections 26
- DJ / listener → Mixer page: uses
- React bootstrap → Mixer page: renders
- Mixer page → Playback transport: starts engine
- DJ / listener → Local track intake: selects files
- Mixer page → Playlist UI: provides markup
- Local track intake → BPM and beat analysis: queues tracks
- Audius search and download → Audius API: searches and streams
- Audius API → Audius search and download: returns tracks
- Audius search and download → BPM and beat analysis: submits tracks
- BPM and beat analysis → Key analysis and sorting: provides track data
- Key analysis and sorting → Playlist UI: sorts playlist
- Playlist UI → Playback transport: selects tracks
- Device controls → Playback transport: controls playback
- Device controls → Transition scheduler: sets transition
- Playback transport → Track decks: starts and stops
- Playback transport → Transition scheduler: requests transitions
- Transition scheduler → Track decks: schedules mix
- Device controls → Master effects: selects effects
- Device controls → Samples and loops: triggers samples
- Track decks → Browser Web Audio: processes audio
- Transition scheduler → Browser Web Audio: schedules audio
- Master effects → Browser Web Audio: processes effects
- Samples and loops → Browser Web Audio: synthesizes audio
- Playback transport → Screen and status: updates playback view
- Device controls → Screen and status: updates settings
- Mixer page → Control manual: provides manual area