ECMC PVC example file envelope1 Example PVC script used to create /sflib/x soundfile >> envelope1.wav < # This script create a analysis file of the amplitude of input soundfile # /sflib/perc/maracaroll # This amplitude-tracking analysis file then is used in ECMC PVC exmaple # plainpv7, where this maracaroll amplitude envelope is imposed on # a gong tone # Defaults are used for all analysis parameters in this file #****************************************************** #............ ENVELOPE EXTRACTOR ...................... #****************************************************** # ******ECMC CHANGES & ADDITIONS: *************** #******** INPUT SOUNDFILE & OUTPUT ENVELOPE ANALYSIS FILE ************* cd $SFDIR # all files will be written in your current working soundfile directory inputsf=/sflib/perc/maracaroll.wav envelope_file=pvc.maracaroll.env # output envelope analysis file # ********************* # ##### Cmusic function file generator tempates ##### # gen0 normalizes function files previously created with other gen routines # gen0 -Llength max < inputfuncfile > outputfuncfile # gen1 creates linear {straight line} segments, like Csound gen 7 # gen1 -Llength t1 v1 ... tN vN # gen2 generates harmonic waveforms from sine {a} & cosine {b} amps # gen2 -Llength [-o (default) or -c] a1 ... aN b0 ... bM N # gen3 generates amp values & linear connections at equally spaced time points # gen3 -Llength v1 v2 ... vN # 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 # gen5 is like Csound gen 9 : harmonic1/amp/phase harmonic2/amp/phase # gen5 -Llength h1 a1 p1 ... hN aN pN # gen6 generates a table of random numbers between +1 and -1 # gen6 -Llength # cspline: smooth curve {cubic spline} interpolator # cspline len_flag [flags] x0 y0 x1 y1 ... xN yN # genraw reads in a previously created function file # genraw -LN filename (where N is the length of the output function.) # For a usage summary of "reshape" type "reshape" with no arguments. ##### End of gen routine function generator tempates ##### #........ BEGIN/END TIMES ............................. begintime=0 endtime=0 #====================================================== #*** ANALYSIS PARAMETERS ****************************** FFT_length=1024 # must be power-of-2, usually 1024, 512 or 2048 # do not set FFT_length lower than 1024 if samp. rate = 96000 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 # default 0 sets windowsize (in samples) to 2 * FFT_length if # samp. rate <= 48000 or to 4 * FFT_length if samp. rate > 48000 #====================================================== #........... ANALYSIS CHANNEL(S) ....................... analysis_channel=0 # channels are numbered from 1-maximum; 0 = all channels #...................................................... method_on_multiple_channels__average_0__peak_1=1 #............. FRAMES ............................... analysis_frames_per_second=200 #====================================================== #*************** DETECTION PARAMETERS ***************** boundary_data_type=0 # 0 = frequency 1 = octave.pitchclass #............... BOUNDARIES ............................ LOW_freq_or_pitch_boundary=0 HIGH_freq_or_pitch_boundary=22050 #...........FILTERED ENVELOPE .......................... #( This envelope is cut from the original before smoothing # and compression/gating. ) filtered_envelope_attack_time_in_seconds=0 filtered_envelope_release_time_in_seconds=0 filtered_envelope__0_to_1__cut_proportion=0 #( 0 = off ) #................ OUTPUT RATE ........................ ouput_sample_rate=1000 #( for non soundfile data types) #................ OUTPUT FORMAT ...................... output_data_format=1 # usually use the default 1 #( 0: 0-1 amplitude ) #( 1: -96 to -0 decibels ) #( 2: inverted amplitude (1 - amplitude) ) #( 3: inverted decibels (0 - decibels + 96.) ) #............... OUTPUT TYPE ......................... output_data_type=1 # default 1 recommended # 0: ascii # 1: 32-bit floats # 2: integer soundfile (sr = 44100) ) #====================================================== #************ ENVELOPE MODIFICATIONS ****************** #.......... AMPLITUDE RESPONSE ........................ attack_time_in_seconds=0 release_time_in_seconds=0 #............ COMPRESSOR .............................. compression_threshold_in_decibels=-0 decibels_of_compression=-96 #............ GATE .................................... gate_threshold_in_decibels=-96 #............ WARP .................................... amplitude_envelope_warp=0 #==================================================== # COMMAND LINE SETUP -- OFFICE USE ONLY # (DO NOT WRITE BELOW THIS LINE) #==================================================== analysisroutine=envelope # ***** TKLA CHANGES: ******* # input_file=$inputsf ; output_file=$outputsf output_data_format=outputformat WORDSIZE=`/usr/local/bin/sfbits "${inputsf}" | awk '{print $1}'` if ( [ "$WORDSIZE" == "24" ] ) ; then rm -f pvcin; analysis_sndfile=pvcin; 24tofloat $inputsf pvcin fi # ****** end of TKLA changes & additions ****** # # ANALYSIS # #analysisroutine=envelope PVFLAGS="\ \ -N$FFT_length \ -w$window_type \ -M$windowsize \ -D$analysis_frames_per_second \ \ -b$begintime \ -e$endtime \ \ -C$analysis_channel \ \ -Q$boundary_data_type \ -f$LOW_freq_or_pitch_boundary \ -F$HIGH_freq_or_pitch_boundary \ -L$release_time_in_seconds \ -l$attack_time_in_seconds \ -W$amplitude_envelope_warp \ -G$decibels_of_compression \ -T$compression_threshold_in_decibels \ -S$gate_threshold_in_decibels \ -r$ouput_sample_rate \ -g$output_data_type \ -q$output_data_format \ \ -j$filtered_envelope_attack_time_in_seconds \ -k$filtered_envelope_release_time_in_seconds \ -m$filtered_envelope__0_to_1__cut_proportion \ \ -X$method_on_multiple_channels__average_0__peak_1 \ -p1 \ \ " echo "\n\n$analysisroutine $PVFLAGS $analysis_sndfile $envelope_file " $analysisroutine $PVFLAGS $analysis_sndfile $envelope_file ; # ***** TKLA CHANGES & ADDITIONS: ******* # if ( ( `echo "${input_file}" ` == ${inputsf} ) && ( test -f "pvcin" ) ) ; then rm -f pvcin ; fi echo " -------------------------------------------------------" echo "Header information for PVC pitch track analysis file $envelope_file :" ls -l $envelope_file # ****** end of TKLA changes & additions ****** # # If you have created any gen function files above delete them below: