1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
Extace Waveform Viewer
----------------------
This is the eXtace Audio signal visualizer. It plugs itself in as
an EsounD monitor and displays the output from Audio passing through
EsounD.
eXtace will NOT display the output of a CD playing in your CD/CDRW/DVD
drive, as the drive does all the decoding and just passes analog audio
through your soundcards mixer. eXtace requires the raw PCM (Pulse Code
Modulation) audio data to give you a display. There are many apps that
can extract the audio data from a CD to be played back in this manner.
cdda2wav and paranoia are two main applications that can "rip" audio
data off of a CD to be piped through Esound so eXtace can "see"
it.
EsounD is Gnome's sound daemon.
eXtace used to support ALSA 0.5x as that version had "loopback" support
which was dropped in future releases. Because of this change I was
forced to remove support for ALSA. I am looking into other Sound-Servers
possibly "Jack", from http://jackit.sf.net, or GStreamer. I might even
support arts if they can get it to stop hogging the CPU...
Features:
eXtace has several modes, 3D Wireframe landform FFT, 3D solid landform
FFT, 2D Graphic Equalizer, Several scopes (dot, line, gradient), a
3D Spike FFT (high resolution) and 2 2D spectrograms, (horizontal
and vertical scroll).
All modes are fully configurable via the options panel. Any of the 3D
modes can be dragged around the screen by grabbing an end with the
mouse (drag using the left button) and moving it anywhere within the window.
The direction panel will appear when the proper display is running. This
works similar to above. Just grab the end of the marker and drag it around
and the trace will travel off into space in the same direction as the
pointer in the direction window.
Clicking your middle mouse button on any of the displays brings up a
colormap editor to change the colormap eXtace uses. (For those of you with
two button mice, try hitting both buttons at once to mimic the middle button)
NOTE: Colormap editing does NOT work any longer. It is being redesigned as
of 1/28/2003. Expect future revisions to have it working again. NOTE you
can always create your own maps as they are all text file "instructions"
for eXtace to build the maps from.
Clicking within the gradient on the left and then selecting a color on the
right and clicking "OK" will update the window and the running display.
Colormaps can be saved and loaded using the Load/Save buttons. An arbritrary
number of colormaps can be setup. If you come up with something REALLY cool
send me the colormap file and I'll include it with the next release.
Colormaps are stored in your ~/.eXtace/ColorMaps/ Directory. Their structure
is extremely simple (and somewhat inflexible), see the source for details.
Compilation instructions:
You will need Esound and its devel libs installed and working and the FFTW
(Fastest FFT in the West) (version 2.x only) library to build and run eXtace.
The FFTW lib can be found on http://www.fftw.org/. Source and Binary RPMS
are mirrored on http://extace.souceforge.net/
Run "./configure" (no quotes). Then "make" and then "make install" as root.
Every effort has been taken to try and address the various installation
methods of fftw, but occasionally the configure script fails to locate
a library or header file properly. If you run into this problem, email
me your config.log, the screen output from running ./configure and any
options you fed to configure to get it to fail.
The EsounD daemon 'esd' will need to be running as well. Typically
the daemon autostarts when an app uses the esd routines. (xmms spawns
it when you select the Esound Output plugin)
Currently there are no command line parameters. An options panel
is available to tune the speed, and 3D effects.
Performance:
eXtace was tuned to try and use as little processor as possible. (I have
not found any other visualizer app that uses as little as eXtace.)
NOTE: my system is a Dual Celeron 500, with an NVIDIA GeForce2 running XFree
4.0.3 and NVIDIAs' binary drivers. Your system performance may vary...
I typically see processor usage of around 2-15% for eXtace plus 5-20% for
X (the X server). If you run into very high processor usage (over 70%)
sometimes it means an OpenGL app has run but the buffers haven't been freed
causing the X server a lot of overhead. I've found the resizing the window
forces X to flush some arbritrary buffers and performacne improves, and cpu
usage goes way down. (This was demonstrated on earlier versions of the
binary NVIDIA X11 driver, it may have been a bug in the driver... )
Your mileage may vary. NOTE: The more video RAM your
card has, the better. (more ram = more space for pixmap caches and other
off-screen stuff.) With less memory backing pixmaps become slower as system
memory has to be used and overhead increases.
Testing:
The sine.c is an example program to test extace with, just run
./sine | esdcat <--- ESOUND
Turn down your volume though as it may be loud.. :)
This feeds a sine wave stepped sweep into Esound which you should hear,
and see in eXtace.
Misc:
The scope has an option in the panel to enable/disable the Trace Stabilizer.
The stabilizer uses a mathematical routine (called a convolution) that
is used as a pattern matcher to stabilize the dispay. Thanks to Ralph
Loader for giving me a hand with the code and Andy LaFoe for the code from
Alsaplayer (One cool mp3/audio player, the only Variable speed one too).
Enjoy!
Dave Andruczyk. <djandruczyk at yahoo dot com>
Based on the orignal extace code written by:
The Rasterman <raster@redhat.com>
Michael Fulbright <msf@redhat.com>
|