First Rate Music Hall
This page was last modified 18:06, 7 December 2021 by Mars2000you. Based on work by Ro and Gdx and others.
First Rate Music Hall



First Rate Music Hall is a MSX-MUSIC song editor using MML (Music Macro Language) also used with the Basic instruction PLAY but here extended and/or modified. An MSX2 or higher with at least 128kB RAM is required.

It was designed by Shadow and released by Genic in 1991 with some examples, especially made by the Unicorn Corporation. The original version included also a BASIC program allowing to play packed songs under the interrupt (FM-PLAY.BAS with FM-PLAY.BIN driver).

There is no good disk image of the original sector-based disk, but the author has created in 2021 a file-based version from the original sources with a few improvements (this new version needs MSX-DOS 2). You can find it here.

Loading of the 2021 version by RUN"FRMH.BAS" or SCREEN 0:WIDTH 80: BLOAD"FRMH.BIN",R

FRMH screen

FRMH with EDI song in memory

After launching, the FRMH screen is automatically in song editor mode, it means you can directly use the enhanced MML language to create a song.

If you use one of the function keys F1 to F5, you leave this mode and a specific menu is displayed under the song editor part. You can go back to the song editor mode with the ESC key.

Note: only the loading of an EDI file or its depacking from a PCK file will allow you to modify an existing song.

PLAY menu (F1)

FRMH - PLAY menu

You can play packed songs (PCK files) or editor songs (EDI files).

In case of PCK files:

  • the played song will correspond to the song selected in option 3 of the PACK/DEPACK menu
  • you can see a little VU meter corresponding to the 6 melodic channels and the rhythm channel

In case of EDI files:

  • you can follow the notes on the screen
  • you can choose to play only a part of the song or even only the current page



This menu has 6 options:

  • compress EDI data in PCK data, at the place determined with option 3
  • uncompress EDI data from PCK data located at the place determined with option 3
  • change location in PCK data (1 to 4) with the step defined with option 6
  • change internal name of the data located at the place determined with option 3
  • remove or not the spaces in EDI data when converting to PCK data (if you depack later a spaceless PCK song, you will get a spaceless EDI song)
  • define the step to change location in PCK data (1 or 2)

Note: the PACK/DEPACK operations happen in the memory computer, they don't modify the files on disk. You need to use the Disk menu for the loading/saving operations.

Instruments menu (F3)

FRMH - Instruments menu

This menu is for advanced users as it allows to test instruments (voices) with the RETURN key, modify them and create new instruments by changing the values in the OPLL register.

It's a tool similar to the Preset Editor included in Pro-Tracker, but without the drums that are separately handled in FRMH.

It has 5 options:

  • read OPLL register
  • write OPLL register
  • select the instrument (0 to 63)
  • change the OPLL values
  • change the name of the instrument

Drums menu (F4)

FRMH - Drums menu

This menu is similar to the Instruments menu but focused on drums patterns that you can create and modify by changing OPLL values for 3 kinds of drums, and test by using the RETURN key. A maximum of 8 drums patterns can be created.

It has 4 options:

  • select the drums pattern (1 to 8)
  • change OPLL value for bass drum
  • change OPLL value for snare drum and hi-hat
  • change OPLL value for cymbals and tom-tom

Disk menu (F5)

FRMH - Disk menu

This menu has 4 options:

  • Explore the directory to select a file that you want to load: packed songs (PCK files), editor songs (EDI files), instruments (INS files), drums (DRM files)
  • Change the kind of file that interests you
  • Save what's currently in the computer memory (always with a default name: DEMOSONG.PCK - DEMOSONG.EDI - FM-BASIC.INS - STANDARD.DRM - so be careful to avoid overwriting of existing files)
  • Load a previously selected file


Playback functions

  • 7 channels (6 for the FM melody, 1 for the drums)
  • 8 octaves
  • MML input
  • Change of note length
  • Tempo change
  • Volume change (with additional functions V+ and V-)
  • Change of instruments (15 FM presets or 64 original instruments)
  • Change of drums (8 different drum patterns required)
  • Repetitions
  • Wait function
  • More drums at the same time
  • Two 'rest' possibilities (one with a stop, one without)

Note: Some MSX-MUSIC features are not supported, especially pitch and transpose.

Editor functions

  • 64 pages (1 page is 16 characters)
  • 7 channels per page
  • MML corresponding input (can handle BASIC music!)
  • Copy functions (per page or per channel)
  • Undo function
  • Delete function
  • Editor keys such DEL and INS
  • Test Play
  • Packing and Depacking (crunching music for using less memory space and faster playback options)
  • Developing / designing instruments with test (Synth Saurus 'method'),
  • Designing drums with test

Disk functions

  • Saving / Loading of 4 kinds of files
  • Directory query
  • 4 songs in one 16kB packaged file including the instruments and drums data
  • The musical files are all playable under the interrupt in MSX-BASIC

MML instructions

Instruction Effect Values
A to G [<halftone>][length][<period>] Specifies a note from the scale *<halftone> =# for increasing halftone
* <length>=1 to 64 (default value: 4)
* <period>=one or several . (dots), each . = length x 1.5
f<instrument> Changes hardware FM instrument (voice) <instrument>= 1 to 15
See voices marked with an * for CALL VOICE
(0,2,3,4,5,6,9,10,12,14,16,23,24,33 and 48)
L<length>[<period>] Changes the length of the notes * <length>=1 to 64 (default value: 4)
* <period>=one or several . (dots), each . = length x 1.5
N Begin of infinite pattern loop
n End of infinite pattern loop
O<octave> Changes octave <octave>= 1 to 8 (default value: 4)
o<instrument> Changes original FM instrument (voice) <instrument>= 1 to 63
See CALL VOICE for the standard list
P<repetition> Begin of pattern loop <repetition>=1 to 6
p End of pattern loop
R<pause>[<period>] Pause (or rest) with cut note * <pause>=1 to 64 (default value: 4)
* <period>=one or several . (dots), each . = pause x 1.5
S Begin of sustain function
s End of sustain function
T<tempo> Changes the tempo <tempo>=1 to 255 (default value: 120)
V<volume> Changes the volume <volume>=0 to 15 (default value: 8)
V+ Increases volume +1
V- Decreases volume -1
W Begin of wait for other channel
w End of wait for other channel
X End of track
> Increases one octave
< Decreases one octave
Only for FM melody
r Pause (or rest) without stop (no cut note)
Only for FM rhythm
B Bass drum played alone
b Bass drum not played alone
C Cymbals played alone
c Cymbals not played alone
D<pattern> Changes drums pattern <pattern>= 1 to 8
H Hi-hat played alone
h Hi-hat not played alone
M Tom-tom played alone
m Tom-tom not played alone
S Snare drum played alone
s Snare drum not played alone

Useful keys

Function keys
F1 Access to the playback menu
F2 Access to the music packer/depacker tool
F3 Access to the instruments (voices) editor
F4 Acces to the drums patterns editor
F5 Access to the disk menu
Special keys
ESC Back to song editor (all versions)
Quit utility when in song editor (only with 2021 version)
RETURN Enter name or values in some fields
Test an instrument or drum pattern in the specific editor
SPACE Select a file in the disk directory
Song editor keys
Cursors Move on the current page
BS Remove and shift to left
CTRL + left cursor Go to previous page
CTRL + right cursor Go to next page
CTRL + A Mark channel part
CTRL + C Toggle VDP frequency 50/60Hz
CTRL + D Erase channel part
CTRL + E Erase page
CTRL + F Remove channel part, shift to left
CTRL + G Go to marked channel part
CTRL + Q Mark page
CTRL + R Remove page and shift from right
CTRL + S Copy marked channel part
CTRL + T Go to marked page
CTRL + W Copy marked page
CTRL + X Toggle CPU (R800/Z80) if available
CTRL + Y Undo last action
CTRL + Z Undo last action
CTRL + HOME New song (clear data)
DEL Remove and shift from right
INS Toggle insert mode
RETURN New line
SHIFT + TAB Cursor -8
TAB Cursor +8

Usage of FRMH musical files

How to play musics in PCK format?

  • optionally press CTRL+C to change the VDP frequency (50Hz/60Hz)
  • press F5
  • optionally press 2 to change the type of file (PCK by default)
  • press 1 to get the list of PCK files present on the disk
  • use the cursors to browse this list, then select a PCK file with the spacebar
  • press 4 to load the PCK file
  • optionally press F2, then 3 to select music of the package (by default, first music is selected)
  • press F1, then 1 to play the selected music

How to get the musics from a PCK package in EDI format?

  • press F2
  • press 3 to select music of the package (by default, first music or previous choice is selected)
  • press 2 to put the corresponding EDI file in the computer memory
  • to save the selected music as EDI file on disk, press F5, then 2 to choose EDI type of file, then 3
  • change the name of the file before saving another EDI file (DEMOSONG.EDI is used as generic name by the utility)

How to play musics in EDI format?

  • press F5
  • press 2 to change the type of file (generally PCK by default)
  • press 1 to get the list of EDI files present on the disk
  • use the cursors to browse this list, then select a EDI file with the spacebar
  • press 4 to load the EDI file
  • press F1, then 2 to play the selected music (or 3 to play only the current page)

Note: The "Play EDI" will only play on 50Hz, while the "Play PCK" can be both on 50 and 60Hz (CTRL+C to toggle).