About MUCOM88 Windows - onitama/mucom88 GitHub Wiki

This is a system to run MUCOM88 on Windows.

Both the command line version and GUI version are available.

	mucom88win.exe         Windows GUI version editor
	mucom88.exe            Windows command line version

By using MUCOM88 Windows, you can play music written in MML (Music Macro Language), a language specialized for music description, in the same way as the PC-8801 sound source. It also supports the performance with the actual FM sound chip (YM2608/YM2203) by way of SCCI (Sound Chip Common Interface).

mucom88win_v046

For an update history of the application, see history.txt.

Environment

MUCOM88 Windows runs on Windows 7 or later systems that are capable of sound playback. The Windows sound playback process uses DirectX8 or later DirectSound, which can be run on Windows XP or later without any additional components. The FM sound source and PSG sound emulation are synthesized and output at 32bit/55KHz. On older machines, the load may be higher.

MUCOM88 Windows is a virtual emulation of the code (Z80) used in the original MUCOM88, which is played through an FM sound generator (fmgen). It is possible to interpret and perform MML in the same way as the original.

No BIOS, ROM, or disk image is required to run the application.

How to use

MML can be edited and played on a Windows GUI. When "mucom88win.exe" is started, it becomes an editor screen and MML can be edited. The basic operation is performed by the following keys or buttons.

	Calling up the menu screen ([F1] key)
	Save the MML being edited ([ctrl]+[S] key)
	Play the MML being edited ([F5] or [F12] key)
	Stop/resume playback ([ESC] key)
	Fast forwarding of a playback ([ctrl]+[F1] key)
	Display ON/OFF of the tone editor (V.EDIT button)

In the MML editing screen,

	A t190@30v15 cdefgab>c

the combination of "channel (A to K)", "space" and "MML description" is played as this is. Basically, you can write your own MML files and compile them with [F5]. A few lines at the bottom of the screen show the results of the MML compilation and messages. If there are errors in the MML description, they will also be displayed there. MML can be read and saved as a text file, so you can read and write with ease.

For more information about MML descriptions, please refer to MMLReference. Also, sample MMLs (sampl1 to sampl3) should be useful in the actual creation. All operations other than MML editing can be performed from the menu screen accessed by pressing the [F1] key.

File format overview

The following formats can be handled by MUCOM88 Windows.

.MUC format	MML (excluding line numbers) text file described in the format of MUCOM88 (MUSIC LALF).
		FM sound source (YM2608) 6 voices, ADPCM 1 voice and rhythm sound source 6 voices, PSG 3 voices
		You can control it.
		For more information about MML, please refer to the MML reference of MUCOM88.

.N88 format	This is a MML text file with line numbers added to the beginning of a line.
		It is compatible with the ASCII save format of N88-BASIC on the PC-8801.
		The format is like "Line Number MML", with a space between the line number and the MML.

.MUB format	The file format that converted the MUC format to binary.
		Performance data, FM tone and ADPCM data are included.

.dat format	This file contains the preset voices of the FM sound source.
		voice.dat file as a standard preset tone.
		This is compatible with the files used by MUCOM88(MUSIC LALF) of PC-8801 version.

.bin format	This is the file where the ADPCM sound source waveform data is saved.
		'mucompcm.bin' file is used by default.
		It was used in MUCOM88(MUSIC LALF) of PC-8801 version.

About temporary files

mucom88win.exe creates a temporary file in the same place as the folder with MUC files when MML is played (compiled).

	mucommml	temporary file to output the editing MML
	mucombin	A temporary binary output file of the editing MML

There is no problem in deleting these temporary files, as they are not needed in normal times. If the editor is forced to quit due to an error or some other reason and you are unable to edit the file, you can restore the data from mucommml for the last time you played it.

Also, the editor's settings are stored in the following folders.

/User/Username/AppData/Roaming/MUCOM88/mucom88win.ini

When uninstalling or initializing the settings, please delete the folder in question.

Selecting a driver

Since ver0.53, it is possible to select the driver by #driver tag. If the #driver tag is followed by the driver name, it is possible to compile and perform MML. You can use a specific driver.

#driver mucom88 	-> MUCOM88 1.7(default)
#driver mucom88E	-> MUCOM88 1.5
#driver mucom88EM	-> MUCOM88em
#driver mucomDotNET	-> Compile and play with mucomDotNET

If nothing is specified, the standard driver will be selected. If you specify mucomDotNET, we will use the mucomDotNET created by kumatan. In this case, MUCOM88Win's functions such as fast forwarding and player cannot be used because the command prompt is started at the time of playback. The mucomDotNET uses the toolset stored in the mucomDotNET folder under Mucom88Windows by default. (It is also possible to run it from another path depending on the configuration.)

The main differences between the drivers are as follows.

#driver version PC-8801 support remarks
mucom88 MUCOM88 1.7 OK Equivalent to MUSIC LALF
mucom88E MUCOM88 1.5 OK PSG hardware envelope support
mucom88EM MUCOM88em OK(with memory) Expand the available memory
mucomDotNET mucomDotNET NG proprietary and extended implementation

With the exception of mucomDotNET, all three versions can play the same MML on a PC-8801 real machine. mucomDotNET does not support playback of the real machine, but it can use more memory space. The standard MUCOM88 1.7 has a limited memory size, making it difficult to create large MMLs. MUCOM88em mitigates this problem, and mucomDotNET further extends the function to mitigate the memory limitation. Select the driver according to your needs. As long as you don't create large data, you can use it in the normal state without selecting a driver.

MML tags

You can register a tag by putting a line beginning with "# tag" in the MML. Please be sure to put a space between the "# tag" and the "setting" in the form of "# tag setting". Two lines of text are not allowed. For some tags, the information will be reflected when the song is played or compiled. Any tag not shown here will not be an error and will be stored as information.

Tag Function
#mucom88 Version of the MUCOM88 core system(1.5,1.7)
#title Title name
#composer Composer name
#author Author name of the MML
#voice Voice(tone) file name
#pcm ADPCM file name
#date Date
#time The length of the song (in seconds)(default time for wav output)
#comment Comment about song
#driver Specify the driver to be used
#invert Function setting for relative octave and volume changes
#album Album name (manage multiple songs with the same album name)
#copyright copyright holder's name
#ver version of the MML
#mucver Compiled version of MUCOM88 (for embedding)
#mmlhash MD5 hash value of MML (for embedding)
#uuid Unique identification ID value (for embedding)

About the reversal of <>() behavior

It is possible to reverse the behavior of '<', '>'(octave -+) and '(',')'(volume -+) specified in the MML. (ver0.53 or later) It is possible to reverse the -+ direction by writing "on" after the #invert tag.

#invert on

at the beginning of the line. The behavior of the #invert tag has an effect on the entire MML.

MML Default #invert on
< Octave down Octave up
> Octave up Octave down
( Volume down Volume up
) Volume up Volume down

This feature is a supplementary feature to ensure compatibility with other MMLs. If you don't need it, please don't write anything and use it in the default state.

⚠️ **GitHub.com Fallback** ⚠️