Skip to content

v0.7.0

Compare
Choose a tag to compare
@github-actions github-actions released this 22 Nov 23:42

Added

  • FluidSynth synthesizer engine v2.1.5 for using SoundFonts for General MIDI support and more.
    • You can switch between MT-32 and SoundFont mode at runtime using SysEx.
    • SoundFonts can be switched at runtime using SysEx, with some caveats for large SoundFonts (see FAQ section of README).
    • New configuration file options for changing default synthesizer and SoundFont.
  • GeneralUser GS v1.471 included as default SoundFont - many thanks to S. Christian Collins for kindly giving permission!
  • Ability to invert the display orientation for SSD1306 (new configuration file option).
  • Support for 64 pixel high SSD1306 OLED displays - many thanks to @ctrl_alt_rees for donating a screen!
  • Ability to set I2C clock speed (new configuration file option).
    • This is useful for allowing larger displays to refresh at a faster speed; see config file for details.
  • Power saving mode with configurable timeout (new configuration file option).
    • The CPU clock speed will be lowered, audio device stopped, and LCD backlight turned off (when possible) after a configurable number of seconds to save energy.
    • Any MIDI activity will instantly bring the system out of power saving mode.
  • Undervoltage/throttling detection - mt32-pi will now warn the user when the firmware detects an undervoltage/CPU throttling condition.

Changed

  • Update to circle-stdlib v15.4.
  • New multi-core architecture; audio rendering and LCD updates moved to their own dedicated CPU cores, leaving MIDI and interrupt processing on the primary core.
  • Kernels for Pi 3 and 4 are now compiled for AArch64 (64-bit) for better performance.
    • When upgrading, you must replace the config.txt file on your SD card and add the new armstub8-rpi4.bin file for Pi 4.
    • You should remove old kernel*.img files from your SD card.
    • It's recommended that you clear your SD card (except for your roms directory) and reconfigure mt32-pi for this release.
  • Synth engines now compiled with more aggressive optimizations enabled to benefit from ARM NEON instructions.
  • Due to the above three changes, it's possible that Raspberry Pi 2 may be more usable with this release, but this is untested.
  • Kernel size significantly reduced by removing mt32emu ROM loader dependency on C++ iostreams.
  • Improved layout of 4-line HD44780 LCD.
    • MT-32 status line moved to bottom row.
    • Part levels now 3 rows high.
  • Default sample rate and chunk size reduced to 48000Hz and 256 samples.

Fixed

  • SSD1306 text alignment was off by one pixel.
  • SSD1306 part level meters' top pixels would flicker with long sustained notes.
  • Part level meters would suddenly snap to a lower level if a quiet note followed a loud note instead of falling off.
  • Possibility of overflowing text in HD44780 Print() function.