Maxamp tracks and prints amplitudes


Warning!!! Printing from the server is very expensive on the client side (lang).  This CPU usage will not show up in your CPU usage on the server side. 


Maxamp.ar(in, numSamples)


in - the input you would like to track

numSamples - the period in which Maxamp will post amp information

Usage


(


SynthDef(\sample, {|dur|

Out.ar(0, SinOsc.ar(440, 0, LFNoise1.ar(0.5)) * 

EnvGen.kr(Env([0.01, 1, 1, 0.01], [0.01, dur - 0.02, 0.01]), doneAction: 2))

}).load(s);

SynthDef(\maxamptest, {|inbus|

Maxamp.ar(In.ar(inbus, 1), SampleRate.ir / 10)

}).load(s);

)


s.boot;


s.sendBundle(0.1, [\s_new, \sample, -1, 0, 1, \dur, 4],

// run maxamp test at the tail of group 1

[\s_new, \maxamptest, -1, 1, 1, \inbus, 0]);

// run a couple more synths


s.sendBundle(0.1, [\s_new, \sample, -1, 0, 1, \dur, 2],

[\s_new, \sample, -1, 0, 1, \dur, 3],

[\s_new, \sample, -1, 0, 1, \dur, 4]);

// kill maxamptest


s.sendBundle(0.1, [\g_freeAll, 1]);


Here is a sample of what prints:


Maxamp from 1.8 to 1.9: 0.87646, Overall Maxamp at 1.89903: 0.87646

Maxamp from 1.9 to 2: 0.930082, Overall Maxamp at 1.999: 0.930082

Maxamp from 2 to 2.1: 0.930123, Overall Maxamp at 2.00011: 0.930123

Maxamp from 2.1 to 2.2: 0.88386, Overall Maxamp at 2.00011: 0.930123

Maxamp from 2.2 to 2.3: 0.837598, Overall Maxamp at 2.00011: 0.930123

Maxamp from 2.3 to 2.4: 0.791335, Overall Maxamp at 2.00011: 0.930123


The last line shows that the Maxamp from 2.3 - 2.4 seconds was 0.791335.  The overall Maxamp occurred at 2.00011 seconds, with a value of 0.930123.


For NRT


This UGen can be particularly useful during NRT synthesis:


a = [

[0, [\g_new, 1], [\s_new, \sample, -1, 0, 1, \dur, 4], [\s_new, \maxamptest, -1, 1, 1]],

[6, [\s_new, \sample, -1, 0, 1, \dur, 2]],

[8, [\s_new, \sample, -1, 0, 1, \dur, 3]],

[11, [\c_set, 0, 0]]

]


// make sure the local server is not booted

Score.recordNRT(a, "/tmp/sc.sc", "test.aiff");