Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

Loris::Sieve Class Reference

A Sieve eliminating temporal overlap among Partials. More...

#include <Sieve.h>

List of all members.

Public Member Functions

 Sieve (double partialFadeTime=0.001)
 Construct a new Sieve using the specified partial fade time.

template<typename Iter> void sift (Iter sift_begin, Iter sift_end)
 Sift labeled Partials on the specified half-open (STL-style) range.


Static Public Member Functions

template<typename Iter> void sift (Iter sift_begin, Iter sift_end, double partialFadeTime)
 Static member that constructs an instance and applies it to a sequence of Partials.


Detailed Description

A Sieve eliminating temporal overlap among Partials.

Class Sieve represents an algorithm for identifying channelized (see also Channelizer) Partials that overlap in time, and selecting the longer one to represent the channel. The identification of overlap includes the time needed for Partials to fade to and from zero amplitude in synthesis (see also Synthesizer) or distillation. (see also Distiller)

In some cases, the energy redistribution effected by the distiller (see also Distiller) is undesirable. In such cases, the partials can be sifted before distillation. The sifting process in Loris identifies all the partials that would be rejected (and converted to noise energy) by the distiller and assigns them a label of 0. These sifted partials can then be identified and treated sepearately or removed altogether, or they can be passed through the distiller unlabeled, and crossfaded in the morphing process (see also Morpher).

See also:
Channelizer, Distiller, Morpher, Synthesizer


Constructor & Destructor Documentation

Loris::Sieve::Sieve double  partialFadeTime = 0.001  )  [explicit]
 

Construct a new Sieve using the specified partial fade time.

If unspecified, the fade time defaults to one millisecond (0.001 s).

Parameters:
partialFadeTime is the extra time (in seconds) added to each end of a Partial to accomodate the fade to and from zero amplitude. Default is 0.001 (one millisecond). The Partial fade time must be non-negative.
Exceptions:
InvalidArgument if partialFadeTime is negative.


Member Function Documentation

template<typename Iter>
void Loris::Sieve::sift Iter  sift_begin,
Iter  sift_end,
double  partialFadeTime
[static]
 

Static member that constructs an instance and applies it to a sequence of Partials.

Construct a Sieve using the specified Partial fade time (in seconds), and use it to sift a sequence of Partials.

Parameters:
sift_begin is the beginning of the range of Partials to sift
sift_end is (one-past) the end of the range of Partials to sift
partialFadeTime is the extra time (in seconds) added to each end of a Partial to accomodate the fade to and from zero amplitude. The Partial fade time must be non-negative.
Exceptions:
InvalidArgument if partialFadeTime is negative.
If compiled with NO_TEMPLATE_MEMBERS defined, then begin and end must be PartialList::iterators, otherwise they can be any type of iterators over a sequence of Partials.

template<typename Iter>
void Loris::Sieve::sift Iter  sift_begin,
Iter  sift_end
 

Sift labeled Partials on the specified half-open (STL-style) range.

Parameters:
sift_begin is the beginning of the range of Partials to sift
sift_end is (one-past) the end of the range of Partials to sift
If compiled with NO_TEMPLATE_MEMBERS defined, then sift_begin and sift_end must be PartialList::iterators, otherwise they can be any type of iterators over a sequence of Partials.


Generated on Thu Apr 14 22:01:56 2005 for Loris by doxygen 1.3.4