2010-03-05 CLAM 1.4.0
'3D molluscs in the space release'
 * SVN $Revision: 14031 $
 * New controls:
   * Typed controls: Controls with other type than floats.
   * Regular in controls have callback (deprecates InControlTmpl)
   * Example processings using boolean and MIDI controls
   * MIDI module handling MIDIMessage controls
 * Processing type metadata:
   * Icons
   * Relations to a token type as sink, source or monitor
   * Relations to a control type as sink, source, sender or display
   * Binary (executable or library) where the processing is defined in.
 * Rich data types: although you can use any C++ data type as data token
   or control without explicit declaring it, you can add properties, such 
   as connector color or a display name by defining a ProcessingDataPlugin.
 * NetworkPlayers (backends):
   * Pause state: not playing the network but feeding silence to the backend
   * Multiport sources and sinks supported
   * Buffer audio sources and sinks (vs. stream audio, which is still available)
   * Common implementation factored out to the base class
   * Plugins (Ladspa, Vst, Lv2) became NetworkPlayers
 * LadspaNetworkPlayer (former LadspaPlugin):
   * Now it is a Network Player
   * Supports variable frame size (avoid clicks in ardour)
   * When network processings support variable audio size it avoids buffering and copies
   * ControlSources parameters can be maped to LADSPA hints within LADSPA limitations
 * Ladspa hosted plugins have a buffer based version (vs, stream, avoiding copies)
 * examples/Plugins/Lv2PluginExample: New experimental network player for LV2
 * examples/Plugins/VstPluginExample: Added primitive support for Qt interfaces
 * Processing::Get{In,Out}{Control,Port}() overloaded for indexes and names.
 * Processing::GetN{In,Out}{Controls,Ports}() to get the number of connectors.
 * Processing::Get{In,Out}{Controls,Ports}() are now protected methods.
 * Audio File:
   * AudioFileIO implementation simplified, API documented
   * MonoAudioFileReader supports seeking
   * Experimental sndfile plugin, suporting seeking and lockfree file reading.
   * FIX: sndfileplayer didn't loop and stopped sending position control.
 * clamrefactor.py: a tool that eases batch upgrading many clam networks
   when you rename a processing, port, control, configuration parameter...
   also useful to cleanly change configuration parameters directly on the xml.
 * Added 'intel-optimize' option to optimize for intel architectures
 * Build system: native plugins are now built as regular libraries (with installable
   headers) plus an empty plugin library that just links against them.
   This enables having interdependencies, or explicitly use symbols defined in a plugin.
 * plugins/spatialization:
   * Global doxygenation
   * Vbap3D: 3D panning on whatever 3D speaker layout
   * New scripts (xyz2ea and ea2xyz) to convert layout files
   * HoaEncoder: Encodes a plane wave as Higher Order Ambisonics (up to 3rd order)
   * Hoa2RegularSpeakerArray: Decodes HOA into speaker array
   * RoomImpulseResponseSimulator: Now supports HOA
   * ImpulseResponseComputedOnTheFly -> RoomImpulseResponseSimulatorCommandLine
   * Blender integration via OSC
   * ChoreoSequencer: Changed the input format
   * LowLatencyConvolution: Fix: Regression on loading IR's smaller than 512 samples
   * RoomImpulseResponseSimulator: SuppressInitialDelay and SeparateDirectSoundAndReverb options
   * BFormatRotation: Fixed formulas
   * CrossCorrelation: Computes the cross-correlation of two audios on spectral domain
   * ...many others not included here, check the doxygen for the module.
 * plugins/filters:
   * Filter processing: Direct form implementation of the linear, time-invariant
     difference equation. The same form of the 'filter' function of common
     numerical computation programs
   * Adaptative notch filter as an implementation of the steepest descent algorithm
   * Second order fixed notch filter
   * Uniform and Gaussian WhiteNoise generator with mean and standard deviation controls
   * Realtime simple statistical properties calculation (mean, standard deviation, min, max)
 * plugins/effects:
   * TimeDelay with a wet/dry control
   * Clipping processing (clips the input signal to -1..1 range or whatever input control says)
   * AudioNormalization processing: Normalizes the input to -1..1 range checking for the max
   * Resampler plugin variant: Resampler by sample-rate ratio. Iterpolation options.
     Useful for upsampling and downsampling by factors (x2, etc)

2008-08-11 CLAM 1.3.0
'Shooting flying plugins release'
 * SVN Revision: 11960.
 * Integrates first wave of GSoC 2008 contributions from the students
   Natanael Olaiz, Wang Jun, Pawel Bartkiewicz, Francisco Tufro,
   and Yushen Han.
 * Native windows compilation (using mingw) working without patches (GSoC:jun)
 * A simpler and more effective API to export LADSPA plugins from networks
   and isolated processings.
 * Template based processing/plugin code generator scripts and frontend.
 * Many changes to the Network allowing to do cut and paste, embeded
   positions...
 * Spatialization plugin:
   * ComplexSpectrumInverter: Inverts the phase of a ComplexSpectrum
   * Click-less impulse response switching,
   * Choreography sequencer to calculate simulated impulses on the fly
     instead of using a dense grid of precomputed IRs.
     (requires a non-public binary but you can plug-in a different one)
   * Spherical2CartesianControl: Converts radix,azimut,elevation controls
     to x,y,z
 * Sample by sample processings now are a plugin.
 * New processings:
   * AudioFileMemoryLoader: an audio file reader without locks and with seek
     but loading the full audio into memory (a ringbuffer based on the way).
   * Resampler: Resamples audio streams using libsamplerate (not stable)
 * TickExtractor example working again (thanks 
 * Fix: NetEditor Windows installer should not install .def and .lib for
   plugins
 * Voice2MIDI crosscompiled windows binaries (no installer yet)
 * Old AudioFileInput/Output definitely removed, remaining old code adapted.
 * FormantTracker and TickExtractor examples working with current version

2008-02-05 CLAM 1.2.0
'GSoCket Plugged-in release'
 * SVN Revision: 11171
 * Major changes summary:
   * Integrates GSoC students work. Thanks to Hernan Ordiales
      Bennet Kolasinsky, Greg Kellum, Andreas Calvo, Roman Goj,
      Abe Kazemzadeh and Google Inc.
   * It also integrates work done last month within the
     Acoustics team on the Barcelona Media center.
   * CLAM plugins: You can load your own processings and
     data types in an existing CLAM application such the
     Network Editor. (GSoC:acalvo)
   * Windows binaries crosscompile from Linux
 * NetworkEditor enhancements:
   * Enhanced online tutorial
   * Token data types expose a color to show in NetworkEditor
   * Port tooltips show also the data type
   * Suitable monitors are available at port context menu
   * Suitable controlers are available at control context menu
     or double clicking
   * The processing is automatically populated with available
     processings. (GSoC:acalvo)
   * Dialog to add processings has completion
   * New spectrogram view (GSoC:bkolasinsky)
 * Realtime port to some spectral processings and prototypes:
    * Harmonizer, pitch-discretization and morph (GSoC:hordia)
 * Chord analysis modularity, configurability and postprocessing
   improved (GSoC:rgoj)
 * Anotator enhancements (GSoC:bkolasinsky):
   * Multiple segmentation and low-level features panes
   * BarGraph is available as Instant View
   * Rulers are positioned at round numbers
   * Rulers have subticks for smaller not numbered divisions
   * Schema browsers shows Scopes (ie. Frame) as subtrees of
     their defining attribute (ie. Song::FrameDivision)
 * First plugins available:
   * guitardistortion: Cool guitar effects with prototyper
     interface. (GSoC:hordia)
   * continuousExcitationSynth: An SMS based synthesizer.
     (GSoC:gkellum)
   * speech: Experimental processings for speech synthesis
     and analysis (GSoC:akazemzadeh)
   * spacialization: 3D audio processing including
     * New spectral processings with simplifyied/explicit
       polar-complex representation, including windowing,
       fft, ifft, overlap-and-add and representation
       converters.
     * Real-time low latency convolution
     * Grid and polar impulse response database fetcher
     * Exibition processings to convert p+v format to
       5:1, N-Surround and other exibition formats.
     * Several room databases are available, check the wiki.
 * Build system:
   * Windows binaries obtained by crosscompiling from linux
   * Windows external libs are deployed now as a posix tree
   * Relying on pkg-config to link dependencies
   * VisualC bits droped
   * Installing plugins
   * OSX uses macported Qt instead of Trolltech binaries

2007-06-07 CLAM 1.1.0
'More eye-candy, please'
 * SVN Revision: 10216
 * New concise task oriented documentation (on the wiki)
 * Loading of faust (ladspa) modules
 * FLTK fully dropped
 * Qt3 based vmqt dropped (some files moved to SMSTools)
 * '_support' ending for scons configure options removed:
   with_jack_support, with_ladspa_support, with_osc_support
   became with_jack, with_ladspa, with_osc
 * Examples clean up
 * Realtime port to some processings:
   * SMSGenderChange, SMSPitchShift, SMSShapeShift
 
2007-03-20 CLAM 1.0.0
'The Berlin release'
 * SVN Revision: 9881
 * Funtional Ladspa host

2007-03-18 CLAM 0.99.0
'That will be CLAM 1.0 release'
 * SVN Revision: 9864
 * New binary in NetworkEditor/ called OfflinePlayer to batch-process
   clam network files given an input and output audio file.
 * Fixes in the modconf to work in suse (thanks Toni)
 * Updated Fedora Core packaging
 * PortAudio network player backend:
   * PortAudio available in all platforms, including Linux.
   * Network player gets priority boost in Linux.
   * Discarded OSS API so in linux it uses Alsa (#Closes 200).
   * Xruns are notified on the console.
   * Available apis and devices are notified on the console.
   * Stream is closed and open on network start and stop.
 * All network players
   * AudioSink/Sources does the copy on the Network 'Do' instead
     of an explicit one.
   * The player just sets the device buffer using the new 
   * XNetworkPlayer::IsWorking to test whether a given NP is available.
   * Backends uses the framesize set by the backend
   * TopologyChanged protocol removed (Closes #174).
 * Flow control
   * Added a NaiveFlowControl which is less than optimal but
     it has been developed in a test driven way considering 
     most of the cases PushFlowControl was failing and some
     others. See the test cases for more info. (Closes #175)
   * No need to explicitly set the flow control to a network; by
     default it has a Naive one. Now all CLAM code uses the default.
 * FFTW3
   * Support for FFTW3 as FFTW_fftw3 and IFFTW_fftw3 classes.
   * FFT and IFFT processings inherits from the faster enabled 
     implementation on the compile options (fftw3, fftw2, oura).
   * All the FFT implementations including the generic 'FFT' are
     available to the Processing Factory (and thus in NetEditor).
   * FFT and IFFT default sizes are set to 1024 instead 0.
 * Examples folder can be moved arround and build with a local SConstruct
 * Release automatization:
   * Version information includes svn revision
   * Version information is propagated to packages and tarballs
   * Build scripts take the svn revision from the server if available.
   * Mac Build: PPC/intel dmg names are selected automatically
 * Ladpa support:
   * New class LadspaPluginExplorer
   * New class LadspaFactory 
   * New class LadspaWrapper
 * Added experimental HarmonicPeaksGenerator and VowelResonator
 * SpectralPeakArray: optimizations by not copying certain buffers
 * Removed XXNetworkPlayer::IsModified/SetModified methods.
 * Removed Processing::Pre/PostConcreteConfigure and associated state.
 * Applied eNone patch from Giulio Paci in PhaseManagement (thanks!)
 * Fix: NullProcessingConfig was duplicated on core and processing
 * Fix: 'NoneType' error on scons cleaned
 * CLAM_TEST_DATA environment var is not used any more for tests
   just the scons option

2007-02-09 CLAM 0.98.0
'Mac is here to stay'
 * Mac build based mostly on mac ports
 * MelFilterBank do initialization on Configure instead of Start
 * CepstralTransform do initialization on Configure instead of Start
 * Ogg and mp3 are enable by default in mac
 * Fix: SCons was not generating sonames and linker names for libraries
 * Fix: Lintian errors cleared
 * Fix: MultiChannel/MonoAudioFile reader were setting wrongly SetBeginTime
 * Fltk dropped from default build

2006-12-30 CLAM 0.97.0 
'Debian Packages: less is more'
 * All library debian packages collapsed in one: libclam0 and libclam-dev
 * Adapted build system to build in macosx. 
   Instructions in http://iua-share.upf.edu/wikis/clam_draft/Mac_OSX_BUILD 
 * Fix: ByteOrder now support mac intel+ppc. Thanks Volker!

2006-12-22 CLAM 0.96.0
'The most stable NetworkEditor ever'
 * Network takes now the ownership of NetworkPlayer and applications
   use the Network interface instead NetworkPlayer for Stoping, Playing...
 * Fix: Networks stop if playing on 'letal' ops such processing 
   add/rm/cfg, and control/port connection/Disconnection.
 * Fix: Lost control link when a processing were removed
 * Refactored dupplicated code on Network::AddProcessing overloads
 * Ligther doxygen (source browser disabled by default)

2006-12-04 CLAM 0.95.0
'California release'
 * Version information taken from changelog is available for apps.
 * Graceful loading of network (catchable exception instead aborting)
 * Using optimized versions (CLAM_func) for math functions
 * Tonal analysis (chord extraction) moved to the library from the Annotator
 * Network and NetworkPlayer usability
    ** OSCEnabledNetwork was removed. Use OSCControlDispatcher and bind it to
      a plain Network instead.
    ** Network errors now can be catched by applications
    ** Diagnosis methods
 * Most configuration errors are now addressed to user instead to developer
 * Audio IO
    ** ExternalAudioSink/Source -> AudioSink/Source
    ** PortAudio based NetworkPlayer is working again
    ** Handling properly Jack server disconnections
    ** On JACK server disconnections the connection state is kept
 * AudioFile review
    ** User friendly errors for AudioFile related processings
    ** AudioFile formats can be configurated
    ** AudioFileTarget and AudioFileSource instead using AudioFile
 * Ooura fft size is now enforced to be power of two
 * Fix: High priority was given to both the processing and gui threads
 * Fix: Disconnecting processing composites did not cleared lowlevel connections
 * Small bugfixes and refactorings

2006-06-14 CLAM 0.91.0
'Spectral transformations, annotator, packaging, and desktop integration release'
 * 30 new spectral transformations
 * Added Fedora Core packaging
 * Debian packaging reworked for debian and ubuntu
 * NSIS setups for windows reworked
 * Testfarm countinously compiles and runs applications and tests on the
   supported platforms, Windows, MacOsX and Linux (Ubuntu/Debian/Fedora)
 * Prototyper and QtPlugin moved to Network Editor tarball
 * Applications are integrated on the desktop. Icons and menu entries...
 * Applications tutorials
 * Applications examples are now installed with the apps
 * Segmentation classes moved to clam-core
 * New segmentation class UnsizedSegmentation
 * New data abstraction EquidistantPointsFunction
   (An array with units, optional limits and x axis information)
 * Examples, and tests (Unit/Functional) now compiles with scons

2006-02-07 CLAM 0.90.0
'New scons buildsystem and multiplaform again'
  * Building and packaging
     ** New build system based on scons
     ** Binary libraries
     ** Standard library installation
     ** CLAM applications just link against the libraries
     ** CLAM and all provided applications are working multiplatform 
        (Linux/MacOSX/Windows)
     ** Easy to use installers for MacOSX, Windows and Linux (Debian)
     ** Ported to g++ 4.0
  * Rappid prototyping infrastructure
     ** New external-generators/sinks and external-control-senders/receiver 
        classes. 
        *** They glue specific architecture (jack, portaudio, ladspa, vst) 
            ports with a clam network.
  * New hierarchy of network-players classes, with these (final) classes:
    ** JACKNetworkPlayer, 
    ** PortAudioNetworkPlayer,
    ** BlockingNetworkPlayer,
  * LADSPA Plugins (Linux): A generic plugin that embeds a network. 
    It just needs the path to a valid network xml file.
  * VST Plugins (Mac/Windows): A generic plugin that embeds a network. 
    It just needs the path to a valid network xml file.
  * MIDI files
    ** New classes to read/write standard MIDI files
  * Qt Visualization Module
    ** Support for multidisplay plots.
    ** BPFEditor: multiple BPF allowed
    ** Faster rendering of plots using buffered pixmaps
  * QtSMSTools2: New! A total rewrite of SMSTools2 GUI using the Qt toolkit.
    ** Multidisplay implementation sharing common axis   
       *** Spectrogram (Color,Black&White)
       *** Improved player: audio and fundamental frequency
       *** More suitable dialogs to configure projects
  * NetworkEditor
    ** New callback audio-driving mode. This allow different modes 
      (specified as command line options)
       *** Jack client mode (not in Windows)
       *** PortAudio mode
       *** Blocking mode
  * Annotator
    ** New segment editor:
       *** Different annotation restrictions depending on the schema. 
           Right now:
           **** Continuous segmentation (no gap)
           **** Discontinous segmentation (gaps but not overlaps)
       *** Consistent dragging
       *** Tooltips are faster to appear
       *** Tooltips say just the position of the hovered element instead 
           the cursor position.
       *** Hovering highlights the limit
   ** Optimizations on the song switching and on the display
   ** Inserting and removing segments now has its reflexion on the pool
   ** Playing the wav and the auralization on different channels.
   ** Description schema browser
   ** Now, viable projects can be built from the interface



2005-07-21 CLAM 0.8.0
'Prototyper with streaming SMS transformations'
  * SMS Transformations on the network editor:
     ** All SMS Transformations have been refactored in order to work
        in streaming mode and not only in offline mode.
  * New Prototyping way:
     ** Prototyper: Allows to bind a Qt desinger interface to a
        Network XML definition so you can have an CLAM GUI application
        up an running without a single line of code. Current features:
        *** It uses the widget names and classes to Automagically relate
            widgets to processings, ports and controls.
        *** Binds sliders, knobs and so to in-controls on the network
        *** Binds monitoring plots to out-ports on the network
        *** Binds buttons to play/stop actions on the network
  * QtPlots add-ons: 
     ** Editable segmentation marks on all the plots   
     ** QtSpectrogram:
	*** Plot to view sonogram (Color/B&W)
     ** BPFEditor:
	*** Editable/auralizable plot (Audio and MIDI support)
  * Compiler compatibility:
     ** CLAM and its applications now compiles in GNU g++3.4 (as well as 3.3)
  * Audio file I/O facilities:
     ** MP3 I/O: Bug fixed: that prevented XING headers from being used to
        compute duration
     ** MP3 I/O: Bug fixed in conversion from milliseconds to seconds
     ** Vorbis I/O: Feature addition: now the # of samples is computed for
        Vorbis bitstreams
  * Memory leak review:
     ** FFT internal buffer was not freed on destruction
  * XML related changes:
     ** Now XmlStorage::Dump does indentation by default. A new optional
        parameter disables indentation.
     ** XercesC 2.6 is required in order to pass the tests and be memory
        leak free (even 2.3 should be enough to compile and run CLAM).
     ** XML Storage Error Handling (This solves issue #0000022):
        *** Catchable CLAM::XmlStorageErr excepetions are thrown whenever:
            **** I/O error happens
            **** Malformed XML is readed
            **** Read elements or contents does not match with CLAM objects
                 structure
            **** CLAM objects detect some semantic constraints.
     ** XPath (like) navigation (This solves issue #0000045):
        *** The implementation of XmlStorage::Select allows using:
            **** XmlStorage::AppendToDocument(object, path, filename)
            **** XmlStorage::RestoreFromFragment(object, path, istream)
            **** Using atomic primitives for doing some similar hacks like
                 writing fragments of the XML for an object to disk.
     ** Alternative XML Backends (LibXml++)
        *** Unification of the way XmlStorage interfaces the library dependant
            code.
        *** LibXml++ Backend implemented. It is planned to be the default
            backend on future releases but still some work is needed to get
            the error messages correctly reported.
  * Network refactoring:
     ** Published{In|Out}{Controls|Ports} -> {In|Out}{Control|Port}Registry
  * Descriptors:
     ** SpectralDescriptors::HighFrequencyCoefficent -> HighFrequencyContent
        as specified by the original literature.
  * Other:
     ** ConnectPorts overloaded to connect free ports (that is not belonging
        to any processing, normally used for injecting or extracting data)
  * Build System:
     ** Changes in order to not abort ./configure script when some library is 
        not found (and not specifyed with the --without-libname option)


2004-11-18 CLAM 0.7.0
'Easier deployment, better plots and Processing Networks'
  * Processing Ports Infrastructure Complete Rewrite:
     ** Now effectively works with any datatype (i.e. InPort<Spectrum>)
     ** Shortcut CLAM::ConnectPorts with either ports numbers and names
     ** Shortcut CLAM::ConnectControls with either control numbers and names
     ** Underlying data structure for streaming tokens is specified using a 
        Template-Policy
        *** Default policy is PhantomBuffer: an contiguous-memory circular 
            buffer with some nice feature
        *** But also usable any STL container
     ** Internal (implementation) classes hierarchie has been simplified a 
        lot.
     ** Thoroughly (unit) tested, and stress tested
     ** Stream class now can be policy-templatized to PhantomBuffer or any 
        STL container
     ** New ports-linking schema : only out->in (and not out->data or 
        in->data)
        *** Ports Attach(ProcessingData&) method has been deprecated.
        *** Please refer to the migration guide and doxygen docs
     ** New AudioIn/OutPorts. Similar tor In/OutPort<TData> but with richer 
        interface
     ** New feature: In/OutPortPublisher 
        *** A composite port that "publishes" one or more inner ports.
        *** When linking a port with a publisher it acts like a mediator for 
            its published ports.
     ** New In/OutPort public interface
        *** Constructors. Now gets only two parameters, and not the window 
            size anymore
        *** Size and Hop getters and setters, GetData, Consume, Produce, 
            CanConsume, CanProduce, etc.
  * SMSAnalysis-Synthesis In Streaming:
     ** Till this release SMSAnalysis and SMSSynthesis needed a Segment as 
        intermediate data now they can also use ports to process in streaming
  * NetworkEditor:
     ** Added SMSAnalysis and SMSSynthesis in the processings factory. But 
        still some problemes needs to be sorted out.
  * AudioFile IO:
     ** AudioFile have easier and clearer interface:
        *** AudioFile::SetHeader is obsolete
        *** AudioFile::SetLocation is obsolete, instead use:
        *** AudioFile::OpenExisting
        *** AudioFile::CreateNew
  * Processing Interface Clean up:
     ** Removed Processing inheritance from Component
     ** Processing::FlattenObjects removed until needed
     ** Processing::SetPrototypes/UnsetPrototypes removed until needed
     ** Processing::MayDisableExecution removed until needed
     ** Processing::DisableExecution removed until needed
     ** Processing::LostData removed until needed
     ** Processing::StoreOn/LoadFrom removed until needed
     ** Processing::composite_begin/end moved to the ProcessingComposite
  * Low Level Descriptors Revision (Audio, Spectral and SpectralPeaks):
     ** Full doxygen documentation.
     ** Formulas revised and corrected.
     ** Most NaN singularities has ben solved. Check doxygen.
     ** Unit testing and back-to-back testing for every descriptor.
     ** Asserts that source data is in linear format
     ** SpectralDesc Skew/Kurstosis -> MagnitudeSkew MagnitudeKurtosis
     ** Spectral and Harmonic Tilts removed (Returned very unstable values)
  * Beta Qt Plots:
     ** Audio (playable).
     ** Fundamental (playable).
     ** Spectrum.
     ** Spectrum and peaks.
     ** Sinusoidal tracks.
     ** Some examples at CLAM/build/Examples/Simple/QtPlots
     ** Note that these widgets are in the initial development phase.
     ** Extra requirements: qwt library.
  * Standard:
     ** FormatData.hxx removed, also their useless uses
     ** Vector removed
     ** QSort removed, use stl's qsort instead
  * Test Framework:
     ** Qt testing GUI for Linux (activate USE_QT)
     ** Infrastructure for reading basic Data (wav,xml)
     ** Back to back testing infrastructure
     ** Improvements to the python script to run all tests and apps
  * Doxygen documentation:
     ** XML documentation modules added.
     ** Documentation module on Configurators: Autogenerated Qt/Fltk dialogs 
        to edit DynamicTypes.
     ** More scatered changes and fixes.
  * Build System:
     ** Full rewrite of configure.ac. configure.ac is now generated from a 
        perl-script which does a lot of code-reuse to create a consistent and 
        uniform configure.ac.
     ** configure generates HAS_<library> values (in packages.cfg), which is 
        used by srcdeps to make sure USE_<library> and HAS_<library> is 
        consistent. Using USE_<library>=$(HAS_<library> in settings.cfg can 
        be used to make usage conditional. On windows the user should make
    sure that the build/packages-win.cfg file is reflecting his system
     ** configure has a new way to present the user with the possibity to 
        disable the use of specific libraries. If the user does not have a 
        specific library, it can tell configure not to use it. The generate 
        HAS_<library> value will be false, and if a settings.cfg tries to use 
        it, srcdeps will notice it. This allows to compile certain examples 
        that don't use libraries you don't have.
  * MS Visual support:
     ** MS Visual 6 is no longer supported.

2004-04-13 CLAM 0.6_1
'qt && Visual 7 support'
  * General:
     ** Some memory leaks removed with Valgrind
     ** Added backward compatibility with gcc 2.95
  * Build System:
     ** Added support for MS Visual 7. Srcdeps now generates .vcproj
     ** Support for QT library preprocessor steps in linux, mac and windows : 
        visual6 and visual7:
        *** Moc objects generated automatically from mocable headers.
        *** Moc objects generated from UIC files.
     ** Integration of all the platforms code ( linux and mac Makefiles, 
        windows .dsp and .vcproj generated from the same program).
  * XML:
     ** Fix: Storing arrays with size 1 crashes
     ** Fix: IterableAdapter joined array elements when basics
  * MIDI I/O:
     ** Added MIDI output
     ** Added virtual devices for midi-to-text out
     ** PortMIDI now also works on Linux
     ** Simplified MIDI input (see documentation)
  * Descriptors:
     ** More fixes on SpectralFlatness, LowFrequencyEnergiRelation and 
        Rolloff:
        *** SpectralFlatness uses log10 instead log
        *** LowFrequencyEnergiRelation doesn't modify the incoming data
        *** RollOff uses Energy instead Moment<O1> and compares with the 
            square
     ** Moved to Stats: Tilt, Slope, Flatness
  * SMSTools:
     ** Bug fixes related to the logics of menu's options 
        activation/deactivation (related to the state of application).
     ** Solved a bug that crashed SMSTools when trying to load an XML 
        analysis.

2004-02-18 CLAM 0.6.0
'Audio file formats: Reloaded'

  * Network Editor:
     ** Added support for ladspa plugins inside the GUI
     ** Support to change the name of processings
     ** Support for new Audio File I/O processings
     ** Now is possible to know the state of a given processing and the error 
        message (if it exists).
  * Audio File I/O Support:
     ** Four new processings available for reading/writing from audio files:
        *** MonoAudioFileReader/Writer ( single channel reading and writing )
        *** MultiChannelAudioFileReader/Writer ( multi channel reading and 
            writing )
     ** New AudioFile class. This class models the concept of 'audio file' 
        which has attached attributes as 'Location' ( the path to the file ), 
        'Header' ( the concrete file header information such as length, 
        samplerate, etc. ) and 'TextDescriptors' (text-based meta-data such 
        as Artist, Title, Album, etc. )
     ** New File formats supported:
        *** Almost any PCM-based audio data storage scheme encoding/decoding 
            is supported through libsndfile ( 
            http://www.zip.com.au/~erikd/libsndfile )
        *** Ogg/Vorbis encoding and decoding support
        *** Mpeg Audio Layer 1/2/3 decoding support
     ** New Feature: Partial retrieval of textual metadata embedded in files. 
        For now CLAM is just able to extract information such as Artist, 
        Title, Album and Track number. Support for a wider range of textual 
        descriptors extraction will be available soon.
        *** ID3 metadata frames retrieval from Mpeg bitstreams
        *** Vorbis Comments retrieval from Vorbis bitstreams MacOS X note: 
            ID3 meta-data extraction only works for MacOS X 10.3 systems and 
            above, since Apple did not include Unicode ( wchar_t ) support in 
            their libstdc++ binary distribution.
     ** Three new examples showing how to use the new Processing's and the 
        AudioFile class:
        *** examples/FileInfo_example.cxx
        *** examples/AudioFileReading_example.cxx
        *** examples/AudioFileWritiing_example.cxx their build projects can 
            be found on the build/Examples/Simple folder
  * FFT refactored:
     ** Removed duplicated code and unused functionality and improved 
        efficiency.
  * Salto:
     ** Fix: several potentially dangerous out-of-bounce array accesses in 
        fltk G.interface
  * Processing Data:
     ** Documented (doxygen style) that the time unit is miliseconds in 
        Audio, Frame and Segment
  * Processings:
     ** AudioFileIn stamps the sample-rate to the written audio
  * Descriptors:
     ** AttackTime is based on the envelope
     ** Fix: LogAttackTime recalculated the AttackTime always
     ** New AudioDescriptors: Decrease
     ** New SpectralDescriptors: Slope and Spread
     ** Functional tests added
     ** Fixes and precission enhancements
  * Tests:
     ** All unit and functional tests have been merged in only two 
        executables (settings.cfg), namely: AllUnitTests and 
        AllFunctionalTests




2004-01-15 CLAM 0.5.7
'Tomorrow MacOsX patch'
  * SMSTools:
     ** Fix: Closing window crashed on MacOsX.
     ** Fix: Storing output global sound stored sinusoidal in previous release
  * Base:
     ** [Experimental] Support for Polymorphic attributes in DT
  * XML:
     ** Abstract types thru Polymorphic attributes
     ** XMLStaticAdapter is deprecated
  * Network Editor:
     ** Better layout on processing configuration dialogs
     ** Fix: integer fiels on processing configuration dialogs were limited 
        to 99. Now it uses std::numeric_limits
     ** Fix: Network serialization loading was broken
     ** Some processings still in draft moved to example files
  * Simple Examples:
     ** FlowControlExamples tree has been moved to draft since simpler and 
        more concrete examples now exists: examples/NetworkUsage_example and 
        examples/PortsAndControlsUsageExample/
     ** Examples have been ported to use the XML static XMLStorage methods
     ** Some broken examples have been fixed, including 
        compiling_against_clam and SpectralDelay.
  * Windows Build System:
     ** Updated .dsp Visual 6 projects that were outdated in previous release
     ** Fixed some minor problems in some settings.cfg files
  * Salto:
     ** Fix: Did not compile in previous release. Example in general is still 
        outdated though.

2004-01-12 CLAM 0.5_6
'XML and Ladspa rewrite'
  * XML:
     ** Both, basic XMLStorage usage interface and customization interface 
        have changed. Check 'Migration Guidelines' on the documentation and 
        update your code.
     ** Ported to XercesC 2.3. Library dependant code is more isolated and 
        structured so libxml or expat ports will be easy.
     ** Atomical operations are available so partial loading or document 
        updating is now more feasible.
     ** One statement calls using static methods XMLStorage::Dump and 
        XMLStorage::Restore
     ** Trapable error notification using exceptions.
     ** API Change: XMLStorage::Store and XMLStorage::Load receives a 
        const-ref and a ref to adapters instead a pointer
     ** API Change: Component::StoreOn is now a const method.
     ** Scoped XML: [Experimental] allows (write only) fast XML generation 
        without having to define CLAM data.
     ** Cppunit Tested and general code clean up
  * Network Editor:
     ** Smarter conections display (control conection with vertical tangent 
        and that wires always goes outward the processing)
     ** Refactoring of the application structure.
     ** Bug fixing.
     ** Created Unit Tests for the entire application.
  * Processing Objects:
     ** GetName has been removed from all CLAM processing configurations 
        because it was not really useful.
     ** Simplified Processing interface related to ports and controls.
  * Error handling:
     ** Failed assertions dump a backtrace in GNU/Linux.
  * SMSTools:
     ** Fix: SDIF storage was unconfigured on release mode.
     ** fixed compilation with g++ 2.95.4 (Debian Woody), fixed SMS Tools 
        build 
  * Descriptors:
     ** Added descriptors to compute on a whole segment.
     ** Added basic arithmetic operators to descriptors.
     ** General debugging.
  * LADSPA:
     ** Rewrited and simplified support to create LADSPA plugins using CLAM.
     ** New support for using LADSPA plugins as CLAM Processings.
  * Build system:
     ** Fix: some fltk-config nagging options removed on aclocal

2003-11-26 CLAM 0.5.5

  * General:
     ** Code cleanup
  * Visualization Module:
     ** Bug that provoked Sinusoidal tracks to pop has been fixed
     ** Bug that prevented some code to compile fixed
  * Examples/NetworkEditor:
     ** Bug Fixing
  * Processing/Analysis:
     ** DescriptorsComputer added: now there is the possibility of computing 
        statistics for Spectrums, SpectralPeakArrays, Frames, etc
  * MacOSX Support:
     ** build system changes
     ** RtAudio for Audio I/O
  * Audio I/O:
     ** A generic RtAAudioDevice for all platforms (includes some platform 
        specific workarounds)

2003-11-06 CLAM 0.5.4

  * Build system:
     ** Added 'Compiling_against_CLAM_example' subdir to the build dir. It 
        contains an out-of-the-box example of how a CLAM external aplication 
        can compile against the library. It contains a tutorial in its 
        'readme.html' file. Since now it was a separated tarball available in 
        the web. Now integrated in the CLAM dir tree.
     ** Configuration:
        *** Use fltk-config to get the paths to fltk includes/paths
        *** QTDIR support
     ** Added rules to pre-process headers with moc (QT)
     ** Add .dsp files for many CLAM programs
     ** Fixed many settings.cfg files under Windows
     ** srcdeps:
        *** Run srcdeps when settings.cfg has changed
        *** Don't look through xerces include directories recursively
        *** Performance improvements
        *** Bugfixes
        *** Generate from empty dsp
  * Standard/Misc:
     ** Text: Added to the standard as substitution for std::string on those 
        case when we need multiword strings on XML. (XML loads only one word 
        for std::strings)
     ** BPF: Modified BPFTmpl<>::Insert() (both overloads) to return the 
        index at which the element was actually inserted (i.e. the inserted 
        element's index).
     ** CLAMMath: Fixed a bug in Round() and Chop() which caused the fpu 
        control word to be changed when calling these functions (but only in 
        debug build).
     ** Moved some includes from hxx's to cxx's and doing forward decl to 
        improve compilation speed
     ** Working towards supporting MacOSX/PPC (including byte order issues)
     ** Added a FileMIDIDevice
     ** SoundFileIO improvements ( support for more sample formats added, 
        better errors)
     ** Declare template specializations in header inline ( gcc 3.x 
        compatibility issue )
  * ProcessingData:
     ** SpectralPeakArray ProcessingData; when adding an IndexArray to an 
        already existing SpectralPeakArray and calling InitIndices(), the 
        IndexArray would be allocated to the actual number of elements in the 
        other arrays, not their allocated size (i.e. the maximum elements 
        they can hold without reallocating).
     ** Fundamental ProcessingData; removed two Dynamic Type attributes which 
        were used to keep track of the size and allocated size (max size) of 
        the Fundamental. These values are now derived from either of the 
        arrays (freq/err). Also calling SetnCandidates() or 
        SetnMaxCandidates() now actually affects the arrays instead of merely 
        setting the size fields. This is more consistent with 
        SpectralPeakArray for instance.
     ** Audio ProcessingData: bug fixed in GetAudioChunk method that left 
        extracted chunks with uninitialized Sample Rate and Begin Time
     ** Spectrum Conversions: Added a method called Complex2LogMagPhase() 
        which efficiently converts a complex spectrum to a log. magnitude 
        (i.e. in dB's)/phase spectrum.
  * Processing:
     ** SMSAnalysis: fixed a bug that lead to divisions by zero
  * FlowControl:
     ** Added interface to network in order to connect/disconnect controls
     ** Serialization of network, including connections (ports/controls) and 
        processing configurations.
  * Testing:
     ** CLAMTEST_ASSERT_XML_EQUAL to compare XML canonically
     ** Helpfull colors for finding differences on expected and obtained 
        strings
     ** Added CppUnit workspace
     ** Added a shell-script to generate the dsp's.
     ** Created a project for all functional tests
     ** Several tests moved to "SupervisedTests"
     ** Visualization (Plots)
     ** XMLAdapters
     ** Threading
     ** PersistenceThroughDTs
     ** SMS Application FunctionalTests
     ** Morphing
     ** Several processing tests
     ** Network Serialization
     ** Text
     ** ProcessingController
     ** ControlAdapter
     ** Fl_FundFreq (supervised)
  * SMS:
     ** Removed MaxSines from peak detection configuration and replaced it 
        with the much more useful MaxFreq
     ** Several bugfixes and code cleanups
     ** New transformations
  * New examples:
     ** FilePlayback
     ** ProcessingLifeCycle
     ** Persistence_Throught_DTs
     ** StereoToMonoFile
  * Examples - NetworkEditor
     ** Improved GUI
     ** Controls
     ** Configuration of processings from interface.
     ** Serialization

2003-10-4 CLAM 0.5.3
'Starting the new course'

  * Build system:
     ** Bug fix in srcdeps: uninitialized var in emptydsp.c
     ** Fix: 'configure' test for local sandbox fftw in linux, used wrong 
        parameters order
     ** Added support to fltk-config in order to get fltk paths and flags
     ** Changed "release" flag compilation in gcc from -O6 to -O3
  * Visualization Module:
     ** Next generation VM Plots available. Check the examples for 
        indications on how to use them.
     ** SMS Tools widgets for Spectrum, Audio, etc. promoted to VM standard 
        presentations.
  * Processing - General:
     ** Many ugly warnings removed
     ** CleanTracksConfig FreqDev parameter semantics changed to match the 
        meaning of SinTrackingConfig FreqDev.
  * Processing - Analysis:
     ** New LPC_AutoCorrelation Processing object added to spectral analysis 
        Processings set
     ** The SpectralPeakDetect Processing class now no longer alters it's 
        given ProcessingData if it's different than expected, but instead 
        checks it using an assert. Also, a bug was fixed which tried to use 
        an uninitialized index variable when setting the values for the last 
        spectral peak.
     ** The FFT_rfftw and FFT_ooura Processings were missing a return on 
        SetPrototypes() which only generated a compiler error when 
        CLAM_ASSERT was disabled.
  * Processing - Synthesis:
     ** The IFFT_rfftw Processing was missing a return on SetPrototypes() 
        which only generated a compiler error when CLAM_ASSERT was disabled.
  * Processing - AudioFileIO:
     ** AudioFileIn should now be capable of loading PCM encoded files with 
        sample formats of 8, 16, 24 or 32 bits/sample
  * ProcessingData - BasicProcessing:
     ** New LPModel (Linear Predicitve Model) ProcessingData object added to 
        basic Processing data objects. Allows conversions to CLAM::Spectrum.
  * Standard:
     ** Bug fixed in BPF that caused applications to crash when trying to use 
        the Spline value interpolation method
  * Examples - Miscellaneous:
     ** Usage example of FDFilterGen (Frequency Domain Filter Generator ) 
        Processing object added to examples/ folder
     ** Usage example of FFT_rfftw Processing object updated
     ** Usage example of LPC_AutoCorrelation Processing object added to 
        examples/
     ** Example explaining how to play a given .wav file added to examples/
     ** Example about Segment and SDIF I/O added to examples/
     ** Examples explaining how to use new VM Plots added to examples/

2003-07-25 CLAM 0.5.2
'Processing bug-fixing, SMSTools update'

  * Processing - Transformation - SMS:
     ** SMSMorph was not working by a side-effect of the introduction of the 
        SMS Time Stretch.
     ** SMSMorph: All controls except Residual Spectral Shape are fully 
        functional.
  * Processing - Analysis:
     ** SpectralPeakDetect infinite loop bug fixed.
     ** Added New Ooura FFT algorithm.
  * Standard:
     ** Stack, Queue and String removed. Use the STL ones instead.
     ** Obsoleted DescStats removed.
  * BuildSystem:
     ** Library generation for both Linux and Windows. (Still not CLAM 
        binaries but user libraries)
  * Examples - Miscellaneous:
     ** AudioFileIO example, explaining how to load and save a sound file is 
        available
  * SMSTools - v.0.1.1
     ** GUI - Score Editor:
        *** UI screen texts tweaked so they result more informative
        *** Added new and improved SMS Morph transformation control widget, 
            allowing user a finer grain level of control on that SMS 
            transformation. Also SMS Morph transformation description has 
            been completely rewritten.
        *** Bug fixed: under some circumstances configuration widgets might 
            be unadvertendly duplicated, leading to invalid transformation 
            scores
        *** Editor widget layout tweaked a bit to make bigger the screen area 
            devoted to transformation parameters edition


2003-07-03 CLAM 0.5.1
'SMSTools update and Mac compilation issues'

  * Examples - SMS:
     ** Improved stability and performance.
     ** Fixed a few bugs in how some configurations were handled
     ** Removed some useless fields from configuration i.e. 
        PhaseManagementType and changed AnalysisMaxSines for 
        AnalysisPeakDetectMaxFrequency.
     ** Transformations Configurators: graphical widget for editing 
        configurations.
     ** New view added (fundamental)
     ** SMSMorph transformation is now usable.
     ** SMSTime stretch is also usable.
     ** SMSEdu (from amora's career final project project) available as 
        'draft'.
  * Examples - Misc:
     ** NetworkEditor (from xrubio's career final project) available on 
        'examples'
  * Processing - All:
     ** Configs has been separated from their processings in a separate 
        header to lower memory usage during SMSTools compilation in Mac.
  * Processing - Analysis:
     ** Spectral peak detect does not have MaxPeaks as a configurations 
        parameter. Instead, you may indicate the maximum peak frequency you 
        want to detect with MaxFreq.
  * Processing - Transformation -SMS:
     ** SMSTransformation chain is now able to acknowledge SMSTransformations 
        that do not process inplace and have different processing rate.
  * Testing:
     ** Some more test has been moved to cppunit framework
  * Doxygen:
     ** Few doxygen inline documentation fixes
  * BuildSystem:
     ** Library generation under Linux available (still not for a CLAM lib 
        but for generating user libraries)

2003-06-11 CLAM 0.5.0
'flashing new build system and SMSTools'
  * Build system:
     ** New flashing build system, fast, crossplatform and easy to use
     ** Configuration file for each binary is shared between platforms
     ** Automatic detection of binaries dependencies
     ** Automatic generation of dsp's and make dependencies
     ** See the documentation for more details
     ** Depends on FLTK 1.1.3 instead 1.0.X
  * Processing - All:
     ** Concreteconfigure should asserts false instead throwing bad_cast 
        exceptions when a wrong type of configuration is provided.
     ** Provided a helper template function 'CopyAsConcreteConfig()' to be 
        used in ConcreteConfigure instead using slow dynamic_cast's.
     ** Most Processing in CLAM adapted to use 'CopyAsConcreteConfig'.
  * Processing - Generator:
     ** Oscillator had a heavy compilation dependency since it used 
        AudioManager for initializing sample-rate. Now it doesn't (uses 44100 
        as default)
  * Processing - Analysis and Synthesis:
     ** SMSAnalysis uses a StreamBuffer with one write region and two read 
        regions
     ** SpectralAnalysis does not have an internal CircularBuffer anymore
     ** SpectralSynthesis does not have OverlapAdd as an internal Processing 
        anymore
     ** Now SMSSynthesis has three OverlapAdd Processings for each component: 
        global, sinusoidal and residual.
     ** OverlapAdd now uses a StreamBuffer with one WriteRegion, one 
        AddRegion and one ReadRegion.
     ** CleanTracks is much more faster, (and then usable)
  * Flow - Network & FlowControl:
     ** New Network and FlowControls classes that works quite together: 
        Network manages processings ownership, nodes, gives simple interface 
        for stablishing processing topologies. FlowControls gets the topology 
        from the associated network and does its processing-firing scheadule. 
        The scheaduling algorithm is reimplementable now we have a 
        pull-scheadule implementation
     ** Limitation: only tested for fixed buffer size.
  * Flow - Nodes:
     ** New pure virtual interface for attaching ports and traversing 
        processings
     ** Some refactoring simplifying checking logic. Further refactoring in 
        progress
     ** A new AddStreamRegion has been introduced (used for overlap and add).
     ** StreamRegions can be now used using center position logic.
     ** StreamRegions belonging to a StreamBuffer are now automatically 
        initialized so the center time is zero and the first half of the 
        biggest read region is already written with zeros.
     ** Limitation: Do using ports (supervised mode) only tested with fixed 
        size buffers.
  * Factory:
     ** Added a general purpose factory which is templatized by the abstract 
        product (returned type). Nested class Registrator helps registering 
        concrete classes to the factory.
  * Standard:
     ** Added the Filename type to be used in configurations instead of 
        std::string. Configurators detect them and use a suited widget.
     ** Flags: Flags derived classes should define the copy constructors 
        explicitly. One parameter template constructors is not enough (it 
        never was)
     ** Array: debugged the copy constructor when array does not own memory 
        and introduced a CopyChunk method, similar to GiveChunk but with 
        memory copying.
  * DynamicTypes:
     ** Fix: Definition of DynamicTypes on foreign namespaces leaded to 
        compilation problems if you don't use the ugly 'using namespace 
        CLAM;'.
     ** Fix: dynamic type self-assignation doesn't modify the object.
  * Examples - SMS (old AnalysisSynthesisExample):
     ** FlowControlExamples. Gives examples of use of networks and 
        flow-control.
     ** Renamed as SMS. GUI is now SMSTools.
     ** Applies chained SMS transformations
     ** Menu reorganization
     ** New views: sinusoidal tracks, spectrum & peaks
     ** Frame navigator
     ** Fixes and performance enhancements
  * Examples - Other:
     ** Fix: The Tutorial4 didn't compile (used Complex in an old fashioned 
        way).
  * XML:
     ** New method XMLStorage::UseIndentation to enable pretty XML formatting
     ** Obsoleted constructor receiving the root tag as parameter
     ** Obsoleted _restoreFrom and dumpOn, use Dump and Restore instead
  * Visualization Module:
     ** Major rework in several areas:
  * View concept has now been mapped into two different classes, 
    ModelAdapter's whose mission is to wrap Core CLAM objects so they can 
    have Visualization Module components attached, and ModelController's 
    whose mission consists in allowing Visualization Module components to be 
    controlled indirectly by the user from the GUI. From now on VM interface 
    will be kept stable ( at least until CLAM 1.0 )
  * Presentation semantics are preserved, but their nature of widgets is 
    emphasized in several ways
  * Several new graphic representations of DSP concepts such as the 
    sinusoidal tracks
  * OpenGL data renderers optimized and debugged
  * Old CbLib interface deprecated in favor of libSigSlot, CLAM own 
    implementation of the C++ idiom of Signals & Slots
  * New plot's substitute the functionality offered by old snapshots
  * Most of VM code is now documented with Doxygen comments
  * Several new FLTK widgets, such as the Fl_Axis, Fl_SmartTile, etc. 
     ** Configurators: New type suported: 'Filename'
     ** 'Formal' documentation will be soon made publicly available

2003-03-05 CLAM 0.4.2
'Cuidado merge update'

  * General
     ** Most classes ported to the GetClassName contsness
  * Processing - Base:
     ** TopLevelProcessing::GetInstance() returns a pointer instead a 
        reference
  * Processings - Generators:
     ** Added AbleToExecute in Generator::Do
  * Processings - Spectral:
     ** Added Gaussian window to WindowGenerator
     ** Removed Synth window to WindowGenerator (not used)
     ** Added Maximizer Normalization to WindowGenerator
  * Processing - Transformation:
     ** Normalization moved from examples to src/Processing/Transformations
     ** Added SpectralEnvelopeApply, FDCombFilter, LPC, Levinstong_Durbin and 
        AutocorrelationEvaluator
     ** SMS transformations added and refactored: SMSPitchShift, 
        SMSFreqShift, and SMSOddEvenHarmonicRatio.
  * Processing - Analysis: 
     ** SpectralEnvelopeExtract deprecates ExpectralEnvelopeExtractor
  * Processing - ArithOps:
     ** Fix: BinOps threw 'this' (the processing) on error instead exceptions
     ** Some concrete BinOps have Personalized names for the class
     ** Some concrete BinOps have Concrete Configuration alias (You can use 
        AudioAdderConfig instead BinaryAudioOp < Add<TData> > )
  * Processing Data:
     ** Added Correlation
  * Standard:
     ** TemplateCircularBuffer obsoleted by CircularBuffer
  * Signal-Slot Mechanims:
     ** CallbackHandler is obsolete
  * Examples
     ** ControlArrayExample added
     ** FlowControlExamples added
     ** LPC_Example added
     ** AutocorrelationExample added
  * AnalysisSynthesis example:
     ** Batch processing on Windows
     ** Removed patented icon formats (aka Gif)
     ** Added Spectrum View
     ** Added Signal/Slot facilities to coordinate Spectrum and Frame marker
     ** Added Transformations
     ** Lot of fixes
  * Visualization:
     ** Removed: FLDisplay, FLMultiDisplay, FLDisplayArray and 
        CUIDADO_Snapshots
     ** Added new custom FLTK widgets: Fl_ZoomSlider and Fl_Range
     ** libsigslot added
  * FLTKConfigurator:
     ** Uses FL_Pack & FL_Scroll for managing the widgets position
  * AudioBrowser:
     ** New class added, derived from AudioPresentation, that includes a 
        GLPortSigSlot and capabilities to get its Signals and its Slots.
  * GLPortSigSlot:
     ** New class added, derived from GLPort, that includes Signals and 
        Slots, and the methods to work with them, as well as an overlay that 
        draws the Frame marker.
  * MSVisualC++ build system
     ** Changed extended.c to extended.cxx. Used by 
        Tools/AudioFileIO/AIFFFileIO
     ** CLAM_Windows.hxx used instead windows.h to work arraund some nasty 
        defines
  * SpectralDelay
     ** QT dependencies removed from the .dsp. That includes build 
        configurations and .cxx files.
  * Tests:
     ** New cppunit based infraestructure enabled and some tests ported
     ** Better DynamicType tests
     ** Better (non-cppunit) XMLAdapters tests
  * Misc:
     ** Modified boost::dir_it added as external included library (Only works 
        for Windows... by now)

2003-01-23 CLAM 0.4.1
'Analysis Synthesis debuggin'

  * General:
     ** Fix: Component::GetClassName has changed the signature to const 
        (#0111)
     ** GetClassName gets pure virtual on Component to reveal 
        misredeclarations
  * Unix build system:
     ** Better support for external projects
     ** $(CLAM_PATH)/ prefix needs to be added on for each filename on 
        '.files' files
  * Spectral Analysis:
     ** Fix: WindowGenerator Enums symbols had illegal spaces on their inside
  * AnalysisSynthesisExampleBase:
     ** default HopSize is now computed from residual window size
     ** SynthHopSize has disappeared: only frameSize is used (affects also 
        SMSAnalysisSynthesisConfig.hxx)
     ** Max number of sines of Peak Detect and SineTracking are now 
        configured using configuration value
  * Audio:
     ** GetAudioChunk now allows to ask for a chunk with begin time beyond 
        the original audio limits. It just returns zeros but configures the 
        chunk if necessary.
  * SMSAnalysisConfig:
     ** Buffer Size of both spectral analysis (sinusoidal and residual) is 
        configured after the largest window size (this condition is necessary 
        for handling different window sizes in both components).
  * SpectralPeakDetect:
     ** Added a condition so the loop breaks whenever we have more peaks than 
        those indicated in MaxPeaks (Note: here the algorithm should be 
        changed to decide what are the n best peaks, not the n first peaks: 
        TODO)
  * SMSAnalysis:
     ** Sample rate was not correctly initialized under some conditions

2002-12-10
'Zero padding move'

  * Analysis Synthesis example:
     ** Removed useless synthesis zero padding factor
     ** Fixed some other bugs related to zero padding
     ** Did a little modification in the GUI so Audio displays are closed 
        when editing configuration

2002-11-26 CLAM 0.4.0-rel
'Fly examples, fly to seattle' release

  * General:
     ** Directory reorganization
     ** CLAM_WARNING macros with customizable behaviour
     ** New integrated examples: Salto and Rappid
  * AnalisysSysthesis:
     ** Major rework
  * SpectralDelay:
     ** Stability and performance enhancements
     ** New filter control interface
  * Dynamic Types:
     ** Attribute visitors
  * Standard:
     ** Enum method to get the symbol mapping
     ** Added TabFunct to deal with precalculed function tables
  * SDIF:
     ** Added SDIF support for storing analysis result in a binary format
  * Visualization Module( GUI )
     ** Automatic user interface generation for editing configurations
     ** A lot of bug fixes (see Mantis)
  * XML:
     ** Now a given order between sibling xml elements is always required to 
        boost the performance a little
     ** Multiple XML implementations can be selected (currently XercesC++ and 
        Gnome-libxml)
     ** DOMPrint is not used anymore
     ** XMLStorage internal refactoring to improve mantainability, clearness 
        and future improvements
     ** Fix: Flags has implementation for Load (#47)
     ** Fix: XMLxxxAdapter constructor gets const C strings as parameters 
        (#67)
     ** Fix: Non present optional elements don't break the XML loading
     ** Array and Lists uses the aggregated class name for subelements
  * Spectral processing
     ** PeakDetect renamed as SpectralPeakDetect
  * Time Domain Processing:
     ** AudioProduct is no more, use AudioMultiplier instead
  * LADSPA
     ** Added support for writing LASDPA plug-ins
  * Examples
     ** The following examples are now running and fairly debugged: SALTO, 
        AnalysisSynthesis, SpectralDelay and Rappid
  * Unix build system
     ** Selective clean
     ** Include paths not shown on the command line
     ** Fix: FFTW_HEADER is not substituted bug
  * Windows build system
     ** Workspaces reorganization



2002-04-26 CLAM 0.3.0-rel

  * General:
     ** CLAM code is now released under GPL license.
     ** MTG namespace becomes CLAM namespace
     ** All library macros have 'CLAM_' as prefix
     ** PARANOID support has been dropped.
     ** New error handling macros.
     ** More tests and examples
  * Dynamic Types:
     ** New DT macros
     ** AddAll, RemoveAll
     ** User init-methods: DefaultInit, CopyInit. Macro-expanded-init: 
        MandatoryInit
     ** InformAll, all dyn attributes are informed at construction time.
     ** SetPreallocateAllAttributes, to enhance time performance vs space 
        performance.
  * Basic Types:
     ** TypeInfo, a template class to get static information from a type.
     ** Complex, Polar and Point templates, have default template parameters.
     ** Point works with only one template parameter or two.
     ** Complex<>, Polar<> and Point<> have TypeInfo for TData instance
     ** BPF now allows setting the lateral derivatives.
     ** Array initializes numeric data to zero again.
  * Processing Data classes
     ** Most ProcessingDataConfig classes have been removed, and their 
        attirbutes are now in the processing data classes.
  * Processing classes
     ** Completed "EnvelopeExtractor", which calculates audio envelopes.
     ** Completed "EnvelopeModulator" class, which applies envelopes to audio.
     ** New MIDI input class.
  * XML:
     ** Dump and Restore deprecates dumpOn and restoreFrom
     ** Dump and Restore requires using the default XMLStorage constructor
     ** XML Load for any DynamicType using the new macros
     ** XML Load for Arrays, BPFs...
     ** Some XML Store formats changed to allow Loading: Array, BPF,
  * Documentation
     ** The documentation has been updated with all the changes in the 
        library.
  * Visualization Module( GUI )
     ** Major reworking of most of GUI classes
     ** Model-View-Presentation Architecture introduced
     ** Automatic Generic Snapshot Generation first attempt. It works for 
        sure for Spectrum's, Audio's and Segment's.
     ** New GUI folder organisation: now it contains several subfolders
        *** src/GUI/Core - Visualization Module Core Classes
        *** src/GUI/GL - OpenGL renderers
        *** src/GUI/View - Set of actually implemented System Views ( Views 
            Processings and PDs offered by CLAM )
        *** src/GUI/Presentation - Set of presentations for representing 
            standard CLAM concepts ( Processing's and PDs )
        *** src/GUI/Widget - Some custom widgets, as well as wrappers for 
            different Toolkits
        *** src/GUI/Util - Miscellaneous stuff
     ** Some old snapshots have been eliminated and is a TODO to port them to 
        the new interface
  * Unix build system
     ** New configure arguments to set some compilation flags.
     ** External library dependencies can be tuned with autoconf.
  * Windows Build system:
     ** More reliable projects have been provided
     ** Tests projects now share .obj files between them, thus making faster 
        the build process

2002-04-19 CLAM 0.2.2-rel

  * DynamicType class:
     ** Dynamic type accessor checks are now only done in debug mode.
  * Spectrum class:
     ** Removed again the old kludge for BPF self-references, and a related 
        memory leak.
     ** Updated obsolete assertion condition macros.
     ** Fixed bug in SetType/Configure logic.
  * Audio class:
     ** Added silence initializations.
     ** Added optimisation flag to chunk getters.
     ** Added chunk setters.
  * AudioFile classes
     ** New configuration fields: SampleRate and Channels.
     ** Both mono and stereo Do() methods are now available.
     ** Improved error handling.
  * Array class:
     ** GetPtr has now a pure-const and a non-const versions.
     ** Fixed the STL implementation so that it compiles again.
     ** Implementing stream operators for your objects is no more needed if 
        you don't want to use XML.
  * BPF class:
     ** Fixed a couple of initialization bugs.
  * Updated the documentation index with a new reference.
  * Time machine project:
     ** Added spectral analysis and synthesis related classes.
  * Build system:
     ** Added some VisualStudio projects for new tests.
     ** _DEBUG flag is now set by default in unix.
  * Documentation:
     ** Added Flow Control and Nodes design documents.
     ** Added doc about binary libraries in CVS.
     ** Updated versions of the Documentation index, the ErrorHandling 
        document and the User tutorial.


2002-02-27 CLAM 0.2.1-rel

  * Array class:
     ** Changed the Resize/SetSize semantics, fixing some remaining bugs. 
        This has important consequences:
        *** Order is now important! Do Resize() first, then SetSize().
        *** You need to do SetSize() with a proper value before trying to 
            access an element in the array.
     ** Added a STL based implementation (_MTG_USE_STL_ARRAY flag)
     ** Empty arrays do not dump an "Empty" string when Storing.
     ** Improved the tests.
  * FFT_rfftw/IFFT_rfftw classes:
     ** Fixed memory leak in destructors.
  * Audio, Spectrum, WindowGenerator, BPF, TestSpectrum, Envelope, 
    EnvelopeExtractor, TestSpectrum 
     ** Fixed Array SetSize/Resize calls order.
  * Assertion and Error classes and functions, in files Assert.hxx, 
    Assert.cxx, Err.hxx, Err.cxx:
     ** C string arguments are now const, fixing compilation errors.
  * DynamicType:
     ** Fixed memory leak in destructor.
  * XMLArrayAdapter and XMLAdapter classes:
     ** Removed the extraction operator. This temporarily fixes some 
        compilation errors.
  * Unix build system:
     ** Added automatic make tests target.

2002-02-20

  * Array class:
     ** Fixed bug which caused data corruption when two consecutive Resizes 
        with the same argument where called.
     ** Fixed wrong InsertElement initialization when mInitElems flags is 
        false
  * SpectralPeak class:
     ** Fixed wrong REGISTER_NUM_ATTRIBUTES which caused dynamic type 
        inconsistencies.
  * Updated the GUI Snapshot code.

2002-02-19 CLAM 0.2.0-rel

  * Array class:
     ** Fixed bug in memory reallocation and movement.
     ** Added speciiallization macro for fast implementation.
     ** TestArray is now an autotest.
  * Audio class:
     ** Fixed size modification bug (Thx, Gunter!).
  * Segment class:
     ** Fixed lost references bug (replacing Array with List)
  * Spectrum class:
     ** Removed a performance bottleneck in the data synchronization routines.
  * AudioIO classes
     ** Some more error condition checks.
     ** Added underrun/overrun recovery mechanism.
  * List class
     ** It is now tested and working.
  * Changes in the Documentation:
     ** Updated doxygen generation configuration.
     ** Updated coding recomendations.
  * Other:
     ** Fixed minor compilation problems in several source files.
     ** Fixed some missing binary dependencies in the UNIX build system.


