A Qt 6 desktop chart editor for Malody Catch mode. 面向 Malody Catch 模式的 Qt 6 桌面谱面编辑器。
- Current version / 当前版本:Beta v1.12.0(2026-10-25)
- Previous release / 上一版本:Beta v1.11.2(2026-09-19)
- Repository state / 仓库状态:Released(2026-10-25)
- Git tag / 标签:
v1.12.0 - Download / 下载:GitHub Releases
docs/history.md 中已经发布的版本段落视为冻结记录;后续未发布内容单独记录在新的 Unreleased 段。
- v1.12.0 adds stereo spectrum analysis, transient note drafts, manual BPM measurement/interpolation, an independent BPM curve window, and chart/audio merging. v1.12.0 新增双声道频谱分析、瞬态音符草稿、手动 BPM 测量与插值、独立 BPM 曲线窗口,以及谱面与音频合并。
- Unified shortcuts, settings transfer, independent drag snapping and configurable Hyperfruit judging are implemented. Unfinished Timbre/Tracks tools are hidden. 统一快捷键、设置迁移、独立拖动吸附和可选红果判定均已实现;尚未完成的音色/伪轨道工具不显示入口。
- Local multi-difficulty projects, layers, comments and
.cceprreview are implemented as optional experimental workflows. Feature boundaries and remaining release checks are tracked in RELEASE_READINESS.md. 本地多难度工程、图层、评论和.ccepr审阅已有可选的实验性实现;功能边界与剩余发布检查见发布检查表。
完整变更见 docs/history.md 顶部,近期维护见 docs/ENGINEERING_TODO.md,长期方向见 docs/FUTURE_ROADMAP.md。
- Load, create, edit, save, and export Malody Catch
.mc/.mczcharts. - Place, move, select, copy, paste, mirror, and delete Normal / Sound / Rain notes.
- BPM table editing, automatic BPM measurement, timeline navigation, and playback-speed control.
- Analysis Editor with stereo spectrum, transient inspection, note drafts and reusable analysis profiles.
- Manual BPM measurement/interpolation and a modeless synchronized BPM curve editor.
- Chart/audio merging with per-segment speed, pitch, fades and layered previews.
- Optional experimental
.cceprojprojects, shared layers, local comments and.cceprproposal review. - Skin rendering, division colors, Hyperfruit hints, background images, note sounds, and realtime preview.
- Hyperfruit hints use Malody E judge by default; Settings → Hyperfruit Judge lets you select A–E and Pro for both the canvas and realtime preview.
- Native curve-to-note workflow with per-segment density and curve/polyline shapes.
- V3 curve sidecar under
.mcce-plugin/*.curve_tbd.json, with CAS revision checks and legacy data import. - Native and JSON-lines process plugins, tool actions, floating panels, canvas overlays, and host batch edits.
- Configurable ADS workspace with a protected main editor, discoverable panel recovery, stable compact-tool sizing, and independent classic/multi-window layouts.
- Chinese, English, and Japanese UI translations.
- CMake 3.20+
- C++17 compiler
- Qt 6 components: Core, Widgets, Multimedia, Concurrent, LinguistTools, Test
Qt Advanced Docking System 5.1.1 is vendored in third_party/QtAdvancedDockingSystem.
AutoTimingCore is pinned as a Git submodule in third_party/AutoTimingCore.
Neither dependency is downloaded by CMake.
After cloning, initialize submodules once:
git submodule update --init --recursivecmake -S . -B build -DBUILD_TESTING=ON
cmake --build build --config Debug --parallel
ctest --test-dir build -C Debug --output-on-failureRelease:
cmake --build build --config Release --parallel
ctest --test-dir build -C Release --output-on-failurecmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON
cmake --build build --parallel
ctest --test-dir build --output-on-failureBuild output also receives the default skin, runtime plugins, documentation, note sounds when present, third-party license files, and the AutoTimingCore attribution notice.
- Open or create a chart from the
Filemenu. - Use the
Note Editorpanel to choose Note, Rain, Delete, Select, or Curve mode. - Use the mouse wheel to navigate;
Ctrl + wheelchanges the timeline scale. - Press
Spaceto play/pause and useTime DivisionplusGrid Snapfor precise placement. - Drag a panel header to dock or float it; the live outline shows the target region, while the chart workspace remains a protected central area. Reopen closed panels from
View -> Panels. Classic and multi-window layouts are saved independently. - Save as
.mcor export a Malody-compatible.mczpackage.
Detailed controls are documented in docs/help.md.
src/app/ application and main-window composition
src/controller/ chart, selection, and playback orchestration
src/editor/NoteChain/ native curve editor and V3 persistence
src/file/ chart/project/skin/plugin file handling
src/model/ chart data models
src/plugin/ plugin host and SDK
src/render/ canvas renderers
src/ui/ panels, dialogs, and ChartCanvas
src/audio/ playback, note sounds, BPM and AutoTiming
tests/ core and docking regression tests
docs/ user and developer documentation
plugins/ runtime plugins and SDK samples
third_party/ vendored dependencies and pinned submodules
The Malody .mc JSON structure is a compatibility boundary and must not be extended with editor-only fields. Editor-specific data belongs in sidecar files under .mcce-plugin/.
谱面 .mc 的 JSON 结构是兼容边界,不得写入编辑器私有字段;编辑器扩展数据统一保存到 .mcce-plugin/ sidecar 文件。
See docs/ARCHITECTURE_FORMAT_REFERENCE.md for format details.
The project is licensed under GPL-3.0; see LICENSE.
Qt Advanced Docking System 5.1.1 is licensed under LGPL-2.1. Its source and license files are included in third_party/QtAdvancedDockingSystem.
AutoTimingCore is pinned at 23d3164b8a3fa2d8e9039a4fa86c8c029fc8b8fd.
Its Malody legacy source license is not confirmed; see
docs/AUTOTIMING_VENDORING.md and the submodule's
ATTRIBUTION.md before redistribution.
Special thanks to myhome for the included skin: skin page.