-
Notifications
You must be signed in to change notification settings - Fork 0
CLAUDE
Jim Menard edited this page May 2, 2026
·
1 revision
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the GitHub wiki for KeyMaster, a JUCE-based C++ MIDI processing and patching application. The repository contains only Markdown documentation files — there is no source code, build system, or tests here.
Note: The wiki content was originally copied from an older wxWidgets/PortMidi version of KeyMaster. Some pages (particularly the Tutorial) still reference that older version and need to be updated for the JUCE rewrite.
KeyMaster routes and transforms MIDI data in real time. The core object model:
- Instrument — a named MIDI input or output port
- Song — a named, ordered list of patches; also holds tempo and clock settings
- Patch — a named collection of connections; has optional start/stop named messages sent on entry/exit
- Connection — links one input instrument to one output instrument; applies channel filtering/remapping, zone (key split), transpose, velocity curve, sysex filter, and controller mappings
- Set List — an ordered list of songs for performance; "All Songs" is a built-in, always-present set list
- Named Message — a stored list of MIDI bytes that can be sent via triggers or patch start/stop; sent to all outputs unchanged
- Trigger — watches for a MIDI message or function key and fires an action (next/prev song or patch, panic, send named message)
Project data is stored in SQLite databases (.km files).
| File | Content |
|---|---|
Home.md |
Overview, requirements, installation, running |
Components.md |
Full reference for all objects listed above |
Patches.md |
Detailed connection processing: channels, controller mappings, velocity curves, MIDI data flow |
Tutorial.md |
Step-by-step walkthrough (partially outdated — still uses text-based editing examples) |
Tips-and-Tricks.md |
Creative use patterns |
Screenshots.md |
Annotated main-window screenshot |
Changes.md |
Version history |
To-Do.md |
Known bugs and planned/desired features |
_Sidebar.md |
GitHub wiki navigation sidebar |
- Line length: wrap prose to 76–80 characters.
- All pages are GitHub-flavored Markdown.
- Inter-page links use GitHub wiki syntax:
[[PageName]]or[[PageName#anchor]]. - The sidebar (
_Sidebar.md) uses standard Markdown links, not wiki syntax. - Images live in
images/.
- Tutorial
- Components: songs, patches, connections
- Patches and connections
- Tips and Tricks
- Screenshots
- Changes between versions
- To Do list, including bugs and new features