Skip to content

jrosener/digitalscratch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Digital-Scratch

A vinyl turntable emulation software for DJ

Digital-Scratch is a free software for DJs. It analyzes motions (rotation speed and direction) of a vinyl disc played by a turntable. It also provides a nice and simple player that play digital tracks allowing you to mix as you would do it with regular records.

In other words: with Digital-Scratch you can mix your digital music track collection with regular vinyl turntables.

Requirements

  • Up to 3 timecoded vinyl disc, (Serato Scratch Live, Final Scratch,...)
  • Up to 3 vinyl turntables and a mixer
  • A GNU/Linux or MS Windows computer (not supported anymore)
  • A sound card driven by JACK a stereo input/output for each turntable
  • An optionnal external Novation Dicer controller

Software architecture

The core motion detection is done by an SDK built as a shared library: libdigitalscratch. It can be integrated with various kind of controlable software player.

There is also a player which uses the library: digitalscratch. This player is able to play one or two tracks. The playback parameters (speed and direction) could be changed in real time. It also provides a file explorer for music track management.

Software dependencies

libdigitalscratch (motion detection) is based on:

digitalscratch (audio player) is based on:

Install

Ubuntu

sudo add-apt-repository ppa:julien-rosener/digitalscratch
sudo apt-get update
sudo apt-get install digitalscratch

Debian 10 (as root)

apt-get install software-properties-common
wget -qO - http://www.digital-scratch.org/debian/julien.rosener@digital-scratch.org.gpg.key | apt-key add -
add-apt-repository "deb http://www.digital-scratch.org/debian/ stable main"
apt-get update
apt-get install digitalscratch

MS Windows

Go to the download page: http://www.digital-scratch.org/download.html

Build

GNU/Linux

Install build tools (Ubuntu 24.04)

sudo apt install build-essential \
  qtmultimedia5-dev libqt5multimedia5-plugins qtbase5-dev qtbase5-dev-tools \
  libjack-jackd2-dev libasound2-dev \
  libsamplerate0-dev \
  libfftw3-dev cmake \
  libavformat-dev libavcodec-dev libavutil-dev libswresample-dev

Install build tools (Debian 10), as root

apt-get install software-properties-common
wget -qO - http://www.digital-scratch.org/debian/julien.rosener@digital-scratch.org.gpg.key | apt-key add -
add-apt-repository "deb http://www.digital-scratch.org/debian/ stable main"
apt-get update
apt-get install build-essential git \
  qt5-default qtmultimedia5-dev \
  libjack-jackd2-dev libasound2-dev \
  libsamplerate0-dev \
  libkeyfinder-dev \
  libavformat-dev libavcodec-dev libavutil-dev libswresample-dev

Compile and install libkeyfinder

git clone https://github.com/mixxxdj/libkeyfinder.git
cd libkeyfinder
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF -S . -B build
cmake --build build
sudo cmake --install build

Compile and install libdigitalscratch

cd libdigitalscratch
qmake
make
sudo make install

Compile and install digitalscratch player

cd ../digitalscratch
qmake
make
sudo make install

MS Windows (not supported anymore)

Install build environment

Compile libdigitalscratch and digitalscratch player

  • Start Qt Creator.
  • Load project libdigitalscratch.pro and digitalscratch.pro.
  • For each projects, use the build kit which uses the compiler from Visual Studio 2013 Community.
  • For libdigitalscratch set the output directory to libdigitalscratch\ (Debug and Release build configuration).
  • For digitalscratch set the output directory to digitalscratch\ (Debug and Release build configuration).
  • For both projects (starting from libdigitalscratch), right click on the project name, then "Run qmake", then "Build".

License

Digital-Scratch player and library are released under GNU GPL license.