- A work-in-progress baremetal MIDI synthesizer for the Raspberry Pi 3 or above, based on Munt, FluidSynth and Circle.
- Turn your Raspberry Pi into a dedicated emulation of the famous multi-timbre sound module used by countless classic MS-DOS, PC-98 and Sharp X68000 games!
- ๐ Add your favorite SoundFonts to expand your synthesizer with General MIDI, Roland GS, or even Yamaha XG support for endless MIDI possibilities.
- ๐ Includes General MIDI and Roland GS support out of the box thanks to GeneralUser GS by S. Christian Collins.
- No operating system, no complex Linux audio configuration; just super-low latency audio.
- Easy to configure and ready to play from cold-boot in a matter of seconds.
- The perfect companion for your vintage PC or MiSTer FPGA setup.
- Tested on Raspberry Pi 4 Model B and Raspberry Pi 3 Model A+, B, and B+.
- Pi 2 works, but only with concessions on playback quality.
- Pi 0 and 1 are unfortunately too slow, even with an overclock.
- PWM headphone jack audio.
- Quality is known to be poor (aliasing/distortion on quieter sounds).
- It is not currently known whether this can be improved or not.
- IยฒS Hi-Fi DAC support.
- This is the recommended audio output method for the best quality audio.
- MIDI input via USB or GPIO MIDI interfaces.
- Configuration file for selecting hardware options and fine tuning.
- LCD status screen support (for MT-32 SysEx messages and status information).
- Simple physical control surface using buttons and rotary encoder.
- MiSTer FPGA integration via user port.
- Network MIDI and auto-update is planned.
- Download the latest release from the Releases section.
- Extract contents to a blank FAT32-formatted SD card.
- If you are updating an old version, you can just replace the
kernel*.img
files. The other boot files will not change often; but keep an eye on the changelog just in case.
- If you are updating an old version, you can just replace the
- For MT-32 support, add your MT-32 or CM-32L ROM images to the
roms
directory - you have to provide these for copyright reasons.- You will need at least one control ROM and one PCM ROM.
- For information on using multiple ROM sets and switching between them, see the MT-32 synthesis wiki page.
- The file names or extensions don't matter; mt32-pi will scan and detect their types automatically.
- Optionally add your favorite SoundFonts to the
soundfonts
directory.- For information on using multiple SoundFonts and switching between them, see the SoundFont synthesis wiki page.
- Again, file names/extensions don't matter.
- Connect a USB MIDI interface or GPIO MIDI circuit to the Pi, and connect some speakers to the headphone jack.
- Connect your vintage PC's MIDI OUT to the Pi's MIDI IN and (optionally) vice versa.
More detailed documentation for mt32-pi can now be found over at the mt32-pi wiki. Please read the wiki pages to learn about all of mt32-pi's features and supported hardware, and consider helping us improve it!
If you need some help with mt32-pi and the wiki doesn't answer your questions, head over to the discussions area and feel free to start a topic.
โ Note: Please don't use the Issues area to ask for help - Issues are intended for reproducible bug reports and feature requests. Thankyou!
- Many thanks go out to @rc55 and @nswaldman for their encouragement and testing! โค๏ธ
- A huge thankyou to everyone who has donated via Ko-Fi, PayPal, or Amazon - your support means a lot! โค๏ธ
- The Munt team for their incredible work reverse-engineering the Roland MT-32 and producing an excellent emulation and well-structured project.
- The FluidSynth team for their excellent and easily-portable SoundFont synthesizer project.
- S. Christian Collins for the excellent GeneralUser GS SoundFont and for kindly giving permission to include it in the project.
- The Circle and circle-stdlib projects for providing the best C++ baremetal framework for the Raspberry Pi.
- The inih project for a nice, lightweight config file parser.