[Stk] recording audio mac osx
Caitlin Sadowski
sadowski@apple.com
Mon, 10 Sep 2007 11:35:19 -0700
--Apple-Mail-1-688722322
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=US-ASCII;
delsp=yes;
format=flowed
Hey,
I am attempting to write code which records 10 seconds (or else until
the enter key is pressed) of audio in coming from a 24-bit Edirol
and saves it as a WAV file. I have been using a callback function
since I am working on Mac OSX (and the blocking audio classes seem to
sometimes run into buffering problems on this OS).
The code I have written seems to work on my Macbook without the
Edirol, but when I try to use it in on my other computer (PPC G5),
with or without the Edirol, a file is recorded, but it is unplayable,
appears to be formatted incorrectly somehow, and shows up as having 0
channels. I am compiling the STK library files i reference in my
program for both ppc and intel chips.
I am missing something? There is not too much to the code (and it is
mostly based on the sample code from the tutorial) so I have included
it below. Am I using RtAudio with callbacks correctly? Any other
ideas on what is going wrong?
Thank you,
Caitlin Sadowski
static const Stk::StkFormat FILE_OUT_FORMAT = Stk::STK_SINT16;
int handleRead( void *outputBuffer, void *inputBuffer, unsigned int
nBufferFrames,
double streamTime, RtAudioStreamStatus status, void *outputFile )
{
unsigned int i, j;
StkFrames frame( 1, 2 ); //one frame with two channels
StkFloat *buffer = (StkFloat *) inputBuffer;
FileWvOut *output = (FileWvOut *)outputFile;
for ( i=0; i<nBufferFrames; i++ ) {
for ( j=0; j < NUMBER_OF_CHANNELS; j++ ) {
frame (0, j) = *buffer;
*buffer++;
}
output->tickFrame( frame );
}
return 0;
}
int recToFileCallback (string waveOutName, int length, int
sampleRate) {
Stk::showWarnings( true );
StkFrames frame( 1, NUMBER_OF_CHANNELS ); //one frame with two
channels
Stk::setSampleRate( sampleRate );
RtAudio adc;
FileWvOut output;
unsigned int bufferFrames = RT_BUFFER_SIZE; // sample frames, if we
need to specifiy
RtAudio::StreamParameters inParameters;
inParameters.deviceId = adc.getDefaultInputDevice();
inParameters.nChannels = 2;
inParameters.firstChannel = 0;
RtAudio::StreamOptions inOptions;
RtAudioFormat format = RTAUDIO_SINT24;
try {
output.openFile (waveOutName, NUMBER_OF_CHANNELS,
FileWrite::FILE_WAV, FILE_OUT_FORMAT);
adc.openStream( NULL, &inParameters, format, sampleRate,
&bufferFrames, &handleRead, (void *)(&output), &inOptions );
adc.startStream();
}
catch ( RtError& e ) {
e.printMessage();
exit( 0 );
}
char input;
std::cout << "\nPlaying ... press <enter> to quit.\n";
std::cin.get( input );
try {
adc.stopStream();
}
catch (RtError& e) {
e.printMessage();
}
if ( adc.isStreamOpen() ) adc.closeStream();
output.closeFile();
return 0;
}
--Apple-Mail-1-688722322
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=ISO-8859-1
<HTML><BODY style=3D"word-wrap: break-word; -khtml-nbsp-mode: space; =
-khtml-line-break: after-white-space; ">Hey,=A0<DIV><BR =
class=3D"khtml-block-placeholder"></DIV><DIV>I am attempting to write =
code which records 10 seconds (or else until the enter key is =
pressed)=A0of audio in coming from a 24-bit Edirol=A0 and saves it as a =
WAV file. I have been using a callback function since I am working on =
Mac OSX (and the blocking audio classes seem to sometimes run into =
buffering problems on this OS).</DIV><DIV><BR =
class=3D"khtml-block-placeholder"></DIV><DIV>The code I have written =
seems to work on my Macbook without the Edirol, but when I try to use it =
in on my other computer (PPC G5), with or without the Edirol, a file is =
recorded, but it is unplayable, appears to be formatted incorrectly =
somehow, and shows up as having 0 channels. I am compiling the STK =
library files i reference in my program for both ppc and intel =
chips.</DIV><DIV><BR class=3D"khtml-block-placeholder"></DIV><DIV>I am =
missing something? There is not too much to the code (and it is mostly =
based on the sample code from the tutorial) so I have included it below. =
Am I using RtAudio with callbacks correctly? Any other ideas on what is =
going wrong?</DIV><DIV><BR =
class=3D"khtml-block-placeholder"></DIV><DIV>Thank you,</DIV><DIV><BR =
class=3D"khtml-block-placeholder"></DIV><DIV>Caitlin =
Sadowski</DIV><DIV><BR class=3D"khtml-block-placeholder"></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">static</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">const</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> Stk::StkFormat =
FILE_OUT_FORMAT =3D Stk::STK_SINT16;</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;"><BR class=3D"khtml-block-placeholder"></SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">int</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> handleRead( =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">void</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> *outputBuffer, =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">void</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> *inputBuffer, =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">unsigned</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">int</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
nBufferFrames,</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">double</SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;"> streamTime, RtAudioStreamStatus status, =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">void</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> *outputFile =
)</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">{</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">unsigned</SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;"> </SPAN></FONT><FONT class=3D"Apple-style-span"=
color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">int</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
i, j;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">StkFrames frame( =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#0000FF" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">1</SPAN></FONT><FONT class=3D"Apple-style-span"=
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">, 2 );</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#236E25" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">//one frame with two =
channels</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">StkFloat *buffer =3D=
(StkFloat *) inputBuffer;</SPAN></FONT><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">FileWvOut *output =
=3D (FileWvOut *)outputFile;<SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN></SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0=
=A0 </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">for</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> ( =
i=3D</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#0000FF" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">0</SPAN></FONT><FONT class=3D"Apple-style-span"=
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">; i<nBufferFrames; i++ ) =
{</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">for</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
( j=3D</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#0000FF" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">0</SPAN></FONT><FONT class=3D"Apple-style-span"=
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">; j < NUMBER_OF_CHANNELS; j++ ) =
{</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">=A0</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">frame =
(</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#0000FF" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">0</SPAN></FONT><FONT class=3D"Apple-style-span"=
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">, j) =3D *buffer;</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">*buffer++;</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">}</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">output->tickFrame( frame );</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0=
=A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">}<SPAN class=3D"Apple-tab-span" style=3D"white-space:pre"> =
</SPAN><SPAN class=3D"Apple-tab-span" style=3D"white-space:pre"> =
</SPAN><SPAN class=3D"Apple-tab-span" style=3D"white-space:pre"> =
</SPAN></SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">return</SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;"> </SPAN></FONT><FONT class=3D"Apple-style-span"=
color=3D"#0000FF" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">0</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">}</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal =
10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">int</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
recToFileCallback</SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">=A0 </SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">(string =
waveOutName, </SPAN></FONT><FONT class=3D"Apple-style-span" =
color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">int</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
length, </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">int</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> sampleRate) =
{</SPAN></FONT></DIV><P style=3D"margin: 0.0px 0.0px 0.0px 0.0px; =
min-height: 14.0px"><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><BR =
class=3D"khtml-block-placeholder"></P><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">Stk::showWarnings( =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">true</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
);</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">StkFrames frame( </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">1</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;">, =
NUMBER_OF_CHANNELS );</SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">=A0 </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#236E25" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">//one frame with two channels</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">Stk::setSampleRate( sampleRate =
);</SPAN></FONT></DIV><P style=3D"margin: 0.0px 0.0px 0.0px 0.0px; =
min-height: 14.0px"><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><BR =
class=3D"khtml-block-placeholder"></P><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">RtAudio =
adc;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">=A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">FileWvOut output;</SPAN></FONT></DIV><P style=3D"margin: 0.0px =
0.0px 0.0px 0.0px; min-height: 14.0px"><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><BR =
class=3D"khtml-block-placeholder"></P><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">unsigned</SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;"> </SPAN></FONT><FONT class=3D"Apple-style-span"=
color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">int</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
bufferFrames =3D RT_BUFFER_SIZE; </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#236E25" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">// sample frames, if we need to specifiy</SPAN></FONT></DIV><P =
style=3D"margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><BR =
class=3D"khtml-block-placeholder"></P><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">RtAudio::StreamParameters inParameters;</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">inParameters.deviceId =3D =
adc.getDefaultInputDevice();</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">inParameters.nChannels =3D </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">2</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">inParameters.firstChannel =3D </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">0</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">;</SPAN></FONT></DIV><P style=3D"margin: 0.0px 0.0px 0.0px 0.0px; =
min-height: 14.0px"><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><BR =
class=3D"khtml-block-placeholder"></P><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">RtAudio::StreamOptions inOptions;<SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN></SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
color=3D"#236E25" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">RtAudioFormat =
format =3D RTAUDIO_SINT24;<SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN></SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" color=3D"#236E25" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;"><BR =
class=3D"khtml-block-placeholder"></SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">try</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
{</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">output.openFile (waveOutName, =
NUMBER_OF_CHANNELS, FileWrite::FILE_WAV, =
FILE_OUT_FORMAT);</SPAN></FONT><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">adc.openStream( =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">NULL</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">, =
&inParameters, format, sampleRate,</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">=A0</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> =
</SPAN><FONT class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">&bufferFrames, =
&handleRead, (</SPAN></FONT><FONT class=3D"Apple-style-span" =
color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">void</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
*)(&output), &inOptions );</SPAN></FONT><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">=A0</SPAN></FONT><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">=A0<SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> =
</SPAN>adc.startStream();</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">}</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">catch</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco"=
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
( RtError& e ) {</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">e.printMessage();</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">exit( =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#0000FF" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">0</SPAN></FONT><FONT class=3D"Apple-style-span"=
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;"> );</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">}</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">char</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
input;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">std::cout << =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#891315" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">"\nPlaying ... press <enter> to =
quit.\n"</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">std::cin.get( =
input );<SPAN class=3D"Apple-tab-span" style=3D"white-space:pre; =
font-family: Monaco; font-size: 10px; "> =
</SPAN></SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">try</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
{</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">adc.stopStream();</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">}</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">catch</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco"=
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
(RtError& e) {</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">e.printMessage();</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 10px;">}<SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> =
</SPAN></SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-tab-span" style=3D"white-space:pre"> </SPAN><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">if</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: 10px;"> =
( adc.isStreamOpen() ) adc.closeStream();<SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN></SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;">output.closeFile();</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><SPAN class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </SPAN><FONT class=3D"Apple-style-span" =
color=3D"#760F50" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">return</SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"2"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 10px;"> </SPAN></FONT><FONT class=3D"Apple-style-span"=
color=3D"#0000FF" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">0</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"2"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
10px;">;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"2"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
10px;">}</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><BR =
class=3D"khtml-block-placeholder"></DIV></BODY></HTML>=
--Apple-Mail-1-688722322--