BufferProxy


Allocates and supplies a buffer for use in Patches.  The buffer is unfilled, suitable for recording.  See Sample (a subclass of BufferProxy) if you need to load soundfiles.


(


Instr([\recordPlay,\JemAudioIn], {arg buffer, input, trigRate = 0.5,offOn = 1, pitch = 1, start = 0;

var offset,trig;

trig = Impulse.kr(trigRate);

RecordBuf.ar(input,buffer.bufnumIr, run: offOn,trigger: trig);

offset = start * buffer.bufFramesKr;

PlayBuf.ar(buffer.numChannels,buffer.bufnumIr,pitch,trig,offset,loop: 1);


},#[

\buffer, // == BufferProxySpec(44100,2)

\stereo, // == AudioSpec.new(2),

[0.25,10,\linear],

\unipolar,

[-5,5,\linear],

\unipolar

]);



Patch([\recordPlay,\JemAudioIn],[

BufferProxy(44100 * 4, 2), // 4 secs in stereo

AudioInPlayer.new

]).gui


)

Make sure your audio input and buffer numChannels match.


an argName of spec symbol of \buffer will create a BufferProxySpec with the default 44100 frames (1 second).

you can place a BufferProxySpec and specify any default size you would like.


this is the DEFAULT that will be used if you DON'T specify an input to a Patch.  Usually you pass in a BufferProxy to the patch that is the size that you wish.