d09f6b3016
git-svn-id: svn://localhost/trunk/ardour2@4 d708f5d6-7413-0410-9779-e7cbd77b26cf
614 lines
22 KiB
Plaintext
614 lines
22 KiB
Plaintext
The Ardour FAQ
|
|
January 23, 2004
|
|
|
|
--Problems--
|
|
1.1. Why can't I get configure to run when ...
|
|
1.2. I'm getting syntax errors during build.
|
|
1.3. I get the warning: "Gtk-WARNING **: Unable to locate image file in
|
|
1.4. What's an xrun?
|
|
1.5. The region area overlaps the buttons in the editor.
|
|
1.6. Ardour keeps freezing. Here's the strace...
|
|
1.7. What is "ardev" and why is it a shell script?
|
|
1.8. How do I debug this thing?
|
|
1.9. I want Ardour to run faster.
|
|
|
|
--Features--
|
|
2.1. Are plugins supported?
|
|
2.2. Are VST plugins supported?
|
|
2.3. Does Ardour run on non-Linux systems?
|
|
2.4. Ardour needs to have this feature now.
|
|
2.5. Why doesn't Ardour support MP3s?
|
|
2.6. Does Ardour support MIDI?
|
|
2.7. What soundfile formats are supported?
|
|
2.8. Can I use multiple cards?
|
|
2.9. How do I save captures across partitions?
|
|
|
|
--Usability--
|
|
3.1. How do I pan stereo outputs?
|
|
3.2. Where's the patch bay?
|
|
3.3. How do I do stuff?
|
|
|
|
--Misc--
|
|
4.1. What's the deal with JACK, LAAGA, and Audioengine?
|
|
4.2. Is Ardour internationalized?
|
|
4.3. How do I get support?
|
|
4.4. Well, where's the manual?
|
|
4.5. Why are all these libraries included? I already have ...
|
|
4.6. Why not another frontend to libardour? Why not QT?
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
--Problems--
|
|
1.1. Why can't I get configure to run when ...
|
|
|
|
You can only run configure at the top level of the Ardour source
|
|
tree. You don't want to know why this is true. Don't try to work
|
|
around it.
|
|
|
|
1.2. I'm getting syntax errors during build.
|
|
|
|
This probably means that you are using an out of date library. Or you
|
|
might be using a very new library that has changed its API. Check the
|
|
version number. If it is lower than what is listed in the BUILD file,
|
|
update your library. If it is higher than what is listed in the BUILD file,
|
|
email the mailing list. Note that you have to be a member of the mailing
|
|
list to send mail to it, which is done to prevent the list from receiving
|
|
much spam.
|
|
|
|
1.3. I get the warning: "Gtk-WARNING **: Unable to locate image file in
|
|
pixmap_path: "set-next-button.xpm"
|
|
|
|
The most common cause of this error is simply that you have not set
|
|
the pixmap pathname correctly. It can be specified in the Ardour
|
|
config file. See the BUILD file.
|
|
|
|
1.4. What's an xrun?
|
|
|
|
It's a generic term used to describe a situation where the software
|
|
did not keep up with the hardware, either by feeding it data, or by
|
|
collecting data from it. It generally means that you're having
|
|
trouble with latency. This can be caused by several factors. You
|
|
could have a misconfigured system, you might be trying to do to much,
|
|
or both.
|
|
|
|
If you're haven't read http://www.linuxdj.com/audio/lad/resourceslatency.php3,
|
|
then your system is probably misconfigured.
|
|
|
|
If you are running many many tracks, with multiple LADSPA plugins, then it
|
|
is possible that your system just can't keep up with what you want to do.
|
|
Either simplify your music, or upgrade your machine. A dual processor does
|
|
wonders.
|
|
|
|
You can test your setup with the latencytest tool, available at
|
|
http://www.linuxdj.com .
|
|
|
|
Jan Depner's HOWTO is loaded with latency tuning tips for Ardour:
|
|
http://myweb.cableone.net/eviltwin69/ALSA_JACK_ARDOUR.html
|
|
|
|
1.5. The region area overlaps the buttons in the editor.
|
|
|
|
Make sure that you are using the appropriate font size for your monitor's
|
|
resolution. If you are running at 1024x768 or below, you should use the
|
|
75dpi package, not the 100dpi. This is usually set in /etc/X11/XF86Config.
|
|
|
|
1.6. Ardour keeps freezing. Here's the strace...
|
|
|
|
The results from strace aren't very useful. To provide helpful information
|
|
to the developers, run Ardour under gdb. If you don't know how to use
|
|
gdb, this isn't the time to learn. If you do know how to use gdb, read
|
|
section 1.8.
|
|
|
|
1.7. What is "ardev" and why is it a shell script?
|
|
|
|
This is only applicable if configure was run with --enable-development-build.
|
|
|
|
To speed up the process of developing Ardour, we do not statically
|
|
link Ardour and its library, libardour. Instead, we use dynamic
|
|
linking, which allows the developers to avoid the (very) long
|
|
relinking step when they make certain kinds of changes to libardour.
|
|
|
|
This means that the executable image for Ardour relies on the system
|
|
being able to find libardour whenever you start it. Rather than leave
|
|
this to chance and/or the whims of your system adminstrator (probably
|
|
yourself), we instead use a short shell script to make sure that the
|
|
connection between the two of them can be established.
|
|
|
|
This has almost zero impact on any aspect of Ardour's operation. The
|
|
only noticeable effect is that it makes debugging slightly more
|
|
difficult. See 1.8 for more on this.
|
|
|
|
1.8. How do I debug this thing?
|
|
|
|
+-------------------------------------------------------------------------+
|
|
| NOTE: Newer versions of gdb and/or glibc and/or the kernel have broken
|
|
| gdb in a critical way that make it impossible to run ardour. The gdb
|
|
| development group claim to have fixed this, but on many
|
|
| distributions, the version that is provided is still broken.
|
|
|
|
|
| Under such circumstances, you will have to get a core dump from
|
|
| ardour, and then use gdb to analyse the core dump, rather than
|
|
| using gdb as a "live tool".
|
|
|
|
|
| Many distributions set the default core dump size to 0, to prevent
|
|
| core dumps completely. So the first step is to do enter this
|
|
| at your shell prompt (in a terminal window):
|
|
|
|
|
| ulimit -c 9999999999
|
|
|
|
|
| Then run ardour in whatever way causes a crash. after the crash
|
|
| you should find a file called "core" in your working directory.
|
|
| then run:
|
|
|
|
|
| gdb ardour core
|
|
|
|
|
| When the gdb> prompt appears, type
|
|
|
|
|
| backtrace
|
|
|
|
|
| Collect the output, and file it as an attachment to a Mantis
|
|
| bug report at http://ardour.org/mantis
|
|
|
|
|
| Thanks for helping to improve Ardour.
|
|
+------------------------------------------------------------------------+
|
|
|
|
A) How to start gdb ....
|
|
|
|
A1) IF YOU DID NOT USE --enable-development-build
|
|
|
|
You can use gdb the usual way:
|
|
|
|
% cd /where/you/built/ardour
|
|
% gdb ardour
|
|
|
|
|
|
A2) IF YOU USE --enable-development-build
|
|
|
|
The first and most basic thing you need to know is how to invoke
|
|
gdb. Because of the dynamic linking between Ardour and its library you
|
|
can't just invoke Ardour and get it to work. Besides, "ardour" itself
|
|
is a shell script (see 1.10 for more on this). So, what you need to do
|
|
is to invoke gdb with LD_LIBRARY_PATH set to point to the place where
|
|
libardour is installed, and use the name of actual executable image.
|
|
|
|
If you installed in the default location, this command will invoke gdb
|
|
correctly:
|
|
|
|
env LD_LIBRARY_PATH=/usr/local/lib/ardour gdb /usr/local/lib/ardour/ardourx
|
|
|
|
If you used a --prefix argument during the build process so that
|
|
Ardour would be installed somewhere other than under /usr/local, then
|
|
replace /usr/local in the command above with whatever "prefix" you
|
|
used.
|
|
|
|
You could easily make the above a shell alias or a 1 line shell script
|
|
if you think you'll be debugging Ardour with gdb a lot.
|
|
|
|
A3) ABOUT LADSPA PLUGINS AND GDB
|
|
|
|
Moving all your LADSPA plugins out of the way will make gdb very much
|
|
quicker to start. For example, if you normally keep them in
|
|
/usr/local/lib/ladspa, you could do something like:
|
|
|
|
mkdir /usr/local/lib/LADSPA
|
|
mv /usr/local/lib/ladpsa/* /usr/local/lib/LADSPA
|
|
|
|
gdb doesn't do very well when forced to handle dozens of dynamically
|
|
loaded objects, as typically happens with LADSPA plugins.
|
|
|
|
It might be easier to redefine LADSPA_PATH to a dummy path.
|
|
|
|
B) What to do with gdb
|
|
|
|
When Ardour has crashed or is "stuck", issue the following command
|
|
to gdb (you will need to use Ctrl-C if its "stuck" to get back to the
|
|
gdb command prompt):
|
|
|
|
thread apply all bt
|
|
|
|
collect the output from this, and then go to
|
|
|
|
http://ardour.org/mantis
|
|
|
|
and file a new bug report with the output attached. This will allow
|
|
us to get the most out of your misfortune.
|
|
|
|
If you compiled ardour from source and want to be even more helpful,
|
|
recompile it after running
|
|
|
|
./configure --disable-optimize
|
|
|
|
at the top level. This will make the debugging output more useful.
|
|
|
|
1.9. I want Ardour to run faster.
|
|
|
|
The --enable-optimize flag is enabled by default which turns
|
|
on compiler features that can make Ardour run up to 50% faster.
|
|
If you downloaded Ardour as a binary package, it should have been
|
|
compiled with that flag already.
|
|
|
|
--Features--
|
|
2.1. Are plugins supported?
|
|
|
|
LADSPA plugins are supported. To use them, click the middle mouse
|
|
button in the top box at the top of the mixerstrip you wish to have a
|
|
plugin for. This opens up a window which lists all the plugins. Double
|
|
click on the one you wish to use. In the mixer window, click on the
|
|
plugin to toggle it on and off, option-click to edit its values, or
|
|
shift-click to remove it.
|
|
|
|
2.2. Are VST plugins supported?
|
|
|
|
There are several issues here:
|
|
|
|
1) Generic VST support
|
|
|
|
Many people have asked about VST support within Ardour. Work has been
|
|
done on this, but there are both license issues and technical
|
|
ones. The licensing issues seem relatively easy to resolve.
|
|
|
|
On the technical front, given that the goal is to not require VST
|
|
developers to build new native Linux versions of their plugins, the
|
|
most promising approach involves using Wine to support native
|
|
Windows VST plugins. It is already possible to run most VST plugins as
|
|
JACK clients and thus use them as inserts with Ardour, but the process
|
|
of doing so is not what most users would term "convenient".
|
|
|
|
However, Wine cannot currently be used within a complex
|
|
multithreaded application. The Wine development team are working on
|
|
this, and as a rough guess, I'd expect progress within about 6 months
|
|
(i.e end of 2003). At that time, it will be possible to use most VST
|
|
plugins that have their own GUI ("editor") from within Ardour.
|
|
|
|
However, initially, this functionality will be available only as
|
|
part of a for-cost distribution of Ardour.
|
|
|
|
2) Specific plugins
|
|
|
|
a) executable format issues
|
|
|
|
Plugins are pieces of executable code. The format used for
|
|
the files that store this code is different under windows
|
|
and macos than it is for linux. Some people have managed
|
|
to find workarounds for this --- there are reports of people
|
|
running windows-derived buzz plugins under linux, but nobody
|
|
has looked into trying it with vst plugins.
|
|
|
|
Linux also runs on a lot more hardware than windows or MacOS.
|
|
We assume that when you say linux, you mean "linux on an intel
|
|
compatible processor", but keep in mind that to most of us,
|
|
linux means more than that --- it includes the PPC, Sparc, Alpha,
|
|
ARM, MIPS and many other chip architectures. Of that list,
|
|
only PPC has any VST plugin support at all.
|
|
|
|
This problem would go away if a VST plugin was available as source
|
|
code, but to my knowledge, only 1 is (freeverb).
|
|
|
|
b) OS dependency issues
|
|
|
|
Most VST plugin writers do not follow Steinberg's design advice,
|
|
and write plugins that have operating system dependencies. As
|
|
a result, even if you could find a way to actually use, say,
|
|
a windows-format VST plugin on Linux on an Intel machine, the
|
|
plugin would contain calls to operating system services that
|
|
don't exist (in the same way) under Linux.
|
|
|
|
So, the basic answer is "no". I am an active member of the VST-plugins
|
|
mailing list, and I try to encourage people who write free plugins to
|
|
make their source code available so that we can use it under Linux, as
|
|
well as reminding people to try to avoid operating system dependencies
|
|
in their plugins. I think this mostly falls on deaf ears.
|
|
|
|
2.3. Does Ardour run on non-Linux systems?
|
|
|
|
Ardour depends on the JACK system to access the sound hardware. Jack
|
|
has (as of this writing) support for Linux, Solaris, and MacOSX. There
|
|
have not been any reports of running Ardour on any platforms besides Linux
|
|
though.
|
|
|
|
In addition, Ardour has abstracted the JACK dependency, so it can be ported
|
|
to use another sound library. But at the time, it only uses the JACK
|
|
library. The JACK website is http://jackit.sf.net/.
|
|
|
|
2.4. Ardour needs to have this feature now.
|
|
|
|
Paul accepts donations through his paypal account. The feature will
|
|
(probably) be added more quickly if you pay him. Contact him first.
|
|
|
|
2.5. Why doesn't Ardour support MP3s?
|
|
|
|
Ardour is meant for serious audio work. MP3 is a lossy format
|
|
unsuitable for this. Ardour does export sessions to wav format, which
|
|
is trivial to convert to MP3.
|
|
|
|
2.6. Does Ardour support MIDI?
|
|
|
|
Ardour currently supports MIDI in the sense of:
|
|
|
|
* functioning as a MIDI Timecode master (it generates MTC)
|
|
* functioning as a MIDI Timecode slave (experimental; send reports!)
|
|
* understanding MIDI Machine Control
|
|
* allowing the user to bind GUI controls (sliders, etc.) to
|
|
MIDI Continuous Controller and NoteOn/NoteOff messages
|
|
|
|
It does not offer any facilities for editing or arranging or recording
|
|
or playing MIDI data. There has been talk of integrating Midi
|
|
Mountain, an excellent midi editor. There hasn't been any progress in
|
|
this direction lately, mostly due to other areas that need to be fixed
|
|
up. It's not a trivial affair if the integration is going to proceed
|
|
in a way leaves the result feeling "natural".
|
|
|
|
2.7. What soundfile formats are supported?
|
|
|
|
It depends on what version of libsndfile is installed. This link lists the
|
|
latest formats: http://www.mega-nerd.com/libsndfile/#Features
|
|
|
|
Please note that Ardour requires the 1.x series of libsndfile.
|
|
|
|
2.8. Can I use multiple cards?
|
|
|
|
In a word: maybe.
|
|
|
|
The sync issues that arise even between the same make and model of a card
|
|
aren't worth the effort of fixing. If you want to have more than two
|
|
channels, buy a professional card.
|
|
|
|
On the other hand, if you already have two professional cards with word-sync,
|
|
you might be able to get them to work. This is several layers removed from
|
|
Ardour; the proper place to ask for help is at http://www.alsa-project.org .
|
|
|
|
There is more information at http://www.linuxdj.com/audio/quality/#multi
|
|
|
|
2.9. How do I save captures across partitions?
|
|
|
|
Ardour lets you specify multiple directories to save captured audio
|
|
in. In the options editor, in the session path box, specify the full
|
|
paths of the directories you wish to use, seperated by colons (:).
|
|
These can be on different partitions or even different disks. Using
|
|
this "software RAID"-like setup can greatly increase your disk
|
|
bandwidth.
|
|
|
|
--Usability--
|
|
3.1. How do I pan stereo outputs?
|
|
|
|
Panning works over JACK ports. So even if you have two outputs
|
|
connected to one port, Ardour doesn't consider this to be stereo. You
|
|
need to make sure that you have two ports, and then add one (or more)
|
|
destination to each port.
|
|
|
|
You need to think of the ports as if they were physical sockets to
|
|
which you can connect as many plugs as you want. A single port means
|
|
mono, even though you can send the signal to many different
|
|
places. Two ports means stereo, even though the right and left signals
|
|
can each go to any number of different places.
|
|
|
|
3.2. Where's the patch bay?
|
|
|
|
There is no separate dedicated patch bay. Patch bay functionality
|
|
is integral to the mixer. The mixer can have any number of inputs,
|
|
any number of busses, etc. In other words, it *is* the patchbay.
|
|
|
|
3.3. How do I do stuff?
|
|
|
|
Region Dragging (object mode)
|
|
-----------------------------
|
|
|
|
click-drag => moves region
|
|
shift-click-drag => moves region with time position held constant
|
|
(i.e. across tracks)
|
|
ctl-click-drag => moves a copy of the region
|
|
ctl-shift-click-drag => time-constrained movement of a copy of the
|
|
region
|
|
snapmod-click-drag => ignores current snap setting
|
|
|
|
Region Alignment (clicks without motion)
|
|
----------------
|
|
|
|
[ all alignment uses:
|
|
|
|
1) current region selection, if it exists
|
|
2) else the edit cursor
|
|
]
|
|
|
|
ctl-click => aligns start of region
|
|
ctl-shift-click => aligns end of region
|
|
ctl-alt-click => aligns sync point of region
|
|
|
|
Marks
|
|
-----
|
|
|
|
click in tempo track to create a new tempo mark
|
|
click in meter track to create a new meter mark
|
|
click in marker track to create a new marker
|
|
regular edit op for tempo/meter allows editing
|
|
regular delete op for all markers (except initial
|
|
tempo/meter markers)
|
|
snapmod-click-drag to move a marker while ignoring
|
|
current snap mode
|
|
|
|
Editing
|
|
-------
|
|
|
|
default is ctl-button3 click
|
|
|
|
|
|
Deletion
|
|
--------
|
|
|
|
default is shift-button3 click
|
|
|
|
Context Menu
|
|
------------
|
|
|
|
button3 click
|
|
|
|
Snap Modifier
|
|
-------------
|
|
|
|
default is mod3 (typically meta/windows/start key). using
|
|
ctl or shift or alt will cause problems. you can also
|
|
use combinations, but again, combinations using ctl and shift
|
|
will cause problems. mod3 or mod4 are probably your best
|
|
choices.
|
|
|
|
Selection (RANGE MODE required)
|
|
---------
|
|
|
|
click on a region => make a region selection
|
|
shift-click on a region => add region to region selection
|
|
click-drag => make a range selection
|
|
shift-click-drag => add to range selection
|
|
ctrl-click-drag => move selection
|
|
|
|
Separation
|
|
----------
|
|
|
|
in range mode:
|
|
|
|
a) make a single range selection
|
|
|
|
then, to split existing region apart
|
|
|
|
b) right click => Selection => Separate region
|
|
|
|
OR, to creates a new region without splitting original
|
|
|
|
b) switch to object mode
|
|
c) click on selection and drag
|
|
|
|
|
|
solo/mute/rec-enable
|
|
--------------------
|
|
|
|
to toggle solo/mute/RE for EVERYTHING:
|
|
|
|
ctl-shift-click on a solo/mute/RE button
|
|
|
|
to solo/mute/RE mix group (when group is not active)
|
|
|
|
ctl-click on solo/mute button
|
|
|
|
to toggle solo-safe status (which appears to not work
|
|
correctly right now)
|
|
|
|
shift-click on solo button
|
|
|
|
to momentarily engage solo while pressing a mouse button
|
|
|
|
use button2 instead of button1
|
|
|
|
|
|
gain sliders
|
|
------------
|
|
|
|
shift-click to reset to 0dB
|
|
ctl-click-drag for finer scale
|
|
ctl-alt-click-drag for even finer scale
|
|
|
|
panners
|
|
-------
|
|
|
|
(stereo): shift-click to reset to center
|
|
|
|
--Misc--
|
|
4.1. What's the deal with JACK?
|
|
|
|
JACK is the Jack Audio Connection Kit. There is a basic problem with
|
|
audio+MIDI apps on Linux at this time: they are not able to exchange
|
|
data with each other in situations where low latency is a system goal.
|
|
There are systems (aRts, MidiShare, parts of alsa-lib) that allow data
|
|
sharing, but not when the latencies get down below 20ms.
|
|
|
|
JACK is an API that solves this problem. Also, and quite importantly,
|
|
JACK drastically simplifies the programming of audio applications.
|
|
Applications that use JACK do not need to know anything about audio
|
|
hardware. They do not interact with it directly in any way
|
|
whatsoever. All they do is provide a few callbacks to the server they
|
|
connect with; the primary callback is responsible for producing and/or
|
|
consuming a specified amount of data whenever it is called. This is a
|
|
'callback' model, and is extremely different from ALSA, OSS, and
|
|
several other audio APIs. It is, however, very similar to Apple's
|
|
CoreAudio, Steinberg's ASIO, the PortAudio library, and most plugin
|
|
APIs. See http://jackit.sf.net/
|
|
|
|
4.2. Is Ardour internationalized?
|
|
Parts of Ardour are. Work is ongoing to fully internationlize Ardour. If
|
|
you speak a language besides English, feel free to volunteer to help
|
|
translate.
|
|
|
|
These languages have translations:
|
|
|
|
gtk-ardour:
|
|
French, German, Italian, Portuguese, Brazilian Portuguese, and Russian
|
|
|
|
libardour:
|
|
Italian
|
|
|
|
4.3. How do I get support?
|
|
|
|
Ardour is a volunteer project. There is no one devoted to providing
|
|
support. However, there is a members only mailing list where someone
|
|
might answer your question. You can join at Ardour's website:
|
|
|
|
http://ardour.org/
|
|
|
|
There is also the IRC #ardour channel on the FreeNode network.
|
|
|
|
Alternatively, you can pay Paul for specific support. Check with him
|
|
for hourly rates.
|
|
|
|
4.4. Well, where's the manual?
|
|
|
|
Currently, the existing documentation is sparse. You might want to check out
|
|
the Protools reference; Ardour is rather similar to it. Also, Paul wants
|
|
users to be able to complete the Mackie HDR tutorial using Ardour; so that
|
|
is another manual to check out. Both are available online from
|
|
<a href=http://digidesign.com/support/documents.html>DigiDesign</a> and <a
|
|
href=http://mackie.com>Mackie</a>.
|
|
|
|
There is the begining of a manual in Ardour's manual directory. Feel
|
|
free to create your own HOWTOs, tips and tricks sheets, tutorials, or
|
|
whatever you feel like adding.
|
|
|
|
A couple people have written some documentation to get people started with
|
|
Ardour. It is available at http://www.djcj.org/LAU/ardour/
|
|
|
|
4.5. Why are all these libraries included? I already have ...
|
|
|
|
Yes, we know that it's quite likely that you already have gtkmm or
|
|
sigc++ installed on your machine, let alone others. There
|
|
are 2 problems.
|
|
|
|
Ardour requires either the latest version of these libraries or even a
|
|
version with a patch that has not yet been incorporated into a release
|
|
of the library. Rather than require you to get the library source,
|
|
patch it, recompile and install it, Ardour keeps its own copy, builds
|
|
a static, private version of the library and links against it. That
|
|
way, we don't have to worry about crashes caused by you having the
|
|
wrong version of the library.
|
|
|
|
The second problem is more general. C++ does not yet have a unified
|
|
"Application Binary Interface", even on a single process
|
|
architecture+OS combination. This is unlikely to ever change (it was
|
|
encouraged by the inventor of C++). This means that libraries compiled
|
|
with one compiler are not always compatible with applications compiled
|
|
with another compiler. By "another compiler", we can mean something as
|
|
subtle as a different version of g++. Worse, because many C++
|
|
libraries feature inlined code, we even need to be sure you compile
|
|
against exactly the same version of the library as other parts of
|
|
Ardour will use. Even worse, there are compile time flags you or
|
|
someone else could give to a C++ compiler that would make the library
|
|
incompatible in subtle ways with code compiled with different flags.
|
|
|
|
After a year of trying to address these problems "the normal way", the
|
|
Ardour team gave up and decided to include every necessary library
|
|
that is written in C++ and/or has patches required. You may not like
|
|
this very much, but trust us, you would like the alternative even
|
|
less.
|
|
|
|
4.6. Why not another frontend to libardour? Why not QT?
|
|
|
|
The GTK+ frontend to libardour is almost 7 times the size of libardour. GUIs
|
|
for these sort of programs are very large and detail orientated. It would be
|
|
a waste of time to try to reimplement Ardour with another widget set. This is
|
|
also why there won't be a native port of Ardour to MacOS X.
|