CDP can extract pitch data from the time-varying spectrum, if the sound is pitched (contains harmonic frequencies). Pitch files can then be manipulated in various ways, before being re-synthesised.
Pitch can be extracted either as a binary pitch file or a breakpoint file, which can be altered visually in Soundshaper's Graph-Edit, given data reduction etc., and can also provide useful profiles for controlling other processes, such as changing the dynamic contour to match a rise and fall in pitch.
Breakpoint file of extracted pitch from
three notes (A-G-F) of sung plainchant.
To re-sythesise sound, the pitch file is combined with a formant file (.for formant files extract the time-varying spectral envelope of a sound see MORPH/FORMANTS). Typically this might come from a different sound. However, it's important to realise that:
- changes to pitch data will only succeed to the extent that the frequencies of the altered pitches are also present (i.e. strong or weak) in the formant file.
- the dynamic profile will be entirely that of the formant file.
It can often be useful to use a formant file taken from a noise-like sound, or one created from a mix of multiple transpositions, to ensure that the desired pitches are present at sufficient strength.
- GetPitch/GetPitchB extract pitch from a spectral file to either a binary pitch file (GetPitch) or a breakpoint text data file (GetPitchB). Soundshaper performs pitch extraction automatically in the background using current settings. The breakpoint file can be fully edited in Graph-Edit to change pitch or timings. Data reduction can also be performed in CDP's BrkEdit editor.
- Make combines a pitch file (.frq) with a formant file (.for) to create a spectral file that can be resynthesised back to sound (via PvocSynth). The success of this process depends on the presence in the formant file of the harmonics implied by the pitchfile's pitch: the amplitude of these harmonics in the formant file, at the time of the pitch in the pitch file, will determine the extent to which the pitch is heard in the combined file.
- 1FmtCombine combines pitch and single-moment-formants data to make a new spectral file.
- PchApprox makes a randomly varied copy of a pitch file, within a specified range of up to 96 semitones, and with timing variations up to the length of the file. Several of these resynthesized and mixed should give a natural chorus effect.
- PchExagg exaggerates the pitch contour. The interval from a mean pitch to the actual pitch is either stretched or shrunk, or both.
- PchInvert inverts the pitch contour around a given MIDI pitch. The choice is between mirror inversion, or using a mapping text file (in semitones) of intervals and their inversions. You can map intervals however you wish, including fractional (microtonal) MIDI values.
- PchQuant quantizes pitches in a pitch file. This matches some of the behaviour of "autotuning" programs, though not in real-time:
Extracted pitch quantized to exact MIDI values (from plainchant above)
- PchRand varies the pitch line randomly, with control over the pitch and time ranges and the slew: whether the upward range is more than the downwards, or vice-versa.
- PchShift is a simple constant-interval transposition of data in a pitch file.
- PchSmooth averages the pitch across the specified time-window and them interpolates from there to the next averaged time-frame. The mean pitch around which it is averaged is time-variable and could come from quantized pitch data
- PchVib adds vibrato to a pitch file.
- PchVowels is similar to spectral Vowels which imposes vowel formants on a sound. PchVowels imposes vowels on a pitch file, creating artificial speech-like sounds.
- PchGen generates a pitch file from a time and MIDI-pitch data file, which can be edited in Graph-Edit. The function is potentially extremely useful for the purposes of imposing pitch, when combined with a suitable formant file, especially a sound rich in partials such as a gong or cymbal.
- PchSynth synthesises a pitch-changing but timbrally static spectrum from a pitchfile, according to a given set of weighted harmonics. This can be vocoded with another sound to give it some dynamic life.
- PchToRatio: a Soundshaper function which converts a pitch breakpoint file (or any breakpoint file) to ratios of the initial pitch, giving a pitch contour for transposition. The varying pitch of one sound can then be imposed on another sound, using Transpose or Speed.
- PchCut extracts a segment of a pitch file.
- PchFix is a collection of pitch file utilities: Cut remove pitch between timepoints; Filter; Smooth onset errors and glitches; Force pitch to be some value at start/end; Interpolate through unpitched windows to produce pitch throughout.
- PchInterp interpolates from one pitched area to the next, replacing noise or silence.
- PchInsil inserts silence into a pitch file.
- PchUnpitch inserts unpitched areas (zeros) into a pitch file (.frq).
- NoisetoSil / PitchToSil: NoisetoSil converts unpitched areas of a pitch file (noise) to silence. PitchToSil does the same to pitched areas.
- PchtoBrk and PtoBrk convert a pitch file into a pitch breakpoint file. PchtoBrk produces an outline of the pitch (quite sufficient for many purposes); PtoBrk is much more detailed.
- BrktoPch converts a pitch breakpoint file to a pitch file.
- Combine/CombineB: these convert and combine the various pitch file-types: .frq (pitch file), .trn (transposition), .pch (breakpoint). They can also be used to impose one pitch or transposition profile on another.
The categories and function names are those used in Soundshaper. CDP program groups and names may be different.
The descriptions here are adapted from the Soundshaper manual and do not necessarily reflect the views of CDP Ltd.
For further details about CDP see the Composers' Desktop Project website.