Skip to content

I abbandoned this project, I'm going to implement the same idea with a desktop web-based architecture and Java is an extra step due to existence of Essentia.js; thus, C++ is not necessary.This is a toolkit for analyzing songs, extract BPM, key, scale, song structure and suggest CUE points.

Notifications You must be signed in to change notification settings

ImSeenOne/dual-toolkit-java-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Project Setup and Execution Guide

Project structure

dual-sw/
├── src/
│   ├── main/
│   │   ├── cpp/
│   │   │   ├── src/
│   │   │   │   ├── Dual.cpp
│   │   │   ├── compile.sh
│   │   ├── java/
│   │   │   ├── com.caveman.dual
│   │   │   │   ├──DualApplication.java
│   │   ├── resources/ 
│   │   │   ├── lib/                 ### C++ compiled binaries destination folder
│   │   │   ├── logback.xml
├── pom.xml
├── README.md

Instalation instructions

Linux

Prerrequisites:

  • C++ compiler (e.g., g++)
  • Java Development Kit (JDK) 17
  • Maven build system

Step 1: Install Dependencies

Before building Essentia, install the necessary dependencies:

sudo apt-get update
sudo apt-get install -y build-essential libfftw3-dev libavcodec-dev libavformat-dev libavutil-dev libyaml-dev libtag1-dev

Step 2: Build and Install Essentia

  1. Clone Essentia Repository:

    git clone https://github.com/MTG/essentia.git
    cd essentia
  2. Configure with waf:

    ./waf configure --mode=release --build-static --with-python --with-cpptests --with-examples --with-vamp
  3. Build Essentia:

    ./waf
  4. Install Essentia:

    sudo ./waf install

    This installs Essentia into /usr/local/lib and /usr/local/include/essentia. Please make sure this has happened, depending on the Linux distro you have it may happen or not. If not, just move the files to the needed folders.

Step 3: Build and Run the Java Application

  1. Build the Project: Compile your Java and native code with Maven:

    mvn clean install
  2. Build classpath: You are gonna have to know where to get the resources when you compile it, to achieve this, run:

    mvn dependency:build-classpath -Dmdep.outputFile=classpath.txt

    to build your whole classpath for the java project.

  3. Run the Java Application: Execute Dual Toolkit:

    mvn exec:java # TODO: FIX THIS, NOT WORKING PROPERLY

    OR

    java -Djava.library.path=src/main/resources/lib -cp target/classes:$(cat classpath.txt) -verbose:class com.caveman.dual.DualApplication

About

I abbandoned this project, I'm going to implement the same idea with a desktop web-based architecture and Java is an extra step due to existence of Essentia.js; thus, C++ is not necessary.This is a toolkit for analyzing songs, extract BPM, key, scale, song structure and suggest CUE points.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published