Skip to content
Compare
Choose a tag to compare

Changed

  • Update to inih r55.

Fixed

  • Ethernet connectivity was broken on some Raspberry Pi models. Thanks to Sal Bugliarisi, retro and MorkMikael for the reports!
  • Network disconnection/reconnection notifications were broken.
Compare
Choose a tag to compare

Added

  • Support for network MIDI via raw UDP socket (new configuration file option). This is compatible with MiSTer MidiLink.
  • New Bash/Python scripts for making the installation/update process easier, especially on MiSTer FPGA (see the scripts directory for download/information).

Changed

  • Update to circle-stdlib v15.12/Circle Step 44.4.1.
  • Update to FluidSynth v2.2.6.
  • Update to inih r54.
Compare
Choose a tag to compare

Added

  • Implemented RNFR/RNTO (file/directory renaming) in the FTP server.
  • Support for SSD1312 OLED displays via new horizontal mirroring configuration file option - thanks @nikitalita!

Changed

  • Update to libmt32emu v2.6.1.
    • This update adds support for MT-32 ROM versions 2.06, 2.07 and CM-32LN ROM version 1.00 (CM-32LN is untested).
  • Update to FluidSynth v2.2.5.
  • MT-32 LCD emulation replaced with new libmt32emu v2.6+ display emulation.
  • FluidSynth's master volume gain is now an effects profile setting and can be overridden on a per-SoundFont basis (issue #248). Thanks to @c0d3h4x0r for the suggestion!

Fixed

  • A bug in the config file reader (unterminated string) could cause the last entry in the file to be read as a corrupted value if the file ended without a newline.
  • Some FTP commands could work without being logged in.
  • Some DAC accessories which make use of a hardware "mute" pin (e.g. Adafruit I虏S Audio Bonnet) could be held in a muted state due to a conflict with the Blokas Pisound driver's probing routine (issue #233). The driver now resets these GPIO pins to the initial power-on state, which should fix this issue. Thanks to @htamas2 for the report!
  • Sudden loud noise caused by switching SoundFonts whilst receiving MIDI data (issue #247). Any note-on messages received whilst busy switching SoundFonts are now discarded. Thanks to @c0d3h4x0r for the report!
Compare
Choose a tag to compare

Added

  • Support for the new Raspberry Pi Zero 2 W.
    • You must update config.txt, otherwise the Zero 2 W will boot the 32-bit Raspberry Pi 2 kernel, which will result in lower performance.
    • This model requires new boot firmware and Wi-Fi firmware - make sure you update bootcode.bin, fixup*.dat, start*.elf, and the contents of the firmware directory.
    • PWM audio is available on GPIO pins 12/13 for this model.
  • Experimental embedded FTP server for performing updates/config changes without replacing the SD card (new configuration file options).
    • This FTP server is a very basic implementation which DOES NOT feature any kind of transport layer security/encryption. Therefore, you should NOT enable this feature on a public network or expose the Raspberry Pi to the Internet.
    • The FTP server is disabled by default.
  • Support for Yamaha MU-series SysEx text messages, and bitmap messages when using a graphical display.

Changed

  • Update to circle-stdlib v15.10/Circle Step 44.3.
  • Update ARM toolchains to 10.3-2021.07.
  • Update to libmt32emu v2.5.3.
  • Update to FluidSynth v2.2.4.
  • The default FluidSynth polyphony value has been reduced from 256 to 200 to account for the lower out-of-the-box performance of the Pi Zero 2 W.
    • For the vast majority of use cases, this will have no noticable difference.
    • If you prefer, a +200MHz overclock can be applied to the Zero 2 W match the performance of the Raspberry Pi 3B (1.2GHz), in which case you can use the original higher polyphony value of 256. Commented-out example of how to do this is now provided in config.txt.
    • Heatsink/cooling recommended to ensure stability if you decide to do the above.

Fixed

  • "WiFi disconnected!" would be shown on the LCD when Ethernet was disconnected.
  • The SoundFont loading "spinner" was broken since v0.10.0.
Compare
Choose a tag to compare

Fixed

  • Broken UART error handling since v0.10.2 which would result in erratic, false MIDI activity under some circumstances. Many thanks to WiteWulf and Alex Mitchell for the report!
Compare
Choose a tag to compare

Added

  • Ability to swap the MT-32 stereo channels in order to work around bugs in games that are not aware of the MT-32's reversed panpot value interpretation (new configuration file option and custom SysEx message).

Changed

  • MIDI and UART related warnings are now hidden unless verbose mode is enabled in the configuration file. This is a preventative measure against false bug reports stemming from buggy games/user equipment, and to improve aesthetics (real synthesizers tend to silently ignore harmless stray MIDI bytes).

Fixed

  • Guru Meditation that could occur if non-default mt32emu options were specified but the synth was unavailable due to missing ROMs.
Compare
Choose a tag to compare

Changed

  • Update to libmt32emu v2.5.2.
  • Update to FluidSynth v2.2.2.
  • The default value for usb_serial_baud_rate is now 38400 to reflect the most common use case (connecting to a vintage PC with SoftMPU).

Fixed

  • The MIDI level meters could get stuck under certain circumstances (issue #142).
  • Sending a MIDI reset SysEx would cause the MIDI level meters to instantly zero rather than fall off gradually.
  • Sending a Yamaha XG reset SysEx will now reset the MIDI level meters.
  • SC-55 text SysEx messages of length <32 were not being displayed.
Compare
Choose a tag to compare

Added

  • Brand new boot splash logo when using graphical displays - many thanks to James Sparkman for the excellent pixel art conversion!
    • You can re-enable verbose startup messages with a new configuration file option.
  • Basic networking support (Wi-Fi or Ethernet) - read the new [network] section of the configuration file to learn how to enable and set it up.
    • In order to use Wi-Fi, firmware must be copied to the root of the SD card (new firmware directory in release package), and SSID/password must be added to wpa_supplicant.conf (example file in release package).
  • Support for receiving MIDI over the network via Wi-Fi or Ethernet using the RTP-MIDI/AppleMIDI protocol.
  • Ability to configure FluidSynth reverb/chorus effects (new configuration file options).
    • Defaults can be set in the [fluidsynth] section.
    • Additional sections can be added to create "profiles" that override the defaults for specific SoundFonts.
    • An example section has been added for GeneralUser GS (assumed to be at index 0) as recommended by S. Christian Collins.
  • The rotary encoder direction can now be reversed (new configuration file option).
  • Ability to use the HDMI port for digital audio (new configuration value for output_device). This allows you to use inexpensive HDMI audio extractors or VGA+audio dongles to get better audio quality out of the Raspberry Pi (compared to the headphone jack).
  • Additional boot files for the Compute Module 4 and Raspberry Pi 400 are now included.
    • The Raspberry Pi 400 is untested.
  • Ability to use USB serial devices for MIDI input (CDC class devices, CH341, CP2102, FT231x, PL2303); a new configuration file option has been added to allow setting the desired baud rate.

Changed

  • Update to circle-stdlib v15.8/Circle Step 44.1.
  • Update to libmt32emu v2.5.0.
  • Update to FluidSynth v2.2.1.
  • Complete overhaul of LCD code.
    • MIDI level meters now account for channel volume and expression properly and are much more responsive.
    • Long text messages (e.g. SoundFont names) are now scrolled, short text messages are now centered.
    • Basic support for smaller 16-character wide screens has been added.
  • The activity LED no longer illuminates for System Common or System Real-Time messages.
  • Default clock speeds/voltages have been lowered for Pi 4/CM4 in config.txt for reduced energy usage and SoC temperature.
  • Reduced energy usage when LCD and MiSTer control interface are both disabled (core suspended).
  • "GM Mode On"/"GS Reset" SysEx messages are now handled by new internal FluidSynth code which also changes how MIDI Bank Select messages are interpreted. Additionally, "XG Reset" SysEx messages are now handled.

Fixed

  • USB plug/unplug events now bring mt32-pi out of power saving mode.
  • Some USB MIDI devices that violate the USB specification were unusable (discussion #102) - a workaround in the USB driver has been implemented. Thanks to @fabbrimichele for reporting and @rsta2 for the fix!
  • Hang on "Init USB" when no USB controller is present (e.g. a Compute Module 4-based system with no external XHCI controller). Huge thanks to Serdaco for donating the CM4 and I/O board for testing!
  • Boot failure on the 1GB Raspberry Pi 4/CM4 because of a bug in the memory allocator.
  • The MIDI level meters would often miss fast notes (e.g. percussion).
Compare
Choose a tag to compare

Fixed

  • The gpio_baud_rate option was broken in v0.9.0. Thanks to Scandy for the quick report and testing the fix!
Compare
Choose a tag to compare

Added

  • The number of seconds to wait before a SoundFont begins loading after using the switch button can now be adjusted (new configuration file option).
  • MT-32 ROMs and SoundFonts can now be loaded from USB mass storage devices.
    • This feature should be considered unstable/experimental - some USB disk/Raspberry Pi combinations can encounter freezes/crashes.
    • SoundFonts will be rescanned and the indices updated if a USB storage device is inserted or removed.
    • USB storage devices must be FAT32 formatted.
    • MT-32 ROMs must be located under a roms directory on the root of the device.
    • SoundFonts must be located under a soundfonts directory on the root of the device.
    • Only one USB storage device is supported at a time.
    • The SoundFont index continues counting after the last SD card SoundFont index. If there are no SoundFonts on the SD card, the first USB storage SoundFont starts at index zero.
    • Special thanks to @rsta2 for providing important USB driver fixes and mmmonkey Pete for donating a Raspberry Pi 3B for testing!
  • Ability to set master volume gain and reverb gain for mt32emu (new configuration file options).

Changed

  • Update to circle-stdlib v15.6/Circle Step 43.3.
  • Update to inih r53.
  • Update to FluidSynth v2.1.8.
  • Update ARM toolchains to 10.2-2020.11.
  • Config file options are now case-insensitive.
  • The usb configuration option has been moved to the [system] section. Please update your configuration file if you use this option.

Fixed

  • Large files mistakenly placed in the roms directory could cause mt32-pi to crash on startup (issue #93).

Removed

  • Old ROM loading behavior now removed. If you have MT32_CONTROL.ROM/MT32_PCM.ROM files in the root of your SD card, please move them to the roms subdirectory otherwise they will fail to load.
  • Unused USB drivers removed (kernel size reduced).
  • Unused C standard library functions now removed by linker (kernel size reduced).