Hello, 

guitarix,

guitarix is a simple guitar mono amplifier to be used in a 'jackified'
environment (Jack Audio Connection Kit). Guitarix provides one jack
input port and two jack output ports. It is designed to produce a nice
trash/metal/rock/blues guitar sounds. Controls for bass, treble, gain,
compressor, preamp, balance, distortion, freeverb, crybaby(wah) and
echo are available. A fixed resonator will be used when distortion is
disabled. To modify the sound 'pressure', you can use the feedback and
feedforward sliders.

guitarix includes an experimental tuner and a JACK midi output port
with 3 channels. They will be fed by a mix from a pitch tracker and a
beat detector.  You can pitch the octave (2 up or down), choose the
midi channel, the program, the velocity and the sensitiviy, which
translates into how fast the note will read after the beat detector
emits a signal. Values for the beat detector can be set for all
channels.


======================= Build procedure

---- build environment

As of version 0.04.5-1, guitarix uses 'waf' for the build environment.
The simplest and fastest way to build guitarix is given below:

cd guitarix_source_directory
./waf configure
./waf build
sudo ./waf install

By default, this will install guitarix and related files in
/usr/local/...

The installation prefix can be provided at configure time, e.g.:

./waf configure --prefix=/usr
./waf builf
sudo ./waf install


---- dependencies 

To compile and run properly, guitarix needs the following extra
packages (runtime binaries / libraries and developement packages, aka
package-dev):

gtk+-2.0 >= 2.12.0 
sndfile  >= 1.0.17
jack (jackd, libjack, and dev) >= 0.109.1
boost library >= 1.38, in particular 'boost_program_options'


---- debian
To build a debian package, run "dpkg-buildpackage -rfakeroot -b"



==================== Start up options

---- From the Command line

Guitarix provides a few user options at startup. They can be set in
two ways.  From the command line, guitarix can be invoked with the
usual -h or --help option. The following help message is displayed:

$ guitarix --help

 guitarix usage
 all parameters are optional. Examples:
        guitarix
        guitarix -r black -i system:capture_3
        guitarix -c -o system:playback_1 system:playback_2

  -h [ --help ]         Print this help
  -v [ --version ]      Print version string and exit

 GTK configuration options:
  -c [ --clear ]        Don't use a gtkrc style file
  -r [ --rcset ] arg    Style to use: 'black' or 'pix'

 JACK configuration options:
  -i [ --jack-input ] arg  Guitarix jack input
  -o [ --jack-output ] arg Guitarix jack outputs
 

The options should be self explanatory but for the sake of clarity, a
few extra words are worth mentioning here.

JACK options: 
------------- 
By default, guitarix will not auto-connect to any jack system ports,
unless the latter are explicitely provided by the user from the
command line. If guitarix is started as follows:

$ guitarix

The user will have to manually connect the guitarix jack ports to e.g.
system ports from patchage or qjackctl's connection window.


If system port names are given, as shown in the following example:

$ guitarix -i system:capture_1 -o system:playback_1 system:playback_2

guitarix will autoconnect to these system ports


GTK options:
------------
guitarix comes with 2 GTK styles: 'black' and 'pix' The user can
choose one at startup by invoking the -r (or --rc-style) option:

$ guitarix -r black

The user can also decide not to use the shipped GTK styles and instead
use the default GTK style used by e.g. gnome:

$ guitarix -c

It is of course possible to use combinations of different options (GTK
and JACK options)


---- From SHELL variables 

Guitarix offers the possibility to make some of these options more
"permanent" thanks to SHELL variables. The variables are

GUITARIX2JACK_INPUTS
GUITARIX2JACK_OUTPUTS1
GUITARIX2JACK_OUTPUTS2
GUITARIX_RC_STYLE

Those can be defined in e.g. $HOME/.bashrc.  An typical setup would be:

export GUITARIX2JACK_INPUTS=system:capture_1  
export GUITARIX2JACK_OUTPUTS1=system:playback_1
export GUITARIX2JACK_OUTPUTS2=system:playback_2
export GUITARIX_RC_STYLE=black

For (t)csh shells, the following could be placed in $HOME/.cshrc

setenv GUITARIX2JACK_INPUTS  system:capture_1  
setenv GUITARIX2JACK_OUTPUTS1  system:playback_1
setenv GUITARIX2JACK_OUTPUTS2  system:playback_2
setenv GUITARIX_RC_STYLE  black




=========== Extra information
---- LADSPA
Guitarix also comes as a suite of LADSPA plugins. Should the user wish
to use guitarix or some of its effects in a LADSPA host (e.g. ardour),
the guitarix plugins are available. They are installed by default in

$PREFIX/lib/ladspa

PREFIX being one of /usr or /usr/local



---- RECOMMENDS:

=> jack_capture:
For capture, guitarix uses the program 'jack_capture' from Kjetil
S. Matheussen. If you dont have it installed, look here:

			http://old.notam02.no/arkiv/src/?M=D

You don't need jack_capture to run guitarix. However, the capture
button ('record') won't work without this external
application. Pushing the record button will in this case create a
pop-up warning. Guitarix only looks in $PATH to locate jack_capture.

Recordings will always go to $HOME/guitarix_sessionX.<type>. A small
preference interface is provided by guitarix as to the jack_capture
parameters (file type, bit depth, jack ports to capture from, etc)

If jack_capture is to record into ogg, you also need vorbis-tools for
encode to ogg:

			http://vorbistools.sourceforge.net/


=> jconv
guitarix can also use the convolution engine developed by Fons
Adriaensen, called jconv, available at

                        http://www.kokkinizita.net/linuxaudio/index.html 

jconv can be configured from guitarix. However, due to design
restrictions, jconv can only be configured when not running.  Despite
this restriction, it is possible to save guitarix presets with
particular jconv settings. The user can recall these presets from the
main load preset menu item.

Note: when trying to load an impulse response wav file (IR), guitarix
will check for spaces in the filename and remove them if present.  You
can also resample the file to the one used by jack. Finally, as for
jack_capture, guitarix will run even if jconv is not installed.


===========================================
THANKS:

I (Hermann Meyer) use faust to build the prototype and will say thanks
to the following contributors:

contributors 	: Julius Smith <http://ccrma.stanford.edu/realsimple/faust/>
		: Albert Graef <http://www.musikwissenschaft.uni-mainz.de/~ag/ag.html>
		: Yann Orlary <http://faust.grame.fr/>


The waf build environment and various code cleanups are provided by James Warden.


enjoy :)

If you run prob's with build or run guitarix, please inform us.

     brummer-@web.de
     warjamy@yahoo.com
