ECMC PVC example file twarp6
ECMC PVC soundfile example >> /sflib/x/twarp6 << :
Soundfile /sflib/x/twarp6 mixes 6 source soundfiles together in succession
twarp6-1, twarp6-2, twarp6-3, twarp6-4 and twarp6-5
in order to illustrate some applications of time point dithering, or random deviations introduced in reading an analysis file. This can be used for many purposes : sometimes slight dithering can eliminate artifacts or an "artificial" quality when time stretching a sound. It can also be used for phasing/flanging effects, for granularization of a sound (slicing and dicing it into fragments), to alter the tempo, and for other creative purposes.

In /sflib/x/twarp6, the 5 source soundfiles (twarp6-1 through twarp6-5), each 4.39 seconds in duration, are separated by temple block hits so that you can more easily distinguish the starting points of these source soundfiles.


Example /sflib/x/twarp6-1, heard first in twarp6, contains no dithering, but rather acts as a reference or "source" for the subsequent alterations. The analysis file used is voicetest.clip, created by ECMC examples file pvanalysis.voicetest The output duration is increased to 4.38 seconds
duration=4.38 # MUST BE CHANGED to desired output resynthesis duration

Reading of the analysis file:
Autostop is turned OFF so that when we reach the end ofthe analysis file twarp will loop beack to the beginning of the analysis and resynthesis will continue

autostop_on_1__off_0=0 # AUTOSTOP IS TURNED OFF TO ENABLE LOOPING
In contrast to earlier twarp examples, "rate" mode rather than "explicit" mode is used to control the rate at which the analysis is read:
DATA_access_mode__explicit_0__rate_1=1 # 0 = explicit, 1 = rate

Reading of the analysis file begins half way through the file and the speed is raised by 1/3

time_point=.5 # int, float or FUNC
rate_multiplier=1.33
Within the 4.38 second output duration the analysis loops 3 and a half times

Finally , a gen function file controls the pitch, which begins 3 semitones lower than the original, glissandos up to 4 semitones higher than the original, then slides down to 1 semitone above the original:

gen1 -L1000 0 -3 .6 4. 1. 1. > $SFDIR/pitchfunc
pitch_transposition_in_semitones=$SFDIR/pitchfunc # int, float or FUNC

The other 3 examples (twarp6-2 through twarp6-5) heard in succession within /sflib/x/twarp6 are identical to example twarp6-1 (the first note) in every way except that different types of dithering are applied. ------------------------------------------------------------------------- In example twarp6-2 (the second note) slight dithering (random jitter) is introduced in reading the analysis file. Every 8 milliseconds (.008) the reading of the analysis varies randomly by an amount somewhere in between + or - 25 milliseconds (.025)
timepoint_dither_window_in_seconds=.025 #
time_point_change_response_time_in_seconds=.008 #
These small values introduce hesitations and random (though brief, and rather subtle) increases and decreases in tempo (accerlandi and rallendtandi)
In example twarp6-3 (the third note) rapid, wide dithering is used. The reading of the analysis can vary by _/- a half second, and is varied every 50 milliseconds:
timepoint_dither_window_in_seconds=.5
time_point_change_response_time_in_seconds=.05

The result of this rapid, fairly wide skipping around within the analysis file is granualarization of the original sound. Higer frequencies also tend to be exaggerated. (If we don't want this, we could adjust the two HIGH_SHELF_EQ parameters, reducing these higher frequencies.)


In example twarp6-4 (the fourth note) illustrates slow dithering: timepoint_dither_window_in_seconds=.05 time_point_change_response_time_in_seconds=.2 Every .2 seconds the time point withinthe analysis file is varied randomly by a value somewhere between +/- .05 seconds. The result is rather surprising, slowing down the tempo .
Example twarp6-5 (the fifth note) is similar to twarp6-4 but the dithering is more extreme:
timepoint_dither_window_in_seconds=.2
time_point_change_response_time_in_seconds=.5

The result is much "hesitation," "hesitation" and "stuttering" With all of this back-and-forth jitter, only a portion of the analysis file is read within the 4.38 second output duration