Robust Audio Tool UCL Multimedia

RAT Frequently Asked Questions

For IPv6 related problems, please also see the IPv6 FAQ.

Basics

  1. How to get started?
  2. How find out more and command line options?
  3. How to report bugs, comments, and other feedback?
  4. How to contribute code?

Hardware

  1. What soundcards have been tested on PC's?
  2. Where to buy soundcards?
  3. Multiple soundcards on Windows?
  4. Why is only one Windows application able to use multicast?
  5. Why does silence suppression clip my audio on the PC?
  6. RAT on the SGI generates more noise than on other platforms, and the silence suppression doesn't seem to work. Why?
  7. Why doesn't RAT recognize my soundcard?
  8. RAT doesn't work with my ESS Maestro card on Linux!

Software

  1. Do VAT and RAT interoperate?
  2. Why does VAT not interoperate with RAT when encryption is used?
  3. Which tools support redundant audio?
  4. Where can I find details of the redundant audio packet format?
  5. RAT on Solaris complains about vsnprintf?
  6. Why does RAT crash on Linux?
  7. Why does RAT crash on FreeBSD 2.2.x?
  8. Why does RAT crash on FreeBSD 4.0-RELEASE?
  9. Why is the user interface so slow and the audio breaking up on my PC?
  10. What is this ws2_32.dll and why is it missing from my system?
  11. Why is rat splatting packets with TTL 0 onto my network?
  12. Why is the microphone control so weird on Windows?
  13. RAT fails to start with the message "Cannot execute subprocess: No such file or directory"
  14. What is this assertion failure key->key == 7?
  15. Why does RAT 4 hang on Windows PC's without a networking card?
  16. What does "IP_ADD_MEMBERSHIP: No such device" mean?
  17. Why does RAT say "Could not initialize Mbus: Is multicast enabled?"
  18. I have trouble starting RAT (on winXP/2k) - the rat.exe and ratui.exe processes start but the GUI doesn't come up

Sound Files

  1. How to record audio files?
  2. How to replay the recorded audio files?
  3. Why do I hear no sound when I play audio files?
  4. What format should the audio files played to other participant be in?

Miscellaneous

  1. How to test the performance of RAT?
  2. How to multi-unicast? If you really must...

Basics

  1. How to get started?

    RAT is a multicast (or unicast) audio tool. It is best to start it using a session directory tool, like sdr. RAT does not do call or session invitation for two reasons. There are several alternative protocols for performing call setup and negotiation, and adding code to the audio tool to do so encumbers the tool unnecessarily. In addition, these call setup and negotiation is reasonably complex and best handled elsewhere so that video, whiteboard, etc, can all leverage the same functionality if desired.

    If desired RAT can be launched from the command line as described below.

    You can start it from the command line using an IP address and port number as arguments. The syntax is:

    rat address/port

    To join a multicast group (address range 224.0.0.0 to 239.255.255.255 - i.e. an address that starts with "1110" - see RFC1112) just enter the group address and a port number.

    To connect to two unicast hosts, goldfinger and jaws, on jaws type:

    rat goldfinger/10000

    and on goldfinger type:

    rat jaws/10000

    Recent versions of rat allow you to omit the port number, and default to using port 5004. This is primarily useful when using rat in unicast mode, since you simply start it with the name of the remote machine.

  2. How to find out more command line options?

    The RAT manual page which is available in text or postscript format.

  3. How to report bugs, comments, and other feedback?

    The rat-users@cs.ucl.ac.uk mailing list is an open list, for general discussion and feedback related to rat. If you use rat, you are encouraged to subscribe. Bugs should be reported to this list, in the first instance.

    The rat-trap@cs.ucl.ac.uk mailing list is for feedback directed at the tool developers only.

    When reporting problems please detail:

    1. which version of RAT you are using.
    2. which hardware platform, soundcard and operating system version.
    3. if you are participating in a public or private conference. (Who? Where? When?)
    4. if you are receiving, or transmitting and receiving.

    The more information you provide, the quicker we are to be able to assist you.

    You may also find the essay How to Report Bugs Effectively useful.

  4. How to contribute code?

    All code contributions are welcomed. The preferred source code to use is in the UCL CVS repository since this is the code that is going to be the next release. Please send patches and the version of the source code used to rat-trap@cs.ucl.ac.uk.

Hardware

  1. What soundcards have been tested on PC's?

    The list below details cards we have tested. If you are using different hardware we would be interested to know how it performs.

    • The AOpen AW 35/37 Pro works under Windows 9x, NT, Linux, and FreeBSD. Drivers for NT are available from Crystal Semiconductor here.
    • The Aztech Sound Galaxy works under Windows, but we have not managed to get this card to work under Linux or FreeBSD.
    • The Diamond Monster Sound MX80 performs very well under Windows 95, but there are no drivers for NT, Linux and FreeBSD. No crosstalk and very low SNR. Recommended Card
    • The Diamond Monster Sound MX300 is an outstanding card. Excellent sound quality, excellent 3D rendering, fun software pack. It appears to be the best card to date, absolutely no crosstalk and very low SNR. Drivers exist for Windows 9x/NT and are under development for Linux and FreeBSD. Recommended Card
    • The Diamond Sonic Impact S90 performs very well under Windows 9x/NT and has an excellent price (25GBP). It is based on the Aureal Vortex chipset and OSS are promising a Linux/FreeBSD driver soon. It has no crosstalk and low SNR. Recommended Card Best Value for Money
    • The Ensoniq AudioPCI works under Windows95/NT. There is noticeable distortion in full-duplex mode. However, this card does cost 1/5 the price of the Diamond Monster Sound and Daytona PCI cards and there is FreeBSD and Linux support with OSS.
    • The Gravis Ultrasound MAX works well with FreeBSD and Linux, but we have applied a PROM patch (again to reduce interrupts used) to our cards and they no longer work under Windows. This card is no longer in production, but is a great card if you can find one.
    • OPTI931 based soundcards, such as the Typhoon Sound System, work under Linux, FreeBSD, and Windows 95 with the occasional glitch due to the hardware occasionally failing to generate interrupts at the correct times. On the OPTI-931 based cards we have tested have been noisy during full duplex operation and in some cases there has been considerable degree of crosstalk.
    • Phillips PCA-70 see Turtlebeach TBS-2000.
    • Soundblaster Live! sounds great! At last a decent card from Creative for full duplex audio. The environmental audio is also v. cool. Drivers for Windows 95/98/NT.Recommended Card
    • Soundblaster PCI/128 is a reasonable full duplex audio card and competitively priced. It has 16bit sampling on input and output in full duplex operation (unlike the ISA soundblasters), and has tolerable SNR. There is a perceptible amount of crosstalk with the CD mixer lines. Drivers for Windows 95/98/NT and Linux, and OSS. Recommended Card
    • SoundBlaster PCI-64 (ES1370) has noticeable distortion even when just playing files back. Distortion appears to be worse under Windows NT than Windows 9x, but is present on both platforms. Yuk!
    • SoundBlaster 16/32/64 cards (and compatibles) have drivers for Windows 95/NT, Linux and FreeBSD. All ISA Soundblasters have poor full-duplex performance due to the hardware design. The sound quality is limited by having different input and output sample sizes. This either limits the transmission, or reception, quality depending on how the driver is written/configured. There is considerable distortion on some of the Soundblaster-16 cards. Under Windows, you need version 4.30.00 (or later) of the driver. Yuk!
    • The TurtleBeach Daytona PCI works well under Windows 95. It should work under NT, but we have not tested this configuration (yet). No drivers for Linux and FreeBSD at the time of writing. Recommended Card
    • Turtlebeach TBS-2000 and Phillips PCA-70 both work under Windows 95 and have worked with with Luigi Rizzo's FreeBSD driver. They are based on the CS4232 chipset. Both cards may require PROM patches to reduce the number of interrupt lines they use. Bewarned that since applying these patches the cards do not work on our FreeBSD boxes. The TBS-2000 is now out of manufacture and hard to come by.
    • The Winnov Videum is a combined audio and video card that has drivers under Windows 95/98/NT. It's a good value card and the audio quality is sufficient for conferencing, although the card we have is a little noiser than we'd like.

  2. Where to buy soundcards? (in the UK)

    For price we recommend Aria Technology and for range we recommend DABS Direct. Both companies have upto date product catalogs on the web and do next day delivery.

  3. Multiple soundcards on Windows?

    The current release version of RAT will pick the first enabled soundcard that it discovers. If you have multiple soundcards, select the properties of the card you do not wish to use on the (Control Panel->Multimedia->AudioDevices) and select "Do not map through this device". Then enable mapping through the device you want to use and then reboot.

    It maybe that RAT does not work with one of your cards, but other conferencing software does. In this case you will need to select the appropriate card in each case.

    Thanks to Steve Morgan, Computer Services Dept, University of Liverpool, for raising and resolving this problem.

  4. Why is only one Windows application able to use multicast?

    Some network adapter drivers are not able to take direction from more than one application at a time. This is either a hardware or driver bug in the network adapter. This used to be a common problem when multicast was a novelty. Updating the driver for the adaptor may fix the problem, otherwise a new adapter is necessary.

    We have had a report that the Linksys PC100 Ethernet card will only take direction from one Windows application. The remedy was to replace it with a Linksys Cardbus 10/100.

  5. Why does silence suppression clip my audio on the PC?

    We have endevoured to make the PC silence suppression algorithm perform better. The problem with some PC hardware is the amount of noise present in the signal. The algorithm has been tested with the Daytona, Monster Sound, and SoundBlaster-16 soundcards with three different microphones. However, this is no guarantee that it will work with other hardware. If you have a problem use push-to-talk.

  6. RAT on the SGI generates more noise than on other platforms, and the silence suppression doesn't seem to work. Why?

    There is considerable crosstalk between the analog microphone and headset interfaces when operating in full duplex mode on some SGI hardware (i.e. Indy's). This breaks the silence suppression algorithm, although we really ought to be able to build a more robust algorithm. SGI are aware of the problem, but it is unlikely to be fixed on existing hardware (the O2 machines do not have this problem).

  7. Why doesn't RAT recognize my soundcard?

    RAT 3.2.0 and later require a full duplex soundcard (i.e. one able to record and playback simultaneously) and will not function with older, half-duplex, cards. The single most common reason why RAT will not detect your soundcard is because the card either does not support full duplex, or is misconfigured.

    If you are using PC hardware, you should check that the DMA channels are configured correctly. This is a common error on Linux, since the RedHat sndconfig program can report a working configuration, even if these are set up wrongly.

    Note also that being able to play CDs or MP3 files on the machine is not an indication that your sound card is configured correctly for rat. Playing out audio is a half-duplex operation, rat requires that your card runs in full duplex mode.

    If versions of rat prior to 3.2.0 work on your machine, but later versions do not, it is likely that you have a half-duplex soundcard. Older versions of rat will work with these cards - but we do not support them now.

  8. RAT doesn't work with my ESS Maestro card on Linux!

    Some versions of the Linux driver for the ESS Maestro 2E card have bugs which prevent them from working with rat. You need to use v0.14 of the maestro driver (linux 2.2.16) or above.

Software

  1. Do VAT and RAT interoperate?

    By default VAT is not RTP compliant. When invoking VAT use the -r command line flag to enable RTP packet formating.

  2. Why does VAT not interoperate with RAT when encryption is used?

    In some cases vat will generate invalid RTCP packets when encryption is being used. RAT has strict packet validation, and so discards these packets, resulting in those participants not being visible in the RAT window.

    This bug has been demonstrated in vat-4.0pre8 and earlier, and may exist in other releases.

  3. Which tools support redundant audio?

    The current RTP payload type for redundant audio is derived from that presented at the Montreal IETF meeting. It is currently supported by the following tools:

    • RAT v2.6 or later
    • FreePhone v3.0b1 or later
    • Precept IP/TV

    Earlier versions of these tools used a different packet format, and are not compatible.

    If you know of additional tools to this list, please mail rat-trap.

  4. Where can I find details of the redundant audio packet format?

    The RTP payload format for redundant audio is described in RFC2198.

  5. RAT on Solaris complains about vsnprintf?

    If running on solaris 2.5.1 RAT fails with the error:

     ld.so.1: rat-4.0.1: fatal: relocation error: 
     file rat-4.0.1: symbol vsnprintf:  referenced symbol not found

    This is due to changes in the libraries Sun provide. The fix is either to recompile RAT from source on a solaris 2.5.1 machine, or to upgrade to a newer version of Solaris.

  6. Why does RAT crash on Linux?

    This seems to be a bug in some versions of Linux libc. Try doing:

     setenv MALLOC_CHECK_ 0 

    before running RAT, which solves the problem in many cases.

    Some people have reported problems if RAT is not installed in /usr/bin. This appears to be a feature of RedHat 4.1, and we've not been able to duplicate this with the Debian installation we use.

    It has been reported that these problems persist on Red Hat Linux 5.0.

    On Red Hat Linux 6.0 you may see the message "No locks available" on starting RAT. This occurs when running with your home directory on an NFS mounted filestore, if you are not running lockd. Ensure that lockd is running before using RAT (the NFS package must be started in /etc/rc.d/rc5.d). Similar problems have been reported with SuSE 6.2.

  7. Why does RAT crash on FreeBSD 2.2.x?

    This appears to be due to a bug in the FreeBSD networking code. Upgrade to a more recent version of FreeBSD (FreeBSD 3.x or later work).

  8. Why does RAT crash on FreeBSD 4.0-RELEASE?

    This appears to be due to a bug in the FreeBSD audio driver code. It is hoped that this will be fixed in a future version of FreeBSD.

  9. Why is the user interface so slow and the audio breaking up on my PC?

    Some versions of the winsock library have bugs which cause this behaviour, try upgrading. We have found that winsock2.2 works correctly.

    Note that, starting with RAT v3.0.31 you are required to have version 2 (or later) of the winsock library to use RAT.

  10. What is this ws2_32.dll and why is it missing from my system?
  11. The ws2_32.dll is Microsoft's winsock2 dynamic link library. The were a number of serious flaws in the multicast support provided by earlier versions. If it is not present on your system you upgrade your Windows installation. Service packs may be downloaded from the Microsoft web site - Windows 95/NT updates.

    RAT versions 3.0.31-3.0.33 require Winsock2. Later versions will work with both Winsock 1 and Winsock 2. Thanks to Ross Finlayson for highlighting that this was possible.

  12. Why is rat splatting packets with TTL 0 onto my network?
  13. There is a known bug in the Microsoft's IP stack which means that TTL zero IP packets (such as those used in the mbus) escape onto the network. There is a hotfix for Windows NT 4.0 (ask Microsoft technical support about article Q234980 in the Microsoft Product Support Services Knowledgebase), but no fix exists for other versions of Windows. It is believed that Windows NT 4.0 service pack 6 and Windows 2000 also fix this problem.

  14. Why is the microphone control so weird on Windows?
  15. RAT-3.0.x has a bug in the device control settings which means that it sometimes controls the wrong audio channel. This is fixed in RAT-4.0.x and later.

    If you have trouble with earlier versions of RAT, you can adjust the gain via the Windows audio control panel. By double-clicking on the yellow loudspeaker icon in the tray at the right hand end of the task-bar, a panel called Volume Control appears. In the context of RAT, this handles the "received" audio, via the "Wave" section and mixed into the main "volume control" at the left. The "line-in" here must be muted and/or slid to minimum, otherwise the microphone is being mixed into the loudspeakers with the obvious consequences.

    The less obvious part of this is that if you take Options/Properties you can click on the "recording" button and then the panel will turn into a Recording Control. In the context of the RAT this is the "transmit" section, and you could inject CD Audio, or MIDI sound from the Mixer, into the transmitted stream. Normally of course you will want to select the Line-in here (or Microphone if you are using that input).

    Contributed by Alan Flavell.

  16. RAT fails to start with the message "Cannot execute subprocess: No such file or directory"
  17. Starting with version 4.1.0, RAT has comprised three processes which communicate with each other using a shared message bus. These processes are called, for example, rat-4.1.2, rat-4.1.2-ui and rat-4.1.2-media. This error occurs when the main process cannot start one (or both) of the other processes.

    Check that all three programs are installed in a directory which is in your search path. Also check that the -media and -ui programs have not been renamed.

  18. What is this assertion failure key->key == 7?
  19. RAT v4 uses a locally scoped multicast group as a message bus (MBUS) to communicate between the user interface and the audio engine. The same message bus is incorporated in UCL versions of VIC with the intention of providing lip-synchronization. For lip-sychronization to be effective the audio and video tools need to negotiate appropriate playout delays.

    Unfortunately there are versions of UCL tools in circulation that do not have the same configuration file format, and backwards compatibility has not been added. Thus the reason for the assertion failure. It is now possible to get versions of the UCL tools with the same mbus file format - the latest vic and rat releases have this.

    In addition, it is necessary to clean out persistent MBUS state. Make sure none of the UCL applications are running and then:

    Unix
    rm $(HOME)/.mbus
    Windows
    run regedit (it is in the default path), find and delete the section called MBUS.

  20. Why does RAT 4 hang on Windows PC's without a networking card?

    RAT4 uses locally scoped multicast to communicate between the user interface and the media engine. On Windows machines without a network adapter a loopback adapter needs to be installed to enable locally scoped multicast to work.

    The loopback adapter may be installed by clicking on:

    Start->Settings->Control Panel->Network->Adapters->Add

    Select any MS Loopback adapter and configure with an IP address, and do not configure DHCP, WINS, etc. Restart the machine and bingo!

    Contributed by S.Varakliotis
  21. What does "IP_ADD_MEMBERSHIP: No such device" mean?

    It means that RAT is trying to use multicast but the network interface doesn't support it (note that the conference bus uses multicast even if you start RAT with a unicast address). There are two likely causes:

    • Your machine doesn't have multicast support enabled. For example, on Linux and FreeBSD it is possible to compile a kernel which doesn't support multicast.
    • You don't have a route for multicast traffic. Some systems don't add this by default, and you need to run
      route add -net 224.0.0.0 netmask 240.0.0.0 eth0
      (or similar). If you wish to use RAT in unicast mode only, it is possible to add the multicast route on the loopback interface.

  22. Why does RAT say "Could not initialize Mbus: Is multicast enabled?"

    See previous question.

  23. I have trouble starting RAT (on winXP/2k) - the rat.exe and ratui.exe processes start but the GUI doesn't come up

    It may be that you have the windows firewall configured to block udp packets - Rat requires that udp packets can be transmitted and received on port 47000 on your local interface.

    You can control the firewall on your machine by using the network properties GUI and going to the advanced tab.

    You can also use the netsh command to control various network parameters, including the firewall. e.g. to list firewall status from a dos window:

    netsh firewall show adapter

    You may also want to check you have a route for multicast installed on your machine. This should normally be there as default, but to check use:

    route print

    You should see a line that says something like:

    Network_Destination NetmaskGateway Interface Metric
    224.0.0.0 240.0.0.0 your_ip_addr your_ip_addr1

    If you don't see it then you'll need to add one, like this:

    route add 224.0.0.0 mask 240.0.0.0 your_ip_addr

Sound Files

  1. How to record audio files?

    1. bring up the Options panel from the Main Window.
    2. Click inside the "Rec file" text box and type the name of your file, e.g. foo.dat.
    3. Click Start to commence recording.
    4. Click Stop to cease recording.

    The recorded file, foo.dat, contains raw data of the audio samples you have received during a session. At the time of writing RAT uses 16-bit 8-kHz mono linear PCM. We are moving towards variable sampling frequencies and stereo sound.

  2. How to replay the recorded audio files?

    To replay the sample you will need an audio program that can play raw data, or you will need a program that can place a header on the raw data so that your audio program can read the data. We use Sun's audioconvert program, but recommend Sound eXchange for more general audio file conversion.

    The current development version understands .wav and .au files. If you would be interested in adding other file types please email rat-trap@cs.ucl.ac.uk

  3. Why do I hear no sound when I play audio files?

    When you play an audio file the sound content of the audio file replaces your microphone input. The other participants hear the sound, but you do not as RAT does not loopback your input. NB use the command line flag -allow_loopback to enable loopback.

  4. What format should the audio files played to other participant be in?

    RAT uses raw 8-KHz 16-bit mono linear PCM internally. If the file contains data of this kind, but has a header, e.g. a .AU file, then it will interpret the header as audio data and play it.

Miscellaneous

  1. How to test the performance of RAT?

    To evaluate the conformance of RAT to the RTP spec you may use crtpdump or rtpdump (part of Henning Schulzerinne's rtptools package) to observe the behaviour.

    To evaluate the loss mitigation functions of RAT it should be run against a packet reflector that can add jitter, loss, and packet duplication. The source code for the application we use for this can be found here.

  2. How to multi-unicast? If you really must...

    The packet reflector application that we use for debugging may also be used as a packet forwarder between multiple unicast hosts. Documentation is included in the package. This is not incorporated in the application as this mode of operation is evil and should be discouraged unless used for really small groups.