I wouldn’t say that wxWidget discussion is off topic, as it’s a critical part of compiling Audacity.
Sorry, I might have put that little bit better. What I meant was that this topic was really focused on Asio and compiling it for use with Audacity. What I was suggesting was that an in depth discussion of compiling wxWidgets might be better in its own topic or possibly continued via Private Message.
Probably better in its own topic. I’m sure that others will find it interesting/useful.
This would probably be the most appropriate forum section: http://forum.audacityteam.org/viewforum.php?f=19
I’ve moved this current topic to “Compiling Audacity” anyway, as more appropriate.
Yes, start a new topic discussion in this board about compiling Widgets if needed, but really building Widgets itself is totally automatic normally.
Debug versions of Audacity are slower than Release versions. If you are not interested in programming per se, you probably only need to build a “DLL Unicode Release” build of Widgets and then a “Unicode Release” build of Audacity.
I assume you have seen http://wiki.audacityteam.org/wiki/Developing_On_Windows. That gives you the basics of where to download Visual Express and an appropriate Windows SDK (without which Visual Studio will be useless). Compile.txt at win/compile.txt in the source code or online should give you the details of compiling Widgets, adding support for ASIO then compiling Audacity.
After installing the ASIO SDK (no need to compile anything in it), nothing more should be needed to build Audacity with ASIO support than defining the ASIOSDK_DIR environment variable, which basically points the Audacity code to where your ASIO SDK is.
Building wxWidgets on Vista and Windows 7 with the VC++ 2008 Express (free) compiler is anything but automatic. The wxWidgets 2.8.11 code is better than earlier versions (though no longer being actively developed).
The current Asio SDK (I downloaded it on 14Oct2010) is just source code, header files and the project – maybe that is where I am making my mistake, I went ahead and built the Asio project. I was finally able to get Audacity to compile with the Asio environmental variable defined but I was never able to get it to link.
That isn’t my experience with the mature 2.8.11 code after Audacity officially moved to it (I also use 2008 Express under Win 7 x64). I’ve built wx 2.8.11 twice on a clean Windows 7 installation in DLL Unicode Debug and DLL Unicode Release configurations, hitting it straight off after loading wx_dll.dsw. I just batch build adv, base, core, html and net for those two configurations and the other six projects that Audacity needs build automatically.
Can’t comment without seeing the errors, and haven’t built Audacity with ASIO support for several months. I’ll try and give it a go, because there were some things I wanted to test.
OK, I have A clean Windows 7 Ultimate (x86) install done and ready to go.
Should I go with the Visual Studio 2008 Trial install? Or the Visual Studio Express 2008 (C++) install?
Again, I’m a complete n00b to compiling, but am proficient with Windows. So please be patient with me, and explain as you would to a 5 year old learning compiling C++ code.
Do not go with the Visual Studio trial because Audacity will not compile with the current Visual Studio 2010. Stick with VC++ Express 2008 as that is what most of those folks who will be helping you use .
There are couple other reasons as well; installing Visual Studio (trial or otherwise) sets up a different environment from Express – it makes it easier during the trial but thereafter if you choose to go with Express is very difficult to get rid of all the Visual Studio bits. Visual Studio is also lot larger as far as disk space goes.
Let us know how you get on, don’t hesitate to ask questions!
I meant Visual Studio 2008 trial. I have that one (wasn’t quite as easy to find on M$'s site).
So I should still go with Visual Studio 2008 Express ?
I may be confusing the nomenclature, but as I understand it Visual Studio 2008 is NOT what you want. You want VC++ 2008 Express which is a small part of Visual Studio. What you do not want for sure is the “trial” version which is a full version of Visual Studio. The one you want might no longer be available from Microsoft but is available if you search on the Internet.
OK. Going to take this step by step, so I don’t screw something up. Please bear with me. Hopefully I can make a nice step by step tutorial out of this procedure in the end.
Here’s what I’ve done do far.
_Step 1: Install Microsoft Visual C++ 2008
a) Go to http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a22341ee-21db-43aa-8431-40be78461ee0\
b) Download vcsetup.exe.
c) Run vcsetup.exe
No* MSDN Express Library for Visual Studio 2008
No* Microsoft SQL Server 2005 Express Edition (x86)
Yes* Microsoft Silverlight Runtime
Install in Folder:
c:Program FilesMicrosoft Visual Studio 9.0
The following items will be downloaded and installed:
- Runtime Pre-requisites
- Microsoft Windows SDK for Visual Studios 2008 Headers and Libraries (x86)
- Microsoft Windows SDK for Visual Studios 2008 Express Tools for .NET Framework (x86)
- Microsoft Windows SDK for Visual Studios 2008 Express Tools for Win32 (x86)
- Microsoft Visual C++ 2008 Express Edition
- Microsoft Silverlight Runtime
Download and Installation will take some time.
Step 2: Install wx Widgets 2.8.11
a) Go to http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.11-Setup.exe\
b) Download wxMSW-2.8.11-Setup.exe (should pop up automatically)
c) Run wxMSW-2.8.11-Setup.exe
By default it will extract files to c:wxWidgets-2.8.11
Step 3: Build wx Widgets_
OK, so the next steps are go to c:wxWidgets-2.8.11buildmsw
And then open wx_dll.dsw with Visual Studio. Then allow Visual C++ Project to Convert and open this project?
Should I then close and save project when prompted, then reopen the SLN file?
Then what do I do after that?
First you need to understand what things Audacity wants from wxWidgets. Audacity needs to know where the wxWidgets header files are; you do that by setting and ENVIRONMENTAL VARIABLE and the method for doing so is not the same for all versions of Windows. There are fairly good instructions listed here:
The next thing you need to know is that Audacity only needs five out of the many wxWidgets libraries, but you will need to make sure that you get the right “flavor” of the libraries (most likely what you will want is Unicode Release). If you are a real masochist and interested in learning a lot more about the intricacies you can try to compile all of wxWidgets but that is not for the faint of heart! Anyway, the five Unicode Release libraries that you need are:
What you want to do is open an SLN file, this will start VC++ 2008 Express with the wxWidgets project loaded, the one you want will be in a folder that looks something like:
and it’s name will be:
make sure you get the right one – the one you mention in your post is not the right one.
Now there should be a little gadget up in the top right-hand corner that says “Batch Build” – click on it. This should bring up a dialog box which lists all of the wxWidgets projects in all of their various configurations. The ones you want to build are adv, base, core, html, and net. Some of these are dependent on others but those should get built automatically although you might have to run Batch Build a few times if you get errors just keep trying unless you get the exact same errors two times in a row.
If everything is gone well up until this point you will need to locate those five libraries; they should be located here:
Now you need to install the Audacity source code; you will have to choose whether to go with the most recent package of the beta (is really late at night here and I have to go to work early; I can’t find the URL right now) or get really dedicated and install SVN so that you can get the very most recent alpha.
That’s a lot of information and I have probably made at least one mistake! Good luck and keep us posted.
OK, I have the five DLL Unicode Release libraries built. (Visual C++ 2008 Express gave me ======Build: 11, 0 failed, 0 up-to-date, 0 skipped=========)
I have the latest Audacity Beta Source Code (audacity-fullsrc-1.3.12-beta.tar)
So looks like I’m ready for the next step?
I have the ASIO SDK.
So I unzipped the folder (ASIOSDK2) and it’s in this path: (C:ASIOSDK2)
Now to set the environment variable, I have the Value = ASIOSDK_DIR with the Value = C:ASIOSDK2
Is that setting correct? or do I need to point to a sub directory? C:ASIOSDK2 should be correct?
Gah. I didn’t install the Windows SDK for Windows 7 and .NET Framework 3.5 SP1 after installing Visual C++ 2008 Express.
Do I need to start over, or can I install it now and move on?
I saw that when you posted and wondered what was going to happen. I cannot answer your question definitively but my suggestion is “install it now” and see what happens.
Yeah, I installed it (took forever ).
Rebooted and we’ll see how it goes.
I had no failures or warnings when I compiled the wx Widgets, so hopefully everything is fine there.
Now what do I do with Audacity.sln?
I have it open in Visual C++ 2008 Express.
Do I need to install DirectX SDK, Lame, FFMPEG, etc if I’m using the Full SRC Audacity ? I thought Direct X was already built in at least? (Well, I guess DirectX is pointless for me since my goal is to have Audacity with ASIO)
Build the same Audacity configuration as you did wxWidgets configuration; after it is built you will have (if you built Unicode Release) this folder:
in your Audacity build directory. Copy those 5 wxWidgets DLLs into that folder; in that folder you will also find the Audacity application, run it (after copying the DLLs) and tell us the result! I’m off to a gig and will check back in about 9 hours…
What about the ASIO SDK? Where do I put the parts I need for those?
Tried “Build Audacity”.
And I got =======Build: 23 succeeded, 2 failed, 0 up-to-date, 1 skipped ============
*EDIT - I think I did it wrong. I just clicked on “Build Audacity” rather than selecting Unicode Release under “Configuration manager” and then clicking “Rebuild Solution”. Doing that one right now, taking much longer to compile, must be the correct way.
OK, it’s finished rebuilding.
Audacity - 0 error(s), 5 warning(s)
============ Rebuild All: 26 succeeded, 2 failed, 3 skipped ===============
I’ve attached a txt file of the Build log. Did everything go OK? Did it compile ASIO into it? Or do I need to do something else with the ASIO SDK?
Well it launches and seems to work, but under Audacity Preferences → Devices → Host: I only get “MME” No ASIO. So I guess I didn’t compile ASIO into this build properly? What am I missing?
Edwood_AudacityFailLog_01a.txt (121 KB)