Skip to content

KoshysDev/OpenChordix

Repository files navigation

OpenChordix

GitHub repo size GitHub last commit License: GPL v3

An open-source, cross-platform game/tool inspired by Rocksmith for learning guitar and bass using real-time pitch detection. Without sound detection setting up pain.

Current Status (🌱 Early Development)

  • βœ… Core audio input/output using RtAudio.
  • βœ… Runtime selection of Audio API (ALSA, Pulse, JACK, Auto).
  • βœ… Note and Pitch detection.
  • πŸ› οΈ Working on: GUI

Key Features Roadmap πŸš€

The project aims to implement the following major features incrementally:

  • πŸ”Š Core Audio Processing: Robust real-time audio handling & low latency.
  • 🎧 Pitch Detection: Accurate fundamental frequency detection.
  • πŸ–₯️ Graphical Interface: Windowing, menus, settings UI.
  • 🎸 Visual Tuner: Clear and responsive tuning mode.
  • 🎼 Note Highway & Gameplay: Scrolling notes, hit detection, scoring.
  • πŸ“ƒ Song Format & Management: Loading songs (potential Guitar Pro import).
  • πŸ›  Training Tools: Speed control, section looping.
  • 🎢 (Stretch) Tone Designer: Advanced amp/effect simulation.
  • πŸ’» Cross-Platform: Windows compatibility.

Technology Stack πŸ› οΈ

  • Core Language: C++20
  • Build System: CMake (>= 3.19.8)
  • Dependency Manager: vcpkg
  • Real-time Audio: RtAudio (6.x)
  • Pitch Detection: Aubio (0.4.x)
  • Graphics/Windowing: BGFX (1.129.x) + GLFW (3.4)
  • UI: Dear ImGui
  • Image Loading: stb

Platform Support πŸ’»

  • 🐧 Linux: Primary Target
  • ⊞ Windows: In progress
  • 🍎 macOS: Contributions welcome (No current development plans)

Building πŸ—οΈ

Linux setup + build

git clone https://github.com/KoshysDev/OpenChordix.git
cd OpenChordix
chmod +x linux-build-setup.sh
./linux-build-setup.sh

Linux manual setup + build

1) Install system packages

Arch (example):

sudo pacman -Syu --needed base-devel cmake git pkgconf \
  autoconf autoconf-archive automake libtool \
  nasm yasm \
  alsa-lib libpulse libxinerama libxcursor libxrandr libxkbcommon \
  xorg-server-devel mesa

Ubuntu/Debian (example):

sudo apt-get update
sudo apt-get install -y build-essential cmake git pkg-config \
  autoconf autoconf-archive automake libtool \
  nasm yasm \
  libasound2-dev libpulse-dev \
  libxinerama-dev libxcursor-dev libxrandr-dev \
  libxkbcommon-dev xorg-dev libglu1-mesa-dev

2) Clone the project

git clone https://github.com/KoshysDev/OpenChordix.git
cd OpenChordix

3) Fetch bgfx/bx/bimg sources

git clone --depth 1 https://github.com/bkaradzic/bgfx.git external/bgfx
git clone --depth 1 https://github.com/bkaradzic/bx.git external/bx
git clone --depth 1 https://github.com/bkaradzic/bimg.git external/bimg

4) Bootstrap vcpkg and install deps

git clone --depth 1 https://github.com/microsoft/vcpkg.git external/vcpkg
VCPKG_DISABLE_METRICS=1 ./external/vcpkg/bootstrap-vcpkg.sh
VCPKG_DISABLE_METRICS=1 ./external/vcpkg/vcpkg install

5) Build bgfx (Release)

make -C external/bgfx linux-gcc-release64 -j$(nproc)

6) Configure + build

cmake -B build -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_TOOLCHAIN_FILE=./external/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build -j$(nproc)

Output

./build/src/app/OpenChordix

Windows

From a MinGW terminal:

git clone https://github.com/KoshysDev/OpenChordix.git
cd OpenChordix
windows-build-setup.bat

Prerequisites on PATH: git, cmake, g++, and mingw32-make (or make). The setup script auto-detects your MinGW root from g++ and passes it to bgfx makefiles.

Contributing ❀️

Contributions, bug reports, and feature suggestions are welcome! Please open an issue or submit a pull request.

Known Issues / Bugs

  • BGFX on Hyprland (Wayland)
    BGFX may fail to start a native window session under Hyprland.

    Workaround: build with Wayland support enabled:

    cmake -B build -DCMAKE_BUILD_TYPE=Release \
      -DOPENCHORDIX_ENABLE_WAYLAND=ON \
      -DCMAKE_TOOLCHAIN_FILE=./external/vcpkg/scripts/buildsystems/vcpkg.cmake
    
    cmake --build build -j$(nproc)
    

License πŸ“œ

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.

About

An open-source, cross-platform game inspired by Rocksmith

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors