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.
- β Core audio input/output using RtAudio.
- β Runtime selection of Audio API (ALSA, Pulse, JACK, Auto).
- β Note and Pitch detection.
- π οΈ Working on: GUI
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.
- 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
- π§ Linux: Primary Target
- β Windows: In progress
- π macOS: Contributions welcome (No current development plans)
git clone https://github.com/KoshysDev/OpenChordix.git
cd OpenChordix
chmod +x linux-build-setup.sh
./linux-build-setup.shArch (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 mesaUbuntu/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-devgit clone https://github.com/KoshysDev/OpenChordix.git
cd OpenChordixgit 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/bimggit 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 installmake -C external/bgfx linux-gcc-release64 -j$(nproc)cmake -B build -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=./external/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build -j$(nproc)./build/src/app/OpenChordixFrom a MinGW terminal:
git clone https://github.com/KoshysDev/OpenChordix.git
cd OpenChordix
windows-build-setup.batPrerequisites 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.
Contributions, bug reports, and feature suggestions are welcome! Please open an issue or submit a pull request.
-
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)
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.