Michael Dickens 2006-Apr-30 0) This module should compile and install in the same manner as the other GNURadio modules (e.g. gnuradio-core), with the possible exception that GNU libtool 1.5.20 or newer should be installed and used (if not first in the path) via "make LIBTOOL=/..." and so forth. Version 1.5.10 has failed making, and while picking version 1.5.20 is somewhat arbitrary, the newer version compiles and installs easily under OSX. 1) This module should be automatically loaded by the Python command "from gr import audio". The audio import script will automatically select gr.audio_osx if it is available (though it will try to import ALSA first, then OSS, then OSX, and finally WINDOWS audio modules, in that order). If that import command doesn't work, try reinstalling gnuradio-core from scratch followed by gr-audio-osx. 2) Instantiation arguments for either source or sink are: * sample_rate : integer : default == 44100 OSX converts the integer sample rate to a double internally; it would be nice to have this input as a double natively, but that doesn't work with other audio devices. * device_name : string : default == "2" For OSX, the device name should be an integer string. This value is the maximum number of channels to allocate (for input or output). In the "source" case (input), the actual number of channels will be whatever is available on that current system input device. In the "sink" case (output), OSX will convert the provided channels into whatever format is required by the current system output device. For example, "3" would try to setup for 3 input or output channels. NOTE that this is a very different use than that for other audio modules (though they can interpret the number of channels from this argument). * do_block : boolean : default == true If the data transfer buffer between OSX internals and GNURadio gets full, either block (true) or overwrite (false) depending on this variable. The following are currently non-standard arguments: * channel_config : integer : default == -1 An enum (internally) describing the channel configuration. Not currently used, but rather reserved for future expansion. * max_sample_count : integer : default == -1 The maximum number of samples to buffer between OSX internals and GNURadio. The value -1 is mapped to 1 second's worth of data. 3) When the buffer is full and do_block is false and new data comes in, the oldest data will be overwritten. The source will print out "iX" each time this happens; the sink will print out "oX". 4) In the "src" directory is a python script "test_audio_loop" which connects the default audio input device to the default audio output device. This script is very useful in testing that audio is correctly installed and both the source and sink are functional. This script is not run by "make check".