Skip to content

bitklavier/bitKlavier2

Repository files navigation

bitKlavier: the prepared digital piano

Developed by Dan Trueman, Michael Mulshine, Matt Wang and Davis Polito, with Theo Trevisan, Katie Chou, Jeff Gordon, Camy Streuly, and Myra Norton.

DOI

bitKlavier takes inspiration from John Cage's prepared piano, but instead of screws and erasers we place a reconfigurable collection of digital machines between the virtual strings of the digital piano. Learn more at the bitKlavier website.

NOTE: bitKlavier2 is the GitHub Repository name for bitKlavier versions 4 and higher, and was completely rewritten in 2025-26, superceding the prior version (which ran through 3.5)

Development Setup

Prerequisites

  • CMake 3.25 or higher
  • C++20-capable compiler
  • Xcode (macOS) — required for AU/AUv3 targets and code signing
  • Git with submodule support

Cloning

Clone with submodules to pull in JUCE and other git-tracked dependencies:

git clone --recurse-submodules https://github.com/bitklavier/bitKlavier2.git

If you've already cloned without submodules:

git submodule update --init --recursive

Building

In CLion, reload the CMake project after any change to the VERSION file (Tools → CMake → Reload CMake Project), then select the desired target from the target selector.

Otherwise, configure and build from the project root:

# Configure (Debug)
cmake -B cmake-build-debug -DCMAKE_BUILD_TYPE=Debug

# Build a specific target
cmake --build cmake-build-debug --target bitKlavier_Standalone
cmake --build cmake-build-debug --target bitKlavier_AU
cmake --build cmake-build-debug --target bitKlavier_VST3

With COPY_PLUGIN_AFTER_BUILD enabled (the default), built plugins are automatically copied to:

  • AU: ~/Library/Audio/Plug-Ins/Components/
  • VST3: ~/Library/Audio/Plug-Ins/VST3/

External Libraries

Dependencies live in two places:

modules/ — JUCE-format modules, included via juce_add_module:

third_party/ — libraries included via CMake add_subdirectory:

  • chowdsp_utils — parameter management, DSP utilities, preset system, and GUI helpers; this is a core dependency throughout the codebase
  • melatonin_inspector — interactive UI component inspector; note that some features are limited due to OpenGL rendering
  • tracktion_engine — selected utility files from Tracktion Engine (not the full library)
  • juce-toys — LLDB helpers (juce_lldb_xcode.py) for more readable JUCE types in the debugger
  • sfzq — SoundFont player
  • freeverb3 — freeverb3 reverb implementation

JUCE/JUCE 8 framework, included as a git submodule.

https://git-lfs.com

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors

Generated from sudara/pamplejuce