gtm is a (work in progress) Qt desktop tool for working with music from gen 3 pret decomp projects that use the mp2k sound engine. Perhaps support for other engines and will come in the future.
This project is in active development.
What works today:
- Loading a supported project root and reading song metadata.
- Loading MIDI files referenced by the project song table.
- Semi-accurate playback.
What is still in progress:
- MIDI note and event editing.
- Full playback accuracy parity with hardware.
- See
TODO.mdfor more.
See INSTALL.md
If it is your first time opening gtm, you should open your root decomp folder (eg.path/to/pokeemerald).
After a project has been successfully opened, gtm will attempt to reopen the most recent project and recent song from the application config.
gtm uses modules to organize its source code files. Generally, the categories are as follows:
src/app: controller and project-loading codesrc/sound: sequencer, mixer, player, and song modelsrc/ui: Qt widgets, views, and resourcessrc/util: shared utility code, config, theming, and loggingsrc/deps: vendored third-party codemedia: sample/test media checked into the repodocs: architecture and sequence diagramslicenses: copied third-party license texts that should ship with source releases
Bundled third-party code and assets are listed in CREDITS.md.
The project currently vendors:
- PortAudio
- Craig Sapp's
midifile orderedjson, which is a fork built onjson11- IBM Plex Mono and IBM Plex Sans fonts
- Iconoir 7.11 svg icons
gtm is licensed under the MIT License. See LICENSE.
Bundled third-party components remain under their own licenses. Keep THIRD_PARTY_NOTICES.md and the files in licenses/ with source or binary distributions.
