Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Rliop913/Project-DJ-Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project-DJ-Engine

This project is a DJ/rhythm game engine written in C++. All sources live under include/.

Document

See document Website

Building

Prerequisites:

  • C++20 compatible compiler
  • CMake 3.12 or later
  • SWIG
  • OpenSSL
  • Conan

To build the engine:

on linux & macos

bash ./BuildInitwithConan.sh . Release
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="../conan_cmakes/conan_toolchain.cmake" -DPDJE_DYNAMIC=OFF #to get dynamic library, change here
cmake --build . --parallel #add your maximum number of cores

on windows

./BuildInitwithConan.bat . static Release
::to get dynamic library, change static into dynamic
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="../conan_cmakes/conan_toolchain.cmake" -DPDJE_DYNAMIC=OFF #to get dynamic library, change here
cmake --build . --config Release --parallel #add your maximum number of cores

⚠️ WARNING
To change the build type (Debug/Release) or switch between static and dynamic builds,
you must re-run the BuildInitwithConan script with the new options.
Otherwise, Conan dependencies may not be configured correctly.

If you plan to build Swig binding, you should use dynamic build on windows. static build may cause link errors.

Dependencies

This project uses the following dependencies, which are automatically fetched using FetchContent or Conan:

  • miniaudio: Audio playback and capture library.
  • highway: High-performance SIMD library.
  • CapnProto: Serialization library.
  • nlohmann/json: JSON for Modern C++.
  • sqlite3: SQL database engine.
  • cppcodec: Header-only C++11 library for encoding/decoding schemes.
  • annoy: Approximate Nearest Neighbors Oh Yeah.
  • spdlog: Fast C++ logging library.
  • libgit2: Git core library.
  • rocksdb: A library that provides an embeddable, persistent key-value store for fast storage.
  • SoundTouch: Audio processing library.
  • Faust language: Functional Programming Language for Real Time Signal Processing

Generating Documentation

Documentation is produced using Doxygen and Sphinx. Ensure both tools are available in your PATH, then run:

bash DOCUMENT_GENERATOR.sh

The resulting HTML documentation will appear in the docs/ directory.