Tips And Tricks

From Open Sound System
Revision as of 01:23, 27 June 2008 by Cesium (Talk | contribs) (Changing the default sound output used for /dev/dsp)

Jump to: navigation, search

Tips

Starting ossxmix minimized to tray on desktop startup

The '-b' option starts ossxmix in the background - minimized to tray if tray support is compiled in, iconfied window if not. The '-S' option prevents ossxmix from trying to use a system tray. ossxmix -Sb' will always start an iconified window.

  1. KDE: create a desktop shortcut in ~/.kde/Autostart with the command 'ossxmix -b'.
    Alternative: create a desktop shortcut in the same place, with the command "ossxmix -Sb'. Go to Applications->"Advance options" and select "Place in system tray".
  2. Gnome: go to Control center->Session->"Startup Programs" and add "ossxmix -b".
  3. X11 in general: edit the Xsession file. Make sure the tray program runs before ossxmix, or use the '-S' switch as well.
  4. See [1] for info on other environments.

Changing the default sound output used for /dev/dsp

  1. Relink /dev/dsp to the desired /dev/oss/.../ device. The device node matching the desired sound output can be discovered by running 'ossinfo -a'. If OSS insists on recreating /dev/dsp, simply add the appropriate linking command (typically ln -sf /dev/oss/.../ /dev/dsp) to $OSSLIBDIR/soundon.user.
  2. Alternative: $OSSLIBDIR/etc/installed_drivers influences the order of sound cards set by ossdetect. By removing other devices or moving the desired sound card to the first place, followed by running 'ossdetect -v', the default device can be modified.
    The root directory $OSSLIBDIR can be found by checking /etc/oss.conf. It is typically /usr/lib/oss/.

Recording sound output of a program

There are several methods to achieve this:

  1. Many drivers offer a 'vol' mixer control. If this is used as a recording source, than the current sound output will be recorded. Note that this is the mixed total of all sound played, not of a single program.
    ossrecord -ivol blah.wav
  2. vmix loopback driver can record the output of a program. Set vmix_numloops to 1 (or more) in vmix.conf, and make the program output to the newly created /dev/oss/vmix0/loop0 device. Then record from that device. e.g.
    ossplay test.wav -d/dev/oss/vmix0/loop0 &
    ossrecord test2.wav -d/dev/oss/vmix0/loop0
  3. OSS wrappers can be used to record the output of a program. vsound is one such wrapper. (vsound doesn't handle output to /dev/oss/* device nodes, but all OSS-supporting programs are/can be easily made to output to /dev/dsp).
    vsound ossplay test.wav