ECMC PVC example file plainpv7
# Example PVC script used to create /sflib/x soundfile >> plainpv7 << # In this example, the amplitude envelope of /sflib/perc/maracaroll is # imposed on a gong (bianz.b3) from the chinaperc sflib directory # The amplitude envelope of the maraca roll was first analyzed in # ECMC PVC exmplae "envelope1", which created the file pvc.maracaroll.env # This file is read in to the plainpv7 script and applied to the # output resynthesis gain here: # gain_in_decibels=$SFDIR/pvc.maracaroll.env # file created by ecnvelope1 # Only the first 3.22 of the bianz tone are used, matching the duration # of the maraca roll: # endtime=3.22 # END TIME SET HERE TO DURATION OF MARACAROLL # In addition, a function file is created t ocontrol the spectrum warp # gen3 -L1000 10 -20 -5 10 > $SFDIR/warpfunc # spectrum_warpshape_index=$SFDIR/warpfunc # int, float or FUNC # As a result, the timbre at first grows brighter and then mellower, # unlike the original bianz tone. #****************************************************** #.................... PLAINPV ......................... #****************************************************** # ******ECMC CHANGES & ADDITIONS: *************** #******** INPUT & OUTPUT SOUNDFILES ************* # input soundfile: can be aiff or wave on Linux, aiff only on SGI inputsf=/sflib/chinaperc/bianz.b3 # outputsf=plainpv7 # output soundfile outputformat=AIFF # for Linux only : specify AIFF or WAVE output format # ********************* # ##### Cmusic function file generator tempates ##### gen3 -L1000 10 -20 -5 10 > $SFDIR/warpfunc # gen3 generates amp values & linear connections at equally spaced time points # gen3 -Llength v1 v2 ... vN ##### End of gen routine function generator tempates ##### output_data_format=1 # 0= Same as input file, 1 = integers 2 = rescaled floats #******** BEGIN/END TIMES ***************************** # beginning and end times within input soundfile for analysis/resynthesis begintime=0 # time in input soundfile to begin analysis/resynthesis endtime=3.22 # END TIME SET HERE TO DURATION OF MARACAROLL #====================================================== #*** ANALYSIS PARAMETERS ****************************** FFT_length=1024 # must be power-of-2, usually 1024, 512 or 2048 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 # 0 sets windowsize to 2 * FFT (or larger) frames_per_second=200 # generally 200, occasionally 400 or 600 when time stretching #====================================================== #*** RESYNTHESIS PARAMETERS *************************** #........... OUTPUT CHANNEL(S) ....................... output_channel=0 # channels are numbered from 1 to the maximum; 0 = all channels #.............OSCIL THRESHOLD ........................ oscillator_resynthesis_threshold_in_dB=-80 #( Usually -60 to -80 unless dropouts become audible. ) #******** RESYNTHESIS MODIFICATIONS ********************* #.................. DURATION .............................. time_expansion_contraction_factor=1 # (Adjust frames_per_second in proportion to keep a constant rate.) #.................. DECIBELS .......................... gain_in_decibels=$SFDIR/pvc.maracaroll.env # in dB, int, float or FUNC #.................. PITCH ............................. frequency_shift_in_Hz=-0 # detune partials, in herz; int, float or FUNC pitch_transposition_in_semitones=0 # int, float or FUNC #............ AMPLITUDE RESPONSE ...................... release_time_in_seconds=0 # int, float or FUNC attack_time_in_seconds=0 # int, float or FUNC #............ SPECTRUM WARPSHAPE ...................... spectrum_warpshape_index=$SFDIR/warpfunc # int, float or FUNC #............ BRICKWALL FILTER ........................ FILTER_TYPE=0 # 0 = bandpass, 1 = bandreject BRICKWALL_FILTER_window_low_frequency=-1 BRICKWALL_FILTER_window_high_frequency=-1 # (-1 selects respective lowest or highest frequency) #====================================================== #*************** LOW/HIGH SHELF EQ ********************* LOW_SHELF_EQ_gain_in_decibels=0 LOW_SHELF_EQ_frequency=200 HIGH_SHELF_EQ_gain_in_decibels=0 HIGH_SHELF_EQ_frequency=2000 #====================================================== #........... 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 EXCEPT TO DELETE FUNCTION FILES AT VERY END) #==================================================== # ***** ECMC CHANGES: ******* # PVCDIR=/usr/local/soundapps/PVC PVCBIN=$PVCDIR/bin pvroutine=$PVCBIN/plainpv # 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=plainpv PVFLAGS="\ \ -N$FFT_length \ -M$windowsize \ -w$window_type \ -D$frames_per_second \ -I$time_expansion_contraction_factor \ \ -a$frequency_shift_in_Hz \ -P$pitch_transposition_in_semitones \ -A$gain_in_decibels \ \ -C$output_channel \ -t$oscillator_resynthesis_threshold_in_dB \ \ -b$begintime \ -e$endtime \ \ -H$LOW_SHELF_EQ_gain_in_decibels \ -m$LOW_SHELF_EQ_frequency \ \ -X$HIGH_SHELF_EQ_gain_in_decibels \ -R$HIGH_SHELF_EQ_frequency \ \ -L$release_time_in_seconds \ -l$attack_time_in_seconds \ \ -W$spectrum_warpshape_index \ \ -T$FILTER_TYPE \ -f$BRICKWALL_FILTER_window_low_frequency \ -F$BRICKWALL_FILTER_window_high_frequency \ \ -_$output_data_format \ -=$rescale_level_in_decibels \ \ \ -p$print_amplitude_statistics_0_no__1_yes \ -i$amplitude_statistics_time_interval \ " echo "\n\n$pvroutine $PVFLAGS $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 $SFDIR/warpfunc