OpenMusic

Visual Programming | Computer-Assisted Composition

Navigation : Previous | Next

Sound Processing Functions

Contents

  1. General Principles
  2. Processing Functions
  3. Cascading Processes
  4. Automating Processing

There exist a number of functions allowing to manipulate sound and audio data. A number of them are based on the underlying LibAudioStream library functionalities.

General Principles

The LibAudioStream library used by OM manipulates sound resources under the form of “ streams “. Streams can be seen as abstact pointers representing a sound and possible transformations. In OM the LibAudioStream streams are embedded in a structure called SOUND-DATA.

The SOUND-MIX function creates a SOUND-DATA pointer corresponding to the mix
of two sounds.

The SOUND-MIX function creates a SOUND-DATA pointer corresponding to the mix of two sounds.

—|—

SOUND-DATA pointers can eventually be rendered and converted back to sound file using the SAVE-SOUND function.

SOUND-SAVE saves the result of SOUND-MIX into a new sound file. The new
file is loaded in a SOUND box.

SOUND-SAVE saves the result of SOUND-MIX into a new sound file. The new file is loaded in a SOUND box.

—|—

Processing Functions

Below are listed the available sound processing functions. They all produce SOUND-DATA pointers.

See the individual box documentation (press d) for more detailed descriptions.

Cascading Processes

The sound processing tools can also apply directly on SOUND-DATA pointers. It is therefore possible to apply sequences and combinations of effects and processes without using intermediary files.

SAVE-SOUND can be used eventually to store the final sound result in a sound file.

Cascading Sound Processing : An Algorithmic “Montage”

This example implements the following process :

—|—

Automating Processing

The different programming facilities provided in OM (iterations, etc.) might be useful to automate sound processing on sound files and SOUND-DATA pointers.

REDUCE, MAPCAR…

In this example, we use higher-order functions in order to process lists of sound files and pointers.

(More advanced processed could be imagined, and implemented with abstractions or using an omloop).

—|—

See also

References :

Contents :

Navigation : Previous | Next