View Issue Details

IDProjectCategoryView StatusLast Update
0001842OpenMPTPlugins / VSTpublic2024-12-03 21:29
ReporterAceOfSpadesProduc100 Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Platformx64OSWindowsOS Version11
Product VersionOpenMPT 1.31.12.00 / libopenmpt 0.7.11 (upgrade first) 
Target VersionOpenMPT 1.31.13.00 / libopenmpt 0.7.12 (current stable)Fixed in VersionOpenMPT 1.31.13.00 / libopenmpt 0.7.12 (current stable) 
Summary0001842: GS instruments can be imported as .iti instruments, but won't work on the MIDI out plugin to MSGS
Description

When dragging the instrument from melodic bank xx.00 to the instrument editor, it assigns the right MIDI program and bank, but setting the plugin to MIDI out and the engine to Microsoft GS Wavetable Synth results in only GM instruments of the same program number being played. Has this already been reported before? I don't know about the severity or priority, as it simply only makes it harder to use it as a MIDI composer with a better interface and the user wants to go beyond GM instruments.

Steps To Reproduce

Drag a GS instrument from GM.DLS > Melodic Bank xx.00 to the instrument editor
Plugin/MIDI FX 1 to MIDI Input Output
MIDI Output Device to Microsoft GS Wavetable Synth
Press any note key

Additional Information

Not even the MIDI export has an option to use more than GM instruments.

TagsNo tags attached.
Has the bug occurred in previous versions?Never tested it before
Tested code revision (in case you know it)

Activities

Saga Musix

Saga Musix

2024-11-28 14:37

administrator   ~0006220

Last edited: 2024-11-28 14:42

Did you initialize the GS mode? Without sending a GS Reset SysEx message, a GS-compliant synthesizer will only support the original General MIDI subset. OpenMPT won't do this for you because its MIDI support is meant to support any MIDI devices, not just GM/GS/XG.

The only bug I can notice is that the bank is off by one (so it should be e.g. 129 instead of 128 for Melodic Bank 01.00), but that can be worked around manually until the next OpenMPT update is out.

Not even the MIDI export has an option to use more than GM instruments.

MIDI export will take the bank information from the instrument. The shown instrument names are just for illustrative purposes.

AceOfSpadesProduc100

AceOfSpadesProduc100

2024-11-29 08:35

reporter   ~0006226

I tried sending the right SysEx messages, via a fixed macro, but the instrument is still stuck on GM.

Saga Musix

Saga Musix

2024-11-29 13:28

administrator   ~0006228

Works as expected here:

gs enable.zip (1,052 bytes)
AceOfSpadesProduc100

AceOfSpadesProduc100

2024-11-29 22:38

reporter   ~0006230

The example also works well in the exported MIDI, but a MIDI version of another song that I've been trying to do doesn't play the GS-exclusive instruments, specifically "Sine Wave" and "Square". Dragging "Square" from GM.DLS>Melodic Bank 01.00>Square auto-sets the MIDI program to 81 and the bank to 128, and the "Sine Wave" from bank 08.00 sets the program to 81 and the bank to 1024. All the GM instruments work perfectly fine, just the instruments from the GS-exclusive banks that are silent.

Saga Musix

Saga Musix

2024-11-29 22:39

administrator   ~0006231

As mentioned above: There is currently an off-by-one error when populating the MIDI bank after importing a soundfont patch, so you need to turn bank 128 into 129, 1024 into 1025, etc. This will be fixed in the next OpenMPT version.

AceOfSpadesProduc100

AceOfSpadesProduc100

2024-11-30 02:40

reporter   ~0006235

This issue is now resolved (or at least on the next version), but is there already something about this information in the docs? At first, that macro didn't work until I saw that the channel needed to be set to the MIDI out plugin. Could be either the MIDI help or a Q&A, something about setting a fixed macro to a SysEx string with examples for GS and XG, then setting the channel where the macro is to be used to "MIDI input output".

Saga Musix

Saga Musix

2024-11-30 11:00

administrator   ~0006236

The more nitty-gritty details are only partially documented, some of it is implied (such as the prerequisite for sending a MIDI macro is having that plugin assigned to a channel, or having played a note of that plugin on that channel).

I have been working on some things that should hopefully make this a bit easier in the future, so you wouldn't have to use the MIDI macro mechanism for this anymore: Directly specifying one or several MIDI message to send when the MIDI connection is opened, directly from the MIDI I/O plugin itself, so no macros would have to be configured. It will probably be ready in the next few days (or worst case weeks if it doesn't work as expected).

Saga Musix

Saga Musix

2024-12-01 00:43

administrator   ~0006240

If you want to try it out, as of r22371 (OpenMPT 1.32.00.34) the MIDI I/O plugin has been upgraded: There is now the possibility to send a MIDI dump every time the song is opened (or even on every playback, which would be necessary for MSGS). Additionally, the MIDI macro mechanism has been extended for this plugin: You can now configure individual MIDI macros just for this plugin, and they can be triggered by automating plugin parameters 100-999 (via PC events).

Updated builds should be available from https://builds.openmpt.org/builds/ within a few hours. Please don't reopen this issue though if you have any questions or bug reports, please open a new one or ask on the forum. :)

Saga Musix

Saga Musix

2024-12-03 21:29

administrator   ~0006246

If you gave the new plugin functionality a try already, please note that the MIDI dumps stored in the moduel file will not work in OpenMPT 1.32.00.35. I have explained the details here and how to migrate from 1.32.00.34 to 1.32.00.35: https://forum.openmpt.org/index.php?msg=50696

Issue History

Date Modified Username Field Change
2024-11-28 06:55 AceOfSpadesProduc100 New Issue
2024-11-28 14:37 Saga Musix Status new => feedback
2024-11-28 14:37 Saga Musix Note Added: 0006220
2024-11-28 14:42 Saga Musix Note Edited: 0006220
2024-11-29 08:35 AceOfSpadesProduc100 Note Added: 0006226
2024-11-29 08:35 AceOfSpadesProduc100 Status feedback => new
2024-11-29 13:28 Saga Musix Note Added: 0006228
2024-11-29 13:28 Saga Musix File Added: gs enable.zip
2024-11-29 22:38 AceOfSpadesProduc100 Note Added: 0006230
2024-11-29 22:39 Saga Musix Note Added: 0006231
2024-11-30 02:40 AceOfSpadesProduc100 Note Added: 0006235
2024-11-30 11:00 Saga Musix Note Added: 0006236
2024-12-01 00:43 Saga Musix Status new => resolved
2024-12-01 00:43 Saga Musix Resolution open => fixed
2024-12-01 00:43 Saga Musix Fixed in Version => OpenMPT 1.31.13.00 / libopenmpt 0.7.12 (current stable)
2024-12-01 00:43 Saga Musix Target Version => OpenMPT 1.31.13.00 / libopenmpt 0.7.12 (current stable)
2024-12-01 00:43 Saga Musix Note Added: 0006240
2024-12-03 21:29 Saga Musix Note Added: 0006246