• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

Audacity 2.0.2 for WinRT

Search This thread

irony_delerium

Senior Member
Jan 13, 2013
305
206
Portland, OR
Samsung Galaxy Z Flip
As I've noticed requested a few times, Audacity for WinRT.

It's completely untested (except for starting up) at the moment - it's too loud where I happen to be for me to do much in the way of other testing. It did happily start up, though, once I got past:

Code:
#     pragma comment(linker, "\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='X86' publicKeyToken='6595b64144ccf1df'\"")

There's some potential breakage in a few places because it was using specialized functions for rounding; as well, most of the architecture-specific code was replaced with the generic versions. (Audacity has support for ARM, but it looks like it's only on Linux, and would require gcc to compile the ARM optimizations.)

Chris

EDIT: Added the source diffs. Most of the changes are to the build options (the diffs contain the migrated VS2012 project files as well) - apply with "cat patch | patch -p1" from the respective source directories. There's a patch included for both Audacity and wxWidgets, both working. The base tarballs can be found at the respective project websites.

wxWidgets: Don't let VS2012 build it automatically. As discovered by a few other people on some of the Win8 threads, VS2012 manages to start multiple processes that try to lock the same log file simultaneously and so the build breaks. I worked around this by building just the subprojects that I needed one at a time (right click on the project, build only [project].)

Audacity: Nothing major here except for disabling any and all inline assembler and letting it fall back on generic C/C++ defaults instead. The build doesn't end up copying the Nyquist files into the win\ARM\Unicode Release directory but since this seems like all it's doing is a straight copy operation, it shouldn't be a problem. Help isn't included (I haven't installed Python on any of my Win8 Pro installs yet, which is required to build the Audacity help), nor is it localized. Instructions for both are included in the Audacity source.

EDIT 2: Got a build of lame 3.99.5 for WinRT here:
http://forum.xda-developers.com/showpost.php?p=36968027&postcount=13

Follow the instructions in the post to add MP3 export support to Audacity.

EDIT 3:

Full source code for Audacity and wxWidgets:

https://www.dropbox.com/s/jvttp9em9w3xuon/audacity-winrt.zip

This is the full source used for building Audacity 2.0.2 and wxWidgets 2.8.12 for WinRT. The license is included in the ZIP file (audacity-src-2.0.2\LICENSE.txt - GPLv2; wxWidgets-2.8.12\docs\license.txt, wxWidgets-2.8.12\docs\lgpl.txt - LGPLv2 with additional rights). The Audacity build has been updated as well to include the license of both wxWidgets and Audacity.
 

Attachments

  • audacity-diff.zip
    236.2 KB · Views: 3,704
  • Audacity.zip
    4.5 MB · Views: 8,806
Last edited:

irony_delerium

Senior Member
Jan 13, 2013
305
206
Portland, OR
Samsung Galaxy Z Flip
Anyone know if lame_enc.dll would be possible to also get compiled for ARM? Otherwise it's impossible to export to MP3.

It should be possible. As far as I'm aware, lame is pretty cross-platform already, so if anything it might be that the generic version of the code has to be built with vc2012 instead of an ARM-optimized port. I might take a look at that tomorrow.
 
  • Like
Reactions: jhoff80

lucas.scott

Senior Member
Mar 10, 2009
1,147
240
Nashville, TN
Anyone come across any usb audio interface that works with Surface?

Also... I get this error when trying to run Audacity.

Screenshot%20(5).png
 
Last edited:

irony_delerium

Senior Member
Jan 13, 2013
305
206
Portland, OR
Samsung Galaxy Z Flip
@lucas.scott: Hm. That import comes from msvcp110.dll - the C++ runtime library.

What's the version of C:\Windows\System32\msvcp110.dll on your system? On my system (which it seems to work fine on), Explorer says it's "11.0.50727.1", with a timestamp of 10/1/2012 9:31pm.

(There is another version of msvcp110.dll on the system, sitting in \Program Files\WindowsApps\Microsoft.VCLibs.*, of various versions; I bet those are there only to support Metro apps, but I could be wrong. In either case, the 11.0.50727.1 version pulled off my RT device has the export mentioned,)

Might be a missing update somewhere?
 

irony_delerium

Senior Member
Jan 13, 2013
305
206
Portland, OR
Samsung Galaxy Z Flip
I've got a build of lame 3.99.5 done for WinRT as well.

In the archive is libmp3lame.dll - Audacity looks for this as lame_enc.dll, so:

Code:
copy libmp3lame.dll \path\to\audacity\lame_enc.dll

and MP3 export should work fine. As well, it's got the command line version of lame in the package as well - I think that depends on the original name.
 

Attachments

  • lame-3.99.5-arm.zip
    403.4 KB · Views: 2,078
  • Like
Reactions: domboy and jhoff80

jtg007

Senior Member
Jul 8, 2012
76
18
wxWidgets: Don't let VS2012 build it automatically. As discovered by a few other people on some of the Win8 threads, VS2012 manages to start multiple processes that try to lock the same log file simultaneously and so the build breaks. I worked around this by building just the subprojects that I needed one at a time (right click on the project, build only [project].)

I took a swing at Audacity myself and this problem drove me nuts! Wow.

Thanks for your work! Much appreciated!
 

lucas.scott

Senior Member
Mar 10, 2009
1,147
240
Nashville, TN
@lucas.scott: Hm. That import comes from msvcp110.dll - the C++ runtime library.

What's the version of C:\Windows\System32\msvcp110.dll on your system? On my system (which it seems to work fine on), Explorer says it's "11.0.50727.1", with a timestamp of 10/1/2012 9:31pm.

(There is another version of msvcp110.dll on the system, sitting in \Program Files\WindowsApps\Microsoft.VCLibs.*, of various versions; I bet those are there only to support Metro apps, but I could be wrong. In either case, the 11.0.50727.1 version pulled off my RT device has the export mentioned,)

Might be a missing update somewhere?

So i took a look at msvcp.dll.

Its ver. 11.00.50531.1

So thats noticeably later than what you are running. Any ideas as to why that is? My system is up to date.
 

irony_delerium

Senior Member
Jan 13, 2013
305
206
Portland, OR
Samsung Galaxy Z Flip
So i took a look at msvcp.dll.

Its ver. 11.00.50531.1

So thats noticeably later than what you are running. Any ideas as to why that is? My system is up to date.

Hm. I haven't got a clue. The only thing I can come up with is that I haven't gone through and updated VS2012 to it's latest patch yet, but that doesn't add up as far as the binaries go...

I'd also expect Windows to be telling you that it couldn't find that import in C:\Windows\System32\msvcp110.dll, not ...\Audacity\Audacity.exe, which being a program, has no exports.
 

irony_delerium

Senior Member
Jan 13, 2013
305
206
Portland, OR
Samsung Galaxy Z Flip
Right, since I don't know if this will fix it or not (probably not, if my scanning the list of imports is correct, but it's worth a try):

I just rebuilt Audacity, same version, slightly different options (non-Unicode build).

If this doesn't fix it, about the only other thing I can think of to do is to toss the copy of msvcp110.dll that came from my system, since it seems to be working.

Chris

(Yes, I know, it's named ".zip.zip". That's what I get for quickly renaming the file from "Audacity" to "Audacity-2.0.2.zip". Still need to tweak a few settings on this copy of Windows like "always show the file extension". Oh well.)
 

Attachments

  • Audacity-2.0.2.zip.zip
    4.5 MB · Views: 275

Top Liked Posts

  • There are no posts matching your filters.
  • 11
    As I've noticed requested a few times, Audacity for WinRT.

    It's completely untested (except for starting up) at the moment - it's too loud where I happen to be for me to do much in the way of other testing. It did happily start up, though, once I got past:

    Code:
    #     pragma comment(linker, "\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='X86' publicKeyToken='6595b64144ccf1df'\"")

    There's some potential breakage in a few places because it was using specialized functions for rounding; as well, most of the architecture-specific code was replaced with the generic versions. (Audacity has support for ARM, but it looks like it's only on Linux, and would require gcc to compile the ARM optimizations.)

    Chris

    EDIT: Added the source diffs. Most of the changes are to the build options (the diffs contain the migrated VS2012 project files as well) - apply with "cat patch | patch -p1" from the respective source directories. There's a patch included for both Audacity and wxWidgets, both working. The base tarballs can be found at the respective project websites.

    wxWidgets: Don't let VS2012 build it automatically. As discovered by a few other people on some of the Win8 threads, VS2012 manages to start multiple processes that try to lock the same log file simultaneously and so the build breaks. I worked around this by building just the subprojects that I needed one at a time (right click on the project, build only [project].)

    Audacity: Nothing major here except for disabling any and all inline assembler and letting it fall back on generic C/C++ defaults instead. The build doesn't end up copying the Nyquist files into the win\ARM\Unicode Release directory but since this seems like all it's doing is a straight copy operation, it shouldn't be a problem. Help isn't included (I haven't installed Python on any of my Win8 Pro installs yet, which is required to build the Audacity help), nor is it localized. Instructions for both are included in the Audacity source.

    EDIT 2: Got a build of lame 3.99.5 for WinRT here:
    http://forum.xda-developers.com/showpost.php?p=36968027&postcount=13

    Follow the instructions in the post to add MP3 export support to Audacity.

    EDIT 3:

    Full source code for Audacity and wxWidgets:

    https://www.dropbox.com/s/jvttp9em9w3xuon/audacity-winrt.zip

    This is the full source used for building Audacity 2.0.2 and wxWidgets 2.8.12 for WinRT. The license is included in the ZIP file (audacity-src-2.0.2\LICENSE.txt - GPLv2; wxWidgets-2.8.12\docs\license.txt, wxWidgets-2.8.12\docs\lgpl.txt - LGPLv2 with additional rights). The Audacity build has been updated as well to include the license of both wxWidgets and Audacity.
    2
    I've got a build of lame 3.99.5 done for WinRT as well.

    In the archive is libmp3lame.dll - Audacity looks for this as lame_enc.dll, so:

    Code:
    copy libmp3lame.dll \path\to\audacity\lame_enc.dll

    and MP3 export should work fine. As well, it's got the command line version of lame in the package as well - I think that depends on the original name.
    2
    Anyone come across any usb audio interface that works with Surface?

    The Sound Blaster X-Fi seems to work.
    1
    Thanks for your work but I think you should post this in the Windows section specifically, threads get lost in this section quickly.
    1
    Nice job, thank you! Added to the list.