You are here

Analysis, Transformation and Synthesis (ATS)

Jump To:

Overview

Analysis, Transformation and Synthesis (ATS) is a spectral modeling system based on a sinusoidal plus critical-band noise decomposition. The system can be used to analyze recorded sounds, transform their spectrum using a wide variety of algorithms and resynthesize them both out of time and in real time.

Psychoacoustic processing informs the system's sinusoidal tracking and noise modeling algorithms. Perceptual Audio Coding (PAC) techniques such as Signal-to-Mask Ratio (SMR) evaluation are used to achieve perceptually accurate sinusoidal tracking. SMR values are also used as a psychoacoustic metric to determine the perceptual relevance of partials during analysis data postprocessing. The system's noise component is modeled using Bark-scale frequency warping and sub-band noise energy evaluation. Noise energy at the sub-bands is then distributed on a frame-by-frame basis among the partials resulting in a compact hybrid representation based on noise modulated sinusoidal trajectories.

Originally implemented in LISP, using the CLM sound synthesis and processing language, ATS has been ported to C in the form of a spectral modeling library. This library, called ATSA, implements the ATS system API which has served as foundation for the development of the ATSH graphic user interface. Written in GTK+, ATSH not only provides user-friendly access to the ATS analysis/synthesis core but also graphic data editing and transformation tools. ATS interfaces for SuperCollider, Csound and PD have also been developed.

ATS software is distributed in open-source format. SuperCollider interfaces for ATS (including classes to read ATS files as well ad UGens to do transformation and synthesis) are part of the SuperCollider standard distribution. ATS (ATSA/ATSH) is also part of the Planet CCRMA Linux distribution.

ATS Theory

The attached PDF file provides a detailed description of the ATS system.

ATS: Sound Analysis Transformation and Synthesis Based on a Sinusoidal plus Critical-Band Noise Model and Psychoacoustics (PDF)

See also: Spectral analysis based synthesis and transformation of digital sound: the ATSH program, Oscar Pablo Di Liscia, Juan Pampin

and more in Publications.

ATS LISP

ATS first implementation was written by Juan Pampin in LISP using the CLM sound synthesis and processing language. This version of ATS is still available and is probably the most powerful interface to edit or transform data algorithmically. Spectral data is accessible through a library of LISP functions, many complex transformation algorithms are available which can be extended via macros or new functions. Multiple ATS data files can be loaded into the ATS LISP environment and hybridizing operations can create new sounds by merging their data. After being edited or transformed, data can be saved to ATS binary files (these files can be then read by the ATSH GUI) or synthesized using CLM.

ATSA

ATSA is a library of C functions implementing the ATS system's API. ATS's peak detection, peak tracking, and psychoacoustic processing algorithms are available in the API, as well as residual analysis and noise modeling tools. ATSA can be compiled in many platforms and uses the sndlib library to read and write many types of sound files.

ATSH

ATSH is a graphical user interface for the ATS system. ATSH has been written in GTK+ using the ATSA library API. ATSH can display ATS information in many different ways, it provides a user-friendly interface to the the analysis/synthesis core of ATS as well as a variety of editing and transformation functions.

Interfaces

Interfaces to read and synthesize ATS data have been developed for SuperCollider, Csound and PD. These interfaces read spectral data form ATS binary files, and could serve as models for developing plugins or UGs for other synthesis languages.

ICMC 2004 paper about ATS user interfaces (PDF)

SuperCollider

Interfaces for ATS (including classes to read ATS files as well ad UGens to do transformation and synthesis) are included in Josh Parmenter's UGen library, JoshUGens, distributed in the sc3-plugins package for SuperCollider.

PureData

Pablo Di Liscia's Pure Data Binaries and Toolkit

CSound

FLOSS CSound manual, see Distributions

Grow your own

ATS binary file format – More detailed information on file format, techniques, etc. can be found in this FLOSS CSound manual (though there is information here that is applicable to any ATS interface).

Analysis and Synthesis Techniques

The reader is directed to this FLOSS CSound manual for useful techniques on analysis and resynthesis, which are general applicable to any ATS interface.

Publications

(from Abstract) This paper deals both with the ATS (analysis, transformation and synthesis) technique and with a graphic application developed to handle it, the ATSH program.

ATS File Format

A basic rundown of the file format is here, though a more in-depth breakdown can be found in the FLOSS CSound manual.

ATS Distribution

Main Distribution

Project current repository at GitLab

LISP

ATS LISP sources (the latest CLM-2 is required to compile this version of ATS)

ATSH Windows

ATSH Windows binaries (mantained by Oscar Pablo Di Liscia)

SuperCollider

SuperCollider interfaces for ATS (includng classes to read ATS files as well ad UGens to do transformation and synthesis) are included in Josh Parmenter's UGen library, distributed in the sc3-plugins package for SuperCollider

PureData

Pablo Di Liscia's Pure Data Binaries and Toolkit

Linux - Planet CCRMA

ATS (ATSA/ATSH) is also part of the Planet CCRMA Linux distribution

ATS Team

  • Juan Pampin, head researcher and project director
  • Oscar Pablo Di Liscia, ATSH GUI design and development
  • Josh Parmenter, SuperCollider modules development
  • James Hughes, C library development
  • Former members of the team:
  • Johnathan Lyon, Python modules development and general research
  • Pete Moss, application development and package administrator
  • Alex Norman, Csound/PD interfaces development and transient modeling research

ATS Users

 Here is a list of ATS users (far from being complete, but a good sample of the system's users pool).