ECMC PVC example file twarp4-1 # ECMC pvc example twarp4-1 # The first 1.05 seconds of the analysis file is read forwards # and backwards, following the shape of the first half of a sine wave: # gen5 -L1000 .5 1. 0 | reshape -M1.05 > /$SFDIR/f1 # lower_time_boundary=$SFDIR/f1 # int, float or FUNC # upper_time_boundary=$SFDIR/f1 # int, float or FUNC # The output duration is increased to 5.82: # duration=5.84 # CHANGE the 0 to the desired output duration. # The analysis is read at 1/2 the original speed, since the 5.84 output # duration is double the input duration # The pitch is transposed down a major 7th: # pitch_transposition_in_semitones=-11 # int, float or FUNC # But 80 herz is added to all frequencies: # frequency_shift=80 # int, float or FUNC # The timbre is simplified by elimination of low amplitude higher frequency # components, and sounds rather muffled: # spectrum_warpshape_index=4 # The output gain is increased to compensate for amplitude attenuation # resulting from the processing: # gain_in_decibels=9 # int, float or FUNC # See also example "twarp4-2," which is identical to this example, but # also includes EQ parameters to boost higher frequencies and attenuate # lower frequencies #****************************************************** #......................TWARP .......................... # time varying reading of an analysis file previously created with pvcanal #****************************************************** # ******ECMC CHANGES & ADDITIONS: *************** #******** INPUT & OUTPUT SOUNDFILES ************* # input analysis file can be aiff or wave format on Linux, aiff only on SGI input_analysis_file=voicetestclip.pvc outputsf=twarp4-1 # output soundfile # can be aiff or wave format on Linux, aiff only on SGI outputformat=AIFF # for Linux only : specify AIFF or WAVE output format ### VERY IMPORTANT: Change the 0 below to the desired output duration. If this # duration does not match the duration of the analysis, time warping will result duration=5.84 # MUST BE CHANGED to desired output resynthesis duration # ********************* # ##### Cmusic function file generator tempates ##### # gen5 -Llength h1 a1 p1 ... hN aN pN gen5 -L1000 .5 1. 0 | reshape -M1.05 > /$SFDIR/f1 ##### End of gen routine function generator tempates ##### #...................................................... output_data_format=1 # 0 (default) = Same as input file, no input file reverts to integers # 1 = integers 2 = floats ; normally set to 0 or 1 for integer output #====================================================== #*** ANALYSIS PARAMETERS ****************************** windowsize=0 # 0 will automatically set window to 2*FFT size or larger window_type=2 # window type: 0 = Hamming,1 = rectangular, 2 = Blackman (DEFAULT), # 3 = Bartlett triangular, 4-12 = Kaiser windows for alpha = 4-12 # generally recommended: 2 or 8 frames_per_second=200 # Set the frame rate to a value >= the frame rate used in the analysis. # Lesser frame rates create loss of amplitude and phasiness. # Default for both pvcanal and twarp is 200 #====================================================== #*** RESYNTHESIS PARAMETERS *************************** #........... OUTPUT CHANNEL(S) ....................... output_channel=0 # (channels are numbered from 1 to maximum; 0 = resynthesize all channels #.............OSCIL THRESHOLD ........................ oscillator_resynthesis_threshold_in_dB=-80 # usually -60 to -80 #****************** MODIFICATIONS ********************* #.................. AMPLITUDE OUTPUT in dB .......................... gain_in_decibels=9 # int, float or FUNC #.................. PITCH ............................. frequency_shift=80 # int, float or FUNC pitch_transposition_in_semitones=-11 # int, float or FUNC #................ AMPLITUDE & FREQUENCY ENVELOPE RESPONSES ................. attack_time_in_seconds=0 # amplitude # int, float or FUNC release_time_in_seconds=0 # amplitude # int, float or FUNC frequency_change_response_time_in_seconds=0 # frequency # int, float or FUNC #====================================================== #**************** DATA TIME ************************** # Controls time varying reading of the analysis file DATA_access_mode__explicit_0__rate_1=0 # 0 = explicit, 1 = rate # In rate mode, set time_point to initial position & use rate_multiplier to # control speed at which analysis file is read (1 = original speed) # In explicit mode, control time_point with a function. # (Rate_multiplier is nonfunctional in explicit mode.) time_point=0 # int, float or FUNC rate_multiplier=1 # any value here will have no effect, since explicit mode is used #...................................................... lower_time_boundary=$SFDIR/f1 # int, float or FUNC upper_time_boundary=$SFDIR/f1 # int, float or FUNC #(upper time < 0 defaults to file duration) #.....AUTOSTOP ........................................ autostop_on_1__off_0=1 # When on (1) , this will terminate synthesis if a boundary is crossed. #......TIMEPOINT DITHER ............................... timepoint_dither_window_in_seconds=0 time_point_change_response_time_in_seconds=0 # Unless you want flanging, time_point_change_response_time should typically # be set to between .01 and .05 #****************************************************** #********** SPECTRUM MODIFICATIONS ******************** #****************************************************** #............ SPECTRUM WARPSHAPE ...................... spectrum_warpshape_index=4 # int, float or FUNC # neg. values increase brightness, positive values descrease brightness #............. SPECTRUM COMPRESSION ................... spectrum_compression_threshold_in_decibels=-0 spectrum_decibels_of_compression=-0 #............. RANDOM AMPLITUDE VARIATION ............ random_amplitude_variation_decibel_floor=-0 # int, float or FUNC amplitude_variation_response_time_in_seconds=0 # int, float or FUNC #====================================================== #************** LOW/HIGH SHELF EQ ********************* LOW_SHELF_EQ_gain_in_decibels=-0 # int, float or FUNC to boost or cut low frequencies LOW_SHELF_EQ_frequency=40 # int, float or FUNC HIGH_SHELF_EQ_gain_in_decibels=-0 # int, float or FUNC to boost or cut high frequencies HIGH_SHELF_EQ_frequency=60 # int, float or FUNC #====================================================== #............ RESCALE for floating point only................. rescale_level_in_decibels=0 # set to 1 to rescale to peak of input file; do not do this if input amplitude # is low #************ AMPLITUDE STATISTICS ******************** print_amplitude_statistics_0_no__1_yes=1 # use 0 to turn off amplitude display amplitude_statistics_time_interval=.25 #====================================================== # COMMAND LINE SETUP -- OFFICE USE ONLY (DO NOT WRITE BELOW THIS LINE EXCEPT TO DELETE FUNCTION FILES AT VERY END) #==================================================== # SYNTHESIS PVCDIR=/usr/local/soundapps/PVC PVCBIN=$PVCDIR/bin pvroutine=$PVCBIN/twarp # ECMC cd $SFDIR # ECMC if [ "$OSTYPE" = "irix" ] then input_file=pvcin # ECMC temporary NeXT format input soundfile output_file=pvcout # ECMC temporary NeXT format output soundfile /sbin/rm -f pvcin pvcout # Create temporary NeXT format input soundfile "pvcin:" ECMC /usr/local/bin/sox -t aiff $inputsf -t au pvcin # ECMC elif [ `echo "$OSTYPE" | grep linux` ] then input_file=$inputsf output_file=$outputsf fi # ****** end of ECMC changes & additions ****** # pvroutine=twarp PVFLAGS="\ \ -M$windowsize \ -w$window_type \ -D$frames_per_second \ -d$duration \ \ -a$frequency_shift \ -P$pitch_transposition_in_semitones \ -A$gain_in_decibels \ \ -C$output_channel \ -t$oscillator_resynthesis_threshold_in_dB \ \ \ -F$input_analysis_file \ \ -u$DATA_access_mode__explicit_0__rate_1 \ -Q$time_point \ -Y$rate_multiplier \ -g$lower_time_boundary \ -G$upper_time_boundary \ -T$timepoint_dither_window_in_seconds \ -K$time_point_change_response_time_in_seconds \ \ -L$release_time_in_seconds \ -l$attack_time_in_seconds \ -f$frequency_change_response_time_in_seconds \ \ -W$spectrum_warpshape_index \ \ -b$random_amplitude_variation_decibel_floor \ -e$amplitude_variation_response_time_in_seconds \ \ -E$spectrum_compression_threshold_in_decibels \ -c$spectrum_decibels_of_compression \ \ -H$LOW_SHELF_EQ_gain_in_decibels \ -m$LOW_SHELF_EQ_frequency \ \ -X$HIGH_SHELF_EQ_gain_in_decibels \ -R$HIGH_SHELF_EQ_frequency \ \ -p$print_amplitude_statistics_0_no__1_yes \ -i$amplitude_statistics_time_interval \ \ -S$autostop_on_1__off_0 \ \ -_$output_data_format \ -=$rescale_level_in_decibels \ \ \ " echo "\n$pvroutine $PVFLAGS $output_file" ; $pvroutine $PVFLAGS $output_file ; # ***** ECMC CHANGES & ADDITIONS: ******* # if [ "$OSTYPE" = "irix" ] then echo 'Converting temporary NeXT format output soundfile to aiff format:"' /usr/local/bin/sox -t au pvcout -t aiff $outputsf # ECMC /sbin/rm -f pvcin pvcout # ECMC echo "Header information for output soundfile >> $outputsf << :" /usr/sbin/sfinfo -s $outputsf # ECMC elif [ `echo "$OSTYPE" | grep linux` ] then if [ "$outputformat" = "AIFF" ] then echo " Converting output soundfile $output_file to AIFF format ..." /usr/local/soundapps/PVC/bin/wav2aiff $output_file fi echo "Header information for output soundfile >> $outputsf << :" /usr/local/bin/sfinfo -s $outputsf fi # ****** end of ECMC changes & additions ****** # # If you have created any gen function files above delete them below: rm $SFDIR/f1