Compiling Audacity with Asio

Is there a simple step by step procedure in plain English to enable Audacity to work with Asio?

One that doesn’t need in depth knowledge of programming - I’ve tried following the existing instructions - a bit daunting !!!

Help please, Colin

I think the instructions are about as “simple” as they can be. I think that Microsoft expect there customers to buy ready made meals and not to cook for themselves. Have you though of trying Linux? Any particular reason why you want/need ASIO support?

“SIMPLE?” This is the the preliminary info about the Audacity source code!!!
Complete gobbledygook to me - it assumes so much prior knowledge which I don’t have.
I’m a musician - not a programmer!


Audacity 1.3.9 release (source tarball) (.tar.bz2 file, 6.4 MB) This is our standard source tarball. It assumes your system has the necessary dependencies (libraries) installed (see below).

Optional Downloads

Audacity 1.3.9 release (source tarball) (.tar.bz2 file, 17.4 MB) This is a full source tarball, useful for Windows and Mac machines which may lack the necessary dependencies to compile Audacity.
*

Latest CVS development code, incorporating changes since the release tarball.
*

If you have trouble with your download, or need an older version of Audacity, try our alternate download links:
o Sourceforge (older versions can be viewed by clicking on the appropriate package)
o Google Code (click on the headings to sort the list)

System Requirements

  • Audacity runs best with at least 64 MB RAM and a 300 MHz processor. Please review our operating system support for Windows, Mac or Linux.

How to Compile Audacity
Dependencies

The wxWidgets library is required. Audacity 1.3.9 requires wxGTK 2.8.10.

Installation of the following libraries is optional - they are included in Audacity obtained from CVS.

  • libmad
  • libsndfile
  • Ogg Vorbis

If you install libraries using a package management system like Apt or RPM, you need to install the “dev” (development) packages for each library.
Compilation

To compile Audacity, run the following command in the Audacity source directory:

./configure && make

You can type ./configure --help to see a list of compilation options. After Audacity is compiled, run make install as root to install it.

I know exactly what you mean - I’m a musician also - and that’s why I’ve only once tried compiling on Windows (and gave up).
I could probably walk you through building from source in Linux, (which is very much easier because Linux provides the necessary tools for the job), but you’ll need someone else for Windows (sorry :frowning: ).

Colin, You are not the first person to make this request. Perhaps you could post what steps you did take, and exactly where you got into trouble. Others have been successful at this and perhaps they could post some help.

Steve, where did you give up? And don’t tell me it was trying to find the start button. :slight_smile:

Hi jademan,

I got into trouble trying to understand the instructions in my previous post - it just reads like double dutch to me :slight_smile:

I’d like to try compiling it but a lot of prior knowledge is assumed in these instructions - knowledge I don’t have.

Colin

After I’d gone through all the rigmarole of registering with Steinberg so that I could download the ASIO SDK.
I then tried to install TortoiseCVS but couldn’t get it to work,
so I went to Sourceforge and downloaded the Audacity source code from there.

Then I saw that I needed to install Visual Studio Express and Microsoft SDK
and .NET Framework 3 Runtime
and Visual Studio Express Editions 2005 Service Pack 1
and then I would need to build wxWidgets from the source code
and “set the environment variable”… :confused:
and then I still hadn’t started to build Audacity
and still had no idea what I was supposed to do with the ASIO SDK that I’d downloaded.

I think that it was about that point that I gave up and switched to Linux.

Hence my initial question which still stands :slight_smile:

Or do I need a degree in rocket science to do this?

Colin

So I just got this to work. The primary thing I noticed that wasn’t apparent from the instructions was that you must install the directX SDK even if all you want is ASIO. Also, make sure you’ve the ASIO SDK and not the VST SDK which is now more prominently displayed on the ASIO SDKs page.

Here were my steps on a fairly clean Win 7 install:

installed VS2008 and all updates
installed all DELL audio drivers, beta Win7 driver for my M-Audio NRV-10 on the firewire port
installed LAME
installed FFMPEG
installed libogg, libsndfile, madplay
installed ASIO SDK (actually just unzipped and copied the directory)
got audacity 1.3.9 source tarball
built wxWidgets, copying the two accessibility-related changes from the audacity source
set WXWIN and ASIOSDK_DIR env variables
built audacity
copied wxWidgets dll’s to build directory
ran and saw multi-channel inputs on the NRV-10

Then there was much smiling. I’m in love with this M-Audio mixer now that it syncs up with Audacity.

cheers,

–Derek

derekja,

Thanks for your post. Glad you go this to work. :slight_smile:

Hi,

I am trying this without much knowledge (no previous compiling experience whatsoever), but am confident that I can pull it off. However, I do not have Visual Studio.

Using VB 2008 Express, the .dsw file opens and it asks me to overwrite the .sln file, but then a message pops up saying that some file types (.dsp?) are not supported. Is this because I am using VB or am I doing something wrong? Any suggestions :question:

I understand having Visual Studio makes sense if you do this sort of thing all the time, but I am just an acoustician… I will be glad to go through (almost) any trouble to use ASIO.

Thanks!!

yep, building anything on windows can be a nightmare alright.

If it is not opening the project then you likely have the wrong vs2008 express version installed. It is visual C++ that you want.

–Derek

Hi,
I have a few questions to follow up on compiling with ASIO support. First, I see that a compiled version cannot be redistributed without violating licensing but couldn’t someone legally give it to someone else as long as they don’t accept payment and as long as it is for personal use only?

If not, then I have a friend who is good with compiling in Linux but prefers to compile in Mac. Can someone email me some step by step directions and links for the material needed to compile in Mac? Is the Steinberg SDK a separate downlod for Windows than for Linux, Mac? I’d very much appreciate step by step help from those who have done it on LInux or preferrably mac.

Thanks so much,
JD

I don’t understand all the ins and outs of the license, but the license details are available if you Google for “steinberg asio license”.

Guides for building Audacity from source code are available here: http://wiki.audacityteam.org/index.php?title=Developer_Guide#Platform_Specific_Guides
Information specific to building ASIO support is here: http://wiki.audacityteam.org/index.php?title=ASIO_Audio_Interface

Steve,
Thanks for the links, but I was aware of these links in the past. The part I’m missing (and part that would help if someone who had done this before on Mac could email me step by step) is the adding ASIO as it applies to the Mac. The ASIO link you gave seems to apply to Windows, not sure about Mac. I think I can get the Mac Audacity compiles but not sure how to add the ASIO. If someone could help further that would be great! We could settle for Linux as well if someone has easier instructions they wouldn’t mind sending me.

Thanks!
JDK

Also, I don’t see the page relating to soundcards that support multitrack recording has been updated in a while. Are there new sound cards/mixers that support multitrack in Audacity that others are aware of?

Thanks!

For Linux, don’t use ASIO, use Jack.
The performance of Jack running with a standard Linux kernel is roughly the same as ASIO on Windows. If your hardware will run correctly with an “rt” kernel, the performance of Jack is better.

Unfortunately Audacity has some issues with Jack, but there are simple (though slightly inconvenient) ways round these issues.

For recording with Jack, Ardour2 is tops. You can then use Audacity for sample editing either with a simple Jack set-up (straightforward routing of the Audacity inputs and outputs to the system inputs and outputs), or use Audacity with ALSA.

Sorry, can’t help with the Mac question.

Good point - all new information is most welcome.

Wow, this is the most horrendeously complicated procedure. I have a modicum of computer knowledge, and it’s basically like trying to learn Greek from scratch.

Does anyone have a comprehensive step by step process? I am completely lost at the wxWidget part and have absolutely no clue what I’m doing in Visual Studio.

I’m thinking it might be easier to give up and learn how to use other programs that have ASIO support built in.

Really sucks, because I love how simple and easy Audacity is to use. :frowning:

This is what I gave to someone else to get them past wxWidgets:

Which compiler solution are you using? If you are not using Microsoft VC++ 2008 Express (it’s free) or Microsoft Visual Studio 2008 (you can get a free 90 day trial) I would suggest you consider doing so. Some of the following instructions are specific to the Microsoft Visual IDE.

I know a little bit less about the wxWidgets CodeBase but more about compiling problems with wxWidgets. If you run into problems getting the wxWidgets samples running feel free to ask, I may be able to help you. As with all things digitally logical it is imperative to follow the initial instructions explicitly. Make sure that before you do anything else you do those two file things (setup.h and #define wxUSE_ODBC) and set the environmental variable WXWIN. If you have tried to compile already without following these steps or are having failure to compile problems, completely delete wxWidgets, reinstall it, set the environmental variable, copy setup.h and then do the #define.

Make sure to choose the proper workspace—there are two vc++ 6 workspaces – wx.dsw and wx_dll.dsw, you absolutely must choose wx_dll to convert into a VC++ 9 Solution (that’s what VC++ and Visual Studio 2008 use). Use your favorite method to open wx_dll in VC++ 2008 Express (or Microsoft Visual Studio 2008). A dialog will open offering you the chance to “convert all” – do so. After all the conversion is done and IntelliSense is finished scanning all files (watch the status bar at the extreme lower left corner) close VC++ and say yes to saving the solution. You will now have a Visual Studio Solution—wx_dll.sln, from now on this is what you want to open in VC++.

Use the Configuration Manager (either from the toolbar or from the menu) to first build the Debug solution. Because the build order is not set correctly you may have to rebuild any given configuration a few times until you get zero errors.

After the Debug solution is built build the other configurations in this EXACT order: Release, Unicode Debug, Unicode Release, DLL Debug, DLL Release, DLL Unicode Debug, DLL Unicode Release. You may safely ignore all the Universal configurations.

Instead of trying to build the entire Sample solution that once, go in and choose a single sample; the last couple of days I have been working on the scroll sample, let’s try that specific one now.

Open the scroll folder and look for scroll.dsp (a VC++ project). Use your favorite method to open it in VC++ 2008 Express (or Microsoft Visual Studio 2008). A dialog will open offering you the chance to “convert all” – do so. After all the conversion is done and IntelliSense is finished scanning all files (watch the status bar at the extreme lower left corner) close VC++ and say yes to saving the solution. You will now have a Visual Studio Solution—scroll.sln, from now on this is what you want to open in VC++. Using the Configuration Manager use Unicode Debug to build a solution—if it runs build a Unicode Release solution, if that runs you are all set to go! If you cannot get to this point get back in touch with me with specific questions and problems.

Thanks Edgar. I’ll give it a shot. I have tried to use Visual Studio C++ 2008 (do I need to install the other .exe like C# or Visual Basic?)

Thanks for giving me a better starting point. I’ll try again.

I’m sure to have hundreds more questions.

-Ed

No, nothing else is required other than the wxWidgets source installation. Sometimes there is a problem with Visual C++ 2008 Express (the free version not the full trial of Visual Studio) in that it fails to find a critical header file. The wxWidgets forum http://wxforum.shadonet.com/viewtopic.php?t=255 has some good information on this.

As this is really off topic, feel free to start a new thread or send me a private message if you have further problems compiling wxWidgets or Audacity. I have never tried to compile Asio, which is strange because I think it would allow me to use my audio hardware with Audacity.