OpenMPT 1.30 release candidate available

Started by Saga Musix, November 16, 2021, 22:40:18

Previous topic - Next topic

Saga Musix

It took us far longer than expected, but now we're finally getting ready for an official release of OpenMPT 1.30 towards the end of the year. There are many great new features in this release, so hopefully the long delay was worth it.

This isn't a release candidate in a strict sense, but I would like to encourage the brave among you to go to https://builds.openmpt.org/builds/ and grab the latest OpenMPT 1.30 test builds and play around with them.

We'll iron out a few more bugs and and get the wiki / manual ready with all thsoe changes in the next weeks.

Here's the detailed changelog as of r15985 (a few changes might not be documented yet):

Tree view
- [Imp] It is now possible to also load instruments from the MIDI library or soundfonts into the sample / instrument tab using Ctrl + (Shift +) Enter.
- [Fix] Clicking on some folders under soundfont items caused some instrument of that soundfont to be played since OpenMPT 1.29.14.00.

General tab
- [Imp] Changes to channel properties can now be undone and redone.
- [Imp] Tooltips are shown for channel volume and panning sliders as well as plugin gain.
- [Imp] User-chosen plugin names are now shown in addition to library names in plugin dropdown list.

Pattern tab
- [New] Channels can now be color-coded. In addition to the pattern editor, channel color is also shown and editable in the General Tab, Quick Channel Settings and Channel Manager. Default colors can be changed in Display settings.
- [New] Pattern Goto Dialog: Can now directly jump to a timestamp.
- [Imp] Quick Channel Settings: Tooltips are shown for volume and panning sliders.
- [Mod] Selecting a non-existing pattern in the order list now no longer keeps displaying the previously edited pattern, to avoid giving the impression that the recently-selected pattern is actually being edited.
- [Mod] Typing in a pattern number into the order list now instantly updates the displayed pattern.
- [Mod] "Dummy" commands are now shown as semi-transparent text.
- [Fix] Fix issues with Data Entry shortcuts on commands that take two nibble parameters (e.g. volume slides).

Sample tab
- [New] Added a timeline which shows sample positions in seconds or samples, and visualizes loop points and cue points, allowing them to be dragged around with the mouse. Press Shift while dragging for finetuning.
- [New] Add option to convert ping-pong loops to unidirectional loops.
- [New] Resampling can now optionally adjust offset commands in patterns. This does not work properly with offsets affected by the SAx "high offset" command currently.
- [New] Raw sample import can now try to automatically determine the correct raw format. More raw format options are now available, too.
- [New] IFF MAUD samples can now be imported.
- [New] The sample value under mouse cursor is now shown in the status bar.
- [Imp] Cue points can now be deleted by right-clicking their marker in the timeline.
- [Imp] Speed up redrawing of sample waveform when modifying the sample selection or loop points.
- [Imp] Loading or renaming a sample now automatically updates the associated instrument's name too if the instrument previously had the same name as the sample or no name, and if no other samples are assigned to it.
- [Imp] Time stretch parameter setup is now more usable.
- [Imp] Dropping an item from the tree view with Shift pressed now drops it into a new sample slot.
- [Mod] Opus / Vorbis: Instead of rejecting large samples, they are now trimmed to the maximum supported length and a warning is shown.
- [Fix] Show correct dB values for OPL instruments in Default Volume and Global Volume tooltips.
- [Fix] Switching to an OPL instrument after a zoomed-in sample was shown and not scrolled entirely to the left didn't display the OPL editor correctly.

Instrument tab
- [Imp] Dropping an item from the tree view with Shift pressed now drops it into a new instrument slot.
- [Imp] Zoom level is now remembered when switching between tabs.

Mod Conversion
- [Imp] Ping-pong loops are now automatically converted to unidirectional loops when converting to MOD / S3M.
- [Mod] Converting to MPTM no longer asks if the order list should be split into multiple sequences if it contains separator items. This action can still be carried out manually from the order list context menu instead.

VST / DMO Plugins
- [New] OpenMPT and the default plugin bridge now use Data Execution Prevention by default. For older plugins that are not compatible with DEP, high-entropy ASLR or Large Address Awareness, a legacy plugin bridge is provided, which will be used for all plugins previously added to OpenMPT. Newly added plugins will not use the legacy bridge, unless they are detected to require it or if the user chooses so.
- [Imp] Plugin Editor: Added a menu item to rename the plugin instance.
- [Imp] Plugin Editor: Bypass status is now shown in title bar.
- [Mod] Do not silently ignore crashes in VST plugins any more. A new hidden settings "Broken Plugins Workarounds.VSTMaskAllCrashes" can restore previous behaviour.
- [Fix] When implementing the Flanger DMO effect, some details in the original effect were overlooked. For modules made with OpenMPT 1.27 - 1.29, a legacy plugin using the old implementation (close to the Chorus DMO) is provided (this does not show up in the Plugin Manager) and used automatically in those modules.
- [Fix] If an instrument's MIDI program or bank was set to 1, it wasn't transmitted together with the first note playing on that channel, only when a different program or bank was previously chosen on that channel.

Playback
- [Imp] Improved precision of ping-pong loop length particularly for very small samples.
- [Imp] OPL: Improve channel allocation strategy when there are lots of faded-out notes.
- [Fix] By default, an OPL note-off message is now sent on every note change. Most of the time, there is no audible difference, but this fixes missing notes in ADLIBSP.S3M. The old behaviour is retained through a compatibility flag.
- [Fix] Samples played at the wrong volume when rendering or playing modules in mono (http://forum.openmpt.org/index.php?topic=6711.0).

MPTM
- [New] Volume column o00 + effect column Oxx now work together as percentage offset. If parameter extension #xx is used, it increases the granularity of the percentage. SAx does not affect this command combination.
- [New] Volume column oyy + effect column Oxx (yy > 0) now work together as well: The effect column offset is added to the sample cue.
- [New] Two new commands, Finetune (+) and Finetune (Smooth) (*), which double as micro-tuning commands and absolute pitch wheel messages for plugins. They are centered around value 80h, and fractional precision can be extended using an additional # command on the next row. The micro-tuning depth corresponds to the pitch wheel depth of the instrument; 1 semitone is used in sample mode (https://forum.openmpt.org/index.php?topic=6379.0).

MPTM::Custom Tuning
- [New] Added character '*' to drawable letters for built-in fonts.
- [Imp] S2x (Set Finetune) now adjusts the finetune of the note by -8...+7 tuning steps.

IT
- [Fix] Internally, Impulse Tracker always calculates sample playback speed in Hertz instead of periods, even with Linear Slides disabled. Using periods instead can cause small yet audible discrepancies. OpenMPT now also supports frequency instead of periods for Amiga Slides. Fixes "Watching Her Smile".
- [Fix] Pitch/Pan Separation was affected by note-off commands, and wasn't reset by panning commands like in Impulse Tracker.

XM
- [Fix] Emulate FT2 Tone Portamento quirk that inverts portamento direction after the target was reached (if target note was higher than previous note).

S3M
- [Imp] S3M files saved with Impulse Tracker and latest Schism Tracker now also compute sample playback speed in Hertz.
- [Imp] Depending on whether an S3M file was last saved in Scream Tracker with the Sound Blaster or Gravis Ultrasound drivers loaded, different compatibility flags are now applied. For files saved with the GUS, the sample volume factor is now also ignored (fixes volume levles in S3Ms made on the GUS, in particular if they use both samples and OPL instruments).
- [Imp] Enforce lower frequency limit.

MOD
- [New] OpenMPT only supported "TDZ4" to "TDZ9" magic bytes for TakeTracker modules, which should not even exist. Add support for 1 to 3 channel TakeTracker modules used "TDZ1" to "TDZ3" magic bytes.
- [Imp] Allow EFx (Invert Loop) effect to work with 16-bit and stereo samples, which would later be converted to 8-bit mono samples anyway.
- [Fix] Digital Tracker MODs have four unknown bytes right after the magic bytes which seem to be ignored even by Digital Tracker itself. Just skip over them (tx AliceLR).

Other formats
- [New] Can now read Symphonie (SymMOD) modules.
- [New] Can now read Digital Symphony (DSym) modules.
- [New] Can now read MUS modules from Psycho Pinball and Micro Machines 2.
- [New] Can now read FMT modules made with Davey W Taylor's FM Tracker.
- [New] Modules packed with various legacy compression formats (in particular many more XPK variants) can now be read. All formats supported by the ancient library (https://github.com/temisu/ancient) are supported.
- [Imp] MDL: Implemented finetune command.
- [Imp] OKT: Various accuracy improvements such as: Sharing volume between mixed channels, volume commands on mixed channels are permanent (not reset with new notes), mixed channels do not support default sample volume, 7-bit samples are actually supposed to be played as-is (not amplified to full 8-bit range), reject speed command parameters >= 20.
- [Mod] Warn during saving of an imported file when any playback compatibility settings are enabled that are not supported by the current editing format. These settings are disabled automatically.
- [Fix] MT2: External samples with sample paths starting with ".." (like some MadTracker 2 example songs) didn't load properly.

Stream Export
- [New] Can now export AU files with µ-law and A-law encoding.
- [Mod] Default dither is now 1-bit dither with 1st order noise shaping instead of 0.5-bit dither. Although this adds a higher noise floor in the upper part of the spectrum than the old default, the harmonic distortion is reduced, and the signal-to-noise ratio in the lower part of the spectrum is improved. Especially with high samplerates (> 48kHz), this is a clear improvement over the old default, because the added noise floor will be mostly above audible spectrum.

Audio I/O
- [Mod] Default dither is now 1-bit dither with 1st order noise shaping instead of 0.5-bit dither.
- [Reg] Support for DirectSound output was removed.

Misc
- [New] OpenMPT updates can now be downloaded and installed automatically.
- [New] OpenMPT is now also available for Windows on ARM.
- [New] Can now export OPL register dump as VGZ/VGM/DRO files.
- [New] Can now open SF2 soundfonts with compressed samples (commonly referred to as SF3, see https://github.com/FluidSynth/fluidsynth/wiki/SoundFont3Format).
- [New] Added new hidden setting "Misc.UseSingleInstance" (default false) which allows to force OpenMPT to only ever open a single instance.
- [New] Added a button to Mixer settings to easily revert ramping settings to defaults (tx eightbitbubsy).
- [New] Added a new shortcut to quickly toggle between all lower and upper views.
- [Imp] Saving samples / instruments and Stream Export now reports if there was a write failure, e.g. due to full disk.
- [Imp] Keyboard shortcuts can now also be bound to MIDI notes in addition to MIDI CCs.
- [Imp] Infinite pattern loops are now detected in song length calculation. This also improves seeking accuracy in modules with pattern loops.
- [Imp] Register OpenMPT with Restart Manager. This allows the installer to automatically close and restart OpenMPT.
- [Imp] OpenMPT now reports if loading a module fails due to being out of memory.
- [Mod] Hidden settings "VST Plugins.FullyUnloadPlugins" is now named "BrokenPluginsWorkarounds.VSTNeverUnloadAnyPlugin" and its meaning inverted. The old setting is migrated automatically.
- [Reg] Remove hidden setting "Misc.ShowSettingsOnNewVersion".

Third-Party Libraries
- [Imp] Update PortAudio (v19.7.0)

Installer/release package
- [New] Added a new German keymap (Impulse Tracker / OpenMPT crossover) by melcom. Updated coda's key map.
» 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.

Saga Musix

» 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.

herodotas

life is darker than it seems

Saga Musix

Thanks and thanks ;) I hope this is a worthwhile Christmas present after this long delay.
» 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.

nitrofurano

hi! as the issue tracker isn't allowing us to create an account and login, i think it's not a problem reporting it here anyway (really sorry, i can't find any other option) - previously i used a nautilus/caja script for opening mod/s3m/it/xm files (on gnu/linux from wine, as command line argument), that always worked perfectly - now, in this new version ( 1.30.01.00) , it shows an error message saying that the file doesn't exist (when it obviously does) - thanks!

Saga Musix

Quote from: nitrofurano on December 23, 2021, 19:07:15
hi! as the issue tracker isn't allowing us to create an account and login
You are probably using a Chrome-based browser. Press the Cancel button in the login prompt. Sorry for the detour, but it's an extremely effective spam prevention method.

Quotepreviously i used a nautilus/caja script for opening mod/s3m/it/xm files (on gnu/linux from wine, as command line argument), that always worked perfectly - now, in this new version ( 1.30.01.00) , it shows an error message saying that the file doesn't exist (when it obviously does) - thanks!
Without any details how you are invoking OpenMPT I cannot tell you what is broken. Note that executable paths have moved (at least when using the installer package), so you might be trying to launch an executable that no longer exists. If that's not the issue, I'd have to see the exact command line how you are invoking OpenMPT.
» 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.

herodotas

Quote from: Saga Musix on December 23, 2021, 18:14:57
Thanks and thanks ;) I hope this is a worthwhile Christmas present after this long delay.

Yeah, OpenMPT getting better and better.
life is darker than it seems

Saga Musix

Quote from: nitrofurano on December 23, 2021, 19:07:15
previously i used a nautilus/caja script for opening mod/s3m/it/xm files (on gnu/linux from wine, as command line argument), that always worked perfectly - now, in this new version ( 1.30.01.00) , it shows an error message saying that the file doesn't exist (when it obviously does) - thanks!
For the record, I just wrote a shell script that launches OpenMPT through wine with some modules as command line parameters. It worked just fine. Without seeing your launch script, it is impossible to tell what is broken.
» 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.

FWL

Hello Saga and others,

Thanks for this great update! I had a question about one entry in the release notes:
It is now possible to extract a complete drum instrument into a single instrument slot by dragging its folder rather than an individual note.

What exactly does this mean and how does this work? I assumed that it was a kind of 'automapping' of (drum)samples in an instrument by dragging and dropping an entire folder from the samplebrowser/tree. Just like dragging a single sample. But this doesn't work so I probably misunderstood and another functionality is meant here.

Saga Musix

This feature allows you to drag a drum kit from a soundfont (e.g. the "0: Standard" folder under GM.DLS) and drop it into an instrument to import the complete drum kit into a single instrument that can be used just like a regular General MIDI drum kit. It maps the samples exactly as they are in the soundfont.
» 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.

FWL

Ah Ok! So its soundfont specific. That clears it up Thanks.

Saga Musix

I guess what you tried to do is essentially this feature request: https://bugs.openmpt.org/view.php?id=831
» 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.

FWL

Well yes, but the feature request is far more sophisticated. My expectation were simpler. I just thought that you could drag and drop a folder with samples onto an instrument window and that the samples would be mapped in the same order as in the folder and all notes are mapped to C5 (most logical for drumsounds) . So no root metadata or multisample editor. 

But its a nice idea:-)
But instead of a visual zone editor, maybe dragging an dropping multiple samples on an instrument and a dialog window which allows you to choose the note from where the mapping has to begin and a stepsize for when the mapping has to reset to C5 again would be easier to realize? 

Saga Musix

Well, we will definitely need to strike a nice balance between simplicity and complexity. I don't think that just "randomly" assigning samples from a folder to notes would be very useful for example. A complete visual zone editor on the other hand might be too much for the initial implementation for such a feature. As often, coming up with such a compromise can be more difficult than actually implementing the feature.
» 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.

FWL

Yeah you're probably right.  And there are SFZ editors available that can do the visual samplemapping which then can be used in OpenMPT.

But in defence of the simple drag and drop, the 'randomness' can of course be prevented by naming your samples in your samplepack/kit in a way that it orders in the way you want them mapped.