Menu

#234 Error detecting voicemeeter version (better mechanism?)

1.x
open
nobody
None
2022-12-17
2022-12-17
Etaoin Wu
No

I recently updated my voicemeeter potato (from 3.0.1.8 to 3.0.2.8) and Equalizer APO (from 1.2.1 to 1.3). After the update, I discovered that the Configurator can only detect one output from VM ("Output A1").

I spent a while digging into EqAPO's source code, and found out that the current mechanism (1.3 source, VoicemeeterAPIInfo.cpp:61 VoicemeeterAPOInfo::prependInfos()) to detect VM version uses the uninstallation registry of VM to detect if the installed version is vanilla, banana or potato. However, when I updated my VM, my registry looks like this:

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\VB:Voicemeeter {17359A74-1236-5467}]
"UninstallString"="C:\\Program Files (x86)\\VB\\Voicemeeter\\Voicemeeter8Setup (1).exe"

Notice that (1) appended to the file name. I guess that, after a VM reinstall (which is the only way to update it), the new uninstaller wasn't able to overwrite the old one, and the registry points to the new one. Thus setupFilename would be Voicemeeter8Setup (1).exe, and line VoicemeeterAPIInfo.cpp:65 fails.

I propose that prependInfos() can use another mechanism to detect the version of VM. (Apparently VMR doesn't provide this functionality.) A simple fix would be checking whether setupFilename starts with VoicemeeterPro or Voicemeeter8, i.e.

    long voicemeeterType = 1;
    if (setupFilename.rfind(L"VoicemeeterPro", 0) == 0)
        voicemeeterType = 2; // banana
    else if (setupFilename.rfind(L"Voicemeeter8", 0) == 0)
        voicemeeterType = 3; // potato

Discussion

  • Etaoin Wu

    Etaoin Wu - 2022-12-17

    Quick fix for me: just rename the uninstaller and change the registry.

     
  • Peter Verbeek

    Peter Verbeek - 2022-12-17

    It's a bit weird that the term "Voicemeeter8" wasn't found in "Voicemeeter8Setup (1).exe". Anyway, the developer of Equalizer APO isn't doing much on his project so your fix is the best way forward.

     

Log in to post a comment.