diff options
Diffstat (limited to 'pd/portaudio/docs/pa_tut_rw.html')
-rw-r--r-- | pd/portaudio/docs/pa_tut_rw.html | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/pd/portaudio/docs/pa_tut_rw.html b/pd/portaudio/docs/pa_tut_rw.html deleted file mode 100644 index 93c7b8bb..00000000 --- a/pd/portaudio/docs/pa_tut_rw.html +++ /dev/null @@ -1,79 +0,0 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <meta name="GENERATOR" content="Mozilla/4.77 [en]C-gatewaynet (Win98; U) [Netscape]"> - <meta name="Author" content="Phil Burk"> - <meta name="Description" content="Tutorial for PortAudio, a cross platform, open-source, audio I/O library.It provides a very simple API for recording and/or playing sound using a simple callback function."> - <meta name="KeyWords" content="audio, tutorial, library, portable, open-source, DirectSound,sound, music, JSyn, synthesis,"> - <title>PortAudio Tutorial</title> -</head> -<body> - -<center><table COLS=1 WIDTH="100%" BGCOLOR="#FADA7A" > -<tr> -<td> -<center> -<h1> -PortAudio Tutorial</h1></center> -</td> -</tr> -</table></center> - -<h2> -Blocking Read/Write Functions</h2> - -<blockquote>[Note: These functions are not part of the official PortAudio -API. They are simply built on top of PortAudio as an extra utility. Also -note that they are under evaluation and their definition may change.] -<p>There are two fundamentally different ways to design an audio API. One -is to use callback functions the way we have already shown. The callback -function operates under an interrupt or background thread This leaves the -foreground application free to do other things while the audio just runs -in the background. But this can sometimes be awkward. -<p>So we have provided an alternative technique that lets a program generate -audio in the foreground and then just write it to the audio stream as if -it was a file. If there is not enough room in the audio buffer for more -data, then the write function will just block until more room is available. -This can make it very easy to write an audio example. To use this tool, -you must add the files "pablio/pablio.c" and "pablio/ringbuffer.c" to your -project. You must also: -<blockquote> -<pre>#include "pablio.h"</pre> -</blockquote> -Here is a short excerpt of a program that opens a stream for input and -output. It then reads a block of samples from input, and writes them to -output, in a loop. The complete example can be found in "pablio/test_rw.c". -<blockquote> -<pre> #define SAMPLES_PER_FRAME (2) - #define FRAMES_PER_BLOCK (1024) - SAMPLE samples[SAMPLES_PER_FRAME * FRAMES_PER_BLOCK]; - PaError err; - PABLIO_Stream *aStream; - -/* Open simplified blocking I/O layer on top of PortAudio. */ - err = OpenAudioStream( &rwbl, SAMPLE_RATE, paFloat32, - (PABLIO_READ_WRITE | PABLIO_STEREO) ); - if( err != paNoError ) goto error; - -/* Process samples in the foreground. */ - for( i=0; i<(NUM_SECONDS * SAMPLE_RATE); i++ ) - { - /* Read one block of data into sample array from audio input. */ - ReadAudioStream( aStream, samples, FRAMES_PER_BLOCK ); - /* - ** At this point you could process the data in samples array, - ** and write the result back to the same samples array. - */ - /* Write that same frame of data to output. */ - WriteAudioStream( aStream, samples, FRAMES_PER_BLOCK ); - } - - CloseAudioStream( aStream );</pre> -</blockquote> -</blockquote> -<font size=+2><a href="http://www.portaudio.com/">home</a> | -<a href="pa_tutorial.html">contents</a> -| <a href="pa_tut_devs.html">previous</a> | <a href="pa_tut_explore.html">next</a></font> -</body> -</html> |