DJing
General
Tutorials
- YouTube: The art of DJing - Resident Advisor playlist
ellaskins playlists:
- YouTube: Beginner DJ Lessons
- YouTube: Intermediate DJ Lessons
- YouTube: Advanced DJ Lessons
- YouTube: Digital DJ Tips
Phrase matching
- DJ TechTools: Phrase Mixing: Throwback Thursday DJ Technique
Harmonic matching
- https://github.com/EvanPurkhiser/keyfinder-cli - used to estimate the musical key of many different audio file formats.
- Camelot Wheel - interactive web tool
Software
- https://github.com/erikrichardlarson/unbox - Display your Rekordbox, Serato, Traktor, VirtualDJ, Mixxx, and DJUCED tracks to your viewers on Twitch
Mixxx
- Mixxx - Free DJ software that gives you everything you need to perform live mixes.
- https://mixxx.discourse.group - forum
- Video: media.ccc.de - Djing with FLOSS: Mixxx Workshop - LAC 2018.
--settingsPath PATH
Skins
/usr/share/mixxx/skins/NewSkin
- https://github.com/timewasternl/Pioneered - Pioneer inspired theme for smaller screen resolutions. It has been designed to 'extend' a MIDI controller. Designed for use with the DDJ-400 with Raspberry Pi standalone mod (link).
- https://github.com/djraw/Traktmixxx-RAW/tree/master - A 4-deck full-featured and resizable skin for MIXXX. Using a Traktor similar color scheme and more
- https://github.com/22degrees/RoundCorners - A 4-deck full-featured and resizable skin for Mixxx. Older
- https://github.com/biondizzle/mixxx-deere-ssl-skin - Serato Scratch Live Type of Skin With Vertical Wave Formats
- https://github.com/VoidRatio/TouchMixxx - TouchOSC layout designed to control the Mixxx DJ software.
- https://github.com/timewasternl/Pioneered - Pioneer inspired theme for smaller screen resolutions. It has been designed to 'extend' a MIDI controller. Designed for use with the DDJ-400 with Raspberry Pi standalone mod (link).
Controller scripting
- https://github.com/mixxxdj/mixxx/wiki/MIDI-Scripting
- https://github.com/mixxxdj/mixxx/wiki/MIDI-Crash-Course
- https://github.com/mixxxdj/mixxx/wiki/controller-mapping-file-locations
- 16.5. Mixxx Controls — Mixxx User Manual
- https://github.com/mixxxdj/mixxx/wiki/MIDI-controller-mapping-file-format
- https://github.com/mixxxdj/mixxx/wiki/Serato-sysex
- https://github.com/mixxxdj/mixxx/wiki/Contributing-Mappings
[Master]maximize_library
- https://github.com/pwhelan/mixxx-smoothslider - script which will align the pitch shift to the increment correspondng to the BPM, ie: at 145-150 BPM it shifts by 0.7% increments or clean subdivisions of that.
- mixco - based on the NodeJS JavaScript development environment, a series of factory controller scripts, a framework for creating hardware controller scripts for the amazing Mixxx DJ software. It makes the process easier and faster, and resulting scripts are often more robust, ready to be rock big parties. Mixco comes with a series of factory controller scripts for Novation Twitch, Korg Nanokontrol 2, M-Audio Xponent. They are well documented and their code serves as good tutorial on how to use the framework.
- https://github.com/pwhelan/mixxx-smoothslider - Script which will align the pitch shift to the increment correspondng to the BPM, ie: at 145-150 BPM it shifts by 0.7% increments or clean subdivisions of that.
- https://github.com/faithvoid/LaunchpadMappings - Custom modes and DAW (Traktor/Mixxx/Bitwig, mappings for the Novation Launchpad MK2 / X / Mini.
- https://github.com/SYUMJOBA/Launchpad-Mixxx - An effective usage method for launchpads for DJing, using mixxx. Extending it sometimes
- https://github.com/dszakallas/mixxx-launchpad - Flexible and customizable controller mapping for Novation Launch[Pad|Control] family of controllers.
Library helpers
- https://github.com/fwcd/mixync - CLI tool for copying Mixxx databases and music to and from portable stores
- https://github.com/TriWitch/mixxx-helpers - Some helper libraries for managing the mixxxx library (the os DJ tool), such as batch playlist import/export, copying the library from one device to another etc.
- https://github.com/arximboldi/mixxx-db-tools - Personal tools for manipulating the Mixxx library data-base
- https://github.com/FrankwaP/mixxx-utils - fix_track_paths is a Python tool to fix the tracks paths, using the informations from your music player database. It is usefull when the file has been renamed or if the track is now in another format (for example you wanted a better quality format and went from a mp3 to a flac file). It works with Clementine's database so far, but it won't be hard to add other players' databases. mixxx_to_rekordbox_xml - export your Mixxx library into the Rekorbox XML format and YES IT EXPORTS THE PLAYLISTS, HOT CUES AND BEATGRIDS :-, then you can import the XML file in Rekordbox to prepare a USB key (Rekorbox is free for this use, and can probably run on Wine).
- https://github.com/Shellywell123/MIXXX_Manager/tree/main - Custom tools for altering DJ library track files metadata in bulk
Importing
- https://github.com/bvobart/mixxx-folders2crates - Small application to convert my music library folder structure to 'crates' in the open-source DJ software Mixxx:
Exporting
- https://github.com/mixxxdj/manual/issues/591 - describe how to migrate a Mixxx profile (database, settings etc.) to a new PC / new Mixxx installation · Issue #591 · mixxxdj/manual] - just a guide
- https://github.com/fgrx/mixxx_db_change_location - Change path name file from mixxx db. Usefull when you want to switch computer
- https://github.com/pwhelan/mixxx-crateport - simple utility for exporting Crates in Mixxx to an XML file. It will also load these same XML files into a Mixxx Library.
- https://github.com/Andymann/mixxx_db_exporter - mixxx_db_exporter
- https://github.com/faithvoid/MixxxUtilities - m3ustrip removes all folder information from .m3u/.m3u8 files. Useful for carrying your sets (including hotcues, BPM, etc, on a USB if you combine it with the "Write Serato Metadata" function in Mixxx, as importing them without folder data will have the playlist default to the same folder the playlist file is in. My use case for this is I keep all my Mixxx sets in subfolders in a folder labelled "Mixxx" on my USB drive. I'll export my a new set into a new folder in the "Mixxx" set folder, import it into m3ustrip, export the result in the "Mixxx" set folder, and then my set is ready to be imported into another installation of Mixxx on a seperate computer from any directory (either directly from the USB or any folder on the new system)! setlistbackup.py - Generates an .XLS spreadsheet file inside all subfolders the script is run in, which backs up ID3 metadata of artists/songs/albums and genres contained in the subfolder.
Translating
- https://github.com/Nukesor/mixxx-library-exporter - A small converter tool, which exports a mixxx library into other formats.
- https://github.com/randombyte-developer/crates-generator - A tool for generating M3U playlists based on the track folder structure.
Rekordbox
- https://github.com/Feelisreal/MIXXX2Rekordbox - small Python script that exports a MIXXX Library (From the SQLite DB) to an XML File that can be imported in Rekordbox. It is intended for Djays that use MIXXX as their main Djaying tool at home and want a quick and simple way to export their Library (including hotcues, Colorcoding, Playlists and Crates) to Pioneer Rekordbox so they can take all their work from MIXXX to the big stage and use it in Clubs and Venues on Pioneer Equipment.
- https://github.com/kimtore/rex - rekordbox exporter for Mixxx. Open source mixing or library software should be able to create Rekordbox compatible export files, so that they can be played on Pioneer equipment in venues all over the world. This project is my attempt at getting closer to this goal, and leans heavily on the work done by others.
- https://github.com/ssysm/mixxx_to_rb - Mixxx Playlist to Rekordbox Playlist
- https://github.com/johnjubes/xmleditor - Convert Rekordbox xml files to mixxx
Serato
- https://github.com/gdhgdhgdh/mixxx-to-serato - copy cuepoints from your Mixxx library so that Serato Pro will read them, and will copy any labels you've attached to each cue.
Playback helpers
- https://github.com/AnonymUnsichtbar/MIXXX-Harmonic-Autodj-with-Bass-adjustiment - Mixxx Script for the Autodj that adjusts the Bass while mixing to ensure that the drums of the current track are quiet while transitioning.
- https://github.com/MikeMorenoDSP/Hybrid-DJ-Set - Synchronize DJ software (Mixxx, with Pure Data for layering virtual instruments in a live performance.
- https://github.com/DomNomNomVR/mixxx-to-OSC - A bridge that shoves lighting info from mixx to OSC
- https://github.com/bencejuhaasz/sync_synth - Sync a MIDI Synth/Sequencer to Mixxx's BPM
- https://github.com/asaraco/legendarylandj - Legendary LAN DJ - server and client side applications for Mixxx interaction
- https://github.com/ViktorNova/mixxx-now-playing - Little script to help OBS / other apps display the currently playing track from Mixxx by writing "Artist - Songname" to a text file on a regular interval (Linux / Mac only).
- https://github.com/ssysm/mixxx-title-grabber-macos - Grab Mixxx's Title and Save to a file. (But for MacOS)
- https://github.com/carlesfelix/2mixxx - allows you to request songs to the DJ (guest user) or moderate song requests (DJ user). This application also allows DJs to have full control over the songs that can be requested by importing their iTunes libraries into the application.
- https://github.com/emvasilopoulos/ai_auto_dj - automates the process of mixing of songs, similarly to deejays.
- https://github.com/asaraco/mixxxphp - Mixxx AutoDJ request via PHP
Other helpers
- https://github.com/grufkork/touchosc-dj - Scripts and layouts for using TouchOSC as a DJ controller for Mixxx
- https://github.com/clayton14/mixxx2homeassistant - a python communication application used to allow mixxx to talk to smart-home devices via homeassisant
- https://github.com/fwcd/mixcloud-uploader - A small tool for uploading Mixxx recordings to Mixcloud, along with tracklists and optional artwork.
Standalone hardware
- https://github.com/freddykat/CDJ1000-Nexus-MOD - on-going project to create a skin for DJ software "MIXXX" to make a CDJ1000mk3 MIDI moded work as a Nexus CDJ2000 model
- https://github.com/LorenzoBalducci96/custom-cdj - A raspberry-pi Cdj project realized with the usage of mixxx for the audio software and Arduino Leonardo for input reading. The MIDI protocol is used for the communication between Arduino and the Raspberry.
- https://github.com/hfroot/pick-and-mixxx - Mini standalone DJ deck
- https://github.com/bencejuhaasz/Pioneered-Plus - Pioneer DJ-style extension pack for open source DJ software Mixxx (https://github.com/mixxxdj/mixxx, Turn your controller into a standalone deck with any linux-compatible device and a touch screen ! (https://www.youtube.com/watch?v=IkuiykgW858, https://www.youtube.com/watch?v=kyrJW7Vaf68) Big thanks Sven Boekelder, aka @timewasternl for creating the awesome skin I'm building on. (Only reason I'm not forking is new folder structure)
- https://github.com/fayaaz/mixxx-pi-gen - for the generation of a raspbian image for Mixxx.
- https://github.com/dennisdebel/pi_dj - Tips, configs and skins for DJ-ing using open source DJ software, a raspberry pi and a controller.
- https://github.com/alexus2033/Alphabeat-Controller - Arduino-Based MIDI-Interface for MIXXX DJ-Software
- https://github.com/oloturia/mixxx_controller - transform an Arduino Leonardo (or similar boards based on ATmega32u4, in a mixing console for open source Mixxx DJ software.
- https://github.com/chrneumann/teensy-midi-light - A program for a Teensy board to controll a WS2812b LED stripe for use with DJ mixing software like Mixxx.
- https://github.com/GorgiAstro/mixxx-rotary-encoder - allows using a KY-040 rotary encoder with Mixxx on a Raspberry Pi
- https://github.com/Elisheva-Shiri/adaptive-MIDI-controller - Adaptive MIDI controller based on Arduino & Mixxx
- https://github.com/Jikstra/dj-controller-mixxxfighter - A DIY DJ controller built from trash, aimed for mixxx
Development
- https://github.com/fwcd/mixxx-bisect - Small tool for finding Mixxx regressions on macOS and Windows by binary searching over prebuilt snapshots
- https://github.com/fwcd/m1xxx - Unofficial native Mixxx builds for macOS (Apple Silicon/Intel), and Linux
- https://github.com/xeruf/mixxxdb-kt - Kotlin accessors for the SQLite Library Database of the open DJing software Mixxx
BpmDj
- BpmDj - Free DJ tools contains an automatic & accurate BPM counter. Determines sound color, rythm & echo. The player provides measurejumps, persistent cue's and beatgraphs. The program requires multiple dsp's or computers. http://bpmdj.yellowcouch.org/
Data Jockey
- Data Jockey - largely centered around a database of music and information about this music. The music is provided by the user. The information about the music is gathered from audio file meta data (information from id3 tags), computed through feature extraction techniques, and also provided directly by the user. Numerical data items, usually computed, are referred to as 'descriptors'. Textual data items, usually provided by the user, are referred to as 'tags'. Tags allow users to provide their own organization schemes.
qmake make
deps:
- https://github.com/x37v/jackcpp
- boost
- yaml-cpp
ncmixer
- https://git.2f30.org/ncmixer/file/README.html - ncurses audio mixer for DJ'ing
DJPlay
- DJPlay - aims to be a high class live DJing application for Linux. old.
olaboola
- olaboola - cyber-shamanic noise-maker. oolaboola is a digital DJ tool. It allows you to mix .wav files in real-time modifying their rate of play, levels etc. Various facets of its behavior can be controlled via an rc file, environment variables, and command-line options. Settings provided by more than one of those override each other in that same order.
Development died in 2000
CatDeck
- https://github.com/COx2/CatDeck - DJ deck works as a VST effect plugin. Linux?
DJUCED
- DJUCED - This advanced, high-performance solution for DJs allows you to mix, remix and host parties with ease. Designed for experienced DJs, DJUCED nonetheless offers an ergonomic interface, performance assistance features and scalable content, ensuring a quick start-up and limitless creativity. DJUCED allows you to perform classic two-deck mixes, or to select a four-deck remix display, dedicated to performance.
Moire
- https://codeberg.org/Be.ing/moire - a new DJ application written in Rust with a DAW-like timeline interface.
Pioneer / Rekordbox
- rekordbox - DJ Software
- YouTube: Pioneer DJ CDJ-3000 Review - Every Feature In Detail + Full Demo - waveform example timestamp
- YouTube: Pioneer cdj-3000 connected to Rekordbox as a controller and midi map mixer to sort by bpm and key.
- https://github.com/gabek/supbox - This tool is for users of Pioneer's Rekordbox v6 to gain access to their currently playing track. This data can be used for any number of purposes, but a large one is online streaming of audio and video. Built-in support for OBS and Audio Hijack are included.
- https://github.com/Deep-Symmetry/dysentery - Exploring ways to participate in a Pioneer Pro DJ Link network
- https://github.com/Holzhaus/rekordcrate - library to parse device exports for the CDJ/XDJ series players (usually exported from the Pioneer Rekordbox DJ software), written in Rust. Note: This library is currently still under heavy development and might have breaking API changes in the future.
- https://github.com/mganss/CueGen - Create Rekordbox cue points from Mixed in Key cue points or Rekordbox phrases.
Serato
- https://github.com/Holzhaus/serato-tags - document the GEOB ID3 tags that the Serato DJ software uses to store its metadata.
Traktor
- https://github.com/0xf4b1/traktor-streaming-proxy - Allow Traktor DJ to stream music from YouTube, Spotify, and Tidal by faking Beatport's API
Stemgen
- Stemgen - a Stem file generator. Convert any track into a Stem and have fun with Traktor. A Stem file is an open, multi-channel audio file that contains a track split into four musical elements – bass, drums, vocals, and melody, for example. With each element available independently, you have more control over the music you play. Stemgen uses demucs to separate the 4 stems and ni-stem to create the Stem file.
remote-decks
- https://github.com/jonas-braun/remote-decks - A latency-aware DJ tool for remote collaborative music playing.
Vinyl
xwax
- xwax - an open-source Digital Vinyl System (DVS) for Linux. It allows DJs and turntablists to playback digital audio files (MP3, Ogg Vorbis, FLAC, AAC and more), controlled using a normal pair of turntables via timecoded vinyls. It's designed for both beat mixing and scratch mixing. Needle drops, pitch changes, scratching, spinbacks and rewinds are all supported, and feel just like the audio is pressed onto the vinyl itself. The focus is on an accurate vinyl feel which is efficient, stable and fast.
Digital-Scratch
- Digital-Scratch - a software that analyzes motions (rotation speed and direction) of a vinyl disc played by a turntable. It also provides a nice and simple player that play your favorite tracks allowing you to mix as you would do it with regular records.
terminatorX
- terminatorX - realtime audio synthesizer, allows “scratching” on digitally sampled audio data (*.wav, *.au, *.ogg, *.mp3, etc.) the way hiphop-DJs scratch on vinyl records. It features multiple turntables, realtime effects (buit-in as well as LADSPA plugin effects), a sequencer and MIDI interface – all accessible through an easy-to-use gtk+ GUI.
PiDeck
- PiDeck - digital music played old school. To use a PiDeck, plug in a USB stick containing audio files, select the track you want, and play the control record just as if it was analogue. That's all it does, the DJ skills are up to you. Pull out the USB stick and the next DJ can take over. We wanted to make a system which was simple, accessible and fun. It's the Joy of Decks.
Digital-Scratch
- Digital-Scratch - vinyl disc emulation software. analyzes motions (rotation speed and direction) of a vinyl disc played by a turntable.It also provides a nice and simple player that play your favorite tracks allowing you to mix as you would do it with regular records.Select a tune on the player and start your turntable.
Other
DiscoDOS
- https://github.com/JOJ0/discodos - command0line tool to help a DJ remember and analyze what they played in their sets, or what they could possibly play in the future. It's based on data pulled from a users Discogs record collection. Tracks can be organized into playlists and mix-transitions rated. Additionally the collection can be linked to the online music information services MusicBrainz and AcousticBrainz, thus further information (like musical key and BPM) is made available to the user.DiscoDOS primarily aims at the Vinyl DJ but features for "Hybrid-Vinyl-Digital-DJs" are planned
MadJACK
- MadJACK - a MPEG Audio Deck for the Jack Audio Connection Kit with an OSC based control interface. It was written as a backend for DJ music playback and is released under the GPL license.
4deckradio
- https://github.com/adiknoth/4deckradio - Multi-deck media playback for radio stations
rekordcrate
- https://github.com/Holzhaus/rekordcrate - library to parse device exports for the CDJ/XDJ series players (usually exported from the Pioneer Rekordbox DJ software), written in Rust.
Mobile apps
- http://bpmdj.yellowcouch.org/androiddj.html
- doesn't build from AUR atm
Speech synth
- https://github.com/dsheeler/DigitalDJ - An xmms2 and jack client that uses espeak to announce info upon song change.
Hardware
- https://github.com/EvanPurkhiser/prolink-go - This go library provides an API to the Pioneer PRO DJ LINK network. Providing various interactions and event subscribing.
- https://github.com/LorenzoBalducci96/custom-cdj - A raspberry-pi Cdj project realized with the usage of mixxx for the audio software and Arduino Leonardo for input reading. The MIDI protocol is used for the communication between Arduino and the Raspberry.
SC1000
- https://github.com/rasteri/SC1000 - portable digital scratch instrument which loads samples and beats from a USB stick. At less than the size of three stacked DVD cases, it’s probably the smallest integrated portablist solution ever. Despite this, the software and hardware have been carefully tuned and optimised, and it’s responsive enough for even the most complex scratch patterns.