2003-03-12 CLAM_0_4_3 'Fast clean up' * DynamicTypes: ** Fix: Definition of DynamicTypes on foreign namespaces leaded to compilation problems if you don't use the ugly 'using namespace CLAM;'. * 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) * Examples: ** Fix: The Tutorial4 didn't compile (used Complex in a old fashioned way). * XML: ** Obsoleted constructor receiving the root tag as parameter ** Obsoleted _restoreFrom and dumpOn, use Dump and Restore instead ** New method XMLStorage::UseIndentation to enable pretty XML formatting 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 > ) * 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. 2001-02-07 development-root cuidado-root salto-root time_machine-root * Branches created.