Get Chordlock running on your system.
git clone https://github.com/kurogedelic/Chordlock.git
cd Chordlock
# Build CLI
g++ -std=c++17 -O2 -I./src -I./src/engines -I./src/interfaces \
-I./src/processors -I./src/utils src/cli_main.cpp src/Chordlock.cpp \
src/engines/EnhancedHashLookupEngine.cpp src/processors/VelocityProcessor.cpp \
-o build/chordlock -framework CoreMIDI -framework CoreFoundation
# Test installation
./build/chordlock -N 60,64,67 -k C
git clone https://github.com/kurogedelic/Chordlock.git
cd Chordlock
# Build with MSVC
cl /std:c++17 /O2 /I.\src /I.\src\engines /I.\src\interfaces \
/I.\src\processors /I.\src\utils src\cli_main.cpp src\Chordlock.cpp \
src\engines\EnhancedHashLookupEngine.cpp src\processors\VelocityProcessor.cpp \
/Fe:build\chordlock.exe
# Test installation
.\build\chordlock.exe -N 60,64,67 -k C
# Install Emscripten first
# https://emscripten.org/docs/getting_started/downloads.html
# Build WebAssembly module
emcc -std=c++17 -O2 -I./src -I./src/engines -I./src/interfaces \
-I./src/processors -I./src/utils src/chordlock_wasm.cpp src/Chordlock.cpp \
src/engines/EnhancedHashLookupEngine.cpp src/processors/VelocityProcessor.cpp \
-o web_app/chordlock.js -s EXPORTED_RUNTIME_METHODS='["ccall"]' \
-s MODULARIZE=1 -s EXPORT_NAME="ChordlockModule"
npm install -g @kurogedelic/chordlock-mcp
Add to your Claude Desktop configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"chordlock": {
"command": "npx",
"args": ["@kurogedelic/chordlock-mcp"]
}
}
}
Add to your Claude Code MCP settings:
{
"mcpServers": {
"chordlock": {
"command": "node",
"args": ["/path/to/Chordlock/chordlock-mcp/dist/index.js"]
}
}
}
FROM emscripten/emsdk:latest
WORKDIR /chordlock
COPY . .
# Build CLI
RUN g++ -std=c++17 -O2 -I./src -I./src/engines -I./src/interfaces \
-I./src/processors -I./src/utils src/cli_main.cpp src/Chordlock.cpp \
src/engines/EnhancedHashLookupEngine.cpp src/processors/VelocityProcessor.cpp \
-o build/chordlock
# Build WebAssembly
RUN emcc -std=c++17 -O2 -I./src -I./src/engines -I./src/interfaces \
-I./src/processors -I./src/utils src/chordlock_wasm.cpp src/Chordlock.cpp \
src/engines/EnhancedHashLookupEngine.cpp src/processors/VelocityProcessor.cpp \
-o web_app/chordlock.js -s EXPORTED_RUNTIME_METHODS='["ccall"]' \
-s MODULARIZE=1 -s EXPORT_NAME="ChordlockModule"
EXPOSE 3000
CMD ["./build/chordlock", "-h"]
Test your installation:
# CLI functionality
./build/chordlock -N 60,64,67 -k C
# Expected: C (confidence: 21.87) [I]
# Key context analysis
./build/chordlock -N 52,60,64,67,74 -k C
./build/chordlock -N 52,60,64,67,74 -k Em
# Should show different chord interpretations
# Degree generation
./build/chordlock -d "V7" -k C
# Expected: G7 [55, 59, 62, 65]
# WebAssembly (open in browser)
open web_app/index.html
Compilation errors:
g++ --version
WebAssembly build fails:
source /path/to/emsdk/emsdk_env.sh
emcc --clear-cache
MCP not working:
node --version
npx @kurogedelic/chordlock-mcp
MIDI not working (macOS):
-framework CoreMIDI
macOS:
Linux:
sudo apt-get install libasound2-dev
Windows: