GNUitar is a real-time sound effects software that allows you to use your computer as a guitar processor. It has GTK+ based interface. It can be compiled on any flavor of UNIX that have GTK+ 1.2, Glib, pthreads and OSS sound driver. It also works on Windows. Program is inspired by 2 works:
You will need:
GNUitar is a CPU-consuming program. Pentium/166 is sufficient to run GNUitar, Pentium II/300 is recommended, and on Pentium II/450 it will work just fine. Real performance is very depend on your CPU/sound card/sound driver/OS combination. The best performance can be achieved on Linux, because of its great real-time features and advanced OSS sound drivers.
When running the program, make sure you close all unnecessary applications, to give more resources to it. Avoid anything that can cause disk I/O or CPU usage.
GNUitar runs with increased priority; this may cause hang-ups and delayed system response on low-end machines. Therefore you should care to save all important data in other applications, before you launch GNUitar.
GNUitar executable file should be setuid root to process sound with real-time priority; otherwise you'll hear glitches and delays while switching between windows. It switches to real user id as soon as it set real-time priority to effect-processing thread, and before any GTK initializations are being performed, so it shouldn't break security on your system. GNUitar has a latency of about 4-8ms on Linux/Pentium II/450/AWE64 ISA !
Windows have complex problems with latency when processing audio in real time, mostly because of its non-uniform drivers architecture. GNUitar latency on Windows is much higher than on Linux. The real latency is very depend on sound board driver.
GNUitar for Windows has two playback methods:
The first method uses the standard MME API (functions waveOut*()). The second method requires DirectX to be installed and uses DirectSound for playback. The method can be switched from the sampling parameters dialog, by checking/unchecking the "Playback via DirectSound" checkbox.
DirectSound playback shows the best results that are almost close to Linux performance. The MME playback exists for compatibility purposes, and for another reason. If a driver is not optimized for DirectSound, Windows will automatically emulate DirectSound output using the MME devices. If a WDM driver is used (see below), DirectSound support is not implemented by the driver developer but by the operating system. MME playback support exists specially for this case, when the output via DirectSound is emulated by OS.
There are few kinds of sound drivers for Windows: old VXD (Win95/98), NT4-kernel style, and modern WDM drivers that were introduced in Windows 98/SE. AFAIK WDM drivers provide much lower latency. Therefore, avoid VXD drivers; use modern WDM drivers instead, if possible.
The difference in latency between two kinds of drivers is really noticeable: I had 100ms up to ~400ms on Pentium III/850/ISA AWE64/VXD/MME playback, and ~60ms on Pentium MMX/166/Yamaha OPL3/WDM/MME playback laptop. Try to start/stop sound few times, if the initial latency is bad.
The kind of bus (PCI/ISA) of the sound card does not affect the latency very much, the deal is with OS and its architecture. So do not through away your old ISA Sound Blaster and replace it with modern sound card, first try it on Linux !
The latency can be controlled with a high degree from the GNUitar interface. There is a settings dialog that can be called from the Options->Sampling Parameters menu (or by Ctrl-P). There is an option called "Fragment Size". The greater is the fragment size, the greater is the latency, BUT... You might want to increase fragment size on low-end computers, to decrease the system load and number of buffer overruns (drops). The buffer overrun is the immediate result of the bad performance. Buffer overruns have a hearable effect of a scratches, sometimes periodic (ten overruns per second produce a 10 Hz tone).
General notes on how to achieve the best performance:
There are 3 areas in the main window. The right area is a list of all available effects. The central area contains effects that are currently used. There are few buttons right to it should be used to add/remove effects and change its order. Each effect has separate top-level control window with appropriate sliders. Each effect-control box is shown in the window manager task bar.
The left area contains available effect layouts, or presets, and button to add the one. Layout is a "snapshot" of your effects and its' settings, you can load/save using "File" menu.
Big "Switch" button is used to switch layouts. In this manner, you can change current sound by one mouse/keyboard click.
Big "START/STOP" button is used to start/stop playback. You may want to press it few times if you experience buffer overruns or broken sound output.
You can write track of what you play to a file. Just click
check-box "Write track" at the bottom of program window, enter
filename and play. Don't forget that continuous track write
can fill out your hard drive.
The track file format is raw data, word length, signed
(the sampling rate and mono/stereo are controlled from the sampling parameters
dialog). You can convert it with SoX program like this
sox -w -s -c 1 -r 44100 track.raw track.wav,and then to MP3:
bladeenc track.wavSox is available at http://home.sprynet.com/~cbagwell/sox.html, and Bladeenc is at http://home8.swipnet.se/~w-82625.
Windows users can write track directly to .wav file (currently it is not available on UNIX).
Vibrato sounds like when you turn the master volume on and off very quickly (few times per second).
Another reverberation effect, not like the others. While other reverb effects are just kinds of sound patterns repeating, echo attempts to achieve a large hall echo.
Another cool distortion. Emulates Ibanez TS9 pedal.
Simple noise reduction effect.
IMPORTANT NOTES:
Controls are:
Send bug reports to fonin at gnuitar dot com.
You should always keep in mind, that development of free software doesn't work in the same way as commercial development. Every successful free software project has an active userbase behind it. This means that your comments, ideas and bug reports are extremely important. If something doesn't work, or some feature is missing, please mail me about it. Thank you in advance! You can send GNUitar related mails to me at fonin at gnuitar dot com
GNUitar is a free software and is distributed under the terms of GNU GPL license. You are free to copy and share the program with other people, you are not limited with the number of computers where you can use it. You can redistribute the program and the works based on it under the terms of GPL license. You have complete sources and detailed compile instructions to build the program yourself, as well as binaries. You have full freedom with using and sharing the program, according to the GNU software concept.
See this page.