Skip to content

PyCampES/dj-tui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DJ Tui 🎧

A PyCamp project

DJ Tui is a DJ mixer on the terminal that can be controlled with a DDJ-200 MIDI controller.

It's all written in Python, using the Textual framework to generate the TUI.

To launch it, clone the repository and run:

$ uv run dj-tui

DJ Tui

🎥 ➡️ click to watch demo!

Architecture

We combine three modules to build the application:

  • dj_tui.controller: Handles MIDI controller input and translates it into application actions
  • dj_tui.audio: Manages audio loading and play-pause
  • dj_tui.ui: Handles the TUI and user interaction

The three modules are managed by the main application logic controller: dj_tui.app


Development notes

Inspiration

Open source, multi-platform DJ software exists: Mixxx.

We want to do something similar, with a Terminal User Interface (TUI). Our framework of choice is Textual.

MVP

A Python package that can be installed as follows

$ pip install dj-tui

That launches a TUI with the following capabilities:

  • Loading an MP3 on the left deck
  • Loading an MP3 on the right deck
  • Setting and playing a single cue point on the left and right track
  • Controlling the volume of the left and right track independently
  • These actions can be performed with a DJ controller, for example a Pioneer DDJ-200, as well as with basic keyboard shortcuts (for those who don't possess one)

Extras

  • Display waveform of tracks
  • Visual representation of the jog wheels
  • Other audio formats
  • Tempo controls
  • Equalizers (knobs to tweak low, mid, high frequencies)
  • ...? (Ideas welcome!)

Resources

MIDI and DJ controllers:

TUI inspiration:

Playing audio:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages