A lightweight, low-latency, command-line based Isomorphic Keyboard synthesizer for Windows.
一款适用于 Windows 的轻量级、低延迟、命令行同构键盘合成器。
Check out the 📖 快速上手指南 (QuickStart) for detailed controls and operation tips!
An isomorphic keyboard arranges notes in a consistent geometric pattern, making chords and scales maintain the same shape regardless of the musical key. TinyKeys maps a standard QWERTY keyboard into a 4-row isomorphic layout, turning your computer keyboard into a expressive musical instrument.
This project is built upon TinySoundFont (tsf) and miniaudio. Special thanks to Bernhard Schelling for creating TinySoundFont, and David Reid for miniaudio, which made this project possible.
- Consistent Fingerings: The 4-row layout ensures that intervals and chord shapes remain identical across all keys.
- Full Polyphony: Supports playing multiple notes simultaneously with high responsiveness.
- Customizable Base: Each row's starting pitch can be individually configured.
- Real-time Feedback: Visualizers for LFO (Vibrato/Tremolo) and Delay feedback.
- Dynamic Keyboard Display: A visual representation of the keyboard that lights up during performance.
- Integrated Settings: Access and modify synthesis parameters directly within the terminal.
- ADSR Envelope: Fully adjustable Attack, Decay, Sustain, and Release.
- SYNTH Filter Layer: Adds a resonant low-pass stage with
LP(cutoff) andQcontrols for musical sweep effects. - Modulation: Built-in Vibrato (with optional Rise time) and Tremolo effects.
- Tape Echo: A high-quality Delay effect with adjustable feedback, saturation, and modulation.
- Registry-Based System: A robust internal data-driven architecture for managing parameters.
- Instant Persistence: Save current parameters to a configuration file at any time.
- CLI Support: Override settings or load specific presets directly via command-line arguments.
- Wheel Routing: Mouse wheel input can control the selected parameter, or be assigned to
Gain/Vol/Cutoffwith adjustable sensitivity.
- Post-FX Master Volume:
Masternow works as a true output-stage gain, so held notes react immediately to volume changes. - SYNTH Row: The second settings row now combines
A, D, S, R, LP, Qfor faster tone shaping. - Wheel Row: A dedicated
Wheelrow providesAssignandSensefor live gesture control.
This project is written in standard C11 and is designed for Windows (utilizing Windows API for low-latency async key polling).
- A Windows environment.
- MinGW-w64 or MSYS2 with
gccinstalled. - CMake (Optional, for CMake build method).
Simply open your terminal in the project root and run:
Bash
make
This will compile the source files and output TinyKeys.exe.
Bash
mkdir build
cd build
cmake ..
cmake --build .
This project is licensed under the MIT License.