View Issue Details

IDProjectCategoryView StatusLast Update
0001281OpenMPTPlugins / VSTpublic2019-11-10 21:02
Reporterlfont Assigned To 
Status closedResolutionnot fixable 
Platformx86 / x64OSWineOS Version4.0.2
Product VersionOpenMPT / libopenmpt 0.4.9 (upgrade first) 
Summary0001281: Cannot change preset bank in Synth1


I try to use Synth1 ( version 1.13 beta3.
The VST loads and all major functionalities work but it is not possible to change the preset bank.
It still possible to change the preset program.
The issue has been reproduced on both 32 and 64 bit version of OpenMPT running on top of wine.

These versions of wine have been tested:

  • wine stable 4.0.2
  • wine staging 4.14
  • wine staging 4.17
Steps To Reproduce
  • Add Synth1 in a plugin slot
  • Click on the "Edit" button
  • From the Synth1 GUI click on the bank name at the bottom
  • From the Synth1 preset screen try to change bank by clicking on one item of the treeview (left part of the preset screen).
Additional Information

The issue is not reproducible on Windows 10.

I was able to get the preset bank selection to work on wine by running the plugin in the bridge.
Unfortunately this is not a valid workaround because the main Synth1 GUI does not display (all black) in this case (related to:

The preset bank selection also work in the following VST hosts running on the same version of wine:

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


related to 0001270 acknowledged Provide a workaround for bridged plugin GUIs in Wine 




2019-11-08 09:02

reporter   ~0004142

Synth1 is (sadly) known to be a trouble maker with wine (it runs more stable and less troubling on a native Windows installation, so if you have the resources, install Windows inside a virtual machine and use OpenMPT in there). You can use 64bit version and bridge it. This gives you a black window, if you drag it around behind other windows you might get something visible. Only in this constellation changing the preset in the overlay works.

See also and

Saga Musix

Saga Musix

2019-11-08 21:00

administrator   ~0004146

Last edited: 2019-11-09 12:08

Generally OpenMPT is not involved with either drawing the plugin UI or executing a bank switch. Of course it is possible that there are differences in hosts which would cause Synth1 to behave differently, but such differences would have to be on a very low level that we most likely don't have any influence over (e.g. MFC's window message loop). At the end of the day this is a Wine bug because the plugin works correctly in Windows, so I suggest that you report this bug to the Wine development team.

Note that you can still change Synth1's program and bank without resorting to its UI:

  1. By specifying the bank and program number OpenMPT's instrument editor
  2. By checking "select program from host" in Synth1's settings and then using the program switch in the plugin window's menu bar. For this to work you have to close and re-open the module you are working on.
Saga Musix

Saga Musix

2019-11-08 21:29

administrator   ~0004147

I checked and this used to work in OpenMPT 1.26 and older; I do not think that there were any relevant changes in our own code in OpenMPT 1.27 that could cause this break (at least the changelog doesn't reveal anything) but we made a significant upgrade in our toolchain (from VS2008 + VS2010 to VS2015) which also implies a newer version of the underlying window toolkit (MFC); I believe that these changes are most likely causing the difference in behaviour. Hermann Seib's VSTHost also uses a much older MFC version if I remember correctly.

This doesn't change anything about my recommendation, though: Report the error to the Wine people.

Saga Musix

Saga Musix

2019-11-10 21:02

administrator   ~0004153

I dug a bit deeper and I know now which change broke this; unfortunately it's not one that we would want to undo: OpenMPT 1.27 and later are compiled with Unicode support; OpenMPT 1.26 and earlier are not. OpenMPT 1.27 and later can still be compiled as an ANSI application (OpenMPT-ANSI.sln) and then Synth1's bank selector also works.

The problem is probably that Synth1 itself is compiled as ANSI rather than Unicode, and thus creates ANSI windows (while OpenMPT's windows are Unicode windows). I guess that there might be a bug in Wine somewhere that only manifests when mixing ANSI and Unicode windows. Both NanoHost and VSTHost are ANSI applications, too, so that's why they don't expose this bug.

I reported a Wine bug and will thus close this issue:

Issue History

Date Modified Username Field Change
2019-11-07 14:01 lfont New Issue
2019-11-07 14:22 lfont OS Version (version plz) => 4.0.2
2019-11-07 14:22 lfont Description Updated
2019-11-07 15:13 lfont Additional Information Updated
2019-11-08 09:02 StarWolf3000 Note Added: 0004142
2019-11-08 09:03 StarWolf3000 Relationship added related to 0001270
2019-11-08 21:00 Saga Musix Note Added: 0004146
2019-11-08 21:29 Saga Musix Note Added: 0004147
2019-11-09 12:08 Saga Musix Note Edited: 0004146
2019-11-10 21:02 Saga Musix Note Added: 0004153
2019-11-10 21:02 Saga Musix Status new => closed
2019-11-10 21:02 Saga Musix Resolution open => not fixable