|
|
|
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.
- 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
- 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
- Spectral Analysis Synthesis
- FFTOoura:
- By defining a compilation flag, FFTOoura
can be choosen instead of fftw by default
- 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:
- 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)
- 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
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_ values (in
packages.cfg), which is used by srcdeps to make
sure USE_ and HAS_ is consistent.
Using USE_=$(HAS_ 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_
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 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:
- Visualization Module:
- Bug that provoked Sinusoidal tracks to pop has
been fixed
- Bug that prevented some code to compile fixed
- Examples/NetworkEditor:
- 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 > )
- Processing Data:
- 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 jpg)
- 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:
- SpectralDelay:
- Stability and performance enhancements
- New filter control interface
- Dynamic Types:
- 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.
This html has been automatically generated
from the file ChangeLog.txt in the CVS
|
|
|
|