audacity 2.1.0 + xp sp3 error

Audacity does launch on XP SP3 without Visual Studio which is the main case.

I notice that Visual Studio 2013 should not be installed on less than Windows 7 SP1, according to Microsoft ( https://www.visualstudio.com/en-us/products/visual-studio-2013-compatibility-vs.aspx ).

If you are a developer I suggest you uninstall Visual Studio 2013 and install the supported Visual Studio 2008. I would guess installing an unsupported version of Visual Studio could be something to do with this.

You may still be able to compile Audacity on VS2008 using winaudacity-vs2008_OBSOLETE.sln however this is unsupported.

You can also do some tracing to see what happens when you try to launch Audacity. For example the Sysinternals tools may shed some light on it.


Gale

and i have only installed latest vstudio after facing this issue, hoping to solve problems.

I notice that Visual Studio 2013 should not be installed on less than Windows 7 SP1, according to Microsoft ( > https://www.visualstudio.com/en-us/products/visual-studio-2013-compatibility-vs.aspx > ).

If you are a developer I suggest you uninstall Visual Studio 2013 and install the > supported Visual Studio 2008> . I would guess installing an unsupported version of Visual Studio could be something to do with this.

yes, i will try, although i wonder why the installation of unsupported versions don’t halt with errors then?

some programs rely on vstudio, so which version is recommended, vs 2008 only?

You may still be able to compile Audacity on VS2008 using winaudacity-vs2008_OBSOLETE.sln however this is unsupported.

You can also do some tracing to see what happens when you try to launch Audacity. For example the Sysinternals tools may shed some light on it.

thanks for your suggestions, but unfortunately i am not very familiar with these tools and compiling either, so i guess i’ll have to stick with audacity 2.0.6 then.

I didn’t understand that, but if there was an issue the correct approach would be to install the VS2013 Redistributables and definitely not to install a version of Visual Studio that is unsupported on that system. The point is that VS2013 can be configured (as we’ve done) to build applications that run on XP SP3, but itself should only be installed on Windows 7 SP1 or higher (according to what Microsoft say).

I can’t answer that, but if you are not a developer it will not be helping to install VS2013.

No applications intended for end users should rely on installing VisualStudio, only on the redistributable files, which are available if necessary as separate downloads from Microsoft.

It would be a shame to have to go back to 2.0.6 but you should still be aware the Microsoft no longer officially supports XP.

I would completely uninstall VS2013 and completely uninstall any Microsoft Visual C++ Redistributable Packages you have (you can do both from Add/Remove Programs in the Windows Control Panel). Then reboot and try running 2.1.0.

If that still fails we may have to dig deeper.

If other apps complain about missing redistributables you can reinstall the specific redistributables they need when that arises.

Is this 32-bit or 64-bit XP?


Gale

i think you got me wrong. it is only redistributables that i have installed and that i was refering to.

installing vs2013 red. was a test, to see, if it solves the starting issue. i was not aware of the fact, the 32bit version should not be installed on less than win7 sp1. even more i am curious to see this installation pass on an unsupported system without any warnings, that’s all.

i will uninstall all vs redis. to see if it makes a difference and report back then.

ok, i have uninstalled all vs redis. and ran the dotnet cleanup tool afterwards.

now even audacity portable 2.0.6 refuses to start.

‘application could not be started, because the application’s configuration is incorrect. reinstall the application to solve this issue’

Uninstall Visual Studio 2013 itself. If you are not a developer, why you do you need it? If you do intend to compile apps, you need the supported version of Visual Studio for XP SP3 which is VS2008, not VS2013.

We are trying to get 2.1.0 running. We have nothing to do with the Audacity Portable project . If you have problems with that please ask here Audacity Portable Support | PortableApps.com. But yes Audacity 2.0.6 supplied by us on XP SP3 may need the appropriate Microsoft Visual C++ 2008 SP1 Redistributable Package (x86 or x64 according to whether you have a 32-bit or 64-bit system). Which do you have - 32-bit or 64-bit?


Gale

Now I see you have said that you do not have Visual Studio installed. But your first post said clearly

visual studio 2013 is installed

You can look in Add/Remove Programs to check what you have installed.


Gale

gale,

i appreciate your help a lot. but how often do i have to repeat myself?

  1. i forgot the additional REDISTRIBUTABLE in my inital post. i never had ‘visual studio’ installed, because i am NOT a DEVELOPER.

  2. i am not using the portable version, i just unpacked the STANDARD ZIP VERSION and made it portable by creating the sub folder PORTABLE SETTINGS, that’s all. don’t ask me why the error message now tells to reinstall, i don’t know either.

i don’t install programs at all, always try to stay free, portable and without extra installs.

  1. it is 32bit, also mentioned in a post above.

well, however, thank you for clearing things up. so audacity (portable) needs vs2008 redis. in order to work. this was also a question of mine some posts ago.


to put this in a nutshell, i will reinstall vs2008 redis. sp1 and let you know if it worked.

regards

Perhaps this is a language problem, but I did look, and you did not answer directly that you had 32-bit XP as far as I can see, until now.

We cannot see your computer, so please try to be as precise as possible even if it means writing more words and writing words out in full.

Gale

maybe i did not make it clear enough, but please have a look at audacity 2.1.0 + xp sp3 error - #9 by ledestin

audacity 2.0.6 will now start again (after installing vs2008 red. sp1). still no luck with 2.1.0, this message will now even prompt 2 times.

‘application could not be initialized correctly (0xc000001d). click ok to close the application’

when it is not a missing cpu feature and xp sp3 is set as target in vs, the two dlls are present, then what does this error code mean at all?

So, do I assume you only now have the one Visual Studio C++ Redistributable Package, that for VS2008?

There are various things you can try to fix the 2.1.0 problem but they will get increasingly complicated. :frowning: For example there could be a conflict with other copies of msvcp120.dll and mvscr120.dll on your computer. If you liked you could search your computer for any other copies of those files and tell us where they are (be sure to search in hidden files and folders).

The simplest may be to try right-click over the audacity.exe then choose “Run as administrator”.

The next simplest (which may not lead anywhere) but not hard for you to do, is to download Dependency Walker. Extract the files from the ZIP then run depends.exe (it is portable, not an installer). Drag audacity.exe into it, File > Save the .dwi file, post it on dropbox or your favourite file storage site and give us the web address of the download.

You can also use for example http://www.dropsend.com/,
http://www.mailbigfile.com/ or http://www.sendspace.com.

Please take care when uploading or downloading from file sharing sites. “Free” sites are often supported by adverts that may try to trick you into downloading, registering or purchasing something that you don’t want.

If you want to look, you may also be able to dig through Microsoft’s Event Viewer for the event that triggered the initialisation error.


Gale

exactly, only visual studio c++ 2008 redistributable package sp1 is present.

concerning the two dlls, i have searched my computer using everything (tool) and they are only present in audacity and firefox portable, so that should be no harm. the event viewer (system log) only showed the already known error message when starting audacity, with no further hint at all.

at last, with the help of dependency walker, i think i have tracked down the problem. there is two dlls missing (marked red):

ieshims.dll
wer.dll

so i have searched the net, finding out these two are used in vista and above for iexplorer 8 and are not intended for xp? ‘everything’ does not find them on my computer.

what to do next?

Those two DLL’s are “delay-loaded” in any case as far as I know, and they don’t affect Audacity launching.

I would post a link to the DWI file anyway. We can then compare it on an XP SP3 machine where Audacity works without VS2013 or its redistributables.

If you did not get Audacity from us at Audacity ® | Download for Windows please redownload from there. For example if you downloaded a debug version of Audacity from somewhere else, that will not run.


Gale

Same problem here (same CPU and OS), but vs2013 is not installed.

I’ve run the application using WinDbg, and it clearly shows Audacity uses SSE2/SSE3 instructions (check attachments). At least “wxmsw28u_core_vc_custom.dll” and “audacity.exe” make use of this kind of instructions.

There’s nothing we can do on our side as our CPUs do not support these instructions, and I know the most recent versions of VS now include SSE2/SSE3 support in the default compiler options. I don’t know how better the performances are with these instructions, but it would be great if could consider removing the use of SSE2/SSE3 instructions in the next versions of AC, or at least, provide binaries that don’t rely on SSE2/SSE3 support.


Thanks for investigating with your own hardware.

I’ve checked and yes - /arch is not specified in the “Enable Enhanced Instruction Set” property, so this does as you say enable SSE2 instructions in Visual Studio 2013. The developers had not advised this was the case, but SSE-only hardware is at least 14 years old now.

I don’t know if SSE2 speeds up our floating point conversions significantly but there is experimental EQ threading code that when committed would I think benefit from SSE2.

I have sent you and ledestin private messages containing a link to a replacement SSE-only binary I made for 2.1.0. This is not an official release of 2.1.0 but is to enable you to test that the problem is use of SSE2 instructions. Please do not distribute the build to others. It will be identifiable as not the official 2.1.0 release and there will be no technical support for it.

I don’t know what “AC” is, but it will be up to the developers to decide if they want to reinstate support for obsolete hardware in the next 2.1.1 release.


Gale

Thanks for the help. I’ve tried the executable you sent, but it still makes use of SSE2/SSE3 instructions, so it does not work on my CPU. I’ve checked that these instructions come from the executable file, not one of the DLLs it uses.
Did you clean the project before compiling it with SSE-only support?
Reading through the disassembly code, I have the feeling the problem does not come from Audacity directly, but from one of the static library it uses: libnyquist. Can you recompile it or do you use a pre-compiled library file?

BTW, you linked it against Visual Studio 12 (2013), and since the official 2.1.0 Audacity executable is linked against VS 9 (2008), only the DLLs for VS 9 are present in the Audacity install folder (MSVCP90.DLL & MSVCR90.DLL) while your executable requires the DLLs for VS12 (MSVCP120.DLL & MSVCR120.DLL). I retrieved them using the corresponding VC++ redistributable packages anyway.

Sorry, by AC I meant Audacity, because I used to call it AudioCity in the past, hence the irrelevant abbreviation :confused:

As for adding support for old CPUs in next versions, no problem. Anyway, as long as older releases are downloadable, I guess users with old CPUs can content themselves with the 2.0.6 release. Maybe adding a message on the download page about the need for SSE2/SSE3 support in new releases could help these users to download the correct files though.

Ignore what I wrote about the wrong VS version: I put the executable in the 2.0.6 folder, not the 2.1.0 folder. Anyway, the rest is correct.

Also, the file “wxmsw28u_core_vc_custom.dll” also contains SSE2 instructions, so recompiling only the Audacity executable will probably not be enough. I’ll understand if you think recompiling all those files is too much work :arrow_right:

I believe I cleaned it. I simply followed /arch (x86) | Microsoft Learn to change code generation for Audacity to SSE.

Libnyquist is just source code in the lib-src tree for third-party libraries.

Changing Audacity to SSE does not change any of the third-party libraries to SSE according to their property pages, so if any of those libraries presents a problem those would have to be changed to SSE too.

It could perhaps be added to the system requirements when we are 100% clear what the issues are.

The five wx* DLL’s Audacity uses come from compiling the wxWidgets sources with Visual Studio. So yes the Widgets libs could be recompiled with SSE instructions. Yes I could do that when I have time but I would have to make a new widgets tree so that I don’t mess up the builds that we are supposed to be providing.

Have you considered installing VS2008 (which would default to SSE and which is the supported VS version for XP) and compiling wxWidgets 2.8.12 then Audacity yourself? Audacity 2.1.0 “may” still compile with VS2008 as long as you use the “audacity-vs2008_OBSOLETE.sln”. This might be the quickest solution for you for 2.1.0 if it can still be compiled with VS2008.

Audacity will eventually move from wx2.8.12 to wx3.x (we’re making some changes now). When that process completes it will probably be increasingly unlikely that the VS2008 solution will still work.


Gale

Good suggestion! Actually, I managed to install VS2013 on my laptop, so I’m now able to build Audacity 2.1.0 the same way as for the official release. Of course, the result still does not run on my old computer, but at least I can now tweak the build configuration to force SSE only for all projects (wxWidgets, Audacity and its libs). I didn’t have the time to do so yet, but I’ll post the result when available.

Thanks for the explanations.

After compiling both Audacity and wxWidgets using VS2013 with and without SSE only support, I can confirm that the only solution that works with my SSE only CPU is when both Audacity and wxWidgets projects are compiled with SSE only support. When only one of them is compiled with SSE only support, the illegal instruction error makes Audacity crash at startup. Also, all the projects of both VS solutions need to be compiled with SSE only support (i.e., each vcxproj files need to be set with SSE only).

I’ve attached the patches I used to end up with Audacity binaries that work with my CPU. As there are lots of project and build configuration, I’ve used the sed command to modify all the vcxproj files automatically. Unfortunately, I can’t distribute these binaries.

So, this should confirm that the issue this thread is about is only related to SSE2 instructions. Of course, the decision about the solutions that should be applied in order to address this issue is up to the Audacity team, but there are only two choices in my opinion: drop SSE2 support in the next releases, or indicate (on the download page?) to the users that SSE2 support is required for the 2.1.0 release and above.
sse_only-patches.zip (7.31 KB)