ECMC pvc example "plainpv6," which illustrates use of time varying functions applied to both pitch and spectral warp index, is a mix of two soundfiles, each with one tone, created by the following two example scripts:
(1) plainpv6-1, in which the source soundfile isand
(2) plainpv6-2 , in which the source soundfile wasTo display one of these two script files, type
(1) input soundfile:
(2) gen functions
Two functions are created, the first to control spectral warp index,
the second to control pitch:
(3) time warping: the duration of the input soundfile is stretched by 50 % :# gen3 -Llength v1 v2 ... vN gen3 -L1000 5 5 -5 -5 5 > $SFDIR/spectrumfunc # gen4 generates exponenetial segments; "a" values determine shape & # depth of curve: 0 = linear, neg. = exponential, pos. = inverse expo. # gen4 -Llength t1 v1 a1 ... tN vN gen4 -L1000 0 -2 1 \ .25 -2 1 \ .5 4 1 \ .8 4 1 \ 1 2 > $SFDIR/pitchfunctime_expansion_contraction_factor=1.5(4) Time varying changes in the spectral warping are produced by the spectrum warpshape function. At the beginning & end of the note the wewaker partials are attenuated, "simplifying" the timbre. In the middle of the note, the weaker (higher) partials are boosted in intensity, creating a "brighter," more nasal timbre:spectrum_warpshape_index=$SFDIR/spectrumfunc # int, float or FUNC(4) The output pitch begins a major second below the original pitch, glisses up to a major third higher than the original pitch, then at the end of the note gliss down, ending a major second higher than the original pitch:pitch_transposition_in_semitones=$SFDIR/pitchfunc # int, float or FUNC(5) EQ is applied. Freqencies between 500 and 1200 herz are eliminated: FILTER_TYPE__0_bandpass__1_bandreject=1BRICKWALL_FILTER_window_low_frequency=500
Second "note" (the tambouring shake), produced by example script file "plainpv6-2:" All of the changes above are applied to sflib/perc/tamb.shake. File "plainpv6-2" is identical to file "plainpv6-1" except for the difference in input sound. Also, the output gain was modified in example "plainpv6-2" like this:
gain_in_decibels=-6 # in dB, int, float or FUNCto eliminate clipping by about 6 dB.
At the end of both scripts the line
rm $SFDIR/spectrumfunc $SFDIR/pitchfuncis included to delete the two function files.
To see the source files for "plainpv6-1" or "plainpv6-2" typepvcex plainpv6-1 or else getex plainpv6-1 pvcex plainpv6-2 or else getex plainpv6-2