OpenMPT 1.32 is nearing completion

Started by Saga Musix, March 23, 2025, 20:22:28

Previous topic - Next topic

Saga Musix

It took way too long, but now we're finally here: We intend to finally release the first official version of OpenMPT 1.32 in about a month.

As always, you can head over to https://builds.openmpt.org/builds/ where you can find current test builds. You can download a portable version and test it alongside your current OpenMPT installation, or you can configure the updater to look for the latest development build.

Below you can find the full changelog as of today, but here's a few of my personal highlights:
  • Support for 11 new module formats, and improved support for some formats that were already previously supported through the addition of instrument scripts / "synth" instruments. This is the biggest addition of new module formats in the history of OpenMPT!
  • Global volume display in the main toolbar, and an all-around improved main toolbar in general: You can now directly enter values into the readouts, you can hide individual readouts or the VU meters, and much more!
  • Much improved high-DPI and mixed-DPI support. OpenMPT is now per-monitor DPI-aware by default. You can go back to disabling DPI-awareness if older VST plugin GUIs require you to do so. If you spot any issues with OpenMPT's own UI due to using a high-DPI display, please report the bug instead of just going back to non-DPI-aware mode.
  • Keyboard shortcut configuration is always a complex topic, but the completely redesigned keyboard configuration dialog hopefully makes it easier to navigate and configure the keyboard.
  • A quick start dialog now shows up in the empty MDI area when no modules are open, allowing you to quickly access templates and previously opened modules.
  • Support for VST2 shell plugins, which allows OpenMPT to support VST3 plugins through polac's vst3shell plugin.
  • Finally, a built-in metronome to help with live recording.
  • Improved pitch shifting and time stretching in the sample editor.
There's many, many more changes, so I hope the delayed release was worth the wait. The wiki will be updated in the following weeks to document all the changes. I've already started with that, so some of the new features are already fully documented, others are not.

If you find any new issues in these test builds, please let us know as soon as possible so that we can address them before the official release!

Tree view
- [New] The tree view can now also be placed on the right side of the window (View -> Toolbars).
- [Imp] The Instrument Library now shows size information for samples in modules as well, and uses cached information for displaying file size and modification time of on-disk files instead of querying this information from the operating system every time a file is selected.
- [Mod] The "Switch To Instrument Library" shortcut is no longer available if the tree view is hidden (http://bugs.openmpt.org/view.php?id=1802).
- [Mod] When MIDI Library entries are unset by user, they are no longer replaced with the default soundfont after restarting OpenMPT (http://bugs.openmpt.org/view.php?id=1870).

General tab
- [New] By holding Shift when pressing the Bypass button, all other plugins are (un-)bypassed. Holding Ctrl instead, only Master plugins are affected.
- [Imp] Expanded mix now also works with plugins that have no inputs.
- [Imp] All mix modes are now available for instrument plugins as well. The old plugin mixing behaviour for instrument plugins is emulated with the new "Instrument" mix mode (http://forum.openmpt.org/index.php?topic=7178.0).

Pattern tab
- [New] There is now a metronome that can be enabled from the toolbar or via a keyboard shortcut. The toolbar button also allows to change the metronome volume or replace metronome samples (http://bugs.openmpt.org/view.php?id=689).
- [New] Merge functionality has been extended to support merging into multiple patterns with a user-specified length. This way, it becomes possible to automatically rearrange e.g. 64-row patterns into 128-row patterns in one go (http://bugs.openmpt.org/view.php?id=1750).
- [New] Pattern Properties: When increasing pattern size, there is now an option to duplicate the existing contents to the newly-added rows (http://bugs.openmpt.org/view.php?id=431).
- [New] Instrument / volume / effect column visibility can now be toggled independently. Column visibility is now remembered per-module if "Remember song window positions" is enabled (http://bugs.openmpt.org/view.php?id=1523).
- [New] Add experimental hexadecimal volume column mode. Has to be enabled via hidden setting "Pattern.VolumeColumnInHex" and then manually assign the corresponding keys for A-F and reassign effect keys to something else (http://bugs.openmpt.org/view.php?id=1798).
- [New] It is now possible to queue the next pattern to not only play when the current pattern is finished, but also when the current measure, beat or row is finished. This can be done through new order list context menu entries, four new keyboard shortcuts (combinations of Shift + Alt + Q), or as before by middle-clicking or Ctrl-left-clicking (together with the same modifier combinations of Shift and Alt as the aforementioned shortcuts, http://forum.openmpt.org/index.php?topic=7014.0).
- [New] Added keyboard shortcuts for toggling most MIDI recording options (http://bugs.openmpt.org/view.php?id=500).
- [New] Can now set a separate background color for the active row when recording is enabled (http://bugs.openmpt.org/view.php?id=856).
- [Imp] Shortcuts that toggle settings with no immediate visual feedback now show the new setting value in the status bar (http://bugs.openmpt.org/view.php?id=500).
- [Imp] It is now possible to solo a group of channels at once. The solo shortcut applies to all channels in the current pattern selection.
- [Imp] Global S9x commands are now applied while seeking as well.
- [Imp] Added hidden setting "Pattern Editor.AutoHideVolumeColumnForMOD" to disable the volume column by default for MOD and MOD-like formats (http://bugs.openmpt.org/view.php?id=1836).
- [Imp] In DPI-aware mode, the built-in pattern font is now automatically scaled according to DPI settings. From 150% onward it is upscaled 2x, from 250% onward it's 3x, etc...
- [Imp] "Continue song as soon as MIDI notes are being received" can now optionally start playback from the start of pattern, rather than from the current row (http://bugs.openmpt.org/view.php?id=445).
- [Imp] In sample mode, show default volume also for note-less instruments (http://github.com/OpenMPT/openmpt/pull/29).
- [Imp] Reduced flickering text when updating channel and row headers.
- [Fix] When inserting or duplicating multiple patterns, it was possible that patterns at the end of the order list disappeared.
- [Fix] Using the Toggle Overflow Paste shortcut didn't update the corresponding toolbar button.
- [Fix] Checking or unchecking Overflow Paste in one pattern editor didn't update the button in other pattern editors.

Sample tab
- [Imp] Replaced pitch shifting and time stretching components. By default, Signalsmith Stretch is now used for both high-quality shifting and stretching, and a custom "Akai"-like implementation can be used alternatively in "Lo-Fi Mode". Both implementations can handle any pitch shifting and time stretching amounts, and apply both changes simultaneously (http://bugs.openmpt.org/view.php?id=1808).
- [Imp] When resampling samples in MOD files, there is now an option to adjust pattern data accordingly (http://forum.openmpt.org/index.php?topic=7245.0).
- [Imp] The default / global volume tooltips now also show the effective amplification based on the sample / synth volume specified in the General tab (http://forum.openmpt.org/index.php?topic=7308.0).

Instrument tab
- [New] Last edited instrument is now remembered per-module if "Remember song window positions" is enabled.

Comments tab
- [New] In addition to copying sample / instrument texts, they can now be pasted as well.
- [Imp] Sample and instrument names and filenames are now drawn using the Comments font (so typically a fixed-width font; http://bugs.openmpt.org/view.php?id=1758).

VST / DMO Plugins
- [New] Can now load shell VST plugins (http://bugs.openmpt.org/view.php?id=1551).
- [Imp] VST: Improve correctness of PPQ position reporting. The PPQ is now also correct when the tempo changes, and when breaking to the next pattern, the position is rounded to the next start of measure (partially fixes https://bugs.openmpt.org/view.php?id=1731).
- [Mod] After seeking, plugins are informed immediately about the new playback position if playback is stopped (http://bugs.openmpt.org/view.php?id=1731).
- [Fix] Before OpenMPT 1.26, it was possible to send MIDI notes to channel plugins if the current instrument had a valid MIDI channel but no plugin assigned. The old behaviour is now re-enabled for old modules that rely on it.
- [Reg] When a plugin referenced by a module isn't found, it is no longer added to the plugin library if it can be automatically found in the root of the VST plugin path specified in the OpenMPT settings.

Playback
- [Fix] The retrigger command could behave differently when a MIDI channel was assigned to the active instrument (http://bugs.openmpt.org/view.php?id=1587).
- [Fix] NNA channels associated with VST plugins or the MIDI I/O plugin will no longer cause channel starvation with NNA set to "Continue".
- [Fix] Some plugin notes could keep playing forever when previewing samples or instruments while all NNA channels were in use.

MPTM
- [New] Every sequence has its own default tempo and speed now (http://bugs.openmpt.org/view.php?id=1322).

IT
- [Imp] Default cue points are no longer set for samples in IT files and old enough MPTM files that don't use any volume-column offset commands (http://bugs.openmpt.org/view.php?id=1540).
- [Fix] When using tone portamento to another sample after the previous sample's sustain loop has been released, the new sample should also not play its sustain loop.
- [Fix] When triggering an empty instrument note slot, completely ignore the pattern cell - do not reset the currently playing instrument's envelopes (fixes wayfinder's Jet Rider), and also don't process any effects - including global ones.
- [Fix] Offset with instrument number but no note should play offset effect with previous note (http://bugs.openmpt.org/view.php?id=1785).
- [Fix] Fixed various combinations of volume column and effect column portamento effects (http://bugs.openmpt.org/view.php?id=1827).
- [Fix] Implemented a quirk in command Lxx that always executes a portamento down when no tone portamento has been set up before, sometimes causing the target note to be reached immediately, or sliding the note down very subtly.
- [Fix] Envelope Carry should not be influenced by a previous note-off (fixes bridge.it by rs3, http://www.un4seen.com/forum/?topic=15448.msg144272#msg144272).

XM
- [Fix] When a key-off is encountered before auto-vibrato sweep reaches full depth, the vibrato depth is reset.

S3M
- [Mod] Impulse Tracker style edit timer is now stored, and also read from files made with Schism Tracker.
- [Fix] Combined slides (Kxy / Lxy) are no longer run on the first tick of a row in files made with Scream Tracker (http://bugs.openmpt.org/view.php?id=1828).

MOD
- [Imp] Groo's "The Ultimate Beeper" now plays like in ProTracker.

Other formats
- [New] Can now read PumaTracker (PUMA) modules (http://bugs.openmpt.org/view.php?id=1327).
- [New] Can now read Face The Music (FTM) modules (http://bugs.openmpt.org/view.php?id=1411).
- [New] Can now read Future Composer (FC / SMOD) modules (http://bugs.openmpt.org/view.php?id=39).
- [New] Can now read Game Music Creator (GMC) modules (http://bugs.openmpt.org/view.php?id=1762).
- [New] Can now read Chuck Biscuits / Black Artist (CBA) modules from the Expoze musicdisk by Heretics (http://bugs.openmpt.org/view.php?id=1792).
- [New] Can now read TCB Tracker (MOD) modules (http://bugs.openmpt.org/view.php?id=1845).
- [New] Can now read Real Tracker 2 (RTM) modules.
- [New] Can now read Images Music System (IMS) modules.
- [New] Can now read ChipTracker (MOD) modules.
- [New] Can now read EasyTrax (ETX) modules.
- [New] Can now read UNIC Tracker v1 (UNIC) files.
- [New] MED: Synthesized and hybrid instruments are now supported (http://bugs.openmpt.org/view.php?id=1321).
- [New] GT2: Better support for old "envelopes", in particular adding support for the previously missing tremor / tremolo / vibrato.
- [New] NST: His Master's Noise "Mupp" instruments are now supported, as well as command 7 "mega-arp".
- [New] Better support for automatic slide commands (commands that keep sliding on following rows) in various formats (http://bugs.openmpt.org/view.php?id=1773).
- [Imp] The pattern channel limit was raised from 127 to 192 for imported formats.
- [Imp] SymMOD: Files containing more channels than OpenMPT can handle are no longer rejected (http://www.un4seen.com/forum/?topic=15448.msg143952#msg143952).
- [Mod] PSM: Sub-songs are now imported as independent sequences instead of being crammed together into the same order list.
- [Fix] DTM: Portamentos are now also evaluated on the first tick of the row.
- [Fix] MO3: If multiple sample slots shared the same Ogg Vorbis sample, only one sample slot was loaded.
- [Fix] MED: Tempo parameters > 255 BPM were not imported properly if the files was imported as MOD instead of XM (http://www.un4seen.com/forum/?topic=15448.msg143478#msg143478).
- [Fix] MED: Import notes that exceed OpenMPT's note range.
- [Fix] MED: Better handling of high octaves for non-MIDI instruments (http://www.un4seen.com/forum/?topic=15448.msg144154#msg144154).
- [Fix] MED: Improve handling of low tempos in BPM mode (http://www.un4seen.com/forum/?topic=15448.msg144160#msg144160).
- [Fix] MED: For IFFOCT instruments with extra sample loop information, the loop length was not correct.

Stream Export
- [New] Can now export all sub songs to individual files (http://bugs.openmpt.org/view.php?id=1515).
- [Imp] Repeat count can now also be specified when exporting a pattern range or exporting all sub songs.
- [Imp] Normalize and Clear Plugin Buffer choices are remembered across runs. Clear Plugin Buffer is now enabled by default.
- [Reg] It is no longer possible to export a range of sequences.

Misc
- [New] Added a quick start "project assistant" view that is shown whenever there is no module loaded (http://bugs.openmpt.org/view.php?id=863).
- [New] In addition to the "Previous Order" and "Next Order" shortcuts, there are now also shortcuts that can delay the pattern transition until the next measure, beat or row is reached. When the song isn't playing, they behave like the normal "Previous Order" and "Next Order" shortcuts in the pattern editor (http://forum.openmpt.org/index.php?topic=7014.0).
- [New] Added shortcut for browsing template modules (File/Open Template).
- [New] Key bindings with Impulse Tracker-like and FastTracker-like note entry (but otherwise identical keyboard shortcuts) can now be applied directly from the keyboard settings dialog, without the need for external keymap files.
- [New] Auto save: When auto saving to a user-specified folder, it is now possible to automatically delete old auto save files (default: older than 30 days).
- [New] Auto save: Old auto save files are now moved to the recycling bin by default instead of being deleted permanently. Old behaviour can be restored in the auto save settings.
- [New] MIDI Export can now write sub songs to individual files (http://bugs.openmpt.org/view.php?id=1515).
- [New] Added a /play command line switch, which automatically starts playback of one of the modules passed via the command-line (http://bugs.openmpt.org/view.php?id=1751).
- [New] Templates can now be opened from the "New" icon's dropdown menu in the main toolbar (http://bugs.openmpt.org/view.php?id=254).
- [New] The main toolbar now shows the global volume of the currently playing module, and can also be used to modify it (http://bugs.openmpt.org/view.php?id=277).
- [Imp] The visibility of all song info controls in the main toolbar can now be toggled via the context menu. The readouts can now also be edited directly in addition to the spin buttons.
- [Imp] If the main toolbar is too wide to fit the window's size, it now wraps around. In vertical mode, it also wraps around more sensibly.
- [Imp] Allow changing the base octave by entering digits 0 to 8 or + and - into the octave edit field in the main toolbar.
- [Imp] Precision of time display in status bar was increased to show tenths of a second (http://bugs.openmpt.org/view.php?id=1791).
- [Imp] When creating a new MOD file, it is now possible to specify whether it should be an Amiga MOD (4 channels, enable ProTracker quirks and Amiga resampler) or a PC MOD (8 channels, disable ProTracker quirks and Amiga resampler) (http://bugs.openmpt.org/view.php?id=1830).
- [Imp] DPI-awareness can now be set in the Display options directly, without the need to edit hidden settings. High-DPI and mixed-DPI behaviour has been greatly improved in many aspects.
- [Imp] When "Remember song window positions" is active, the last active state is now remembered for all tabs, not just the currently active tab.
- [Imp] "Find MPT Hacks" now warns about S3Ms using extended OPL3 waveforms (as it was possible in early OpenMPT versions with OPL support).
- [Imp] Channel Manager: It is now possible to interact with channels that have been marked for deletion.
- [Imp] Redesign keyboard settings dialog. Assigned shortcuts are now immediately visible without having to manually select each shortcut. Potential cross-context conflicts between shortcuts are now always visible when selecting one of the shortcuts, and not just when editing them.
- [Imp] The previously hidden setting "Pattern Editor.IgnoreSongTimeSignature" can now be changed directly via the Display settings.
- [Imp] Tuning Dialog: The the dialog is now resizable.
- [Imp] Auto save directory is now created when it's missing.
- [Mod] Channel mute status is no longer saved by default.
- [Mod] Auto save no longer defaults to saving in the song's original folder (http://bugs.openmpt.org/view.php?id=1837).
- [Mod] Handling of custom context menus is now handled using a new keyboard shortcut instead of hardcoding the Application key. Shift + F10 was added as a default alternative to the Application key for keyboards that don't have this key (http://bugs.openmpt.org/view.php?id=1815).
- [Mod] New default keyboard shortcuts that conflict with existing shortcut are now added if the conflicting shortcut is in a more specific context, as the latter would override it anyway. Previously, it was the other way around, potentially changing existing shortcut behaviours.
- [Mod] Global keyboard shortcuts no longer have priority over shortcuts in more specific contexts if they conflict, making their behaviour consistent with other contexts.
- [Mod] Folder browser now uses modern browser style when available. The old browser style can be enforced by the hidden setting "Display.UseOldStyleFolderBrowser" (http://bugs.openmpt.org/view.php?id=1687).
- [Mod] When auto-saving to a custom folder, sample paths for external samples are no longer relative in auto-saved files. This way, it is guaranteed that they will still work correctly when being moved back to the module's original folder.
- [Mod] Various context menus are now opened when releasing right mouse button, not when pressing it.
- [Mod] Special key interception (Windows / Caps Lock / Scroll Lock / Num Lock) is now only active in contexts where a shortcut using that key is present (so e.g. having Note Off assigned to Caps Lock will now allow Caps Lock to be used as normal in another text edit field).
- [Mod] The old Display.HighResUI and Display.UseGDIUpscaling settings are gone. They are not migrated. OpenMPT is set to be per-monitor DPI-aware by default.
- [Fix] Various keyboard handling issues on Wine should be fixed (http://bugs.openmpt.org/view.php?id=713).
- [Fix] The "Previous Order" and "Next Order" shortcuts now also work when the pattern editor isn't focussed (http://bugs.openmpt.org/view.php?id=1489).
- [Fix] Fix various keyboard focus issues when switching between upper and lower half of editor views or switching to another application and back (http://bugs.openmpt.org/view.php?id=1799, http://bugs.openmpt.org/view.php?id=1800).
- [Reg] Global keyboard shortcuts can no longer be triggered while a menu or context menu is open.
- [Reg] On Windows XP and Wine 3.12 and older, messages with "don't show again" option are now always shown at most once (the checkbox is no longer visible).

Bundled plugins
- [New] MIDI I/O Plugin: Can now send an initial MIDI dump on playback start.
- [New] MIDI I/O Plugin: The plugin now has its own extended MIDI macro system: Automating any plugin parameter (via PC events or, maybe a bit pointlessly, Zxx macros) sends MIDI macros that follow the same format as Zxx macros, but unlike Zxx macros they are not limited in length.
- [New] MIDI I/O Plugin: A new virtual output device has been added to allow for MIDI messages to be forwarded to the configured output plugin. This way, the new macro mechanism can also be used together with other plugins and not just MIDI devices.
- [Imp] MIDI I/O Plugin: PPQ position is now sent when "send timing information" is enabled. Position updates are sent at the start of every measure, and when changing playback position.
- [Imp] MIDI I/O Plugin: The plugin editor is now resizable.
- [Fix] MIDI I/O Plugin: When a MIDI device is lost temporarily, OpenMPT tries to re-open the correct device (identified by name or friendly name) when playback is started.
- [Reg] MIDI I/O Plugin: The possibility to automate the MIDI input or output port was removed. The resolution of automation parameters was nowhere near enough to be able to actually select devices in a meaningful way.

Third-Party Libraries
- [Imp] Update RtMidi (v6.0.0)
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Pomegra Knight

These sound fantastic! Thank you for all your hard work!

LDAsh

I noticed a mention of WinXP, if you're really still going to be supporting the legacy systems, then that is legendary champion pure awesome!

Saga Musix

XP / Vista builds are provided on a best-effort basis. They are missing some features and need to be compiled with an older compiler (Visual Studio 2017), so once it becomes impractical to support this older compiler, we will need to drop support for them. But at least for the lifetime of OpenMPT 1.32, you can expect that we will continue to provide them. Whether that hold true for OpenMPT 1.33 will remain to be seen.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

n0cturn

I've been looking forward to this release, not sure why, but the fact that an old school tracker is still being developed in 2025 pleases me. Keep up the good work