CLAM ChangeLog 2006-02-07 CLAM_0_90_0 'New multiplatform build-system, fancy applications and interconnectivity' * 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. o 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 can be easily created by just providing the path to a valid network xml file. * VST Plugins (Mac/Windows): A generic plugin that embeds a network can be easily created by just providing the path to a valid network xml file. * OSC (Open Sound Control): A network (for instance from the Network Editor) can now send an receive OSC messages and interconnect to other applications that follow this protocol. * 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 o Spectrogram (Color,Black&White) o Improved player: audio and fundamental frequency o More suitable dialogs to configure projects * NetworkEditor + New callback audio-driving mode. This allow different modes (specified as command line options) o Jack client mode (not in Windows) o PortAudio mode o Blocking mode * Annotator + New segment editor: o Different annotation restrictions depending on the schema. Right now: # Continuous segmentation (no gap) # Discontinous segmentation (gaps but not overlaps) o Consistent dragging o Tooltips are faster to appear o Tooltips say just the position of the hovered element instead the cursor position. o 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 * Spectral Analysis Synthesis + FFTOoura: o By defining a compilation flag, FFTOoura can be choosen instead of fftw by default o FFTOoura is now also implemented in the inverse FFT process 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: o It uses the widget names and classes to Automagically relate widgets to processings, ports and controls. o Binds sliders, knobs and so to in-controls on the network o Binds monitoring plots to out-ports on the network o Binds buttons to play/stop actions on the network * QtPlots add-ons: + Editable segmentation marks on all the plots + QtSpectrogram: o Plot to view sonogram (Color/B&W) + BPFEditor: o 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): o 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): o 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++) o Unification of the way XmlStorage interfaces the library dependant code. o 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' etc.