[Tux] SourceForge Logo ksslogo

KOssMixer Home Page

"For many, a computer is for playing games. To me, the computer is the game" - John Gluck

[KOssMixer with SoundBlaster Live Kernel 2.4.9]


Version 0.3 released on September 27th, 2001.

This is the second public release. There were no bugs reported for release 0.2 so this release is simply to add new functionality. The new features are described farther down this page under "Using KOssMixer".

The source for the 0.3 version is included on the cover CD of the December 2001 issue of LINUXformat magazine. The tarball is in the Desktop/KOssMixer directory of the CD.

What it is

KOssMixer is a mixer control or access program for sound cards that use OSS compatible drivers. It is important to understand that this program as well as other GUI mixer programs do not provide the mixer capabilities. Mixer programs provide access to the mixer devices provided by the sound card drivers and ultimately the hardware of your sound card. Do not expect to magically find new capabilities for your hardware.

Many of today's sound card use DSPs (Digital Signal Processors) that can be programmed by downloading software to them. Some of the sound card and mixer features will therefore, depend on the software that is downloaded to the DSP by the driver. This explains why various iterations of drivers can add or remove sound card features.

While this program was specifically written for OSS, ALSA drivers also work if you enable the OSS compatibility. You can find information for setting up ALSA with OSS compatibility here. The program is written for KDE 2.2 and can be used as a replacement for kmix.

I was pleasantly surprised to see that there were over 400 downloads in the first week after the initial release. There were no bug reports. The second release had several hundred downloads in the first few days.

I consider the state of this project to be beta but is fully functional. I do plan to add a few more features and of course suggestions and feedback are welcome (see distribution).

Why it was created

To paraphrase the mountain climber's old adage. I did it because I could.

More seriously though, there are several reasons:

  • To try out programming for KDE and the best way is to do something fairly simple.
  • To do something in the Open Source world since I've been using the fruits of many developers' labors for many years.
  • Sourceforge is kind enough to host projects like this for free and I wanted to try it out.
  • Other folks might like it.
  • This project will serve as a stepping stone to more serious and complex projects.
  • I am interested in sound and DSP. This porject begins to touch on the area.

  • Why would you use KOssMixer

    There are any number of reasons why you would want this program. Because you like the way it looks or behaves are reasons that come to mind. On the other hand, you might want to look at the source and see how it was done. Whatever your reasons, they are yours and that's sufficient justification.

    Credits and dedication

    Like any good author I would like to acknowledge those who made this program and its distribution possible. This isn't an easy task. There are literally millions of people who had some involvement and many of them don't even know it. I'm quite likely to miss some but here goes anyway. I would like to thank:

  • Those who had the vision and imagination that made computers, programming languages, and the internet possible.
  • To the authors who wrote the books I studied to understand and use all this stuff.
  • All the unsung heros who labor into the the night surviving on cold pizza and coffee making technology real.
  • The folks who worked long and hard to make KDE a reality.
  • The folks at Trolltech who authored Qt and made a free version available.
  • All the folks who work on linux. It's not flashy but it's the heart of the system.
  • Everyone who worked on XFree86 without which KDE wouldn't exist.

  • My wife and kids who love and encourage me even though I sometimes seem to forget them. They endure my long hours without compliant. I don't know how they do it but I love them for all they are.

  • The distribution

    The program is distributed as source code only. There are no binaries available at this time. In order to use it, you need to know how to compile from source on your machine.

    Download the source tarball

    Visit the project page

    I could use your help. If you try this program, please share your experiences by e-mailing me. Just use the help-> report bug menu entry and write me a short note.

    You can also e-mail me at jgluckca@altavista.com

    Remember, we programmers who write these things and offer them for free, do it for fun. Getting feedback gives us incentive to continue. I know your time is valuable and a few minutes spent giving some constructive feedback will help us create better apps that will save you more time.

    I am particularly interested in the following. Even if you don't have all of this information it's still useful:

    1 - What is your sound card.
    2 - Which kernel version or distro are you using.
    3 - What new features would you like to see.
    4 - What (if anything) would you change.
    5 - What problems (if any) did you have using the mixer.
    6 - Which version of KDE and Qt you are using.
    7 - Will you continue using KOssMixer.

    Building the source

    After downloading the source code you will need to extract it into a working directory, configure, compile and install.

    The general steps under Linux are as follows:

    tar -C /usr/src -xvzf kossmixer.gz
    cd /usr/src/kossmixer
    make install  (you will probably need to do this as root)

    Using KOssMixer

    Using the mixer is fairly intuitive. When the mixer starts, it will dock to the system tray. A left click on the icon will cause the window to pop up. What's this help is provided by either clicking the question mark on the frame or through the help menu. Once you have clicked the What's this, move to an object on the mixer window and click it. A short text will pop up describing the purpose of the item.

    The first time you start the mixer, it will tell you that the configuration file wasn't found. This is normal. Just save the settings and you will not see the message again.

    It is easy to use terms in a confusing manner when refering to a sound mixer. To eliminate the possibility of confusion, for the purposes of the description, the following terms will be used:

    Mixer: This is the entire mixer display.
    Control: A single control such as volume or treble.
    Channel: For stereo controls this is the left or right elements. For mono controls it is equivalent to the control.

    Each control will have at one slider if it is mono and two sliders if it is stereo. The slider(s) allow you to set the level of the control. In the case of stereo controls, it is possible to operate each channel independantly or to have the channels track each other. When the channels track, varying either slider will move both sliders. The yellow indicator (LED) labeled Trk allows control over this feature. When the trk LED is bright, both sliders will operate as one.

    If a control is capable of being used as a recording input, it will have a red LED labeled Rec. To select the control for recording, click the Rec LED to make it bright. For many sound cards it is not possible to have more than one input used for recording at a time. KOssMixer detects this and will not allow a second input to be selected as a record source. In order to deactivate a record source, simply click the Rec LED to make it dark.

    All controls have a mute leds at the bottom. These set the effective level of the control to zero or off on a per channel basis. The slider will still move and the requested levels will be remembered but no change in the level will occur until the mute is deactiveated by clicking the green LED to make it dark.

    In addition to the basic operations described, a few special features are also available:

  • Hide or show individual controls by doubleclicking the control's icon.
  • Change the displayed name of the control by doubleclicking the name.
  • Hiding a control can be useful when your mixer has a control but you don't have anything connected to it. I recommend you mute the control before hiding to eliminate the possibility that electrical noise will distort your sound playback.

    Changing the name of a control is often useful because the mixers define generic names that do not necessarily correspond to their use or what is connected to them. For example you may have a line input with a tape deck connected. You may prefer to rename Line to Tape. Another example is the SoundBlaster Live which defines a control called IGain that is really the record level control. You may prefer to name this Rec Level.


    KOssMixer has been downloaded over 600 time as of this writing. No bugs have been reported. I can only assume that most of the systems are quite different from mine.

    My system used for development is:

  • Dual Pentium III
  • 768Meg RAM
  • Matrox G400 Max with 32Meg RAM
  • Dual head display
  • NEC MultiSync FE1250+ 22 inch monitor
  • Optiquest V775 17 inch monitor
  • SoundBlaster Live with Messina Media Series speakers
  • 3 IDE and 1 SCSI harddisk for a total of about 80 Gigs
  • Toshiba SCSI CD-ROM
  • Yamaha SCSI CD-RW
  • Creative IDE DVD
  • 100BaseT Ethernet for my internal LAN
  • 100BaseT Ethernet for cable modem connection

  • Most of the software is built from sources. The major components are:

  • Linux kernel 2.4.10
  • XFree86 4.1
  • KDE 2.2.1
  • Qt 2.3.1
  • egcs-1.1.2 / egcs-2.91.66 19990314/Linux
  • KDevelop 2.0
  • gdb 5.0 / DDD 3.33
  • audiofile 0.2.2
  • libpng 1.0.12
  • jpeg 6b