Skip to content
Tools for FM voices for Yamaha YM chips (OPL, OPM and OPN series)
C C++ Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
chips
.gitignore
Makefile
Makefile.emscripten
README.md
ansidecl.h
cmdline.c
cmdline.h initial commit: vgm2opm, dmpdump, insdump, opmdump, tfidump, y12dump Jan 27, 2018
dmp_file.c
dmp_file.h
dmpdump.c
fmtoy.c
fmtoy.h
fmtoy_jack.c
fmtoy_loaders.c
fmtoy_loaders.h move file loading code to fmtoy_loaders.c, add fmtoy_new(), split cod… Aug 28, 2019
fmtoy_ym2151.c
fmtoy_ym2151.h
fmtoy_ym2203.c
fmtoy_ym2203.h
fmtoy_ym2608.c
fmtoy_ym2608.h
fmtoy_ym2610.c
fmtoy_ym2610.h fmtoy: rework code, add support for YM2608, YM2610, YM2610B and YM2612 Jan 30, 2018
fmtoy_ym2610b.c
fmtoy_ym2610b.h
fmtoy_ym2612.c
fmtoy_ym2612.h
ins_file.c
ins_file.h
insdump.c initial commit: vgm2opm, dmpdump, insdump, opmdump, tfidump, y12dump Jan 27, 2018
md5.c
md5.h
midi.c
midi.h
opm_file.c
opm_file.h
opmdump.c
tfi_file.c
tfi_file.h
tfidump.c
tools.c
tools.h initial commit: vgm2opm, dmpdump, insdump, opmdump, tfidump, y12dump Jan 27, 2018
vgm2opm.c move file loading code to fmtoy_loaders.c, add fmtoy_new(), split cod… Aug 28, 2019
y12_file.c
y12_file.h
y12dump.c

README.md

FM Toy

Currently only targetting jack audio and ALSA, it accepts MIDI input, and emulates one sound chip per MIDI channel. Currently supported are YM2151, YM2203, YM2608, YM2610, YM2610B and YM2612. It requires at least one command line argument, which is an .OPM file. You can specify multiple .OPM files and their voices will be concatenated up to 128 voices. You can select the voice with MIDI Program Change. The voice will change for all sound chips simultaneously, so the channel number is ignored in this case. The point of this tool is to listen to each chip side by side and compare their outputs. It is useful for testing voice conversion algorithms, such as OPM to OPN.

You can get a bunch of .OPM files from KVR forum.

MIDI Channel Chip Polyphony
1 YM2151 8
2 YM2203 3
3 YM2608 6
4 YM2610 6
5 YM2610b 6
6 YM2612 6

vgm2opm

Similar to Shiru's vgm2opm, it extracts 4-op FM voices from vgm files. Unlike Shiru's vgm2opm, it supports more chips, such as the OPN* series and OPM, and limited support for OPL*. It uses roughly the same algorithm to compact duplicate voices.

Please try ./fmtoy_jack --help to see a list of command-line options.

Dumping tools

opmdump, insdump, dmpdump, tfidump, y12dump dump voice files in csv format. These are meant for importing the data into a database.

You can’t perform that action at this time.