Novell Linux Desktop Overview: Sound
Novell Cool Solutions: Feature
By Joe Harmon
Digg This -
Posted: 20 Dec 2004
Throughout the manual, the configurations will be different depending on whether you are using GNOME or KDE. To simplify the process, we will separate these configurations by using the following icons:
Understanding Sound Components
- Sound on Linux is handled quite differently than on Windows. The Novell Linux Desktop (NLD) supports both the KDE and GNOME desktop and therefore adds to the complexity if they are both installed. In order for us to understand sound on the NLD, we must first come to know the sound components. We will start by taking a look at the difference between a Sound System and a Sound Server.
- A Sound System sits right above the Linux kernel and works by directly accessing /dev/dsp. The two sound systems on NLD are OSS/Free (Open Sound System) and ALSA (Advanced Linux Sound Architecture.) OSS is an older technology that is being fazed out with the introduction of ALSA. Typically most applications that used OSS can use ALSA due to a built in compatibility mode. One of the main issues with OSS was that it locked /dev/dsp which didn't allow for full-duplex sound. This is one benefit that ALSA brought to the table. See the following article for a better comparison of benefits and features: http://desktops.linux.com/desktops/04/08/09/1513255.shtml?tid=25
- A sound server sits right above the sound subsystem. These sound servers were mainly built for developers to have an easier programing interface into the sound system, yet they still plug into the sound system. It also provides several benefits beyond what a sound system may provide (like multiplexing). The two main sound servers on NLD are ESD (Enlightenment Sound Daemon) and aRTs (ART Sound Daemon). There is also a new professional sound server called JACK, however since NLD doesn't use this sound server by default, we will not cover it here. ESD is the default sound server for GNOME and aRTs is the default for KDE.
How Sound is Accessed
- There are several ways that sound can be accessed by an application on NLD. One is to have it built into the application to access sound directly. Two is to have it go through a central device. Three is to have desktop specific applications. Four is to have it changeable within the application. Lets take a couple of examples:
- Built into an Application
What this basically means is that the developers have programmed the application to access the sound system or sound server directly. This can limit your sound in several ways. Depending on your desktop, it may make it so that it conflicts with the default sound server on that desktop. If it was programmed to use OSS, it may also lock /dev/dsp, making it unaccessible while that device is in use.
- Central Device
The central device is where you would setup a default sound system or server. It may even allow you to setup either or both depending on the desktop. The actual configuration of this device is covered in the section called "Setting a Central Device." Using a central device means that the application was setup to use a particular package, and that the sound device is controlled by a central location. In the case of GNOME, if there are many packages that are setup to use gstreamer, then the device can simply be configured through a central location. On NLD, gstreamer is set to OSS by default. OSS can lock /dev/dsp. Therefore if you are having issues with only one sound being able to play at a time, then OSS might be the issue. You may want to change this to something like ESD.
- Desktop Specific Applications
There may be some applications that you want to use that were specifically designed for a particular desktop. Lets take evolution as an example. Evolution is considered a GNOME application and is therefore controlled by GNOME settings. However, there are many people who use KDE and want to use evolution. The default sound server for KDE is aRTs and evolution uses gstreamer for its sound. Depending on what gstreamer-properties is set to, this may or may not cause a conflict. In this instance, it may be alright to set the gstreamer-properties to aRTs so long as KDE is going to be your only desktop.
- Changeable within the Application
There are some applications that allow you to actually set the type of sound you want to use within the application itself. This is by far the most global and configurable since it is not desktop specific. A good example of this is the gaim application.
Administrative Sound Settings
- Go to HARDWARE | SOUND
- You should see your sound car in the list. If not then you do have the option tadd or remove sound cards. There are also some advanced options. To access these click on the OPTIONS button.
- Here you can change your advanced options for your sound card.
- Under the VOLUME button you can adjust your volume for the different sound channels. Once you have changed you sound appropriately, click on NEXT and FINISH to complete your configuration.
Setting the Central Device
- Gstreamer properties not only lets you change a sound system, but it also lets you change the sound server if desired. You can also perform a test on the sound after the change is made. Remember that your application will only be affected by this change if it is using gstreamer.
- Unlike gstreamer in GNOME, you do not have the option of selecting a different sound server in KDE, you only have the option of choosing a sound system. You also have some other configuration options that will allow you to choose full duplex, or configuring your MIDI device.
** NOTE ** Although you have some configuration options, you really shouldn't need to change the default sound system from "Auto detect" unless you are having sound problems.
Individual Sound Preferences
- The general tab will allow you to turn on and off sound in a global sense, meaning that this option is for all sounds.
- The sound events tab will allow you to change the individual sound associated to the system or individual applications.
** NOTE ** Some sound settings may be controlled in the application itself.
- This system bell allows you to turn on or off the system bell as well as add visual feedback. This bell is used by applications such as IRC.
- Under the Sound Server section, the general tab will allow you to control the such things as turning the sound server on or off. (You can also choose to have networked sound, or change the sound server itself as described earlier in this document.)
- Here you can change settings for the system bell. This is used for hardware errors and applications such as IRC.
- The System Notification section will allow you to change test individual sounds on your system.
** NOTE ** Some individual sound settings may be located on the application itself.
Troubleshooting Sound Issues
** NOTE ** There are other commands and utilities that can also help with sound problems. Some of these are listed below along with some troubleshooting questions that will help break down your sound issues into understandable pieces.
- Ask a lot of questions - The first step to troubleshooting sound problems should be the asking of some basic questions.
- What desktop am I using, GNOME or KDE?
Typically you want to set everything to the default for the given desktop in order for it to run properly. This may require you to change some things in given applications or at a global level. Remember that the default sound server for GNOME is ESD and the default for KDE is aRTs.
- Is the application a native GNOME application, a native KDE application, or neither?
If you are running a specific desktop and the application that you are running is not from that desktop, then you could run into some potential issues because that application may be setup for one sound server while the desktop is setup for another.
- Does my application have the capability of selecting a sound server or sound system?
If you application has this capability, then it will override any global setting (unless set to autodetect) and could potentially have a conflict. At the same time, it is nice when this feature is there so that a person can match it to the default sound server that is being used.
- If I do here sound, do I hear sound only as the root user?
Running alsaconf in a terminal and then rebooting usually fixes this issue.
- Do I hear sounds for only specific applications?
You may need to look at what desktop vs what sound server or sound system you are running. Also take a look to see how the application accesses sound on your system.
- Sound works the first time until the workstation is rebooted, or you have sound for certain users or certain applications, but not others.
Running alsaconf in a terminal and then rebooting usually fixes this issue.
- Sound events get queued up and then play all at once.
This usually indicates that something is locking up /dev/dsp. Remember that OSS does this, and that gstreamer-properties is set to OSS by default. Try changing it to a sound server like ESD for GNOME, or aRTs if you are running a GNOME application in KDE.
- Sound card keeps getting muted.
This can usually be seen through the alsamixer terminal command. Try and figure out what the last thing you did before the sound was muted. This application may be having a conflict with other applications.
Some common TIDS:
Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com