Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anarsoul/gnuitar
https://github.com/anarsoul/gnuitar
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/anarsoul/gnuitar
- Owner: anarsoul
- License: gpl-2.0
- Created: 2023-01-24T02:41:42.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-27T19:20:17.000Z (6 months ago)
- Last Synced: 2024-06-28T22:05:50.168Z (6 months ago)
- Language: C
- Size: 5.73 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README
- Changelog: ChangeLog
- License: COPYING
- Authors: AUTHORS
Awesome Lists containing this project
README
GNUitar
Guitar processor softwareWhat is GNUitar ?
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, 2.0, Glib,
pthreads and OSS sound driver. It also works on Windows. This program
was inspired by two earlier works:
* Ele 0.1 by Morris Slutsky
[1]http://www-personal.umich.edu/~mslutsky/elepage/index.html
* Guitar FX Processor by Marin Vlah
[2]http://fly.srk.fer.hr/~mvlah/fx_processor.htmlGNUitar is free software and is distributed under GNU GPL license.
GNUitar is pronounced like "GNU Guitar". English is not my native
language, so when I invented this word I did not think how it should
be pronounced. Unless someone has a better idea, let's pronounce it
like this for now.Download
[3]http://www.gnuitar.com/downloads.php
[4]http://freshmeat.net/projects/gnuitar
[5]http://sourceforge.net/projects/gnuitarRequirements
You will need:
* GTK+ versions 1.2.6 or better, or GTK+ 2.0 or better
* GLIB 1.2 or better
* POSIX threads on UNIX
* full-duplex sound card
* To compile: GCC on UNIX, Microsoft Visual C++ 6.0 or 7.0 on
WindowsPerformance
GNUitar should run on even low-end hardware. It has been reported to
work on even a Pentium II / 300 MHz computer. However, some of the
effects demand more CPU power, and probably ~1 GHz machine is required
for running complicated effect setups.When running the program, make sure you close all unnecessary
applications, to free more resources. Avoid anything that can cause
lots of disk I/O or sudden bursts of CPU usage.GNUitar runs with increased priority if available; this may cause
hang-ups and delayed system response on low-end machines potentially
making the computer unusable. Therefore you should take care to save
all important data in other applications before launching GNUitar.
This situation probably does not occur in practice, but with elevated
task priorities the consequences for misbehaviour become greater.Performance - UNIX notes
GNUitar executable file should be setuid root to process sound using
real-time priority class; otherwise you'll hear glitches and delays
while switching between windows. The program drops privileges as soon
as the effect-processing thread has been started, even before any GTK+
initialization or command line handling, so it should be safe on any
system. GNUitar has a latency of about 4-8ms on Linux/Pentium
II/450/AWE64 ISA!Performance - Windows notes
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 depends mostly on the sound card's driver.GNUitar for Windows has two playback methods:
* Playback via MME
* Playback via DirectSoundThe 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.Windows Sound Drivers Overview
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 Express/PCI/ISA) of the sound card does not
affect the latency that much, it's most often a software issue. Old
sound cards that are unusable in Windows are likely to work just fine
in Linux.How To Control Latency
The latency can be controlled to a high degree in the Options dialog. It can be
invoked from the Options->Sampling Parameters menu (or by Ctrl-P). You will
need to stop playback before entering this dialog. There is an option called
"Fragment Size". The lower the fragment size is, the better is the latency, but
this is not a free lunch. If the latency is too low, the CPU drain from
constantly attending to the sound card leaves no time for anything else! You
may need to increase the fragment size on low-end computers. Try increasing
this value if you hear repeated scratches from the speakers.General notes on how to achieve the best performance:
* The lower the sampling rate, the less there is CPU load. Drawback
is the lower sound quality.
* The lower the fragment size, the better is the latency. Drawback
is the higher system load.
* The audible periodic scratches (DirectSound output) can be fixed
by decreasing the overrun threshold (sampling parameters dialog).
* Increase the fragment size and decrease the sampling rate on
low-end CPU, to gain the best latency/overruns/load ratio.
* On Windows, prefer WDM drivers, if possible. Try both MME and
DirectSound playback; choose which is the best.
* Prefer Linux over Windows. Properly tuned Linux kernel has 10-100
times better latency on the same hardware.
* Make gnuitar executable setuid root on UNIX, to allow it run with
increased priority.Installation
See [6]INSTALL file for common installation notes.
Interface and Controls
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 try pressing it a 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 file name and
play. Don't forget that continuous track write can fill out your hard
drive. The track file format is WAV data on Windows and Linux.Linux WAV writing depends on libsndfile. However, if you do not have
sndfile, then the data is raw 16-bit signed data, with the sampling
rate and channels as defined in the sampling parameters dialog. You
can convert it with [7]sox like this:
sox -w -s -c 1 -r 44100 track.raw track.wav,and then to [8]ogg vorbis:
oggenc track.wavEffects
The controls and description of the effects follow below.
Autowah
The autowah is implemented using a digital model of the moog ladder
filter. The model was designed by Antti Huovilainen, and it was
published at DAFx'04. On low resonance values it acts a lot like a 2nd
order bandpass filter with some saturation colouring the sound into a
warm, bloomy sound. On high resonance values, the wah becomes a sound
synthesizer itself.period
length of one cycle of effectlow freq
lowest frequency (the cycle ends at this freq.)high freq
high frequency (the cycle starts at this freq.)dry/wet
mix clean sound with processed soundresonance
choose resonance of the moog ladder filter. Values above 110 %
lead to self-supporting oscillations.continuous sweep
The Wah can be run in two modes, one where it sweeps between
the low and high frequency in /\/\/\/ type manner, and another
where it "listens" to input signal and tries to detect guitar
picks for triggering the wah sweep synchronously with guitar
picking. The pick detection works best if the wah receives
unaltered input signal from the guitar, rather than say
distorted input from the overdrive effect.Distortion
distort
power of effectlevel
volume in case you need to mute it quicklysaturation
high-frequency "sand" in the soundlowpass
lowpass filter that can be used to change the sound feelDelay
A no-frills time-delay effect that can also split original signal in
several physical output channels if available.decay
decay % between subsequent repeatstime
delay time between repeatsrepeat
number of repeatsmultichannel
(if available) switch effect to circulate delay voices through
available channelsReverberator
Reverberator produces echoed "space" sound. Controls:
delay
delay before repeating startswet
"wet" (processed) sound volumedry
"dry" (clean) sound volumeregen
decay % between subsequent repeatsTremolo
Tremolo is a pitch shifter that does not preserve note relationships
(in other words, a bit like a genuine tremolo bar). This effect is
really a version of Stereo phaser with Wet at 100 % and only one
channel used for output.period
length of one cycle of effectamplitude
depth of modulationChorus / Flanger
This effect mixes a time-delayed versions of input with the original
signal simulating several players playing the same tune. Variations of
this concept also produce flanger and vibrato effects.ChorusUse several voices and long base delay time.
FlangerWith just 1 voice and low delay time, the effect becomes a
flanger. However, by adding more voices and increasing the delay, the
sound again turns choruslike. If the multichannel mode is available
and enabled, the effect distributes one voice per output channel.Vibrato If dry/wet at 100% (fully wet) and 1 voice, this effect is a
vibrato.delay
fixed time delay before mixingdepth
the depth of modulationperiod
the length of modulation cyclevoices
number of chorus voices to mixdry/wet
dry vs. wet mixing ratioregen
feedbacks some of the output back to inputEcho
Another reverberation effect, but not like the others. Echo simulates
a large hall echo using varying length of delays in all its voices,
and produces complicated echo pattern that simulates large hall full
of hard surfaces of different sizes.decay
decay % between subsequent repeatsvoices
number of independent echo voicesdelay
sets the length of maximum echo delayPhaser
Phaser operates by introducing a variable frequency dependant delay
over the audio signal. If the dry/wet ratio is at 50 %, the delayed
components will produce interference with the original signal which
produces moving notches across the audio spectrum, producing the
phaser sound. However, if dry/wet ratio is at 100%, this effect
becomes a vibrato.period
length of the modulation cycledepth
an unitless measure of the maximum delay imposed by the effect
on the audiodry/wet
the dry vs. wet mixing ratioRotary speaker
Rotary speaker is an implementation of the combined horn and bass
speaker mounted on opposite sides of a rotating cabinet. As the
cabinet turns, the doppler effect shifts the audio spectrum up and
down, depending on whether the speaker is receding or approaching.period
Time for one complete rotation of the cabinet.Vibrato
Slows down and speeds up playback to achieve an effect like old tape.
This is done by time-delaying the playback in a long sinuous curve.
* period - length of one cycle of effect
* amplitude - maximum time delayOverdrive
Another cool distortion. Emulates the distortion circuits in many
popular overdrive pedals such as Ibanez TS9.drive
how much amplificationclip
changes tone from TS9-type fuzz to less powerful distortiontreble
tone controlTube amplifier
Because Overdrive is limited to simulating the Ibanez TS9, another
effect is required for more powerful distortion sounds. The effect
loosely models a tube amplifier with a variable number of output
stages, each which add different kind of clipping to the sound. Some
tone controls are provided for additional flexibility.stages
Number of stages. All can be used to produce distortion, 5
stages being very close to overkill.gain
Gain per stage. Higher gains drive the later stages into more
clipping.bass cut
A highpass filter with tunable cutoff frequency. Increasing
this value reduces bass from the output.middle cut
Decreasing the value of the control introduces a deepening
notch at 720 Hz, allowing the effect to be used for dark
distortion sounds.treble cut
A lowpass filter with tunable cutoff frequency. This can be
used to change the tone and control noise.Noise gate
Simple noise reduction effect.
IMPORTANT NOTES
* Should be used BEFORE the distortion.
* If you want to achieve a note slight attack (fade in), you must
increase the Hold time as much as possible. Otherwise with the low
Attack time and low signal you the effect will be constantly false
triggered, therefore breaking the fade-in effectControls are:
* threshold - minimal volume of the sound required to pass signal to
the output.
* hold - if the signal is below threshold during this time, it will
be muted. Should be as low as possible. Simply - it is an effect
triggering time.
* release time - if the signal is below threshold, the playback is
not muted immediately but fades out this time instead
* attack - if the signal is above the threshold, it will fade in
this time. Usually should be 0, but having it non-zero will
produce interesting effect just like the violin sound.
* hysteresis - the threshold required to turn off the playback when
it is already on (the regular threshold affects only the growing
signal, while hysteresis affects fading signal). Should not be
made larger than the threshold value.Equalizer bank
A no-frills equalizer effect with plenty of sliders for fine grained
control of the frequency response. Equalizers are rumoured to be
especially useful before and after distortion effects.Pitch shifter
Pitch shifter alters audible pitch by dividing the input into several
small buffers and playing through them in a different rate, causing
the pitch alteration. Because rate shifting implies generating new
sample data or omitting some of the sample data, there is a
discontinuity problem at buffer edges which is handled through
weighting the buffer data with windowing function and overlapping the
buffers in such a way that sample amplitude remains fairly constant.Bugs With many pitch shifting values several frequencies encounter
difficult phase cancellation that may render some notes almost
inaudible or significantly alter their characteristics. Additionally,
as the new sample data is "generated" from audio data across several
hundred milliseconds, there will be echo effects when adjusting the
rate upwards. Finally, the dry signal is delayed by this effect to
control some of the phase cancellation during wet/dry mixing phase.
The latency introduced depends on the amount of rate shifting.halfnote
how many half-notes to adjust upwards or downwardsfinetune
adjust for in-between tones for half-noteswet/dry
select mix % between unprocessed and processed signalTuner
This is a simple general-purpose instrument tuner. The display
contains:
* the current detected frequency of the sound
* the ideal frequency of the sound
* the note closest to the measured frequency
* an indicator that shows how the two frequencies are matched
* list of typical guitar tunings, and indicators that light up when
frequency matches their pretabulated frequencies.How to tune
In nutshell: if the indicator veers to left, tune up; if it veers to
right, tune down.Tuner is generally agnostic to the desired tuning. Some indicators are
provided that match some of the most typical guitar tunings, but
whether you use them or not is up to you.
Tricks and tipsTuner is very sensitive to noise (unfortunately), so a good, clean
signal is the most important thing. If tuner doesn't quite seem to
work for you out of the box, try the following tricks:
* Mute all other strings lightly with your fingers. Don't press or
bend the strings, if you have a floating bridge--this will have
similar effect as pressing tremolo bar down.
* Pick the string normally above the pickups. The tuner tends to
find the frequency component with the most amplitude. If you pick
the strings in an unusual way, it may find some high-order
harmonics instead (or even worse, oscillate between some upper
harmonic and the base frequency).
* Try different pickups if tuner has difficulties with particular
pickups.You can also use the tuner to fix your guitar's intonation (the length
of the string). You may need to check intonation whenever you change
your string make or gauge. First, tune your guitar as perfectly as
possible, then pick all the strings at the 12th fret. You should see
the tuner report double the frequency but the accuracy indicator
should stay centered. Compare this frequency with the harmonic 12th
frequency -- they should be the same. However, if the indicator of
fretted 12th is right to the harmonic, you need to make the string
longer. If it is to left, you need to make the string shorter. As a
general guideline, the thinnest strings are the shortest, and the
thickest strings the longest.Bugs
* Windows version is not very stable yet. There could be problems
with memory leaks and with sound initialisation/closing.Send bug reports to [9]fonin at gnuitar dot com.
About Free Software Development
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 user base 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 [10]fonin at gnuitar dot com.Legal Issues
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.Frequently Asked Questions
See [11]this page.
Related Links
[12]http://www.gnuitar.com/downloads.php and
[13]http://freshmeat.net/projects/gnuitar and
[14]http://sourceforge.net/projects/gnuitar - GNUitar project pages
[15]http://www.linux-sound.org - excellent categorized list of Unix
sound software
[16]http://home.sprynet.com/~cbagwell/sox.html - SoX
playback/record/processing software
[17]http://bladeenc.mp3.no/ - BladeEnc, free MP3 encoderAuthors
[18]Max Rudensky
[19]Antti S. Lankila
Eugen Bogdan (/Dexterus)
Vasily Khoruzhick