Cross-platform Korg PCG file editor - A complete Python rewrite of the original PCG Tools.
All core features have been implemented, tested, and verified on hardware. The application is ready for daily use.
Latest Updates:
- β GM2 Banks Support - View all 10 GM2 banks (g(1)-g(9), g(d)) with 1,280 programs
- β Read-Only ROM Banks - Proper handling of ROM banks with copy support
- β GUI Consolidation - Single Qt-based GUI (removed legacy tkinter editors)
- β Complete setlist support - All 16 setlists with 128 slots each
- β Working PCG writer - Confirmed on Korg Kronos 2 hardware
- β Full slot editing - Names, colors, transpose, volume, notes
- β Modern interface - Single Qt-based GUI with native look and feel
- β Hardware tested - Confirmed working on Korg Kronos 2
- β GM2 Banks - View all 10 GM2 banks with 1,280 programs (read-only)
- β ROM Bank Protection - Cannot accidentally edit ROM banks
- β Edit setlist names - All 16 setlists supported
- β Edit slot properties - Names, colors, text sizes, transpose, volume, notes
- β Patch name lookup - Shows actual program/combi names for each slot
- β Edit patches - Modify program and combi properties
- β Copy and paste - Patches and setlist slots (including from ROM banks)
- β Batch operations - Sort, compact, and organize
- β Keyboard shortcuts - Full keyboard navigation
Note: Legacy tkinter-based editors have been removed. Use the Qt GUI for all editing.
- β Open and save PCG files from all Korg synthesizers
- β Edit patch names, categories, and favorites
- β Copy and paste patches within and between files
- β Move, sort, and organize your patches
- β Generate reports on program usage and combi content
- β Export to CSV and TXT formats
- β Command-line interface for automation and batch processing
- β Qt GUI - Single, full-featured graphical interface (PySide6)
- β Command-line tools - Full API access via CLI
- β Cross-platform - Works on Windows, macOS, and Linux
β οΈ Legacy editors removed - Old tkinter-based simple editor no longer included
cd korg_pcg_tools
python3 -m pcg_tools.gui_qtFeatures:
- View GM2 banks (g(1)-g(9), g(d)) with 1,280 programs
- Edit setlists and slots
- View actual patch names for each slot
- Edit programs and combis
- Copy/paste operations (including from ROM banks)
- Batch operations
- Hardware-tested and working!
# Show file information
python -m pcg_tools info yourfile.PCG
# Export patch list
python -m pcg_tools export yourfile.PCG output.csv
# Generate program usage report
python -m pcg_tools program-usage yourfile.PCG usage.csv
# See all commands
python -m pcg_tools --help- Python 3.7 or higher
- PySide6 (for GUI) -
pip install PySide6 - click (for CLI) -
pip install click
Or install all at once:
pip install -r requirements.txt- Korg Kronos / Kronos X
- Korg Oasys
- Korg Triton (all variants)
- Korg Karma
- Korg M3 / M50
- Korg Krome
- Korg Trinity
- SIMPLE_EDITOR_GUIDE.md - Simple Setlist Editor guide (start here!)
- QUICKSTART.md - Get up and running in 5 minutes
- INSTALL.md - Installation instructions for all platforms
- QUICK_REFERENCE.md - Quick reference card
- USAGE.md - Detailed usage instructions
- GM2_BANKS_REFERENCE.md - GM2 banks quick reference
- KNOWN_ISSUES.md - Known limitations and workarounds
- GM_BANKS_IMPLEMENTATION.md - GM2 banks technical details
- docs/TECHNICAL_REFERENCE.md - PCG file format details
- PROJECT_STRUCTURE.md - Repository organization
- CONTRIBUTING.md - Developer guide
- CHANGELOG.md - Version history
| Shortcut | Action |
|---|---|
| Ctrl+O | Open PCG file |
| Ctrl+S | Save file |
| Ctrl+Shift+S | Save As |
| Ctrl+N | New window |
| Ctrl+W | Close window |
| Ctrl+Q | Quit all windows |
| Ctrl+C | Copy selected item |
| Ctrl+V | Paste item |
| Ctrl+X | Cut item |
| Double-click | Edit item |
| Right-click | Context menu |
Right-click on items to access:
- Edit
- Copy
- Paste
- Cut
- Clear
- Move Up/Down
- Sort
- Compact
info # Display file information
list-patches # List all patches
export # Export patch list
program-usage # Generate program usage report
combi-content # Generate combi content report
differences # Compare two PCG files
gui # Launch GUI# Compare two files
python -m pcg_tools differences file1.pcg file2.pcg diff.csv
# Generate detailed combi content
python -m pcg_tools combi-content file.pcg content.csv --style long
# Export to text format
python -m pcg_tools export file.pcg output.txt --format txt- Launch Qt GUI:
python3 -m pcg_tools.gui_qt - Open your PCG file (Ctrl+O)
- Go to Setlists tab
- Select a setlist from dropdown
- Double-click any slot to edit
- Edit name, color, text size, transpose, volume, or notes
- Save the file (Ctrl+S)
- Launch Qt GUI
- Go to Programs or Combis tab
- Select a bank from the list
- Double-click a program/combi to edit
- Modify name, category, or other properties
- Save the file
- Launch Qt GUI
- Go to Programs tab
- Scroll down in bank list to g(1) through g(9) and g(d)
- Click any GM2 bank to view programs
- Copy programs to user banks if desired (Edit/Paste disabled for ROM banks)
# Program usage report
python -m pcg_tools program-usage yourfile.PCG usage.csv
# Combi content report
python -m pcg_tools combi-content yourfile.PCG content.csv
# Export patch list
python -m pcg_tools export yourfile.PCG patches.csv| Feature | Original C# | Python Port |
|---|---|---|
| Platform | Windows only | Cross-platform |
| Framework | .NET Framework | Pure Python |
| Setlist Editing | Complex | Simple & reliable |
| Hardware Tested | Unknown | β Confirmed working |
| CLI | Limited | Full API access |
| Library | No | Yes |
| Open Source | No | Yes (MIT) |
PCG Tools has been extensively tested on Korg Kronos 2 hardware:
β
Setlist name editing - Works perfectly
β
Slot name editing - Works perfectly
β
Color changes - Display correctly on hardware
β
Text size changes - Display correctly on hardware
β
Transpose settings - Function correctly
β
Volume settings - Function correctly
β
Program/Combi editing - Works correctly
β
File integrity - Files load without errors
β
GM2 Banks - Display correctly (read-only)
Test files created and verified on actual Korg Kronos 2 hardware.
Note: Testing performed on Kronos 2. Should work on original Kronos and Kronos X, but not yet verified.
korg_pcg_tools/
βββ README.md # This file
βββ INSTALL.md # Installation guide
βββ USAGE.md # Usage guide
βββ GM2_BANKS_REFERENCE.md # GM2 banks reference
β
βββ pcg_tools/ # Main package
β βββ models.py # Data structures
β βββ pcg_parser.py # PCG file parser
β βββ reader.py # PCG file reader
β βββ writer.py # PCG file writer (hardware-tested)
β βββ gui_qt.py # Qt-based GUI
β βββ gm2_data.py # GM2 bank definitions
β βββ cli.py # Command-line interface
β βββ bit_utils.py # Binary utilities
β βββ ...
β
βββ docs/ # Additional documentation
βββ examples/ # Usage examples
βββ test_files/ # Test PCG files
See PROJECT_STRUCTURE.md for complete details.
The Kronos uses an internal SSD. Always test edited files on USB before copying to internal storage!
- Export PCG from Kronos internal SSD to USB drive
- Copy USB file to your computer
- Edit the copy with PCG Tools
- Save edited file to USB drive
- Test load on Kronos from USB drive
- Only if successful, copy to internal SSD
- Keep USB backup!
- Internal SSD corruption requires factory initialization
- Cannot easily recover from internal storage corruption
- Testing on USB first prevents potential boot issues
- Always keep backups on external storage
# Check Python installation
python3 --version
# Check PySide6
python3 -c "import PySide6; print('PySide6 OK')"If PySide6 is missing:
pip install PySide6- Verify file is a valid PCG format
- Check file isn't corrupted
- Try with a different file
- Check file permissions
- Verify file was saved successfully
- Check file size matches original
- Test on USB drive first before copying to internal SSD
- If issues persist, please report with your PCG file
- GM2 banks are automatically added when opening any PCG file
- Scroll down in the Programs bank list to see g(1) through g(9) and g(d)
- Look for [ROM] indicator next to bank names
See KNOWN_ISSUES.md for more details.
Contributions are welcome! See CONTRIBUTING.md for guidelines.
- Complete GM2 program names (currently 92 of 1,280 named)
- Undo/redo functionality
- Timbre editing in GUI
- Additional export formats
- More automation examples
- Hardware testing on original Kronos and Kronos X
git clone https://github.com/brianmslater/korg_pcg_tools.git
cd korg_pcg_tools
pip install -r requirements.txt
python3 -m pcg_tools.gui_qtMIT License - see LICENSE file for details.
Inspired by the original PCG Tools by Michel Keijzers.
- Michel Keijzers - Original PCG Tools
- Korg - For creating amazing synthesizers
- Python Community - For excellent tools
For help:
- Check USAGE.md for GUI and CLI usage
- See GM2_BANKS_REFERENCE.md for GM2 banks info
- Review INSTALL.md for installation issues
- Check KNOWN_ISSUES.md for limitations
- See QUICKSTART.md for quick start guide
- Open an issue on GitHub for bugs or questions
Version: 1.4.0 "GM2 Banks"
Date: December 2, 2025
Status: β
Production Ready - Feature Parity Achieved!
Hardware Tested: β
Korg Kronos 2
GUI: Qt-based (PySide6) - Legacy tkinter editors removed
New: β
GM2 Banks Support (10 banks, 1,280 programs)
Made with β€οΈ and Python
Cross-platform Korg PCG file editing for everyone!