ECMC PVC example file convolver3-2 # ECMC PVC example convolver3-2 illustrates usage of the Sound A and Sound B # panpot domain controls in convolver. These 2 parameters are raised from their # default 0 values to +4 : # Sound_A_panpot_domain_warp=4 # 0 # Sound_B_panpot_domain_warp=4 # 0 # When "morphing" from sound A to B or B to A through 0, which emphasizes # convolution and suppress the originals, if the value get much above or below # 0 we tend to hear mostly either Sound A or B, rather than the convoltion # Positive warp values like the 4 above "stretch" (emphasize) the convolution # and de-emphasize the original sounds. # Compare this example with example "convolver3-1". Tne two files are # identical in every respect except for the panpot_domain_warp values of 4 # in "convolver3-2" #****************************************************** #................... CONVOLVER ........................ #****************************************************** # ******ECMC CHANGES & ADDITIONS: *************** #******** INPUT & OUTPUT SOUNDFILES ************* # input soundfile, can be aiff or wave format on Linux, aiff only on SGI Sound_A_input_soundfile=/sflib/string/vc.gs2 Sound_B_input_analysis_file=fl.c4.pvc outputsf=convolver3-2 # convolver2 # output soundfile outputformat=AIFF # for Linux only : specify AIFF or WAVE output format # ********************* # ##### Cmusic function file generator tempates ##### ##### function file ##### # gen4 -Llength t1 v1 a1 ... tN vN # function to make fl.c4 duration match vc.gs2 duration gen4 -L1000 0 0 0 3.82 3.473 > $SFDIR/func1 # cross-fade function gen4 -L1000 0 -1 0 3.82 1 > $SFDIR/func2 ##### End of gen routine function generator tempates ##### output_data_format=1 # Do not use 2 # 0= Same as input file, 1 = integers 2 = rescaled floats #........... OUTPUT CHANNEL(S) ....................... Sound_A_channel_1_to_max__0_all=0 Sound_B_channel_1_to_max__0_all=0 # (channels are numbered from 1-maximum,0 = all channels # 0-0 configurations will match A and B channels # 0 with a single channel will apply single channel to # all channels of other file #====================================================== #............ SOUND A BEGIN/END TIMES ................. Sound_A_begintime=0 Sound_A_endtime=0 # (0 end time defaults to end of file) #====================================================== #............. SOUND B TIME ........................... SOUND_B_data_access_mode__explicit_0__rate_1=1 SOUND_B_time_point=0 SOUND_B_rate_multiplier=1 # int, float or FUNC # In rate mode, set time_point to initial position. # In explicit mode, control time_point with a function. # Rate_multiplier is nonfunctional in explicit mode. #...................................................... SOUND_B_lower_time_boundary=$SFDIR/func1 # int, float or FUN SOUND_B_upper_time_boundary=$SFDIR/func1 # int, float or FUN # upper time < 0 defaults to file duration #...................................................... autostop_on_1__off_0=1 # If on, this will terminate synthesis when a boundary is crossed #====================================================== #*** ANALYSIS PARAMETERS ****************************** 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 windowsize=0 # set to 0 to autoset window to 2 * FFT #====================================================== #*** RESYNTHESIS PARAMETERS *************************** #.............OSCIL THRESHOLD ........................ oscillator_resynthesis_threshold_in_dB=-96 #****************** MODIFICATIONS ********************* #.................. TIME .............................. time_expansion_contraction_factor=1.5 #.................. DECIBELS .......................... OUTPUT_SPECTRUM_gain_in_decibels=0 # int, float or FUNC #.................. PITCH ............................. OUTPUT_SPECTRUM_frequency_shift=0 # int, float or FUNC OUTPUT_SPECTRUM_pitch_transposition_in_semitones=-0 # int, float or FUNC #............ AMPLITUDE RESPONSE ...................... release_in_seconds=0 # int, float or FUNC attack_in_seconds=0 # int, float or FUNC #====================================================== #*** CONVOLUTION PANPOT (-1 to 1) (-1 = A, 1 = B )**** convolution_panpot_position=$SFDIR/func2 # int, float or FUNC #.................. DECIBELS .......................... Sound_A_gain_in_decibels=0 # -30 # int, float or FUNC Sound_B_gain_in_decibels=0 # -30 # int, float or FUNC Convolution_gain_in_decibels=0 # 50 # int, float or FUNC #............ PANPOT DOMAIN WARP ...................... #(warp values: 0 and greater) # warp: 0 = linear, incresingly positive warp # values distribute the convolution center into the # Sound A or B's panpot domain. Sound_A_panpot_domain_warp=4 # 0 Sound_B_panpot_domain_warp=4 # 0 #(The domain warp allows you to expand the useful # convolution range on either side of the full # convolution point at 0 by warping the panpot range on # that side. Use increasingly positive warp values # to expand the convolution center into the # Sound A or B's panpot domain. ) #====================================================== #****** CONVOLUTION OUTPUT LOW/HIGH SHELF EQ ********** FILTER_LOW_SHELF_EQ_gain_in_decibels=-0 FILTER_LOW_SHELF_EQ_frequency=200 FILTER_HIGH_SHELF_EQ_gain_in_decibels=0 FILTER_HIGH_SHELF_EQ_frequency=1000 #====================================================== #........... 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 amplitude_statistics_time_interval=.25 #==================================================== # COMMAND LINE SETUP -- OFFICE USE ONLY # (DO NOT WRITE BELOW THIS LINE) #==================================================== PVCDIR=/usr/local/soundapps/PVC PVCBIN=$PVCDIR/bin 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 $Sound_A_input_soundfile -t au pvcin elif [ `echo "$OSTYPE" | grep linux` ] then input_file=$Sound_A_input_soundfile output_file=$outputsf fi # ****** end of ECMC changes & additions ****** # # SYNTHESIS pvroutine=convolver PVFLAGS="\ \ -M$windowsize \ -w$window_type \ -I$time_expansion_contraction_factor \ \ -a$OUTPUT_SPECTRUM_frequency_shift \ -P$OUTPUT_SPECTRUM_pitch_transposition_in_semitones \ -A$OUTPUT_SPECTRUM_gain_in_decibels \ \ -C$Sound_A_channel_1_to_max__0_all \ -t$oscillator_resynthesis_threshold_in_dB \ \ -b$Sound_A_begintime \ -e$Sound_A_endtime \ \ -q$Sound_A_gain_in_decibels \ -B$Sound_B_gain_in_decibels \ -Z$Convolution_gain_in_decibels \ -L$release_in_seconds \ -l$attack_in_seconds \ -F$Sound_B_input_analysis_file \ \ -u$SOUND_B_data_access_mode__explicit_0__rate_1 \ -K$Sound_B_channel_1_to_max__0_all \ -Q$SOUND_B_time_point \ -Y$SOUND_B_rate_multiplier \ -g$SOUND_B_lower_time_boundary \ -G$SOUND_B_upper_time_boundary \ \ -S$convolution_panpot_position \ -j$Sound_A_panpot_domain_warp \ -J$Sound_B_panpot_domain_warp \ \ -H$FILTER_LOW_SHELF_EQ_gain_in_decibels \ -m$FILTER_LOW_SHELF_EQ_frequency \ \ -X$FILTER_HIGH_SHELF_EQ_gain_in_decibels \ -R$FILTER_HIGH_SHELF_EQ_frequency \ \ -y$autostop_on_1__off_0 \ \ -p$print_amplitude_statistics_0_no__1_yes \ -i$amplitude_statistics_time_interval \ \ -_$output_data_format \ -=$rescale_level_in_decibels \ \ " echo "\n$pvroutine $PVFLAGS $Sound_A_input_file $output_file" $pvroutine $PVFLAGS $input_file $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 func1 func2