Skip to content
This repository has been archived by the owner on Jun 13, 2021. It is now read-only.

rerrahkr/ConvFMML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ConvFMML

MIDI to MML Converter
Copyright (C) 2017-2019 Rerrah

GitHub release Platform: windows .Net Framework: >=4.6 LICENSE

日本語

⚠️ This project is no longer maintained.

Overview

ConvFMML is an application that converts standard MIDI file (SMF/MIDI) into Music Macro Language (MML).

  • Detect notes and rests from MIDI (polyphonic support)
  • Export to MML in the specified format from FMP7, FMP, PMD, MXDRV, NRTDRV, MUCOM88, mml2vgm, and custom
  • Line breaks and block division of notes and rests in each measure
  • Support MIDI volume, pan, program change and tempo settings
  • Exported MML part settings

You can select more detailed conversion settings can be specified in "conversion settings".

Load MIDI

Please drag and drop the MIDI file to ConvFMML, or click "Select” button in the "MIDI file” field to select it.

Convert and export to MML

When the "Convert" button in "Target MML" is pressed, the export dialog is opened.
In this dialog, you can specify MML file name and file extension.
Clicked "Save" button, it starts conversion and MML exportation.

Conversion settings

In "Conversion settings", you can edit optimization of MML command, print format of notes and rests, division into blocks by measure, and selection of output MML part.
Selecting an item in the tree view switches the settings to edit.

MML expression

You can set MML style, MML clock count, the block division for each measure, and line feeds by changing beat.

ConvFMML sets MML commands such as tie, volume, pan and tempo automatically by specified MML style.
You can specify each of these command notations in the custom format specification.
MML style limits conversion settings that can be specified.

Note/Rest

You can make settings for notes and rests.
There are settings for octave command, printing styles of note length.

Control commands

There are five settings parts: "General", "Volume", "Pan", "Program Change" and "Tempo".
"General" allows you to make common optimization and conversion settings for volume, pan, program change, and tempo.
In "Volume", you can edit volume command settings for MML output.
In "Pan", you can edit pan command settings for MML output.
In "Program change", you can edit program change command settings for MML output.
In "Tempo", you can edit volume command settings for MML output.

Part

Of the loaded MIDI tracks, You can set parts to be output, names of parts, and sound types.

In export part, part name, sound type settings table, you can check the part to output to MML.
Parts that are not output are grayed out, and that can not be output due to the number of parts are displayed in red.
Although the red parts be able to be exported, commands may not be output correctly.
When there is a polyphonic MIDI track, some parts are displayed that have the same MIDI track number and MIDI track name.
These parts are generated by splitting polyphony.

Tips

  • The number of MML parts increases by the number of polyphonic notes in MIDI.
  • It is possible to change MML note names according to the scale by MIDI key signature events.
  • If no beat, tempo and key signature events are set in the MIDI file, ConvFMML uses the default settings about them: 4/4 beat, bpm 120 and C major.
  • Notes and rests are removed automatically if they cannot be expressed its length in MML clock count.
  • The higher MML resolution, the better conversion accuracy but the shorter notes appear.
  • Optimization processing for control commands is performed in the following order. In some cases, some commands may not be processed properly.
    1. Remove commands not affected notes
    2. Optimize the same place and type commands
    3. Optimize the same type and value commands

Requirements

  • Windows (tested on Windows 10)
  • .NET Framework 4.6 or later

License

ConvFMML is licensed under the MIT license.
See LICENSE.