What registry keys are used by the 64 bit version of kX?

Discussion in 'Effects and the DSP' started by Russ, Feb 17, 2011.

  1. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    As of 3551a it seems that the 64 bit version of kX includes both 32 bit and 64 bit applications and plugins.

    What registry keys are used for this?
    e.g.
    ...for registration info and presets for 32 bit plugins (and addons), etc?
    ...for registration info and presets for 64 bit plugins (and addons), etc?

    Is it different with Windows XP 64 bit -vs- Windows Vista 64 bit -vs- Windows 7 64 bit, -vs- any other supported 64 bit OS, etc?
     
    Last edited: Feb 17, 2011
  2. totya

    totya New Member

    Joined:
    Feb 13, 2011
    Messages:
    23
    Likes Received:
    0
    Trophy Points:
    0
    Hi, my System is Win7 x64, registry path is: [HKEY_CURRENT_USER\Software\kX]

    No others "kX" key in registry, I think this key uses mixer x86 and mixer x64 both.
     
  3. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    Hmm, if that is the case, then I wonder how it differentiates between 32 bit and 64 bit plugins (when they both have the same GUID (and same file name?)).

    I did notice that absolute PATH info was not stored in the registry for the bundled plugins, so maybe that is how it is handled for the bundled plugins. e.g. It expects them to be located in the same directory as (or relative to) whichever kxmixer version is being used... If that is the case, it could be an issue for 3rd party plugins (since registering a plugin adds absolute path info (in XP 32 bit anyway)).

    In any case, thanks for checking :cool:
     
    Last edited: Feb 20, 2011
  4. Max M.

    Max M. h/h member-shmember

    Joined:
    Dec 7, 2002
    Messages:
    2,690
    Likes Received:
    9
    Trophy Points:
    63
    Îòâåò: What registry keys are used by the 64 bit version of kX?

    I don't think the author thought of anything like this at all...
    Both builds are installed together simply because it is easier for some libraries (e.g. the ASIO32) and easier for the installer. Any usability, usecases or whatever were not taken into consideration.
     
  5. totya

    totya New Member

    Joined:
    Feb 13, 2011
    Messages:
    23
    Likes Received:
    0
    Trophy Points:
    0
    Russ: Hi, I see two plugins, FXBusX and ProFX/MX6 under mixer x86 and mixer x64, and GUID is same.
     
  6. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    Sorry, I am not sure what you mean...

    When you say "mixer x86" and "mixer x64", are you talking about a registry key (or do you mean in the DSP?)?
    If so, is there a separate Plugins key under each one (or are all the plugins listed directly under those keys?)?

    Also, are you saying that those 2 plugins have the same GUID as each other, or do you mean that you see FxBusX in both places with the same GUID, and MX6 in both places with same GUID (but FxBusX and MX6 do not share the same GUID), etc.

    Sorry, it is a bit confusing because I do not have any of this x86/x64 stuff on WinXP (32 bit).

    Note: I assumed that the 32 bit version and 64 bit version of each (bundled) plugin share the same GUID because there is only 1 SDK, with only 1 version (source code) of each plugin (so the only difference should be related to compiling the plugins, etc).

    [EDIT]
    Never mind... I think you probably mean that you loaded those 2 plugins in each DSP and checked the GUID's to see if they are the same for each one (you just confused me when you said "under mixer x86", etc instead of "in the 32 bit DSP" or "in the DSP with x86 mixer", etc. ...thanks again for checking :)
     
    Last edited: Feb 19, 2011
  7. totya

    totya New Member

    Joined:
    Feb 13, 2011
    Messages:
    23
    Likes Received:
    0
    Trophy Points:
    0
    Hi, I wrote this.

    Two different directories, two different application. Mixer name is "kxmixer.exe".

    mixerx86: I run x86 version from "Program Files (x86)\kX Project\kxmixer.exe". In taskamanger I see, this is 32bit application.

    mixerx64: I run x64 version from "Program Files\kX Project\kxmixer.exe" UAC is ask for me, full access etc. In taskamanger I see, this is 64bit application.

    I don't know really what is your problem, I think all settings (registry) is common, plugins compiled x86 and x64 bit.

    I try this: start mixer x86 (see above...) Open DSP, Clear DSP, Add plugin FXBusX and ProFX/MX6, and right click on plugins in DSP, Info, alt-printscreen (because text copy from info window not possible) and paste to (MS) paint. Close mixer x86.
    Start mixer x64. UAC ask me, I select:yes. Open DSP, Clear DSP. Exit from mixer x64. Start mixer x64. Open DSP (DSP is clean) Add plugin FXBusX and ProFX/MX6, and right click on plugins in DSP, Info, and I compare with pasted (MS) paint bitmap. And I see GUID is same.
     
  8. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    Sorry, I guess you missed my "edit" in my last post. I figured out what you meant. It is just that we were talking about the registry, so in that context, your sentence sounds like registry keys or something.
     
  9. totya

    totya New Member

    Joined:
    Feb 13, 2011
    Messages:
    23
    Likes Received:
    0
    Trophy Points:
    0
    Hi, I want exactly answer for you. The first, you see, settings is common. If settings store in registry, then registry key too common.
     
  10. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    Yes, I figured that was the case from the info in your previous posts.

    The potential problem I am talking about is related to 3rd party plugin (kxl) registration (i.e. what I said in post #3).

    If you have a chance, can you check what path is stored in the registry for one of my plugins?
    e.g. N-Gate

    Search for "N-Gate.kxl" under "HKEY_CURRENT_USER\Software\kX\Plugins"
    What PATH does it show?

    Thanks again for your help :)
     
  11. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    The following is a bug report:

    Note: I do not have a 64 bit OS, so I am not able to test anything related to that myself, Much of the following is speculation based on info provided by other kX users, etc.

    It appears that kX in 64 bit OS includes both 32 bit and 64 bit applications (probably for 32 bit ASIO, etc) and uses a shared config between it's 32 bit applications and 64 bit applications.

    -----
    Maybe not an issue, but this means that kX in 64 bit OS is probably more than double the size it is with 32 bit OS (from 64 bit bloat, plus 32 bit copies of applications and plugins, etc).
    ----

    A shared config would require that relative paths are used (the registration info for the bundled plugins currently does use relative paths), however, plugin registration currently uses an absolute path. This means that users will have to re-register any 3rd party plugin any time they want to switch from using the 32 bit version of the plugin with the 32 bit mixer/DSP, to using the 64 bit version of the plugin with the 64 bit mixer/DSP, etc. (and vice-versa)

    The workaround for the above is to edit the plugin registration info in the registry and convert the paths from an absolute path to a relative path for any 3rd party (.kxl) plugins/plugin libraries.


    This also presents issues when one version of the plugin does not exist ( not all 3rd party plugins are currently available in both 32 bit version and 64 bit version).

    This also means that users can no longer place plugins where ever they want. Since it is not possible to store two files with the same name in the same location, the only locations that will work as a relative path are within the "Program Files" directories (i.e. when both versions of the plugin exist, 64 bit plugins must be placed somewhere under "C:\Program Files\" and 32 bit plugins must be placed somewhere under "C:\Program Files (x86)\").

    Since ".da" plugins are not restricted to any kX version, they will not have the above limitations, and should use an absolute path. This means that a different registration procedure will be needed for ".da" plugins and ".kxl" plugins (otherwise users will need to keep identical copies of all .da plugins, placed in the appropriate directories) for 64 bit OS.

    I suspect that this also presents some potential issues with kX file associations, since they will likely be using an absolute path.
    e.g. (one scenario)
    A user is using the 32 bit mixer for 32 bit ASIO, and they decide to load a saved DSP config by double clicking on a saved settings file. Assuming that the file association for kX Settings Files points to the 64 bit kxmixer, what happens? I do not know, but it seems it could be a potential issue (maybe not).
     
    Last edited: Feb 23, 2011
  12. totya

    totya New Member

    Joined:
    Feb 13, 2011
    Messages:
    23
    Likes Received:
    0
    Trophy Points:
    0
    Hi, I don't read this thread few days ago, well, the path in registry this (twice):
    C:\Program Files (x86)\kX Project\N-Gate.kxl
     
  13. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    I see... Thank you for the info :)

    That confirms what I thought, so it is a bug (I will edit the bug report). It does not make much difference with that plugin, since there is currently no 64 bit version (i.e. even if you fix the path, it is still gonna give you trouble changing between mixers, unless you unload the plugin first (as you discovered yourself)).
     
  14. Max M.

    Max M. h/h member-shmember

    Joined:
    Dec 7, 2002
    Messages:
    2,690
    Likes Received:
    9
    Trophy Points:
    63
    Îòâåò: What registry keys are used by the 64 bit version of kX?

    interesting... afair, there's a dedicated registry for x86 applications (which is absolutely transparent by default - i.e. an x86 app writing to Root/HCU is actually redirected to Root/WoW/x86/HCU..whatever).. so E. had to enable this registry sharing intentionally (well, unless this is just the same "misprint" installer mistake/bug as with all kx's file paths in registry) - I wonder why... I can't think of any good reason (only possible bugs and issues)... well, that just takes me back to my post #1 here :dead:

    P.S. I wonder how soon someone asks the fun question - if x86 mixer/plugins are totally fine in x64 win - then why one needs to install their x64 versions at all ;)
     
    Last edited: Feb 23, 2011
  15. totya

    totya New Member

    Joined:
    Feb 13, 2011
    Messages:
    23
    Likes Received:
    0
    Trophy Points:
    0
    Hi!

    I wrote this problem already in bug report thread (see: x64 and x86 version setting is common, this is not optimal...), and I wrote for you already. Depends of programmers how solved this situation, relative path (need x86 and x64 version of external plugins - with old plugins I think this impossible if source code is missing), or with duplicated registry keys, then all plugins and settings different in x86 and x64 enviroment, and no crash point. But now I'm use mixer x86, I don't see any advantage why better for me the mixer x64 version.
     
  16. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48

    I thought that was the case too, but the table here seems to indicate the HKEY_CURRENT_USER/SOFTWARE is a shared key (not redirected).

    :D
     
  17. Max M.

    Max M. h/h member-shmember

    Joined:
    Dec 7, 2002
    Messages:
    2,690
    Likes Received:
    9
    Trophy Points:
    63
    Îòâåò: Re: What registry keys are used by the 64 bit version of kX?

    Ah, that explains it all :oops:
    So it will be tricky to fix the right way... (not counting a brute-force kludges).
     
  18. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    Yup, I saw that... I actually meant to post a link to that, but I forgot...
     
  19. Eugene Gavrilov

    Eugene Gavrilov kX Project Lead Programmer and Coordinator

    Joined:
    Dec 7, 2002
    Messages:
    3,146
    Likes Received:
    9
    Trophy Points:
    48
    Îòâåò: What registry keys are used by the 64 bit version of kX?

    Hi guys,

    Thanks for the report! Your findings are correct: kX uses 'relative' paths for built-in components and 'absolute' paths for newly registered plugins. While this was not intentional, it has some rationale behind.

    1. 32 and 64-bit versions of the mixer are NOT supposed to be used at the same time on the same machine. They are provided for compatibility only.
    2. if user has 32-bit only plugins, he SHOULD only use 32-bit version of the mixer and forget about 64-bit version (since there are NO 64-bit only plugins anyway)
    3. if user does NOT have 32-bit plugins, he SHOULD forget about 32-bit :)
    (and can even delete all files found in x86 folder).

    relative paths simplify initial setup and make the transition between 32 and 64 easier, but they are not intended to solve any issues with having both versions, 32 and 64, being in use at the same time on a regular basis

    32-bit mixer is NOT required to use 32-bit ASIO, these are absolutely independent
    (ASIO only needs kxasio.dll + kxapi.dll)

    Yes, 64-bit installation consumes more hard disk space, but I doubt anyone cares about 5 megabytes these days :)

    When file association command is involved, a new instance of kxmixer.exe (usually 64-bit) actually prepares a special command and sends it to the instance of kX Mixer currently running. It should work with any version of kxmixer currently running (32 or 64), but I haven't got a chance to verify this myself. Please let me know if it does not work for you.

    Since there is no convenient way to have both plugin binaries at the same folder while still separate them for different architectures (compared, for example, with Apple approach, where each binary contains all images for every architecture), I currently have no plans adding such support into kX... Using both versions, 32 and 64, at the same time requires attention from end-user. If anyone really needs to use the mixer this way, the preferred option is to copy plugins into corresponding Program Files folders and correct registration paths in the registry (use relative paths).

    "Reset global settings" will correct relative paths for built-in plugins automatically.

    It might be useful to allow to use 32-bit plugins in 64-bit mixer, but this would involve a lot of coding and I doubt this is possible and/or required...

    Please let me know if I missed something.

    E.
     
  20. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    Thanks for the reply :)

    Good to know...
     

Share This Page

visited