What is baudline?
Mystery Signal
FAQ index

What is baudline?
Baudline is a powerful signal analyzer designed for scientific visualization.  See the What is baudline? page for a detailed description and a list of features.

What is SigBlips?
SigBlips is the maker of baudline.  We are a contract engineering design and development firm that specializes in real-time embedded and digital signal processing systems.  Hire us.  See the SigBlips page for more information.

How do I install the baudline input decoder helpers?
By default, Mandrake 7.1 and Red Hat 6.2 install most of the helpers necessary for decoding audio files.  Special installation is required for GSM, flac, and Ogg Vorbis files.
Helper Minimum version  file type 
gunzip -V 1.2.4 gz, Z, zip 
bunzip2 -V 0.9.0b bz2
flac 1.0 lossless
sox -h 12.17.1 ADPCM
untoast -v 1.0 GSM
rmdtopvf -v  0.9.16 rmd
mpg123 0.59r MP3
mpg321 0.2.10 MP3
ogg123 -V 1.0rc2 Ogg Vorbis 

The decoder helper binaries need to be located someplace in your standard search $PATH.

For GSM 6.10 decoding you will need to install the GSM and sox source code (see above links) and follow the directions in the sox INSTALL file about the optional GSM libraries.  Make sure you uncomment the WAV49 declaration in the GSM Makefile.

Update: sox version 12.17.3 now includes the GSM library so no extra compilation work is necessary, but the toast package is still required to decode files with the .gsm suffix.

How do I set up baudline as an audio file helper in Netscape?
Go into Netscape's Preferences->Navigator->Applications window and edit the following MIME Helpers.  Or use your favorite text editor to manually enter the following information into your ~/.mailcap and your ~/.mime.types files.
Description  MIME Type Suffixes 
WAV Audio audio/x-wav wav
ULAW Audio audio/basic au, snd
AIFF Audio audio/x-aiff aif, aiff, aifc
MPEG Audio audio/x-mpeg mp3, mp2, mpa, abs, mpega 
GSM Audio audio/x-gsm gsm, gsd
Ogg Vorbis application/x-ogg ogg

Under the "Handled By" section choose the Application option and enter "/home/path/baudline -session file -mem 4 -play %s" in the application box.  The Netscape Preferences window should look sort of like this.  Now you can click on an audio file and baudline will open up and display it.

Here is a description of what the dash options mean.  The "-session file" option instructs baudline to perform session management under the filename of "file", the name is arbitrary, "-session netscape" would of been a good choice. Session management means that window placement, position, and other program settings are remembered when baudline startups and exits.  The "-mem 4" option tells baudline to use 4 megabytes of buffer space which is the minimum amount, this is useful if you happen to open many audio files at once.  Without the "-mem 4" option each baudline instance will default to using 25% of your RAM for its buffer space and having more than 2 or 3 baudlines running will cause swapping. Note that the -mem option overrides the memory size value that is stored in the -session.  The -play option forces the signal to be played out of /dev/audio after it has been loaded.  See the session management manual page for more information.

How do I get a scroll wheel mouse to work with baudline?
By default, baudline automatically supports the scroll wheel for sliding vertical scroll bars.  Holding down the <Alt> hotkey transforms a move action in a zoom action.  Used with the <shift> key modifier the vertical direction changes to the horizontal direction.

If you haven't already done so, your X11 server will need to be configured to work with the scroll wheel by adding ZAxisMapping information.  If you are using a 3.3.x version of the X server then modify your /etc/X11/XF86Config  file to contain this information:

Section "Pointer"
    Protocol     "IMPS/2"
    Device       "/dev/mouse"
    Buttons      5
    ZAxisMapping 4 5

If you are using a 4.x version of the X server then modify your /etc/X11/XF86Config  file to contain this information: 

Section "InputDevice"
    Identifier "Mouse1"
    Driver     "mouse"
    Option "Protocol"           "IMPS/2"
    Option "Device"             "/dev/psaux"
    Option "Emulate3Buttons"    "off"
    Option "ZAxisMapping"       "4 5"

The IMPS/2 is very important as the Generic PS/2 protocol doesn't know about scroll wheels.  The IM stands for Microsoft InteliMouse but this protocol  also works with the Logitech First Mouse that has a scroll wheel.  The MouseManPlusPS/2 protocol might also work but you are on your own if you try it.  You will need to restart your X11 Server for the changes to the /etc/X11/XF86Config file to take effect.

Now start up baudline and <pause> it.  The scroll wheel should now move the main scroll bar.  If it doesn't try using the xev utility to test if you are getting button 4 & 5 events.   Also doing a "ps aux | grep imwheel" is a good thing to check.  Don't use the imwheel program because it creates havoc with programs that have native support for the scroll wheel.

How do I improve the DJ phono needle scratching performance?
If the phono needle scratching response seems a little slow and laggy then try reducing the number of output audio fragments to a smaller number like 4, the default value is 16 fragments.  You do this by running "baudline -outfrags 4" from the command line.  Having a smaller number of output fragments will reduce the scratching latency but it can also cause audio drop outs at high CPU load levels. The -outfrags option can go as low as 2, but 4 is a better choice for a balanced play back and low latency scratching system.

I use Gnome and KDE and I don't like using the Alt key modifier.  How do I make baudline use the Control key modifier instead? 
Start up baudline from the command line with "baudline -modifier ctrl" for a Control key shortcut modifier.  Or try "baudline -modifier meta" if you would like the Meta key to be your modifier.  See the manual page.

How do I enable backing store on my XFree86 or Xorg X11 Server?
Mac OS X and XFree86 3.3.x have backing store enabled while XFree86 4.x.x does not.  The server in most modern Linux distributions have backing store disabled by default.  You can determine if backing store is currently enabled on your X-Server by running "baudline -sysinfo".  If the value of backing store is NotUseful, then for maximum baudline performance you should add the following backing store line to your /etc/X11/XF86Config or /etc/X11/xorg.conf file and then restart your X11 Server. 

Here is an example snippet:

Section "Device"
    Identifier  "ATI Rage LT PRO"
    VendorName  "Unknown"
    BoardName   "Unknown"
    Driver      "ati"

    Option      "DPMS"
    Option      "backingstore"

For more information on backing store read about baudline's -backingstore command line option.

My mouse cursor flickers when baudline is recording and it's driving me crazy!  How do I make it stop?
The flickering of the mouse cursor (arrow) is caused by the new Xorg software cursor.  While the new software cursor is very pretty with its anti-aliasing and alpha blended drop shadow it is drawn and managed by software in the video driver.  When placed in front of moving video the cursor will flicker.  Unfortunately this flaw is inherent in this type of design, it is not the sort of thing that can be fixed.

The better method of drawing a mouse cursor is the way it has been done for decades, in hardware on the video card.  If you want to get rid of the flicker then you are going to have to go into the Control Panel and disable the software mouse cursor.

Another problem of the software cursor is that it consumes CPU cycles.  Since the cursor is small the number of cycles isn't that great but it does add up.  In fact disabling the software cursor will result in the gain of about 3 or 4 baudline FPS (frames per second) on a typical low end machine.

How do I setup KDE2 color themes to work with baudline?
Start up the KDE Control Center application, go into the LookNFeel->Style  folder, and click on the "Apply fonts and colors to non-KDE apps" option in the Other settings for drawing section.

[Update December 2004]
The KDE3 default is to do this automatically.

How do I setup baudline to be a helper app in KDE2's Konqueror?
  1. Start up the Konqueror application.
  2. From the Settings pulldown menu choose the Configure File_Associations... item.
  3. Click on the audio types.
  4. Then just like with Netscape, you will want to edit the following MIME types: basic, wav, x-basic, x-wav.
  5. For each MIME type remove the current default in the Application Preference Order box.
  6. Then click the Add button.

The first time you setup this procedure you will need to type
/home/user_name/bin_path/baudline -session file -mem 4 -play
in the upper text entry box.  This will add baudline as a Known Application and then on subsequent entries for the remaining MIME types you can just click on the baudline item.  If you don't want the file to automatically play then remove the -play option.  See the session management manual for more information.

How do I get Alt+O (open file) to work in KDE 3.2?
  1. Open KHotKeys in KDE's control center System section.
  2. Disable both the KHotKeys daemon and the mouse gestures.

In KDE 3.2 I can't see my new windows.  How do I stop windows from opening behind the main display?
  1. Open Window Behavior in KDE's control center LookNFeel section.
  2. Click on the Advanced tab.
  3. Set "focus stealing prevention" to None.

The right Alt key doesn't work in KDE 3.2, how do I fix this?
For some strange reason keycode 113 (keysym 0xffea, Alt_R) is being translated to the ISO_Level3_Shift key.  You can test and verify this by running the xev program.  This can be fixed by doing the following:
  1. Open Keyboard Layout in KDE's control center Accessibility section.
  2. Click on the Xkb Options tab.
  3. Disable xkb options.

What is the best color temperature setting for baudline?
Color temperature is a monitor setting and values are in Kelvin.  5000K, 6500K, 7500K, and 9300K are popular choices.  For the most natural colors and best full range contrasts we recommend the 5000K setting.

How do I configure baudline to run in a protected kiosk mode?
To lock baudline down in a protected kiosk mode change the session parameter file to be read only.  Simply quit and restart baudline to return to your preconfigured session parameters.  After setting the operational parameters and window layout try:

chmod ugo-w ~/.baudline/baudline_rc


chmod ugo-w ~/.baudline/session/name

if a -session configuration file is used.

How do I get baudline to analyze the audio output going to my computer speakers?
What you need is a loopback. There are several different ways to accomplish this:
  1. Use a loopback Y-cable to connect your audio card's output to its input.  This analog solution will also be measuring your audio card's SNR and other distortions.  Some devices such as the Edirol UA-25 let you do this loopback digitally with the push of a button.
  2. Go into baudline's Input Devices window and select the channel called "volume".  Selecting this channel instructs the /dev/mixer of the audio card to do an internal loopback.  Unfortunately this option has the same analog issues mentioned above and not all audio cards have the "volume" mixer channel.
  3. Use JACK and route the audio output source to baudline's input sink.
  4. Use SoundFlower on Mac OS X.
  5. If you are using baudline's Tone Generator then there is a digital tone loopback button in the Input Devices window.  This option is great for DUT measurements such as performing dual-channel transforms like the impulse response and transfer function.

How do I save sample data to a file?
  1. Put baudline into pause mode.
  2. Select All (Alt+A) or click and drag a selection of samples with the mouse.
  3. Save Selection As (Alt+S)

How do I record live sample data to disk?
Start up baudline with the following command and then begin record:

baudline -stdout > file.raw

The resulting file.raw will be 16-bit native endian samples that are strided with the preconfigured number of channels.  This file can be opened with baudline's Raw Parameters window or can be feed into the standard input pipeline with a command like:

cat file.raw | baudline -stdin -channels 2

See -stdin for more information.

How do I clear the sample rate calibration setting?
The sample rate PPM calibration setting in the Input Devices window can be reset by manually changing the sample rate.  Starting baudline with the following command line option also resets the calibration value to zero:

baudline -calibratesr 0

How do I change color palettes?
Baudline automatically selects an optimal color palette depending on the number of channels and the number of panes.  A non-default color palette can be selected with the Input Mapping window.  The three color palettes at the bottom of the option menu are custom user palettes and can be configured with a fine degree of adjustment with the Color Picker window.

How do I adjust the spectrogram intensity?
Use the Color Aperture window and adjust the upper and lower dB slider controls.

How do I make /dev/audio2 the default for audio playback?
Go to the popdown section of the Play Deck window and change the Output Device option from automatic to /dev/audio2.

I startup baudline and it says "all input devices disabled" and the input devices window doesn't have any /dev/audio's, it is empty.  What do I do?
Here are two possible explanations for this:
  1. You don't have a properly configured audio card.
  2. Or you don't have read and write privileges for /dev/audio or /dev/mixer.  This happens in Mandrake 7.1 if user A is logged into the X console and user B remotely tries to access the audio device.  For security reasons Mandrake 7.1 changes the user of the /dev/audio devices to the user that is logged at the X console and removes group and other read/write permissions. Check if this is the case by doing a ls -l /dev/audio* command.  You can then run baudline as root or su'd as that user or as root do a chmod go+rw /dev/audio* command.

If your audio card is half duplex you will see it in the input devices window.  Now if another program such as the enlightenment sound daemon (esd), baudline, or an MP3 player is currently using or holding the /dev/audio open then you will see the "all input devices disabled" message.  The solution is to stop the other program from running or make it close the audio device.

I get a "/dev/audio requested fragsize ignored" error message when I try to record.  What can I do?
This error message indicates a buggy audio driver.  It usually only occurs when attempting to record and it can happen in both the OSS drivers and the ALSA OSS emulation drivers.  Audio playback typically works fine. 

The audio driver is broken and it needs to be fixed.  Unfortunately this is difficult and time consuming work.  Luckily there are a number of things you can try to get baudline recording:
  1. Try recording with all the different sample rates.  Many times a couple rates will refuse to work while others will work fine.

  2. Next try starting baudline with different fragment sizes:
    • baudline -fragsize 6
    • baudline -fragsize 7
    • baudline -fragsize 8
    • baudline -fragsize 9
    • baudline -fragsize 10

  3. Then try varying the number of input fragments, for example:
    • baudline -infrags 8
    • baudline -infrags 4
    • baudline -infrags 2

  4. This can also work for a playback problem, just substitute -outfrags for -infrags.

  5. If still no luck then try combinations of -fragsize and -infrags.  There might be a happy driver equilibrium point that works. 
    • baudline -fragsize 7 -infrags 4
    • baudline -fragsize 8 -infrags 4
    • baudline -fragsize 7 -infrags 8
    • baudline -fragsize 8 -infrags 8
    • ...

  6. Next you might want to try the above combinations with different sample rates:
    • baudline -fragsize 7 -infrags 4 -samplerate 11025
    • baudline -fragsize 7 -infrags 4 -samplerate 44100
    • baudline -fragsize 7 -infrags 4 -samplerate 48000
    • baudline -fragsize 7 -infrags 8 -samplerate 11025
    • ...

  7. As a last resort before doing anything major you can always pipe /dev/audio into baudline with the -stdin command line option.  The scrolling performance will be poor because of the large 2048 or 4096 pipe buffer size but it should work.
    cat /dev/audio | baudline -stdin -format ulaw

  8. This type of fragsize ignored bug usually tends to get fixed as a driver matures.  So trying a newer Linux kernel might be worthwhile.

  9. If you are using ALSA then consider switching back to the old OSS kernel drivers.  ALSA is still new and it suffers from a number of reliability problems, in time this will change.  [December 2004]

  10. Soundcards are cheap and most soundcards work fine with baudline.  So it might be a good idea just to break down and buy an inexpensive PCI soundcard or a USB audio device.

If you have gone through all of the above command line combinations and still nothing works then send us an email with the text output of "baudline -sysinfo".  We might be able to suggest a couple of things to try that are particular and unique to your audio hardware.

I have a Creative Labs SoundBlaster Live! card and it doesn't work with baudline.  Why?
In short, baudline will work acceptably with the SB Live! card if you use the OSS/Free drivers in the Linux 2.4.18 kernel and if you start baudline with the -brokentrigger command line option.  Read on for a brief Linux history lesson.

The Linux drivers for the SoundBlaster Live! card have had a very troubled life.  Back in October 2000 the emu10k1-######.tar.gz driver from the Creative Open source page worked flawlessly.  Technically the problem was solved, it was a success, but somewhere somehow there was an utter communications failure. 
  • Prestigious hardware manufacturers shipped bad drivers with computers containing the SB Live! card. 
  • The 0.5.2 and 0.9beta4 ALSA code was based on the faulty code and their SB Live! drivers are horribly broken. 
  • It took two years to get decent SB Live! OSS/Free drivers into the kernel (2.4.18). 
The code was open source.  What went wrong?  I don't know, but I have a stack of email from many baudline users that describe the pain and frustration.  On to happier thoughts ...

Thankfully the SB Live!'s troubled past is almost over.  The OSS/Free SB Live! drivers in the 2.4.18 Linux kernel work correctly, well almost.  As far as baudline is concerned all of the SB Live! features work except for the trigger start mechanism (SNDCTL_DSP_SETTRIGGER).  When queried the DSP_CAP_TRIGGER reports that the trigger is supported, unfortunately the trigger is broken and when baudline attempts to record the SB Live! driver stalls.  Baudline detects this failure and kick starts the driver, then operation is normal until the next pause and record.  So the -brokentrigger command line option was added to baudline specifically for the SB Live! driver.  The -brokentrigger command line option prevents the stall-and-recovery sequence on the Record operation.

[Update December 2004]
Just when you thought it was over...  The SB Live! card works with the 2.6.9 kernel and ALSA OSS emulation.  Unfortunately there are only 2 record audio fragments so xrun drops are a common occurrence under normal load.  The playback side fragments are normal and don't have this problem.  Strangely it is always the playback side that gets the more thorough developer testing. ):

I get a "! /dev/audio Cannot allocate memory" popup error message and I can't get baudline or other programs like XMMS to work anymore.  What is going on?
If you are running the 2.0.x series kernels and after a period of time you continually get the error message shown on the right then you could be encountering a known kernel buffer allocation bug.  The problem is the open() call to the audio device is failing even though there is plenty of available memory.  Attempting to Record or Play opens the audio device.  Once successfully opened the kernel memory buffer usage is static so the audio device will stay open until it is closed by putting it into the Pause mode.

When it happens, this is a very frustrating problem.  The only real solution is upgrading to a newer kernel. Retrying the Record or Play request might be a temporary solution, also quitting or closing some unused programs and then retrying might help.  Removing and re-loading the sound driver with "rmmod" and "ismod" or "modprobe" will give some temporary relief.  Note this bug was fixed in the 2.2.x series kernels and 2.2.16 is known to not have this bug.

I have a motherboard with the Via AC97 82cxxx sound chip and the kernel crashes when I run baudline.  Help!
The problem is a bug in the via82cxxx_audio kernel driver which is sometimes identified as ICE1232.  This crash is known to occur with a number of motherboards that have the on-board Via VT82C686 sound chip when using either the 2.4.18 or the 2.4.19 Linux kernels.

The solution is to use the -brokentrigger command line option every time you start baudline.  The -brokentrigger option will prevent the SNDCTL_DSP_SETTRIGGER from being used which is the source of the kernel crash.  Aliasing it in your .cshrc file would be a good idea.

I am using KDE3 with aRts running and I occasionally get a "/dev/audio Resource temporarily unavailable" error message.  What can I do?
What is happening is that the aRts sound server is holding the /dev/audio device open and not closing it. 

To solve this problem run the KDE3 Control Server and choose the Sound Server from the Sound tree branch.  Next, there are two possible solutions.  The best and most robust solution is to disable the line "Start aRts soundserver on KDE startup."  An alternate solution which is almost as good is to set the "Autosuspend if idle for" line to zero seconds.  This will force aRts to release the /dev/audio immediately when it is no longer in use.

I am getting a "/dev/audio Device or resource busy" error message.  What can I do?
Some other audio program is hogging the sound card.  Try quitting any running sound applications and deamons.  If the problem persists try restarting the ALSA server by running the command "su -c 'rcalsasound restart'".

I don't have a sound card, can I still run baudline?
Yes you can.  Not having a working sound card will keep you from recording or playing audio.  But you still can load audio files, perform browsing and analysis, and use the -stdin command line option.

You can also use baudline's Tone Generator in loopback mode by sending and the audio output stream to standard output and discarding it.  Try:

baudline -stdout > /dev/null

This bypasses baudline's internal sample clocking and "free-runs" as fast as the /dev/null sink can consume it.  Doing this is will use 100% percent of the CPU and it may make your machine sluggish.  Hitting the <Pause> key might work better than attempting to access the 3rd mouse button popup menu.  This setup could be used as a sort of experimental signal sand box to investigate the basics of DSP.  All without a sound card.

The following line will automatically configure baudline as a session for this sort of work.  It will enable the loopback, open the Tone Generator, plus do a couple other handy things.  Then manually select Record and start playing with the Tone Generator's controls.  Try:

baudline -stdout -session sandbox -devtone -tonegenerator -overlap 50 -pause > /dev/null

What sound card do you recommend for use with baudline?
There are many sound cards that work just great with baudline.  It is best to avoid the newest and latest sound card / integrated motherboard chip solution since it tends to take a while for Linux drivers to be written and evolve into high quality solutions.

If I had to recommend a sound card for use with baudline I would suggest the Ensoniq ES1371 card also known as the Creative Labs Sound Blaster PCI16 and SB128 cards.  These audio cards are widely available, fairly inexpensive (~$20 US), have good noise measurements, and have very high quality OSS/Free kernel drivers.  For a laptop solution I would recommend the Labtec Verse-704 USB Microphone, it is fairly inexpensive and it has good noise measurements (excellent for a PC based microphone), and the OSS/Free USB audio drivers work acceptably.

[Update December 2004]
The Labtec Verse-704 USB Microphone is now the Logitech USB Microphone.  It is still the same product except the green LED is now blue.

[Update September 2005]
For a detailed distortion and performance analysis of various sound cards check out the full duplex DAQ comparison application note.

Baudline doesn't startup when I restart a session in KDE2. What can I do?
The problem is that baudline is not in the KDE2 session manager's search path and KDE2 isn't smart enough to use the embedded XSMP information to find it.  Also it appears that the KDE2 session manager doesn't use your standard .login $PATH environment variable so putting baudline in your ~user/bin directory won't work either.  Also the dot isn't in the search path even though your root user directory is the current working directory (cwd).  Despite this deficiency there are three possible solutions:
  • copy the baudline executable to a standard place such as /bin or /usr/X11R6/bin
  • specify the full path on the command line such as /home/user/bin/baudline
  • copy the baudline executable to your ~/ root directory and run it as ./baudline  (note the dot)

Does baudline work with the ALSA sound drivers?
Yes, baudline works extremely well with ALSA's OSS emulation feature.  Most Linux distibutions enable OSS sound driver emulation by default but if you build your own kernel you will need to set the following configuration options to YES:

[Update June 2005]
The Linux kernel 2.6.11 OSS emulation still has a mixer gain control problem with USB audio devices.  A quick solution to this problem is to use an ALSA native mixer application.  This mixer gain problem first appeared with kernel 2.6.8.  Kernel 2.6.7 with ALSA 1.0.4 is known not to have this problem. 

[Update January 2006]
Baudline reports that full duplex audio cards are half duplex.  ALSA is passing erroneous information and this is an OSS emulation bug.  Baudline uses the duplex label for information purposes only.  The only sure test of audio card full duplex functionality to try it (record with the Tone Generator window open).

[Update September 2010]
Fedora 13 removed OSS emulation kernel support.  Instead of rebuilding your kernel it is possible to run baudline with an ALSA wrapper.  Try running "aoss baudline"

Baudline doesn't start and reports a X_PolyFillRectangle BadMatch error.  What is the problem?
Some video card drivers when configured for a 3D desktop like compiz or beryl that run on top of XGL or AIGLX will fail to start baudline and report:
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  70 (X_PolyFillRectangle)
  Serial number of failed request:  219
  Current serial number in output stream:  221
This problem is caused by a bug in the X11 video driver and it can be solved by disabling or commenting out the "Composite" option in the /etc/X11/xorg.conf file.  Then restart the X-Server.

Some distributions have the Composite option enabled by default and set it via the command line from some different configuration file.  You can look for it with the "ps auxw | grep X" command.  So if you don't see Composite in your /etc/X11/xorg.conf file then you might want to try overriding it by adding this section to your xorg.config file:
Section "Extensions"
    Option "Composite" "false"
Certain video cards and drivers will experience this problem with the composite option while others work fine.  Not sure why.

How can I stop my desktop from locking up when I press the 3rd mouse button to popup the main menu?
This X11 bug was introduced in the Xorg 1.7 series used by many popular Linux distributions such as Debian squeeze (testing), Ubuntu 10.04, Fedora 12, and Red Hat RHEL6-beta2.  The solution is to avoid the Xorg 1.7.# version.  Xorg 1.6.# and Xorg 1.8.# do not have this problem.  So the only two known options are to use an older distribution which has Xorg 1.6 or update your X-Server to Xorg 1.8+ through your package manager. 

Side notes:
  • Popping up the main menu by pressing the "menu key" which is next to the MS Windows key on some keyboards does not cause this lock up.  For keyboards that lack a menu key try the Shift+F10 combination as an alternative.
  • If you manually build and install a newer xorg-server you will need to also build libdrm >= 2.4.18 and MesaLib-7.7.1 versions.  A baudline user reported that this worked with xorg-server-1.7.7 which helped narrow down the bug.  Xorg 1.8 was released shortly after that.
  • The Ubuntu 10.04.2 LTS update has fixed this X11 lockup problem.

How I do fix Fedora 13's missing fonts problem?
For some unknown reason Red Hat decided to remove the Helvetica and the legacy fixed-point bitmap fonts.  These very basic fonts have been a staple in Linux distributions for more than a decade and now you need to install these "optional" fonts. 

On Fedora 13 run:
yum install xorg-x11-fonts-misc
yum install xorg-x11-fonts-ISO8859-1-75dpi-7.2-6.fc9.noarch

On Fedora 20 run:
yum install xorg-x11-fonts-ISO8859-1-75dpi.noarch

For more information on the fonts baudline needs read the comment at the end of this blog post.

How do I fix the missing Helvetica font in Ubuntu 12.04?
The following error message appears when baudline is run on Ubuntu 12.04 LTS:
Warning: Cannot convert string "-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*" to type FontStruct
Warning: Cannot convert string "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*" to type FontStruct
The missing Helvetica font causes many baudline windows to have layout problems.  To install the Helvetica font on Ubuntu 12.04 and remedy this situation try doing:

sudo apt-get install xfonts-75dpi

and then restart the X-Server.

Note that there exists an xfonts-100dpi package that may be useful for those with a higher DPI monitor.

Can you recommend a good DSP text book?
The text book Discrete-Time Signal Processing by Oppenheim and Schafer was used extensively in the design and creation of the baudline signal analyzer.  This excellent book is THE reference DSP text and we recommend it highly.  It is fairly math heavy and it requires an understanding of Calculus. 

Buy it, learn it, love it, and live the DSP dream!

How can a 16 bit linear waveform, which has 6 * 16 = 96 dB of dynamic range, have spectral energy with a signal to noise ratio (SNR) of 136 dB or more? 
The answer is that dynamic range and SNR are not the same thing.  Let us look at it like this; if you take digital silence (all zeroes) and you toggle the least significant bit (LSB) then this will be the quietest signal that is possible with that bit resolution.  This will register in with spectral energy of about -96 dB, anything less will just be digital silence.  So for spectral energy to be below -96 dB, the waveform LSB toggling has to be less than one bit and that's impossible. 

Detecting a signal beneath the noise floor is common in DSP but how can a signal exist that is below a noise floor of zero?  It doesn't get any quieter than digital silence.  So what is going on? The Fourier transform done by the FFT takes a large block of time domain data and transforms it into the frequency domain.  Looking at such a large block of data at a time gives the FFT the advantage of being able to see long term trends in the sub bit noise and infer a signal from that.  Pretty spooky?  Well this is one of the many wonders of DSP.

Isn't it pointless to use gzip or bzip2 lossless compression on audio files?
It all depends on the audio file.  It is true that using bzip2 on music ripped from a CD will result in poor compression rates on the order of about 5%.  But since gzip and bzip2 are generic entropy encoders, the less information a file has the more it should compress in a lossless fashion. 

Here are some examples. 

  • A quiet signal with much less than the 96 dB dynamic range allowed for in a 16 bit wav file will have a sample amplitude distribution that uses, lets say, half of the 16 bits. This audio file could of been stored as an 8 bit wav file without any loss of information, but it wasn't, so using gzip or bzip2 will compress out most of that redundant information (roughly about a factor of 2).  The same argument is true for a stereo file which is actually a mono file (both channels are the same).  Even if the redundancy isn't ideal, like the 8 bit and mono cases, an entropy encoder will still do a very good job.
  • Test signals like sine waves are very redundant and they compress very well with an entropy encoder (roughly 10:1).  Simpler test signals like triangle, ramp, and square waves compress even more.  Note that  0 dB white noise is truly random and by definition it can't be compressed by an entropy encoder, but -40 dB white noise can.
The proper way to losslessly compress an audio file is to use an algorithm that is specifically designed for waveform data.  Baudline currently supports flac lossless decoding, read this question for more information and links.  The big advantage of gzip and bzip2 is that they are universal, everyone has them, everyone knows how to use them, and they are simple to use.  Netscape will automatically gunzip a downloaded file and now baudline will automatically gunzip and bunzip2 loaded files, so it makes sense to try an entropy encoder first, the worst that will happen is wasting some CPU cycles.

See the audio compression codecs application note for a detailed distortion and performance analysis of various lossy and lossless codecs.

Is it better to use a larger FFT or to decimate when trying to resolve the frequency between two closely spaced tones?
Increasing the frequency bin resolution by using a larger FFT size, by decimating with the down mixer, and by using a lower sample rate are all equivalent operations.  They can even be combined for even more signal extraction gain.  The differences between methods are:
  • A larger FFT size is not as efficient and requires more CPU power but it has the most flexibility.
  • Decimating with the down mixer reduces the sample rate but it adds filter skirts (roll-off) to the left and right of the spectrum.
  • A lower sample rate reduces the sample rate by doing the resampling with the audio cards ADC.  This doesn't utilize a CPU performance hit but it can create a serious artifact problem with some sound cards.

The current bin resolution can be found in the Drift Integrators pop down section.

Is there a mailing list that might keep me updated on new baudline releases?
xml To keep up to date on baudline news, events, and happenings you can:
  1. Periodically check the News page.
  2. Subscribe to the baudline XML feed with an RSS reader or the live-bookmark feature of a web browser.
  3. Create a free user account on Freshmeat and "subscribe to new releases." 
  4. Join the baudline Google Group.
  5. Follow @baudline on Twitter.

What operating system distributions do you test and develop with?
Our goal is to have baudline work correctly with a wide variety of Linux and BSD distributions.  This requires a diverse testing environment.  Here is a list of the different Linux distributions and versions that we develop and test baudline with: 




How can I get baudline to use a specific sample rate not offered on the list of standard rates?
Use the -samplerate command line option.  It works for both stdin and audio card inputs.  A floating point rate can even be entered but you should be aware that the OSS Free audio drivers only support integer sample rates.  You can also enter a custom sample rate in the Raw Parameters window.

My computer is old and slow.  Baudline seems unresponsive and the 3rd button popup menu is sluggish.  What can I do?
Baudline is a very resource intensive and configurable application.  It's default (-reset) startup parameters can be too demanding for older slower computers that have limited CPU, memory, and video bandwidth.  So in order to improve performance; try starting baudline with a minimal set of resource parameters such as:
baudline -fftsize 1024 -overlap 100 -memory 4 -backingstore
Setting the FFT size to 1024 and the sliding overlap to 100% will significantly reduce the number of floating point calculations.  Setting the memory parameter to 4 MB minimizes baudline's RAM footprint which will reduce HD swapping.  The backing store parameter will improve the video bandwidth, but for quality purposes it is recommended to enable backing store on your X11 server.

Next, carefully and systematically increase the demands on your computer by adjusting the parameters in the Scroll Control window.

Optimizing your video bandwidth can also help a lot.  Here are a couple system configuration parameters that might be worth trying:
  • Disabling any window manager animation and extra features will improve interactive response.
  • Old video cards had very poor 24 bpp performance so a change to 16 bpp video can result is a 3X improvement or more.
  • Changing the Xorg default software mouse cursor to a the old style hardware mouse cursor can result in a mild speed up that is good for a gain of a couple FPS.
  • Enabling backing store is always a good thing.
  • Disable video double buffering with the -nodoublebuffer command line option.

Do you have any tips on how to become a power baudline user?
Reading both this FAQ and the on-line manual are good places to start, but specifically: Most importantly, experiment.  If baudline gets into a strange mode, remember that you can always restore it to the default settings with the -reset command line option.

As a bonus, here is a baudline audio quality tip: you can increase the dynamic range slightly (+.5 bit) during play back by disabling the surround matrix mixing option in the Play Deck.

How much is baudline going to cost?
The current plan is to have a free version with features similar to those in the beta and to make money from special add on services.  Also we will have a pay version of baudline that has an expanded set of professional features. 

If you have any "professional features" that you would like to see in baudline then please contact us and tell us about them.

Can you explain what the baudline licensing terms mean?
The about baudline window says "All distribution is explicitly prohibited."  This means you are not allowed to distribute copies of the baudline software.  Here are some examples:
  • You are not allowed to copy baudline to a CD, floppy, or USB memory stick with the intent of selling or giving it away.
  • You are not allowed to put a copy of baudline on your website, file server, Dropbox, GDrive, or other file sharing platforms.
  • You are not allowed to put copies of baudline on machines that you sell.
  • You are not allowed to put baudline on software package management repository systems like apt-get, up2date, zypper, yum, MacPorts, etc.
Usage is not restricted. So personal, commercial, educational, and government usage is fine.  Distribution of the baudline software is what is restricted.

Distribution of the baudline software requires a license from SigBlips.  The license will be in the form of an annual subscription with larger companies requiring a site license.  This simplified licensing model ensures compliance while encouraging broad corporate-wide use.  Please contact SigBlips for more information about baudline licensing, services, and support.

Will you port baudline to FreeBSD?
The baudline Linux x86 executable currently runs on FreeBSD with some minor configuration modifications. 

Will you port baudline to Mac OS X?
Baudline has been ported to Mac OS X as an X11 application.  It is a universal app that runs on the PowerPC and Intel x86 32-bit and 64-bit architectures.  File drag-n-drop and dockification are supported on both the Leopard (10.5) and Snow Leopard (10.6) operating system versions.  Snow Leopord will automatically launch the X-Server if necessary but on Leopard the X11 app will need to be manually started.

Depending on the level of success baudline receives on the Macintosh platform, a native Aqua interface version may happen in the future.  As always, SigBlips can be hired to speed this process up.

Will you port baudline to Microsoft Windows XP?
Yes, you can hire SigBlips to create a baudline port for the Microsoft Windows XP or Vista operating systems.

The Microsoft Windows graphics interface is significantly different than X11 which makes this a high difficulty port.

Will you port baudline to Sun Solaris?
Baudline has been ported to Solaris SPARC. 

You can hire SigBlips to make a native Solaris x86 port of baudline or you can try Sun's Project Janus which is a Solaris based Linux emulation environment.

Will you port baudline to Linux x86_64?
Baudline has been ported to Linux x86_64. 

Using JACK on a 64-bit platform requires baudline x86_64.  Some Linux distributions, such as 64-bit Ubuntu 7.10 don't, include the 32-bit compatibility libraries as default, so baudline x86_64 is required for those installations too.

The 32-bit i686 version of baudline runs about 4% faster than the 64-bit x86_64 version.  So if performance is important then running 32-bit i686 baudline on a x86_64 CPU and 64-bit operating system would be beneficial.  The reason for this difference in performance is still a mystery.  The x86_64 platform has twice the number of integer registers and when coupled with specific K8 optimizations it should make for a respectable speed increase.  Unfortunately it seems that the extra overhead of the 64-bit addresses outweighs the advantage gained from having double the number of registers.  SigBlips is actively working on x86_64 performance improvements so this disparity may change in the future.

Will you port baudline to Linux PowerPC?
The Ready for IBM eServer with Linux Mark Baudline has been ported to Linux PowerPC.

In fact, baudline has obtained Linux technical validation to run on IBM iSeries and pSeries Power machines.  Contact us for more information.

Copyright © 2014 - group - blog - twitter - site map