I had a similar question a while back: http://old.nabble.com/looking-for-fast-spectrogram-->-jpg-png-gif-td28361237.html#a28361237

Result so far: http://nielsmayer.com/ra2_residentadvisor_net_audio_RA201_100405_19_454_18_5_25_5_18_residentadvisor_net_mp3.png

See: http://sourceforge.net/projects/soundviewer/ ( and http://pypi.python.org/pypi/scikits.audiolab )

Although I'm using the spectrogram, soundviewer does waveforms:
> parser.add_option("-a", "--waveout", action="store", dest="output_filename_w", type="string", help="output waveform image (default input filename + _w.png)")

Although the waveform representation is informative, it is also odd. Likewise, one of these years (low priority due to this being a "look" and not functionality issue) I'd like to modify the svt.py python script to plot a frequency-logarithmic rather than linear spectrogram (had anybody done so already?). 

==============================================================================

    parser.add_option("-a", "--waveout", action="store", dest="output_filename_w", type="string", help="output waveform image (default input filename + _w.png)")
    parser.add_option("-o", "--wavefile", action="store", dest="wavefile", type="int", help="draw waveform image (yes:1, no: 0; default: no)")
    parser.add_option("-s", "--specout", action="store", dest="output_filename_s", type="string", help="output spectrogram image (default input filename + _s.png)")
    parser.add_option("-w", "--width", action="store", dest="image_width", type="int", help="image width in pixels (default %default)")
    parser.add_option("-h", "--height", action="store", dest="image_height", type="int", help="image height in pixels (default %default)")
    parser.add_option("-f", "--fft", action="store", dest="fft_size", type="int", help="fft size, power of 2 for increased performance (default %default)")
    parser.add_option("-m", "--fmax", action="store", dest="f_max", type="int", help="Maximum freq to draw, in Hz (default %default)")
    parser.add_option("-i", "--fmin", action="store", dest="f_min", type="int", help="Minimum freq to draw, in Hz (default %default)")
    parser.add_option("-p", "--palette", action="store", dest="palette", type="int", help="Which color palette to use to draw the spectrogram, 1 for color and 2 for black on white (default %default)")
    parser.add_option("-v", "--version", action="store_true", dest="version", help="display version information")
     parser.set_defaults(output_filename_w=None, output_filename_s=None, image_width=500, image_height=170, fft_size=2048, f_max=22050, f_min=10, wavefile=0, palette=1)

==============================================================================

-f 512 delivers best image for music

svt.py -w 32768 -h 256 -f 512 RA201_100405_19_454_18_5_25_5_18_residentadvisor_net.wav

gnulem-147-.../vamp-plugins/npm-sa> time svt.py -w 16384 -h 256 -f 4096 RA201_100405_19_454_18_5_25_5_18_residentadvisor_net.wav
processing file RA201_100405_19_454_18_5_25_5_18_residentadvisor_net.wav:
/usr/lib64/python2.6/site-packages/scikits.audiolab-0.10.2-py2.6-linux-x86_64.egg/scikits/audiolab/pysndfile/compat.py:97: DeprecationWarning: sndfile class is deprecated, please use Sndfile instead
  DeprecationWarning)
/usr/lib64/python2.6/site-packages/scikits.audiolab-0.10.2-py2.6-linux-x86_64.egg/scikits/audiolab/pysndfile/compat.py:49: DeprecationWarning: formatinfo is deprecated, please use Format instead
  DeprecationWarning)
        ........... done
20.066u 0.379s 0:20.45 99.9%    0+0k 0+5944io 1pf+0w
gnulem-148-.../vamp-plugins/npm-sa> time svt.py -w 16384 -h 256 -f 1024 RA201_100405_19_454_18_5_25_5_18_residentadvisor_net.wav
processing file RA201_100405_19_454_18_5_25_5_18_residentadvisor_net.wav:
/usr/lib64/python2.6/site-packages/scikits.audiolab-0.10.2-py2.6-linux-x86_64.egg/scikits/audiolab/pysndfile/compat.py:97: DeprecationWarning: sndfile class is deprecated, please use Sndfile instead
  DeprecationWarning)
/usr/lib64/python2.6/site-packages/scikits.audiolab-0.10.2-py2.6-linux-x86_64.egg/scikits/audiolab/pysndfile/compat.py:49: DeprecationWarning: formatinfo is deprecated, please use Format instead
  DeprecationWarning)
        ........... done
15.266u 0.284s 0:15.61 99.5%    0+0k 0+6296io 1pf+0w
--+>> gnulem-149-.../vamp-plugins/npm-sa> time svt.py -w 32767 -h 256 -f 512 RA201_100405_19_454_18_5_25_5_18_residentadvisor_net.wav
--+>> processing file RA201_100405_19_454_18_5_25_5_18_residentadvisor_net.wav:
--+>> /usr/lib64/python2.6/site-packages/scikits.audiolab-0.10.2-py2.6-linux-x86_64.egg/scikits/audiolab/pysndfile/compat.py:97: DeprecationWarning: sndfile class is deprecated, please use Sndfile instead
--+>>   DeprecationWarning)
--+>> /usr/lib64/python2.6/site-packages/scikits.audiolab-0.10.2-py2.6-linux-x86_64.egg/scikits/audiolab/pysndfile/compat.py:49: DeprecationWarning: formatinfo is deprecated, please use Format instead
--+>>   DeprecationWarning)
--+>>   ........... done
--+>> 27.801u 0.343s 0:28.29 99.4%      0+0k 0+12792io 1pf+0w

-- Niels.
http://nielsmayer.com