Benjamin's page about LastWave.




Foreword
LastWave is an open-source signal-processing-oriented command language. This page links to my working version of LastWave which includes a number of features that have not been integrated to the main LastWave release. You might be interested by 2 of them:
  • New package_fftw3 implements a fast convolution library based on FFTW allowing an easy usage of arbitrary wavelets for continuous decompositions and inheriting from FFTW multi-threading capability, at the expense of an extra dependency ...

  • package_wtrans1d now implements the color coding of wavelet transforms based on the signed value of the wavelet coefficients.

Which version of LastWave to use ...
Version v2 uses the X window system. It natively runs on any X11/Unix machine (notably Linux and Mac OS X) while Windows user are required to use LastWave through CYGWIN. Version v3 is based on the wxWidgets library. It allows LastWave to be truly multi platform : it runs on all main platforms: X11/Unix (Linux, ...) , Windows and Macintosh OS X.

Dependency on wxWidgets has proven to be more complicated than I expected ... If you want to use LastWave v3 my code is available to you. However, I will not be of much help should you have problem for compilation (see LastWave home page and LastWave documentation).

I have not encountered any such problem using LastWave v2 on both Linux and Mac OS X machines. Installation should be straightforward on these platforms as well as other Unix/X11 systems (Note that I do not have experience with CYGWIN).

Getting LastWave

The code of LastWave v2 and v3 is available using git:

git clone http://perso.ens-lyon.fr/benjamin.audit/LastWave/lw_git/LastWave_2.git
git clone http://perso.ens-lyon.fr/benjamin.audit/LastWave/lw_git/LastWave_3.git

as well as tar archives:

Download LastWave v2 archive
Download LastWave v3 archive


LastWave documentation is available as PDF files (start with "LastWaveDocumentation"):

Documentation for LastWave v2
Documentation for LastWave v3


Installing LastWave v2
The installation procedure of LastWave v2 is fully described in the LastWave v2 main documentation. Here, we describe the main step of the procedure for Mac OS X (and Linux) to illustrate how to deal with the dependency on FFTW.

Before starting you need to make sure X11.app and the Developer tools (in particular X11 SDK, gcc, make) are installed. In other words, you need to have installed Xcode making sure to select all the necessary installer options (it depends on the version of Xcode). On most Linux release, the same can be achieved by installing packages build-essential and libx11-dev.

LastWave requires FFTW version 3. This library has now become a somewhat standard and is proposed by most package managing systems on Mac OS X (like fink and MacPorts) and Linux. For example on Mac OS X, installing FFTW v3 using fink requires just one command:

fink install fftw3

Alternatively you can compile and install FFTW from the source code.

Get the LastWave v2 code using git :

fink install git
mkdir Softs
cd Softs
git clone http://perso.ens-lyon.fr/benjamin.audit/LastWave/lw_git/LastWave_2.git

You obtain the LastWave_2 directory. Alternatively you can extract this directory from the LastWave v2 archive:

mkdir Softs
cd Softs
gunzip ~/Downloads/LastWave_2.tar.gz
tar xf ~/Downloads/LastWave_2.tar



For compilation, define on the command line or in your startup shell file (.bash_profile, .cshrc, .login, .tcshrc,...) the ARCH variable as xxx typing something like setenv ARCH xxx (csh) or export ARCH=xxx (bash) where xxx must be (depending on the computer you are running) one of darwin (Mac OS X) or linux. Define, in the same way, the variable LWPATH that should indicate the path of the LastWave directory. It should look like setenv LWPATH $HOME/Softs/LastWave_2 (csh) or export LWPATH=$HOME/Softs/LastWave_2 (bash). Finally, goto LastWave directory and run the compilation procedure:

cd LastWave_2/Makefiles
make dirs
make makes
make

This last step should run the compilation. At the end, the executable file to run is LastWave_2/bin/xxx/lw. Note that at the top of file LastWave_2/Makefiles/MakeDefs.xxx are defined variables pointing to FFTW and X11. They should be correctly defined for most Linux releases and for Mac OS user that installed FFTW with fink. Otherwise change these settings to match your install.

Before running LastWave, you should define the LWSOURCEDIR variable (it indicates the path to the script directory that contains the 'startup' file) : setenv LWSOURCEDIR $HOME/Softs/LastWave_2/scripts (csh) or export LWSOURCEDIR=$HOME/Softs/LastWave_2/scripts (bash). You can also add the path to the executable file by typing in your startup shell file something like setenv PATH $HOME/Softs/LastWave_2/bin/xxx:$PATH (csh) or export PATH=$HOME/Softs/LastWave_2/bin/xxx:$PATH (bash).

Contact information
Send me a message to : benjamin DOT audit AT ens-lyon DOT fr
Tel/Fax: +33 (0) 4 72 72 88 23/ 80 80
mail: Laboratoire de Physique, Ecole Normale Supérieure, 46 Allée d'Italie, F-69364 Lyon Cedex 7, France


Useful Links
LastWave: The signal processing command language
fink and MacPorts: These two projects propose easy-to-use packaging systems for compiling, installing, and upgrading open-source software on the Mac OS X operating system.