- June 10, 1999 (version 1.0.0)
- Many performance changes made. Also created
a non-GUI version called string.c so you don't
have to have GTK installed.
- March 25, 1999 (version 0.8.0)
- Initial Release.
Gstring is guitar tuning application written in C using the
GTK+ toolkit and FFTW for its
fourier transform. A non-GUI version called "string" is included
so you can run this without GTK or GtkDatabox.
At the present time, Gstring has enough functionality to be useful, but
it's far from complete. It's still beta software, and new features and
bug fixes are being added all the time. Although it takes fairly large
number of samples from the sound card, the FFT routines are really good since
we use FFTW. We use idle CPU cycles to do most of the work so that the
machine is not too bogged down. On my Tosiba tecra 8k it takes about
3% to 5% of my cpu to run the non-GUI version.
Here's the obligatory screenshot.
Recent sources can be found here:
- gstring-1.0.0.tar.gz .
This is includes i386 executable binaries of both gstring and
string (non-GUI version) both dynamically linked. I've made many
performance changes and I also created
non-GUI version called string.c so you don't
have to have GTK or GtkDatabox installed.
- gstring-0.8.0.tar.gz Initial release.
This is includes an i386 executable binary (dynamically linked).
Before you download it, you may want to verify that the following packages
are installed on your system
- Please see the README file included in the package for installation and usage instructions.
- You need a sound card and a microphone. We need to be able to sample
at 22050 Hz and collect 16384 samples at a time in 8 bit format (unsigned char).
Almost all modern sound cards can do this. Feel free to tweek the sampling rate
at sample size. We read directly from /dev/dsp and use ioctl() to set various things.
- You will need at least version 2.1 of the FFTW libraries and headers as well. The package name
looks like this "fftw-2.1.1-1.i386.rpm" and you can get this RPM
(for RedHat) at various archives. You can get the source code from M.I.T. here:
FFTW and compile it yourself. They
even have Linux binaries and RPMS here: M.I.T. binaries. You can also get
the latest RPM's from
various RPM contrib archives . It will work with FFTW 2.0 but you may need to change the
line in the source code that includes drfftw.h to make it include rfftw.h instead.
For the non-GUI version (called string.c), you can ignore the following two
- The GIMP Toolkit, available from the GTK site. You need at least versions 1.2.0
of both gtk+ and glib.
If you are running a Redhat Linux system, get the latest stable gtk+ and
glib library (both the libraries and the headers (which are located in the
*-devel RPMS)) from one of these mirrors RPMs.
- You will also need at lease version 0.1.11.0 of the GtkDatabox widget. You will need this until this
widget gets added to the main Gtk+ distributions. Grab the latest tar file, copy the two
files, gtkdatabox.c and gtkdatabox.h into the gstring source directory (where you have
gstring.c). If you didn't install gtkdatabox (which you don't have to), you will need to
edit gtkdatabox.c and change
in order to use my makefile.
any patches to contribute, please drop me a note.
Copyright (C) 1998-1999 Sam Tannous
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public
License along with this library; if not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
Please NOTE: None of the code available here comes with any
warranty or support, however, comments or questions may be addressed
to me via email at stannous at employees dot org and I will do my best to handle
them, though I cannot guarantee a timely response, as this code is