Shepard:
Filter:
Classes (extension) | UGens

Shepard : Object
ExtensionExtension

create interval and amplitude values for Shepard pitch illusions
Source: Shepard.sc
Subclasses: ShepardG

Description

The Shepard effect is the illusion of freely changing the chroma of a tone (the octave-independent notion of its pitch; in equal temperament, also called the pitch class), while keeping its perceived tone height apparently constant, or even moving it in the opposite direction. It is named after Roger Shepard, who first presented a discrete pitch scale with this effect - see http://en.wikipedia.org/wiki/Shepard_tone.Jean-Claude Risset famously created a glissando variant of this scale which he used in several pieces.

This effect relies on the perceptual fusion of pitches at octave distances into a single pitch of rather ambiguous octave 'height', and manipulating the amplitudes of the individual components such that the overall balance of the different octaves creates the desired average pitch height perception.

Class Methods

Shepard.new(num: 5, interval: 12, shift: 0, ampExp: 2, masterPhase: 0)

create values for the intervals to be used in Shepard-based sounds, along with the corresponding amplitude levels for the sound's components.

Arguments:

num

the number of interval and amplitude controls to generate. Default value is 5.

interval

the interval between two adjacent interval controls. Default value is 12 for pitch fusion at the octave interval, as in the classic Shepard experiment. (Other values will create less fusion, but may be interesting to experiment with.)

shift

the amount by which pitch height is shifted up or down without changing pitch class. Can be used to glide up in octaves without apparent glissando. Best understood by trying.

ampExp

the amplitude function is a cosine function, with an exponent to change window width.

masterPhase

for which position in the rotating loop to create values.

Returns:

interval and amplitude values based on Shepard formula.

Shepard.kr(num: 5, slope: 0.02, interval: 12, shift: 0, ampExp: 2)

create controls for the intervals to be used in Shepard-driven sounds, along with the corresponding amplitude controls for the sound's layers. num, interval, shift, ampExp work as in new;

Arguments:

num

as above, the number of interval and amplitude controls. Default is 5.

slope

the slope by which the Shepard controls rise or fall. E.g. 0 is constant pitch class; 0.1 means once thru the cycle of <num> values in 10 seconds, rising; -0.2 is once thru the cycle of <num> controls falling in 5 seconds. Default value is 0.02.

interval

as above, the interval between two adjacent interval controls. Default is 12.

shift

as above, the amount by which pitch height is shifted up or down without changing pitch class.

ampExp

the amplitude function is a cosine function, with an exponent to change window width.

Returns:

Array of [num, num] kr signals for interval and amplitude values.

Inherited class methods

Instance Methods

Inherited instance methods

Examples