Commit abc6cc09 authored by Tiago Bortoletto Vaz's avatar Tiago Bortoletto Vaz

Merging upstream version 0.5.8

parent 273e45c8
Rakarrack is written and mantained by:
Josep Andreu holborn@telefonica.net
José Luis Di Biase josx@interorganic.com.ar
Hernán Ordiales h@ordia.com.ar
Ryan Billing ryjobil@gmail.com
Douglas McClendon dmc@filteredperception.org
Arnout Engelen arnouten@bzzt.net
Also other people who collaborate:
Daniel Vidal hdanielvidalchornet@gmail.com
José Luis Di Biase josx@interorganic.com.ar
Hernán Ordiales h@ordia.com.ar
Presets by:
......@@ -21,6 +24,9 @@ Presets by:
Josep Andreu
Ryan Billing
Douglas McClendon
Julianna Bibb
Steve Baer
Victor Rosales
Icons and Logo:
......@@ -32,10 +38,19 @@ Background Pictures by:
Markus Schmidt
Douglas McClendon
IR Files:
Open Impulse Response Library
Gregor Hennig ( Le châtelet )
Parts of code of this app are taken and/or adapted from
ZynAddSubFX Paul Nasca Octavian
tuneit Mario Lang
ArtsCompressor Mathias Kretz & Stefan Westerfeld
swh-plugins Steve Harris
dspdimension Stephan M. Bernsee
Thanks very much to these programmers
==v0.4.2 ( /01/2009) ==
==v0.5.8 (21/06/2010) ==
-------------------------------------------------------------------------------
- Added Waveshaper Diode clipper
- Added Waveshapper Valve1 and Valve2
- Fast load bank buttons
- Browser index selection
- Added Lmt/Clip leds
- Added Echotron Effect.
- Added rakgit2new utility to convert old git banks to the new format.
- Bank struct extended to a maximu of 70 effects.
- Invisible Final Limiter is now after the Output Volume, you can put before
like was in older version in settings.
- Added selection font for the main window in Settings.
- Added Upsampling to Waveshape class used in Distortion effects to
eliminate aliasing.
- Added Downsampling in settings for Convolotron,Reverbtron,Shifter,
Harmonizer and Sequence in order to save CPU.
- Added rakverb2 utility
- Added rakverb utility
- Added DynoFET waveshape
- Added FET waveshape
- Added Lmt-NoGain waveshape
- Added Echo Direct patch from Arnout Engelen <arnouten@bzzt.net>
- Added Effect Reverbtron
- Added stereo vumeters
- Added ACI (Analog Control Interface)
- Fixed crash bug in Order window.
- Added Autoconnect for jack input ports.
- Added MTC to Tap Tempo
- Removing warning on gcc-4.5
- Added Effect Stompbox.
- Code cleaned.
- Added Soft waveshape.
- Added Effect Sequence.
- Added Overdrive waveshape.
- Added Effect Sustainer.
- Added Compress whaveshape.
- Added jack transport beats per minute to Tap Tempo.
- Added Effect Vocoder.
- Added Effect ShelfBoost.
- MIDI learn improved.
- Removed unused code.
- Added Effect Echoverse.
- Harmonizer improved.
- Fixed CPU usage updating GUI.
- Added Tap Tempo
- Fixed Effect On/Off by effect. (See the MIDI implementation chart) also to
use with MIDI Learn.
- Update help.
- Fixed more bugs on MIDI Learn.
- Added Effect MuTroMojo.
- Added Effect Looper.
- Added Effect Convolotron.
- Added dependencies of libsamplerate and libsndfile.
- Added Upsampling in settings (Quality,Amount).
- Added Effect VaryBand.
- Added Peak in Compressor and final Limiter.
- 260 Parameters in MIDI Learn.
- MIDI (On/Off) for effect.
- MIDI Learn Alpha Sort.
- Prog Change 81/82 -->Prev/Next Preset.
- Freqs in effects are now displayed as real freqs.
- Fixed bug in Auto/Pan.
- Fixed bug, all windows updated when preset is changed.
- Fixed bug MIDI Learn when reasign control numbers.
- Fixed bug on final Limiter.
- Removed malloc in Echo.C when delay is changed.
- Improved Tuner and Recognize Note functions.
- Fixed second Easter Egg.
- Added Shift Arrows keyboard control increment/decrement +/- 10.
- Added Balance (FX%) as preset parameter.
- Added Effect Synthfilter.
- Added Effect Shuffle.
- Added Effect Expander.
- Added Effect DistBand.
- Added Effect Exciter.
- Added Effect Ring.
- Added Effect Dual Flange.
- Added Effect Valve.
- Added LFO type M.Saw
- Changed LFO Freq for Tempo, good to Synchronize with sequencers. drum machines etc.
- Utility to convert Old Bank files (rakconvert).
- New Bank structure file (60 Presets, up to 50 effects, Midi Learn Data inclosed)
- Fixed GUI
==v0.4.2 (21/01/2009) ==
-------------------------------------------------------------------------------
- Midi Learn
- WhaWha Improved.
......
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007 Free Software Foundation, Inc.
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
......@@ -10,10 +10,7 @@ unlimited permission to copy, distribute and modify it.
Basic Installation
==================
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.
These are generic installation instructions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
......@@ -26,9 +23,9 @@ debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
the results of its tests to speed up reconfiguring. (Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
cache files.)
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
......@@ -38,17 +35,20 @@ some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
`configure' by a program called `autoconf'. You only need
`configure.ac' if you want to change it or regenerate `configure' using
a newer version of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
......@@ -67,9 +67,6 @@ The simplest way to compile this package is:
all sorts of other programs in order to regenerate files that came
with the distribution.
6. Often, you can also type `make uninstall' to remove the installed
files again.
Compilers and Options
=====================
......@@ -81,7 +78,7 @@ details on some of the pertinent environment variables.
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
*Note Defining Variables::, for more details.
......@@ -90,15 +87,17 @@ Compiling For Multiple Architectures
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
If you have to use a `make' that does not support the `VPATH'
variable, you have to compile the package for one architecture at a
time in the source code directory. After you have installed the
package for one architecture, use `make distclean' before reconfiguring
for another architecture.
Installation Names
==================
......@@ -191,12 +190,12 @@ them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
overridden in the site shell script). Here is a another example:
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
/bin/bash ./configure CONFIG_SHELL=/bin/bash
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
configuration-related scripts to be executed by `/bin/bash'.
`configure' Invocation
======================
......
SUBDIRS = src data doc man icons
SUBDIRS = src data doc man icons extra
doc_DATA = COPYING AUTHORS ChangeLog NEWS README PACKAGERS.README
EXTRA_DIST=PACKAGERS.README
......@@ -13,6 +13,7 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
......@@ -54,6 +55,15 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-recursive installcheck-recursive installdirs-recursive \
pdf-recursive ps-recursive uninstall-info-recursive \
uninstall-recursive
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(docdir)"
docDATA_INSTALL = $(INSTALL_DATA)
DATA = $(doc_DATA)
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
......@@ -113,6 +123,8 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SAMPLERATE_CFLAG = @SAMPLERATE_CFLAG@
SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
......@@ -155,7 +167,9 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
SUBDIRS = src data doc man icons
SUBDIRS = src data doc man icons extra
doc_DATA = COPYING AUTHORS ChangeLog NEWS README PACKAGERS.README
EXTRA_DIST = PACKAGERS.README
all: all-recursive
.SUFFIXES:
......@@ -193,6 +207,23 @@ $(top_srcdir)/configure: $(am__configure_deps)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
uninstall-info-am:
install-docDATA: $(doc_DATA)
@$(NORMAL_INSTALL)
test -z "$(docdir)" || $(mkdir_p) "$(DESTDIR)$(docdir)"
@list='$(doc_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docdir)/$$f'"; \
$(docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \
done
uninstall-docDATA:
@$(NORMAL_UNINSTALL)
@list='$(doc_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \
rm -f "$(DESTDIR)$(docdir)/$$f"; \
done
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
......@@ -370,7 +401,8 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
-find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
......@@ -469,9 +501,12 @@ distcleancheck: distclean
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile
all-am: Makefile $(DATA)
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(docdir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
......@@ -515,7 +550,7 @@ info: info-recursive
info-am:
install-data-am:
install-data-am: install-docDATA
install-exec-am:
......@@ -543,7 +578,7 @@ ps: ps-recursive
ps-am:
uninstall-am: uninstall-info-am
uninstall-am: uninstall-docDATA uninstall-info-am
uninstall-info: uninstall-info-recursive
......@@ -553,13 +588,14 @@ uninstall-info: uninstall-info-recursive
dist-tarZ dist-zip distcheck distclean distclean-generic \
distclean-recursive distclean-tags distcleancheck distdir \
distuninstallcheck dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \
maintainer-clean-recursive mostlyclean mostlyclean-generic \
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
uninstall uninstall-am uninstall-info-am
install install-am install-data install-data-am \
install-docDATA install-exec install-exec-am install-info \
install-info-am install-man install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic maintainer-clean-recursive \
mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
uninstall-docDATA uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
......
News on v0.3.0
News on v0.5.8
---------------
New Bank File format, we include a utility "rakconvert" to convert Bank files
to the new format.
Each instance of rakarrack now saves their own preferences, older config are
deprecated, then maybe you will need to reconfigure.
New Effects:
MIDI support to up 59 effects parameters.
Valve, Dual Flange, Ring, Exciter, Expander, DistBand, Arpie, Shuffle, Synthfilter,
VaryBand, Convolotron, Looper, MuTroMojo, Echoverse, CoilCrafter,
ShelfBoost, Vocoder, Sustainer, Sequence, Shifter, StompBox, Reverbtron,
Echotron.
Bug fixed, now you can use as insert on DAWs programas like ardour,
rosegarden.
New Features:
Tap Tempo.
Upsampling using libsamplerate by Erik de Castro Lopo.
Downsample intesive CPU effects.
Upsample Waveshapper.
ACI Analog Control Interface.
Waveshappers:
M.Saw, Compress, Overdrive, Soft, Super Soft, Gard Compress, Lmt-NoGain,
Hard Compress, FET, DynoFET, Valve1, Valve2, Diode clipper.
LFO Modulation:
M.Saw, L.Fractal.
Improvements:
GUI
DC Filter Offset at the input.
Tuner Callibration
Auto Connect jack input ports.
GUI and bug fixes.
About the CPU instruction set:
In order to fix the "Illegal Instruction" error message that some users has
we have added new configure options in rakarrack 0.5.0:
--enable-optimizations=yes/no (default=yes)
--enable-sse2
--enable-sse
--enable-altivec
If --enable-optimizations is set to yes (default setting) and one of the
other optios is selected, the compiled binary program will use the
CPU instructions set selected, otherwise configure will perform a "magic"
check and use the best settings as possible.
IMPORTANT FOR PACKAGE MAINTAINERS:
If you dont enable any of this options the configure script will check your
CPU to select the proper instruction set, that can cause "Illegal
Instruction" error for example if the package is compiled using "sse2" but the
user only has "sse" in their computer.
For 486 version the way is --enable-optimizations=no.
For x86 computers the secure option is --enable-sse.
My personal suggestion for x86 is generate two packages, or almost compile
both "sse" and "sse2" and include in the package both binary versions in the
final package with a bash script that select the proper one for the user.
INSTALLATION PATHS
Sorry, I dont have enough time to read, learn and follow the GNU rules, and
also I really dont like their way.
Then ... to override the default Debian installation paths for docs and data:
./configure --enable-datadir=yes --datadir=/usr/local/share/packages --enable-docdir=yes
--docdir=/usr/local/share/packages/doc/rakarrack
That will install
data in : /usr/local/share/packages/rakarrack/
docs in : /usr/local/share/packages/doc/rakarrack/
......@@ -4,7 +4,7 @@ years. Josep Andreu say on the IRC chat "I can made an app based on the effects
hiden on code of ZynAddSubFX (by Paul Nasca Octavian). Some time after here is the
result of our work...
This app has 19 effects: EQ Lineal, Compressor, Distortion, Overdrive, Echo, Chorus,
This app has 42 effects: EQ Lineal, Compressor, Distortion, Overdrive, Echo, Chorus,
Phaser, Flanger, Reverb , Parametric EQ, Wah Wah, Alienwha, Harmonizer etc.
The effects are procesed in cascade... The order of effects are configurable by the user.
The state of rack can be saved as 'presets'. Sets of presets can be stored as 'banks'.
......@@ -19,6 +19,8 @@ libfltk1.1
libxpm
libjack100.0
libasound2
libsamplerate0
libsndfile1
aconnect
jackd
......@@ -28,8 +30,11 @@ If you want to compile you will also need the development packages:
libxpm-dev
libfltk1.1-dev
libjack-dev
libsndfile1-dev
libsamplerate0-dev
libasound2-dev
The name of the packages are typical of the naming convention for Debian-based distributions.
These can be a little different for each distro. Use your package manager search function
to find the equivalent package for your distribution.
......
Midi learn
- Arrange memory allocations of delay buffers in effects.
HELP TODO:
-TapTempo - more explanation of subdivision.
-Explain LFO
-Tips about sharing presets & including custom files
-Explain TapTempo settings
-Update Echo image & help for Direct switch
-Update Analog Phaser help... now is not so CPU intensive compared to others... just more CPU than Phaser
-Flanger Help
-Reverb Help
-Parametric EQ help
-Noise Gate
-Update WahWah help
-Valve help
-Ring
-Exciter
-Explain Comments in .dly files, maybe something about EQ's
DSP TODO:
- Smooth limiting in Expander
- Fix Synthfilter level adjustment with HPF & LPF stages
- Improve Tuner
*This is a wish-list. To be started after release of 0.5.8.
- Improve sub-octave modulator for distortion. Perhaps this can be a new effect.
- Dynamic echo: Delay time changes with input signal dynamics....possible to get a "bouncing ball" effect.
- Ring modulator + arpeggiated carrier.
- Infinite series: i.e. Barberpole phaser, flanger and maybe some unique comb filter types.
- Analog optical Tremolo model
- UniVibe
- Multi Band Compressor
- Stereo Harmonizer with chromas
- Seqtron
- 4 voice Harmonizer
Plugin List:
Tim Goetze CAPS Plugins
- AmpVTS tube amp with tone stack circuit -- probably best to add to StompBox
- Scape -- Fractal modulated stereo delay...Maybe we could add the fractal modulation to existing delay effect if easier...
This diff is collapsed.
AC_PREREQ(2.61)
AC_INIT([rakarrack],[0.4.2],[Josep Andreu <holborn@telefonica.net>])
AC_INIT([rakarrack],[0.5.8_Equinox],[Josep Andreu <holborn@telefonica.net>])
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([src/main.C])
AC_CONFIG_HEADER([src/config.h])
AC_ARG_ENABLE(optimizations,
AC_HELP_STRING([--enable-optimizations[=yes/no]],[enable optimizations (default=yes)]),
[ac_optimizations="$enableval"], [ac_optimizations="yes"])
if test "x$ac_optimizations" = "xyes"; then
OPTS=""
else
OPTS="no"
fi
AC_ARG_ENABLE(sse,
AC_HELP_STRING([--enable-see],[enable sse (default=automatic check)]),
[ac_sse="$enableval"])
if test "x$ac_sse" = "xyes"; then
SSE="-msse -mfpmath=sse"
else
ac_sse="no"
fi
AC_ARG_ENABLE(sse2,
AC_HELP_STRING([--enable-see2],[enable sse2 (default=automatic check)]),
[ac_sse2="$enableval"])
if test "x$ac_sse2" = "xyes"; then
SSE="-msse2 -mfpmath=sse"
else
ac_sse2="no"
fi
AC_ARG_ENABLE(altivec,
AC_HELP_STRING([--enable-altivec],[enable altivec (default=automatic check)]),
[ac_altivec="$enableval"])
if test "x$ac_altivec" = "xyes"; then
ALTIVEC="-maltivec"
else
ac_altivec="no"
fi
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
......@@ -17,6 +59,15 @@ if test -z "$ACONNECT"; then
AC_MSG_ERROR([aconnect not installed!])
fi
# Checks gcc version
GCC_VERSION=`$CC -dumpversion | cut -f 2 -d "."`
if test "$GCC_VERSION" = "5"; then
ADDS="-fvar-tracking-assignments-toggle -fexcess-precision=fast"
else
ADDS=""
fi
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_CONST
......@@ -28,22 +79,137 @@ AC_PROG_GCC_TRADITIONAL
AC_FUNC_CLOSEDIR_VOID
AC_FUNC_MALLOC
AC_FUNC_SELECT_ARGTYPES
AC_CHECK_FUNCS([bzero floor memset memmove pow select sqrt strdup strstr])
AC_CHECK_FUNCS([floor memset memmove pow select sqrt strdup strstr])
# Checks for libraries.
AC_CHECK_LIB([Xft], [main])
AC_CHECK_LIB([Xrender], [main])
AC_CHECK_LIB([asound], [main])
AC_CHECK_LIB([dl], [main])
AC_CHECK_LIB([fltk], [main])
AC_CHECK_LIB([fontconfig], [main])
AC_CHECK_LIB([freetype], [main])
AC_CHECK_LIB([m], [main])
AC_CHECK_LIB([pthread], [main])
AC_CHECK_LIB([rt], [main])
AC_CHECK_LIB([z], [main])
AC_CHECK_LIB([jack],main)
AC_CHECK_LIB([Xpm],[main])
AC_CHECK_LIB([X11], [XOpenDisplay],[ac_X11="yes"],[ac_X11="no"])
if test "x$ac_X11" = "xno"; then
AC_MSG_ERROR([Could not find XOpenDisplay in -lX11.])
else
LIBS="$LIBS -lX11"
fi
AC_CHECK_LIB([Xft], [main], [ac_libXft="yes"], [ac_libXft="no"])
if test "x$ac_libXft" = "xno"; then
AC_MSG_ERROR([Xft library not found.])
else
LIBS="$LIBS -lXft"
fi
AC_CHECK_LIB([Xrender], [main], [ac_Xrender="yes"], [ac_Xrender="no"])
if test "x$ac_Xrender" = "xno"; then