Returns a frequency, amplitude pair from an ATSbufread opcode.
Syntax
kfrq,kamp=ATSpartialtap(ipartialnum)
kfrq,kampATSpartialtapipartialnum
Initialization
ipartialnum - indicates the partial that the ATSpartialtap opcode should read from an ATSbufread.
Performance
kfrq - returns the frequency value for the requested partial.
kamp - returns the amplitude value for the requested partial.
ATSpartialtap takes a partial number and returns a frequency, amplitude pair. The frequency and amplitude data comes from an ATSbufread opcode. This is more restricted version of ATSread, since each ATSread opcode has its own independent time pointer, and ATSpartialtap is restricted to the data given by an ATSbufread. Its simplicity is its attractive feature.
<CsoundSynthesizer><CsOptions>; Select audio/midi flags here according to platform-odac ;;;RT audio out;-iadc ;;;uncomment -iadc for RT audio input is needed too; For Non-realtime ouput leave only the line below:; -o ATSpartialtap.wav -W ;;; for file output any platform</CsOptions><CsInstruments>sr=44100ksmps=32nchnls=20dbfs=1; by Menno Knevel - 2023; default settingsires1=system_i(1,{{ atsa drumsMlp.wav drumsMlp1.ats }}); longer hopsize & more cyclesires2=system_i(1,{{ atsa -h.8 -c8 drumsMlp.wav drumsMlp2.ats }})instr1time:k=line(0,p3,2)ATSbufread(time,1,p4,54)freq1:k,amp1:k=ATSpartialtap(5)freq2:k,amp2:k=ATSpartialtap(20)freq3:k,amp3:k=ATSpartialtap(30)aout1=poscil(amp1,freq1,1)aout2=poscil(amp2,freq2,1)aout3=poscil(amp3,freq3,1)aout=(aout1+aout2+aout3)*10; amplify some moreouts(aout*p5,aout*p5)endin</CsInstruments><CsScore>f10163841010.50.33; square-ish wave; stretch the drums...i102"drumsMlp1.ats"2.5; defaults settings for ATSAi1310"drumsMlp2.ats"1; different settingse</CsScore></CsoundSynthesizer>
Here is an example of the ATSpartialtap opcode. It uses the file ATSpartialtap.csd.
<CsoundSynthesizer><CsOptions>; Select audio/midi flags here according to platform-odac ;;;RT audio out;-iadc ;;;uncomment -iadc for RT audio input is needed too; For Non-realtime ouput leave only the line below:; -o ATSpartialtap.wav -W ;;; for file output any platform</CsOptions><CsInstruments>sr=44100ksmps=32nchnls=20dbfs=1; by Menno Knevel - 2023ires1system_i1,{{ atsa drumsMlp.wav drumsMlp1.ats }}; default settingsires2system_i1,{{ atsa -h.8 -c8 drumsMlp.wav drumsMlp2.ats }}; longer hopsize & more cyclesinstr1ktimeline0,p3,2ATSbufreadktime,1,p4,54kfreq1,kam1ATSpartialtap5kfreq2,kam2ATSpartialtap20kfreq3,kam3ATSpartialtap30aout1oscilkam1,kfreq1,1aout2oscilkam2,kfreq2,1aout3oscilkam3,kfreq3,1aout=(aout1+aout2+aout3)*10; amplify some moreoutsaout*p5,aout*p5endin</CsInstruments><CsScore>f10163841010.50.33; square-ish wave; stretch the drums...i102"drumsMlp1.ats"2.5; defaults settings for ATSAi1310"drumsMlp2.ats"1; different settingse</CsScore></CsoundSynthesizer>
This example here uses an ATSpartialtap, and an ATSbufread to read partials 5, 20 and 30 from 'beats.ats'. These amplitudes and frequencies could be used to re-synthesize those partials, or something all together different.