A comprehensive editor application for the 12 Step foot controller, enabling users to configure presets, key sensitivities, CV calibration, expression pedal settings, and advanced MIDI routing.
The 12 Step Editor is a cross-platform Qt application that provides complete control over your 12 Step foot controller. Configure everything from individual key sensitivities to CV output routing, manage preset libraries, calibrate expression pedals, and update firmware.
- Preset Management: Create, edit, and organize performance presets
- Key Sensitivity Configuration: Individual per-key velocity and pressure settings with global on/off thresholds
- CV Calibration: Precise calibration of continuous voltage outputs (octave or per-note calibration)
- Expression Pedal Calibration: Define min/max values and response curves (linear, exponential, logarithmic)
- CV Output Routing: Configure CV out destinations and MIDI routing from the MIDI tab
- MIDI Configuration:
- Configure voice messages (Note, CC, Program Change, Bank MSB/LSB, Pitch Bend, Aftertouch)
- TRS MIDI output routing
- Program Change preset control (global setting for incoming PC, CC, NRPN commands)
- Firmware Updates: Built-in firmware update capability with bootloader installation
- Factory Reset Options: Reset CV calibration, key sensitivities, and restore factory presets
- Legacy Support: Backward compatibility with original 12 Step hardware (12 Step1)
- Cross-Platform Support: Native builds for macOS and Windows
- macOS: 10.14 (Mojave) or later
- Windows: Windows 10 or later
- Qt Framework: 6.2.1 or later (Qt 5.11.3+ for legacy macOS builds)
- Qt 6.2.1+ with Qt Creator (or Qt 5.11.3+ for legacy builds)
- C++17 compatible compiler
- qmake
Download the latest release for your platform from the Muse Kinetics downloads page.
-
Clone the repository:
git clone https://github.com/Muse-Kinetics/12-step-editor-qt6.git cd 12-step-editor-qt6 -
Install Qt:
- Modern builds (macOS 10.14+, Windows 10+): Download Qt 6.2.1+ from Qt.io
- Legacy builds (macOS 10.11-10.13): Use Qt 5.11.3
- Ensure Qt Creator and development tools are installed
-
Build the application:
# Using Qt Creator (recommended) # Open QT/12StepEditor.pro in Qt Creator and build # Using command line with qmake cd QT qmake make
-
Platform-specific build options:
- macOS Universal Binary (M1/Intel): Built automatically with Qt 6.2.1+ (requires macOS 10.14+)
- macOS Legacy Intel: Built with Qt 5.11.3 (supports macOS 10.11-10.13)
- Windows: Additional deployment steps create installer automatically when DEPLOY flag is set in .pro file
The Signing and Notarization directory contains a shell script to:
- Deploy the macOS binary and content into a DMG file
- Code sign the application
- Notarize with Apple for distribution
- An Apple developer ID is required
cd "Signing and Notarization"
./build_sign_package_mac.shWindows deployment is built into the Qt .pro file, which creates a Windows installer automatically. The win-build directory contains:
packages/: Qt Installer Framework package configurationconfig/: Qt Installer Framework configuration scripts
To enable deployment, you must add a build step called "DEPLOY" and ensure the DEPLOY = 1 flag is uncommented in 12StepEditor.pro.
- Connect your 12 Step controller via USB
- Launch the 12 Step Editor
- The application will automatically detect your device
Port Names:
- 12 Step2: "12 Step Control Surface", "12 Step TRS MIDI Out", "12 Step CV Out"
- Legacy 12 Step1: "12 Step Port 1", "12 Step Port 2"
- Load Presets: Access factory and user presets from the preset library
- Edit Settings: Modify key sensitivities, CV routing, MIDI configuration, and global parameters
- Save Changes: Store your modifications to device memory
- Backup/Restore: Export and import preset configurations
Hardware menu → CV Calibration
- Octave Calibration: Set 6 values per CV output (0V, 1V, 2V, 3V, 4V, 5V)
- Note Calibration: Calibrate every note individually for precise tuning
Hardware menu → Expression Pedal Calibration
- Define min/max values to scale expression pedal input to output
- Choose response curve: Linear, Exponential, Logarithmic, etc.
- Global setting applied before preset modulation lines
Settings Tab → Key On/Off Thresholds
- On Threshold: Pressure required to trigger a key (higher = less sensitive, reduces unintended notes)
- Off Threshold: When an active key turns off
- Higher setting: Prevents stuck keys, allows rapid playing
- Lower setting: Prevents double triggering
- Auto-scaling: Key pressure automatically calibrates based on peak values since power-on
Hardware menu → Factory Reset
- Reset CV calibration values
- Reset key sensitivities to defaults
- Restore factory presets
File menu → Load Firmware
- Select firmware file from the
Content/Firmware/directory - Follow on-screen prompts for bootloader installation (may require unplugging device)
- Firmware update throttled to 256 bytes every 4ms for stability
QT/ # Main application source
├── inc/ # Include files
│ ├── KMI_KMDM/ # KMI MIDI Device Manager (submodule)
│ └── rtmidi/ # RtMidi library (submodule)
├── mainwindow.cpp/h # Main application window
├── 12StepEditor.pro # Qt project file
Content/ # Application resources
├── Firmware/ # Firmware files
├── Icons/ # UI graphics and icons
├── 12 Step Legacy Presets/ # Factory presets for 12 Step1
├── Ableton Scripts/ # Ableton Live integration
└── Bitwig/ # Bitwig Studio integration
Signing and Notarization/ # macOS code signing scripts
win-build/ # Windows installer configuration
├── packages/ # Qt Installer Framework packages
└── config/ # Qt Installer Framework config
The .pro file includes several build flags:
DEPLOY = 1: Enable deployment steps (code signing, installer creation)BUILD_CONSOLE = 1: Build console version for debuggingINCLUDE_QML = 1: Add qmldir option for Qt deployment if project includes QML
The project includes automated code signing and notarization scripts for macOS distribution. Ensure you have:
- Valid Apple Developer ID certificate
- App-specific password for notarization
- Configured environment variables for signing
- 12 Step2: Uses modern USB MIDI driver (same as latest KMI products)
- Legacy 12 Step1: Uses original port names for backward compatibility with older editors
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly on both platforms and with both hardware versions (12 Step1 and 12 Step2)
- Submit a pull request
Current version: 3.0.5 (Editor), 1.0.4 (Firmware)
See CHANGELOG.md for complete version history and release notes.
- Added global key on/off thresholds to settings tab
- Reduced key-on latency and improved key sensitivity
- Auto-scaling key pressure calibration
- Bug fixes for over-indexing error
- Complete UI overhaul for 12 Step2
- Added CV Output routing controls
- Added Expression Pedal Calibration
- Added CV Calibration (octave and per-note)
- New USB MIDI driver with modern port names
- Added Bank MSB messages for each voice
- Program Change preset control
- Presets now stored in OS Application Data Directory
12 Step is currently available for sale through Muse Kinetics with a one year warranty that includes customer support, however this source code is provided as-is with no warranty. For product support please visit https://support.musekinetics.com. For feature requests or bug reports, please create an issue in this repository and encourage other open source developers to assist you.
The 12 Step Editor is distributed under the Mozilla Public License 2.0 (MPL-2.0). You may use, modify, and redistribute the source as long as each modified source file continues to carry the MPL notice and the file is made available under the MPL. See LICENSE for the complete terms.
Unless otherwise noted, all contributions are accepted under the MPL-2.0 with the header:
// Copyright (c) 2025 KMI Music, Inc.
// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
// If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.This application is built using the Qt framework, which is available under the GNU Lesser General Public License (LGPL) v3.
- Qt Website: https://www.qt.io/
- Qt Open Source License: LGPL v3
- Qt Source Code: https://www.qt.io/download-open-source
- Qt License Details: https://www.qt.io/licensing/open-source-lgpl-obligations
The 12 Step Editor application dynamically links with Qt libraries and does not modify the Qt framework source code. Users have the right to obtain, modify, and redistribute the Qt libraries under the terms of the LGPL v3 license.
The Qt framework is licensed under LGPL v3, which allows:
- Use in both open source and commercial applications
- Dynamic linking without affecting your application's license
- Distribution of Qt libraries alongside your application
For complete LGPL v3 license terms, see: https://www.gnu.org/licenses/lgpl-3.0.html
This application uses the RtMidi library for cross-platform MIDI I/O.
- RtMidi Website: https://www.music.mcgill.ca/~gary/rtmidi/
- License: MIT-style license
- Source Code: Available in
QT/inc/rtmidi/