Giter Club home page Giter Club logo

lyndj's Introduction

LynDJ

LynDJ is a desktop application designed for playing music for an audience. In particular, it is specialised to playing music for Lindy Hop socials. This DJ software allows playback of music easily and safely, and provides extra control and information for what is important for swing dancing.

Screenshot of the main interface

Main features

  • A graphical interface with a thematic design.
  • The interface is designed to prevent accidentally starting/stopping playback, for use with fiddly touch pads.
  • Select music from your library, and create a playlist.
  • Control volume for playback, and store these volume changes for future play-throughs of that track.
  • Track metadata on tracks such as BPM, recording age, style, energy level and when it was last played.
  • Sort your library by any metadata.
  • Set an end time for your session and get a warning when that time is approaching.
  • A frequency spectrograph to visualise upcoming musical cues.
  • Toggling between mono and stereo, for use with bad speaker set-ups.
  • An Auto-DJ will suggest the next track to play.
  • Trim silence from tracks automatically, or manually cut from the start or end of each track.

Support

This application is supported on:

  • Windows 10 or newer
  • Any Linux installation with Glibc 2.31 or newer

The file formats supported are:

  • WAV
  • MP3
  • FLAC
  • OGG/Vorbis
  • OGG/Opus

Installation

There are several ways to install this application onto your computer. This outlines your options, from easy to hard. Each option includes instructions for various platforms. If your platform is not listed, please select the most similar platform (e.g. for Arch Linux, installation is probably similar to Ubuntu). Note that the instructions are written for a clean installation of the operating system. You might already have some of the prerequisites installed.

AppImage: Ubuntu 22.04
  1. Download the latest AppImage file from the releases of this repository.
  2. Make the downloaded file executable by right-clicking on it, selecting "Properties" and under the "Permissions" tab checking the checkbox for "Allow executing file as program". Close the properties window.
  3. Double-click the AppImage file in order to launch the application.
Installer: Windows 10
  1. Download the latest installer from the releases of this repository.
  2. Double-click the downloaded file to launch the installer.
  3. Progress through the steps outlined by the installer. It will ask you where to install the application. For the default location in Program Files, administrator rights will be needed.
  4. At the end of the installation process, find the application in your start menu to launch it.
From source: Ubuntu 22.04
  1. Install system dependencies. To do this, open a terminal (Ctrl+Alt+T) and type the following:
sudo apt install python3-pip git portaudio19-dev
  1. Download the source code of LynDJ.
git clone https://github.com/Ghostkeeper/LynDJ
cd LynDJ
  1. Install LynDJ's Python dependencies.
python3 -m pip install -r requirements.txt
  1. You can now run the application from the terminal inside of this directory, by executing:
python3 lyndj.py
From source: Windows 10
  1. Install Python. Visit python.org and download the latest version of Python for Windows, using the installer. Run the installer to install Python. It is suggested to check the option "Add python.exe to PATH".
  2. Install Visual Studio Build Tools. Visit its download page and download the build tools. Run the installer. Select the "Desktop development with C++" package. Once installation is completed, you can close the installer.
  3. Install Git. Visit git-scm.com and download the latest version of Git for Windows. Run the installer to install Git. At the last screen of the installer, check that you wish to launch the Git terminal.
  4. Open a Git terminal. Navigate to a directory where you want to download LynDJ to, and download LynDJ, by typing the following:
git clone https://github.com/Ghostkeeper/LynDJ
  1. Open a normal terminal as well (press Windows key, then type cmd). Navigate to the LynDJ folder that was just created by Git. Install LynDJ's dependencies by executing:
python -m pip install -r requirements.txt
  1. You can now run the application from the terminal inside of this folder, by executing:
python lyndj.py

Usage

For usage instructions, please refer to the documentation.

Build

If you wish to modify this application, you can run the application from the source code as outlined above. However to distribute your modifications you can also create a build, which will make it easier for other people to install the application with your modifications. These are instructions to create a release build of this software.

Ubuntu 22.04
  1. Install Git in order to download the source code. To do this, open a terminal (Ctrl+Alt+T) and type the following:
sudo apt install git
  1. Download the source code of LynDJ.
git clone https://github.com/Ghostkeeper/LynDJ
cd LynDJ
  1. Run the script that generates an AppImage:
packaging/ubuntu.sh
  1. Test the application by running the AppImage that was generated.
chmod +x LynDJ.AppImage
./LynDJ.AppImage
Windows 10
  1. Install Python. Visit python.org and download the latest version of Python for Windows, using the installer. Run the installer to install Python. It is suggested to check the option "Add python.exe to PATH".
  2. Install Visual Studio Build Tools. Visit its download page and download the build tools. Run the installer. Select the "Desktop development with C++" package. Once installation is completed, you can close the installer.
  3. Install Git. Visit git-scm.com and download the latest version of Git for Windows. Run the installer to install Git. At the last screen of the installer, check that you wish to launch the Git terminal.
  4. Open a Git terminal. Navigate to a directory where you want to download LynDJ to, and download LynDJ, by typing the following:
git clone https://github.com/Ghostkeeper/LynDJ
  1. Install the NSIS installer software. Visit sourceforge.io and download the latest version of NSIS, using the installer. Run the installer to install NSIS.
  2. Open a normal terminal (press Windows key, then type cmd). Navigate to the LynDJ folder that was created by Git. Then run the script that generates an installer:
packaging/windows.bat
  1. You should now have an installer called LynDJ-installer.exe. Test it by installing LynDJ and running the application it installs.

lyndj's People

Contributors

ghostkeeper avatar

Stargazers

JonnyTrulove avatar Andrew Merizalde avatar Stefano Serioli avatar

Watchers

James Cloos avatar  avatar  avatar

lyndj's Issues

MacOS support

Problem statement

One of my friends wants to use this application but is using MacOS. He cannot easily install or run the software.

Requested solution

A .dmg file should be created with every release that allows the user to run this software on MacOS.

The MacOS release should support both x64 and ARM processors. It is acceptable to limit the MacOS version compatibility to reasonably modern MacOS versions only.

Manual adjustment of start/end trimming

Problem statement

LynDJ currently trims off silent parts of the audio at the start and end of each track. However some tracks feature parts that I'd like to cut off even if they are not silent. Perhaps they have some talk at the start, or a lengthy applause at the end. I'd like to be able to remove these.

Requested solution

The silence trimming is currently performed on the audio data itself. Instead, it should be computed and stored as timestamps and added as metadata to the tracks. Each track gets a start-timestamp and end-timestamp beyond which the audio gets cut off. When playing the track, it starts playing at the start-timestamp and keeps playing until the end-timestamp is reached.

The audio data is then left unchanged. This means that the Fourier images will include the cut off audio data as well (so they need to be regenerated).

The interface needs to get a new interaction element above or below the Fourier image in the player section. With this, you should be able to adjust the start and end trims. I'd suggest adding little triangles below the Fourier image where the horizontal line is drawn for the playback progress, and making those triangles draggable. The triangles are to resemble something like a caliper. The triangles cannot be dragged further than each other (so the start trim cannot be after the end trim).

The default position of the start and end trims should automatically be calculated based on silence, as it is now. So by default, nothing changes for the user. If the user decides to adjust them, they can reset the trim by right-clicking on them.

Equalizer

Problem statement

With some of the tracks I'm playing, the beat is hard to hear. For instance, the beat could be prominently played by the hi-hat of the drum kit, but the recording is so old that the high frequencies are hard to hear in the room. But then with other tracks the trumpets are so loud that I'm afraid it's causing loss of hearing for people dancing near the speakers.

I could solve this by applying an equalizer to the music. My mixing panel has a built-in hardware equalizer that works well to turn down the highs against loud trumpets, or turn up the lows in order to make the beat on the double bass more audible, etc. However this requires me to be on the nose and on time with adjusting the volumes.

I could also solve this by baking in effects into the audio files. However this makes me too late to change the music while it's playing. I couldn't adjust the trumpets on the evening that I'm hearing the problem. Moreover it's cumbersome and changes the audio files resulting in quality loss.

Requested solution

I'd like LynDJ to feature an equalizer of sorts. These are the requirements of what I'd like to see:

  • The equalizer needs to feature at least 3 channels: Lows, mids and highs.
  • Preferably this equalizer is adjusted via the main interface similar to the main volume.
  • The changes to the equalizer need to be remembered in time, similar to the volume, and played back the next time the track plays.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.