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.
create values for the intervals to be used in Shepard-based sounds, along with the corresponding amplitude levels for the sound's components.
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. |
interval and amplitude values based on Shepard formula.
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;
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. |
Array of [num, num] kr signals for interval and amplitude values.