I just released version 0.1 of Spek -- a little program that shows
spectrograms of audio files. Spek is written in Vala and uses the
standard GNOME stack: GLib, GTK+, Cairo and GStreamer.
Spectrograms are used to analyse the quality of audio files, you can easily
detect lossy re-encodes, web-rips and other badness by just looking at the
This version of Spek doesn't do much apart from showing the actual spectrogram
and allowing to save it as a PNG image. However, I plan to add a bunch of
features before releasing version 1.0:
- Windows port.
- Horizontal (time) and vertical (frequency) rulers.
- Zooming, scrolling and other adjustments.
- Associate Spek with audio files to use it as a viewer.
- Use multiple threads to speed-up processing.
You can download the tarball from the project's website. To build and
% tar -xjvf spek-0.1.tar.bz2
% cd spek-0.1
sudo make install to have it installed.
The code is available on Gitorious. I really need and will appreciate help
in these areas:
- Review of autotools-related code
I initially wanted to write Spek in Haskell to practice the language after
reading The Haskell School of Expression (generously sent to me by
Jorge). However, after writing a bit of code I realised that all the
functional goodness of Haskell is not used at all because Spek is simply a bit
of glue between GTK+ and GStreamer, with very little code of its own. Also, the
prototype's executable size of 14+ MiB didn't help much in convincing myself
that Haskell was a good pick for this project.
I was left with C and C#. The latter didn't feel like a good idea for the same
reasons: I wanted something lightweight for this small little app, C# would
require a lot of dependencies. Also, while I really like C# as a language and
Mono/.NET as a platform, I wanted to try something new for a change -- I already
use them full-time on my day job and when hacking Banshee.
I wrote very little C/C++ code since late 90's, now I know why I didn't miss it
much -- it's so incredibly verbose! After a few hours I gave up, decided to do
some research and found Vala :)
The impression so far is hugely positive. Vala still has a few rough edges but
nothing too bad and not work-aroundable. If you are tired of using C for your
GTK+ applications, definitely give it a try!