[linux-audio-dev] CLAM 0.90 Released

From: Pau Arumi <parumi@email-addr-hidden>
Date: Thu Feb 09 2006 - 15:02:12 EET

  Wed Feb 8 2006 CLAM 0.90 Released

ŽNew multiplied build-system, fancy applications and inter-

     What is CLAM?
     CLAM is a framework for research and application development
     in the Audio and Music Domain. It offers a conceptual model
     as well as tools for the analysis, synthesis and processing
     of audio signals.

We are glad to announce that our new 0.90 release is already
available at our (also brand new) website: http://clam.iua.upf.edu.
This release represents a big step forward to our soon to come
first stable 1.0 release and includes major improvements.

For the first time the CLAM framework and all related applications
are available in binary form for all major platforms: deb packages
are provided for Ubuntu/Debian GNU/Linux, dmg images for Mac OSX
and setup executables for Windows. This change has represented a
complete but necessary (and painful!) rework of our build system,
which is now based on small binary libraries and uses Scons as
the build tool. We expect it to reduce drastically the complexity
of the compilation and installation of clam applications for the

Other major improvements include a complete rework of the SMSTools,
application GUI, which is now based on Qt, as well as many
additions to the Annotator app.

A CLAM Network can now also become an Open Sound Control (OSC)
node, opening up the possibility of interconnection to external
applications. In the 'Application Prototyping' chapter we'd like
to mention that we have also added complete tools to create both
VST and LADSPA plugins out of a previously designed network.
It is also worth noticing the possibility of creating stand-alone
applications with a GUI created using the great Qt-designer and
the CLAM Qt-plugins. Such standalone applications can behave
either as a Jack client (for GNU/Linux and Mac OSX) or use audio
backends like alsa or Portaudio.

Please read these and other improvements in the attached changelog
and visit our website and/our mailing list for further announcements.

Although we are continuing to work toward the 1.0 release and we
expect to come up with new improvements soon, we hope all these
additions already convert the framework into a more usable and
useful tool and, as always, we expect as much feedback as possible
from all our users.

The CLAM team

                                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
          + 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)
          + 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
          + 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
          + 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
               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
                    # 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,
                    # XmlStorage::RestoreFromFragment(object, path,
                    # 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} ->
     * 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'

Received on Thu Feb 9 16:15:04 2006

This archive was generated by hypermail 2.1.8 : Thu Feb 09 2006 - 16:15:04 EET