/mmlgui

GUI for ctrmml

Primary LanguageCGNU General Public License v2.0GPL-2.0

mmlgui

MML (Music Macro Language) editor and compiler GUI. Powered by the ctrmml framework.

Features

  • MML text editor with instant feedback
  • Supports Sega Mega Drive sound chips (YM2612, SN76489)
  • Visualization of MML tracks
  • Highlights currently playing notes in the editor window
  • VGM and MDS file export
  • Supports channel muting/isolation

Future features / TODO

  • Configuration window
  • Support more sound chips
  • More track visualizations

Using

For Windows (or Wine) users, you can download the latest automatic build from here

Feel free to join the Discord server if you have any questions or feedback.

See ctrmml/mml_ref.md for an MML reference.

Screenshot

Compiling using CMake

Prerequisites

First, make sure all submodules have been cloned. If you didn't clone this repository with git clone --recurse-submodules, do this:

git submodule update --init

Make sure you have the following packages installed: (this list might not be 100% correct)

glfw

You also need to have pkg-config (or a compatible equivalent such as pkgconf) installed.

Notice that there is no need to install libvgm for CMake builds, as it is built by the mmlgui target.

Building

mkdir build && cd build
cmake ..
cmake --build .
./mmlgui

To build a debug or release version, add -DCMAKE_BUILD_TYPE=Debug or -DCMAKE_BUILD_TYPE=Release to the first cmake call.

Note that once cmake has setup the build environment, it is only needed to call cmake --build . for successive builds.

Compiling using the makefile

The makefile is currently used for static linked builds for Windows as well as for address sanitizer builds. Once these features are integrated in the CMake build, the makefiles will most likely be removed.

Prerequisites

First, make sure all submodules have been cloned. If you didn't clone this repository with git clone --recurse-submodules, do this:

git submodule update --init

Make sure you have the following packages installed: (this list might not be 100% correct)

glfw  libvgm

Installing libvgm

If libvgm is not available on your system, you need to install it manually. Example:

Linux
mkdir build && cd build
cmake ..
make
sudo make install
Windows (MSYS2)

The CMAKE_INSTALL_PREFIX should of course match where your MSYS2/MinGW install folder is.

mkdir build && cd build
cmake .. -G "MSYS Makefiles" -D AUDIODRV_LIBAO=OFF -D CMAKE_INSTALL_PREFIX=/mingw64
make
make install

Building

Once all prerequisites are installed, it should be as easy as

make

To build a release binary, add RELEASE=1.

Special thanks

Copyright

© 2020-2021 Ian Karlsson

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.