<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4139679813985071386</id><updated>2011-09-30T07:52:10.896-07:00</updated><category term='pulse audio'/><category term='deploy app'/><category term='phonon'/><category term='Quad Core'/><category term='working folders'/><category term='Matlab'/><category term='sync IO'/><category term='Not booting'/><category term='development'/><category term='8.10'/><category term='shareware'/><category term='MacBook Pro'/><category term='Mac Pro quad core'/><category term='Firewall'/><category term='C++'/><category term='Qthread'/><category term='Data Acquistion'/><category term='PowerBook G4'/><category term='CoreAudio'/><category term='Mac Pro'/><category term='asoundrc'/><category term='prestin'/><category term='arsc'/><category term='alsa'/><category term='layla3g'/><category term='berkeley-db'/><category term='Darwin Client'/><category term='Mac OSX'/><category term='linux'/><category term='winsound'/><category term='httpd'/><category term='fedora on  Mac Pro'/><category term='audio cards'/><category term='configuring repository'/><category term='Fedora 9'/><category term='asound'/><category term='multithreading'/><category term='apache2'/><category term='scientific linux'/><category term='iPhone'/><category term='nonlinear-capacitance'/><category term='xubuntu'/><category term='Motu'/><category term='Mac OSX 10.4.x'/><category term='Qt'/><category term='indigo IO'/><category term='Intel Xenon'/><category term='Linux Installation'/><category term='NFS Server'/><category term='beginner'/><category term='subversion'/><title type='text'>Serpentinista</title><subtitle type='html'>To the Serpent Gods</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-3375437180094289011</id><published>2011-06-27T13:16:00.000-07:00</published><updated>2011-06-28T03:43:11.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='beginner'/><title type='text'>iPhone Development</title><content type='html'>Adding an overlay to an image and saving the composite.&lt;br /&gt;&lt;br /&gt;&lt;div style="background: #9999ff; border: 1px solid black; color: white; font: 10.0px Monaco; overflow-x: scroll; overflow-y: hidden; padding: 5px; width: 400px;"&gt;&lt;div style="width: 250%;"&gt;&lt;/div&gt;&lt;pre&gt;#import &lt;quartzcore/quartzcore.h&gt;&lt;br /&gt;....&lt;br /&gt;#pragma mark -&lt;br /&gt;- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info &lt;br /&gt;{&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OverlayView *overlay = [[OverlayView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGTH)];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; overlay.alpha = 0.6;&amp;nbsp; // Customize the opacity of the top image.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [imageView addSubview:overlay];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CGContextRef context = UIGraphicsGetCurrentContext();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //UIImage *imageCopy = UIGraphicsGetImageFromCurrentImageContext();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UIGraphicsEndImageContext();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Save image&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UIImageWriteToSavedPhotosAlbum(imageView.image, self,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @selector(image:didFinishSavingWithError:contextInfo:), context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [picker dismissModalViewControllerAnimated:YES];&lt;br /&gt;}&lt;/quartzcore&gt;&lt;br /&gt;&lt;quartzcore quartzcore.h=""&gt;&lt;/quartzcore&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: verdana,arial,sans-serif; font-size: 10px;"&gt;&lt;a href="http://www.quackit.com/html/codes/horizontal_scroll.cfm"&gt;Horizontal  scroll&lt;/a&gt;&lt;/div&gt;&lt;quartzcore quartzcore.h=""&gt; &lt;/quartzcore&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-3375437180094289011?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/3375437180094289011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=3375437180094289011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/3375437180094289011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/3375437180094289011'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2011/06/iphone-development.html' title='iPhone Development'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-8108530791861556506</id><published>2011-04-05T13:00:00.001-07:00</published><updated>2011-04-05T13:00:57.094-07:00</updated><title type='text'>Multithread Portaudio</title><content type='html'>test&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-8108530791861556506?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/8108530791861556506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=8108530791861556506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/8108530791861556506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/8108530791861556506'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2011/04/multithread-portaudio.html' title='Multithread Portaudio'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-3708619859419488606</id><published>2011-04-03T14:57:00.000-07:00</published><updated>2011-04-03T18:22:33.437-07:00</updated><title type='text'>The Art of cyWar</title><content type='html'>http://www.nytimes.com/2010/02/23/books/23watchers.html&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 15px; line-height: 22px;"&gt;operations like Able Danger, a data-mining program at the Pentagon that became briefly notorious because of the erroneous claim by a few military officials who worked on it that it had been able to identify&amp;nbsp;&lt;a href="http://topics.nytimes.com/top/reference/timestopics/people/a/mohamed_atta/index.html?inline=nyt-per" style="color: #004276; text-decoration: underline;" title="More articles about Mohamed Atta."&gt;Mohammed Atta&lt;/a&gt;, the 9/11 hijacker, as a possible threat before the attacks.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; line-height: 22px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 15px; line-height: 22px;"&gt;“The T.I.A. tools crashed. They were simply incapable of processing so much information in real time. Like balloons affixed to a fire hydrant, they burst.”&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 15px; line-height: 22px;"&gt;--&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 15px; line-height: 22px;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; border-collapse: collapse; color: #707070; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;"&gt;&lt;em&gt;The Watchers&lt;/em&gt;&amp;nbsp;tells the story of these programs and the bureaucratic conflicts that evolved as the Intelligence Community tried to deal with the terrorist threat.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 15px; line-height: 22px;"&gt;--&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; line-height: 22px;"&gt;http://www.time.com/time/nation/article/0,8599,1973131,00.html&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; line-height: 22px;"&gt;--&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; line-height: 22px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif;"&gt;Reading materials will be identified throughout the course and made available via&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif;"&gt;hard copy or online reference.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif;"&gt;Required reading includes The Watchers: The Rise of America’s Surveillance State,&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif;"&gt;by Shane Harris, ISBN 978-1-59420-245-2, Penguin Press, 2010.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif;"&gt;Recommend reference text (not required): Introduction to Computer Security, Matt&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif;"&gt;Bishop, ISBN 0-321-24744-2, Addison-Wesley, 2005.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif;"&gt;Recommend reference text (not required): Computer Networks, Andrew S.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif;"&gt;Tanenbaum, ISBN 0130661023, Prentice Hall, 4th Edition, 2002.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-3708619859419488606?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/3708619859419488606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=3708619859419488606' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/3708619859419488606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/3708619859419488606'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2011/04/art-of-cywar.html' title='The Art of cyWar'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-4589560440623171458</id><published>2011-03-16T11:55:00.000-07:00</published><updated>2011-03-16T11:55:29.349-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='arsc'/><category scheme='http://www.blogger.com/atom/ns#' term='phonon'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><title type='text'>Qt and Sound generation using libraries from audres.org</title><content type='html'>Qt supports sound in various ways and Nokia/Trolltech is currently working options that make sound processing easier to work with.  One of the methods to do playback is to use the Phonon module.  This module operation using the gstreamer libraries, but does not allow you to control individual channels.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-4589560440623171458?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/4589560440623171458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=4589560440623171458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/4589560440623171458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/4589560440623171458'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2011/03/qt-and-sound-generation-using-libraries.html' title='Qt and Sound generation using libraries from audres.org'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-8752267442659008426</id><published>2011-01-01T15:02:00.000-08:00</published><updated>2011-01-01T15:02:42.732-08:00</updated><title type='text'>Computer Programming</title><content type='html'>&lt;a href="http://www.browndeertechnology.com/docs/BDT_OpenCL_Tutorial_NBody.html"&gt;OpenCL&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-8752267442659008426?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/8752267442659008426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=8752267442659008426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/8752267442659008426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/8752267442659008426'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2011/01/computer-programming.html' title='Computer Programming'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-3066699493442289545</id><published>2010-11-16T04:41:00.000-08:00</published><updated>2011-01-01T15:05:50.789-08:00</updated><title type='text'>Audio Programming on Mac OS and Linux</title><content type='html'>&lt;style&gt;pre {font: 10.0px Monaco; border: 2px solid #016; padding: 5px; color: black; background: #CCCCFF;}&lt;/style&gt;&lt;br /&gt;&lt;pre&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;h1&gt;Portaudio And Libsndfile WAV playback with &lt;br /&gt;channel selection&lt;/h1&gt;/** @file pa_lsf_lessblocking.c&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;@ingroup test_src&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;@brief Read WAV file and playback on one channel if&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;     stereo file. Implemented&amp;nbsp;using the blocking API&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;     (Pa_ReadStream(), Pa_WriteStream() ), but still&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;     allowing you to stop the stream if using threads.&lt;/div&gt;&lt;div style="color: #0e0eff; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: #007400;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;@author Sal Aguinaga &lt;a href="http://serpentinista.blogspot.com/"&gt;&lt;span style="color: #0e0eff;"&gt;http://serpentinista.blogspot.com&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #0e0eff; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: #007400;"&gt;&amp;nbsp; &amp;nbsp; @author Phil Burk&amp;nbsp; &lt;a href="http://www.softsynth.com/"&gt;&lt;span style="color: #0e0eff;"&gt;http://www.softsynth.com&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; @author Ross Bencina &lt;a href="mailto:rossb@audiomulch.com"&gt;&lt;span style="color: #0e0eff;"&gt;rossb@audiomulch.com&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;*/&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#include &lt;span style="color: #c41a16;"&gt;&lt;stdio.h&gt;&lt;/stdio.h&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: #643820;"&gt;#include &lt;/span&gt;&lt;stdlib.h&gt;&lt;/stdlib.h&gt;&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: #643820;"&gt;#include &lt;/span&gt;"portaudio.h"&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: #643820;"&gt;#include &lt;sndfile.h&gt;&lt;/sndfile.h&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;/* #define SAMPLE_RATE&amp;nbsp; (17932) // Test failure to open with this value. */&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define SAMPLE_RATE&amp;nbsp; (&lt;span style="color: #1c00cf;"&gt;44100&lt;/span&gt;)&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define FRAMES_PER_BUFFER (&lt;span style="color: #1c00cf;"&gt;1024&lt;/span&gt;)&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define LATENCY_MSEC&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;(&lt;span style="color: #1c00cf;"&gt;2000&lt;/span&gt;) &lt;span style="color: #007400;"&gt;/* new */&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define NUM_SECONDS &amp;nbsp; &amp;nbsp; (&lt;span style="color: #1c00cf;"&gt;5&lt;/span&gt;)&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define NUM_CHANNELS&amp;nbsp; &amp;nbsp; (&lt;span style="color: #1c00cf;"&gt;2&lt;/span&gt;)&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;/* #define DITHER_FLAG &amp;nbsp; &amp;nbsp; (paDitherOff)&amp;nbsp; */&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define DITHER_FLAG &amp;nbsp; &amp;nbsp; (&lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt;) &lt;span style="color: #007400;"&gt;/**/&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;/* Select sample format. */&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#if &lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define PA_SAMPLE_TYPE&amp;nbsp; paFloat32&lt;/div&gt;&lt;div style="color: #aa0d91; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;typedef&lt;span style="color: black;"&gt; &lt;/span&gt;float&lt;span style="color: black;"&gt; SAMPLE;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define SAMPLE_SILENCE&amp;nbsp; (&lt;span style="color: #1c00cf;"&gt;0.0f&lt;/span&gt;)&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define PRINTF_S_FORMAT &lt;span style="color: #c41a16;"&gt;"%.8f"&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#elif &lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define PA_SAMPLE_TYPE&amp;nbsp; paInt16&lt;/div&gt;&lt;div style="color: #aa0d91; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;typedef&lt;span style="color: black;"&gt; &lt;/span&gt;short&lt;span style="color: black;"&gt; SAMPLE;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define SAMPLE_SILENCE&amp;nbsp; (&lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt;)&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define PRINTF_S_FORMAT &lt;span style="color: #c41a16;"&gt;"%d"&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#elif &lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define PA_SAMPLE_TYPE&amp;nbsp; paInt8&lt;/div&gt;&lt;div style="color: #aa0d91; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;typedef&lt;span style="color: black;"&gt; &lt;/span&gt;char&lt;span style="color: black;"&gt; SAMPLE;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define SAMPLE_SILENCE&amp;nbsp; (&lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt;)&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define PRINTF_S_FORMAT &lt;span style="color: #c41a16;"&gt;"%d"&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#else&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define PA_SAMPLE_TYPE&amp;nbsp; paUInt8&lt;/div&gt;&lt;div style="color: #aa0d91; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;typedef&lt;span style="color: black;"&gt; &lt;/span&gt;unsigned&lt;span style="color: black;"&gt; &lt;/span&gt;char&lt;span style="color: black;"&gt; SAMPLE;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define SAMPLE_SILENCE&amp;nbsp; (&lt;span style="color: #1c00cf;"&gt;128&lt;/span&gt;)&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#define PRINTF_S_FORMAT &lt;span style="color: #c41a16;"&gt;"%d"&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #643820; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;#endif&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;/*******************************************************************/&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;//typedef struct&amp;nbsp; {&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;float outputBuffer;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;int left_phase;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;int right_phase;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;//} paTestData&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;/*******************************************************************/&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: #aa0d91;"&gt;int&lt;/span&gt; main(&lt;span style="color: #aa0d91;"&gt;int&lt;/span&gt; argc, &lt;span style="color: #aa0d91;"&gt;char&lt;/span&gt; *argv[]);&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;/*******************************************************************/&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: #aa0d91;"&gt;int&lt;/span&gt; main(&lt;span style="color: #aa0d91;"&gt;int&lt;/span&gt; argc, &lt;span style="color: #aa0d91;"&gt;char&lt;/span&gt; *argv[])&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;{&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;printf(&lt;/span&gt;"libsnd portaudio playback\n"&lt;span style="color: black;"&gt;); fflush(stdout);&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt; (argc != &lt;span style="color: #1c00cf;"&gt;2&lt;/span&gt;) {&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;fprintf(stderr, &lt;/span&gt;"Expecting wav file as argument\n"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #aa0d91; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;return&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; PaStreamParameters &lt;span style="color: #007400;"&gt;/*inputParameters,*/&lt;/span&gt; outputParameters;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; PaStream *stream;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; PaError err;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; SAMPLE *recordedSamples;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;int&lt;/span&gt; i;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;int&lt;/span&gt; totalFrames;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;int&lt;/span&gt; numSamples;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;int&lt;/span&gt; numBytes;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; SAMPLE max, average, val;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;float&lt;/span&gt; *buffer;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;// Open sound file&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;SF_INFO sndInfo;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;SNDFILE *sndFile = sf_open(argv[&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;], SFM_READ, &amp;amp;sndInfo);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt; (sndFile == &lt;span style="color: #aa0d91;"&gt;NULL&lt;/span&gt;) {&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;fprintf(stderr, &lt;span style="color: #c41a16;"&gt;"Error reading source file '%s': %s\n"&lt;/span&gt;, argv[&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;], sf_strerror(sndFile));&lt;/div&gt;&lt;div style="color: #aa0d91; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;return&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;// Check format - 16bit PCM&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt; (sndInfo.format != (SF_FORMAT_WAV | SF_FORMAT_PCM_16)) {&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;fprintf(stderr, &lt;/span&gt;"Input should be 16bit Wav\n"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;sf_close(sndFile);&lt;/div&gt;&lt;div style="color: #aa0d91; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;return&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;// Check channels&amp;nbsp;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt; (sndInfo.channels &amp;gt; &lt;span style="color: #1c00cf;"&gt;2&lt;/span&gt;) {&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;fprintf(stderr, &lt;/span&gt;"Wrong number of channels\n"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;sf_close(sndFile);&lt;/div&gt;&lt;div style="color: #aa0d91; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;return&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt; (sndInfo.channels == &lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;) {&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;// Allocate memory&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;buffer = malloc(sndInfo.frames * &lt;span style="color: #aa0d91;"&gt;sizeof&lt;/span&gt;(&lt;span style="color: #aa0d91;"&gt;float&lt;/span&gt;));&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;//float *buffer = calloc(sndInfo.frames * sizeof(float));&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt; (buffer == &lt;span style="color: #aa0d91;"&gt;NULL&lt;/span&gt;) {&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;fprintf(stderr, &lt;/span&gt;"Could not allocate memory for file\n"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;sf_close(sndFile);&lt;/div&gt;&lt;div style="color: #aa0d91; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;return&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;// Load data&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;long&lt;/span&gt; numFrames = sf_readf_float(sndFile, buffer, sndInfo.frames);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;// Check correct number of samples loaded&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt; (numFrames != sndInfo.frames) {&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;fprintf(stderr, &lt;/span&gt;"Did not read enough frames for source\n"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;sf_close(sndFile);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;free(buffer);&lt;/div&gt;&lt;div style="color: #aa0d91; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;return&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;// Output Info&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;printf(&lt;/span&gt;" Read %ld frames from %s,\n "&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; &lt;/span&gt;"Channel(s):%d,\n "&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; &lt;/span&gt;"Sample rate: %d,\n "&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; &lt;/span&gt;"Length: %fs\n"&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; numFrames, argv[&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;], sndInfo.channels, sndInfo.samplerate, (&lt;span style="color: #aa0d91;"&gt;float&lt;/span&gt;)numFrames/sndInfo.samplerate);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;// Setup for Output&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;totalFrames = (&lt;span style="color: #aa0d91;"&gt;int&lt;/span&gt;)numFrames; &lt;span style="color: #007400;"&gt;/* */&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;numSamples = totalFrames * sndInfo.channels;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;numBytes = numSamples * &lt;span style="color: #aa0d91;"&gt;sizeof&lt;/span&gt;(SAMPLE);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;recordedSamples = (SAMPLE *) malloc( numBytes );&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt;( recordedSamples == &lt;span style="color: #aa0d91;"&gt;NULL&lt;/span&gt; )&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;printf(&lt;/span&gt;"Could not allocate record array.\n"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;exit(&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;for&lt;/span&gt;( i=&lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt;; i&lt;numsamples; )="" i++="" recordedsamples[i]="buffer[i];&amp;lt;/p"&gt; &lt;/numsamples;&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;sf_close(sndFile);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;free(buffer);&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;} &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;else&lt;/span&gt;&lt;span style="color: black;"&gt; { &lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;// 2 channels&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp; buffer = malloc(sndInfo.frames * &lt;span style="color: #1c00cf;"&gt;2&lt;/span&gt; * &lt;span style="color: #aa0d91;"&gt;sizeof&lt;/span&gt;(&lt;span style="color: #aa0d91;"&gt;float&lt;/span&gt;));&amp;nbsp; &lt;span style="color: #007400;"&gt;// * 1 to put it on one channel.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt; (buffer == &lt;span style="color: #aa0d91;"&gt;NULL&lt;/span&gt;) {&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fprintf(stderr, &lt;/span&gt;"Could not allocate memory for file\n"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sf_close(sndFile);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;return&lt;/span&gt; &lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;long&lt;/span&gt; numFrames = sf_readf_float(sndFile, buffer, sndInfo.frames);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt; (numFrames != sndInfo.frames) {&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fprintf(stderr, &lt;/span&gt;"Did not read enough frames for source\n"&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sf_close(sndFile);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; free(buffer);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;return&lt;/span&gt; &lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;printf(&lt;/span&gt;" Read %ld frames from %s,\n "&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; &lt;/span&gt;"Channel(s):%d,\n "&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; &lt;/span&gt;"Sample rate: %d,\n "&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; &lt;/span&gt;"Length: %fs\n"&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; numFrames, argv[&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;], sndInfo.channels, sndInfo.samplerate, (&lt;span style="color: #aa0d91;"&gt;float&lt;/span&gt;)numFrames/sndInfo.samplerate);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;// Setup for Output&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;totalFrames = (&lt;span style="color: #aa0d91;"&gt;int&lt;/span&gt;)numFrames; &lt;span style="color: #007400;"&gt;/* */&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;numSamples = totalFrames * sndInfo.channels;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;numSamples = totalFrames / 2; // changed it to 1 channel&amp;nbsp;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;/*************/&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;double duration = (double)numFrames/sndInfo.samplerate;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;double *singleChanOutput = (double *) malloc (numFrames * sizeof(doube));&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;if (singleChanOutput == NULL) {&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;fprintf(stderr, "Could not allocate buffer for output\n");&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;/*************/&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;numBytes = numSamples * sizeof(SAMPLE);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;recordedSamples = (SAMPLE *) malloc( numSamples * &lt;span style="color: #aa0d91;"&gt;sizeof&lt;/span&gt;(SAMPLE));&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt;( recordedSamples == &lt;span style="color: #aa0d91;"&gt;NULL&lt;/span&gt; )&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;printf(&lt;/span&gt;"Could not allocate record array.\n"&lt;span style="color: black;"&gt;);&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;exit(&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;printf(&lt;span style="color: #c41a16;"&gt;"numFrames = %d, numSamples =%d\n"&lt;/span&gt;, (&lt;span style="color: #aa0d91;"&gt;int&lt;/span&gt;)numFrames, numSamples);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;for&lt;/span&gt;( i=&lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt;; i&lt;numsamples&gt;&lt;span style="color: #1c00cf;"&gt;2&lt;/span&gt;; i++ ) {&lt;/numsamples&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;recordedSamples[i*&lt;span style="color: #1c00cf;"&gt;2&lt;/span&gt;] = buffer[i*&lt;span style="color: #1c00cf;"&gt;2&lt;/span&gt;];&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;recordedSamples[i*&lt;span style="color: #1c00cf;"&gt;2&lt;/span&gt;+&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;] = &lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sf_close(sndFile);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; free(buffer);&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;printf(&lt;/span&gt;"totalFrames = %d\n"&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; &lt;/span&gt;"numSamples = %d\n"&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt; &amp;nbsp; ,totalFrames, numSamples);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;totalFrames = NUM_SECONDS * SAMPLE_RATE; /* Record for a few seconds. */&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;//&amp;nbsp; numSamples = totalFrames * NUM_CHANNELS;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; err = Pa_Initialize();&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt;( err != paNoError ) &lt;span style="color: #aa0d91;"&gt;goto&lt;/span&gt; error;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;/* Measure maximum peak amplitude. */&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; max = &lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; average = &lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;for&lt;/span&gt;( i=&lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt;; i&lt;numsamples; )="" i++=""&gt;&lt;/numsamples;&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; val = recordedSamples[i];&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt;( val &amp;lt; &lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt; ) val = -val; &lt;span style="color: #007400;"&gt;/* ABS */&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt;( val &amp;gt; max )&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; max = val;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; average += val;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; average = average / numSamples;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; printf(&lt;span style="color: #c41a16;"&gt;"Sample max amplitude = "&lt;/span&gt;PRINTF_S_FORMAT&lt;span style="color: #c41a16;"&gt;"\n"&lt;/span&gt;, max );&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; printf(&lt;span style="color: #c41a16;"&gt;"Sample average = "&lt;/span&gt;PRINTF_S_FORMAT&lt;span style="color: #c41a16;"&gt;"\n"&lt;/span&gt;, average );&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;/*&amp;nbsp; Was as below. Better choose at compile time because this&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; keeps generating compiler-warnings:&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; if( PA_SAMPLE_TYPE == paFloat32 )&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf("sample max amplitude = %f\n", max );&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf("sample average = %f\n", average );&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; else&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf("sample max amplitude = %d\n", max );&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf("sample average = %d\n", average );&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;*/&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;/*####################################################################&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp;*&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Playback recorded data&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp;********************************************************************/&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; outputParameters.device = Pa_GetDefaultOutputDevice(); &lt;span style="color: #007400;"&gt;/* default output device */&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; outputParameters.channelCount = sndInfo.channels;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; outputParameters.sampleFormat =&amp;nbsp; PA_SAMPLE_TYPE;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; outputParameters.suggestedLatency = Pa_GetDeviceInfo( outputParameters.device )-&amp;gt;defaultLowOutputLatency;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;outputParameters.hostApiSpecificStreamInfo = &lt;span style="color: #aa0d91;"&gt;NULL&lt;/span&gt;;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; printf(&lt;span style="color: #c41a16;"&gt;"Begin playback.\n"&lt;/span&gt;); fflush(stdout);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; err = Pa_OpenStream(&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;stream,&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;NULL&lt;/span&gt;, &lt;span style="color: #007400;"&gt;/* no input */&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;outputParameters,&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sndInfo.samplerate,&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FRAMES_PER_BUFFER,&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; paClipOff,&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;/* we won't output out of range samples so don't bother clipping them */&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;NULL&lt;/span&gt;&lt;span style="color: black;"&gt;, &lt;/span&gt;/* no callback, use blocking API */&lt;/div&gt;&lt;div style="color: #007400; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;NULL&lt;/span&gt;&lt;span style="color: black;"&gt; ); &lt;/span&gt;/* no callback, so no callback userData */&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt;( err != paNoError ) &lt;span style="color: #aa0d91;"&gt;goto&lt;/span&gt; error;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt;( stream )&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; err = Pa_StartStream( stream );&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt;( err != paNoError ) &lt;span style="color: #aa0d91;"&gt;goto&lt;/span&gt; error;&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&lt;/span&gt;"Waiting for playback to finish.\n"&lt;span style="color: black;"&gt;); fflush(stdout);&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;for&lt;/span&gt; (i=&lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt;; i&lt;totalframes; i+="FRAMES_PER_BUFFER)" {&amp;nbsp;=""&gt;&lt;/totalframes;&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;err = Pa_WriteStream( stream, &amp;amp;recordedSamples[i*sndInfo.channels], min(FRAMES_PER_BUFFER,totalFrames-i) );&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt;( err != paNoError ) {&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;goto&lt;/span&gt; error;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;span style="color: #aa0d91;"&gt;break&lt;/span&gt;;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; err = Pa_CloseStream( stream );&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;if&lt;/span&gt;( err != paNoError ) &lt;span style="color: #aa0d91;"&gt;goto&lt;/span&gt; error;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf(&lt;span style="color: #c41a16;"&gt;"Done.\n"&lt;/span&gt;); fflush(stdout);&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; free( recordedSamples );&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; Pa_Terminate();&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;return&lt;/span&gt; &lt;span style="color: #1c00cf;"&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;error:&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; Pa_Terminate();&lt;/div&gt;&lt;div style="color: #c41a16; font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; fprintf( stderr, &lt;/span&gt;"An error occured while using the portaudio stream\n"&lt;span style="color: black;"&gt; );&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; fprintf( stderr, &lt;span style="color: #c41a16;"&gt;"Error number: %d\n"&lt;/span&gt;, err );&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; fprintf( stderr, &lt;span style="color: #c41a16;"&gt;"Error message: %s\n"&lt;/span&gt;, Pa_GetErrorText( err ) );&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #aa0d91;"&gt;return&lt;/span&gt; -&lt;span style="color: #1c00cf;"&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px;"&gt;}&lt;/div&gt;&lt;div style="font-family: Monaco; font-size-adjust: none; font-size: 10px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; margin: 0px; min-height: 14px;"&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-3066699493442289545?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/3066699493442289545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=3066699493442289545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/3066699493442289545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/3066699493442289545'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2010/11/portaudio-and-libsndfile-wav-playback.html' title='Audio Programming on Mac OS and Linux'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-6460409457320970822</id><published>2010-09-21T13:36:00.000-07:00</published><updated>2010-09-21T13:36:22.691-07:00</updated><title type='text'>What the Phonon: How to select individual audio channels (left, right or both)</title><content type='html'>I've just searched the Trolltech site for: Does Phonon allows you to control Left or Right audio channels and there is no mention of this, so before I go building a custom WAV playing device using the example: qmusicplayer .... Does it? How?&lt;br /&gt;&lt;br /&gt;The blog post by Garet: http://labs.qt.nokia.com/2010/05/10/low-level-audio-processing-with-qtmultimedia/  titled: &lt;br /&gt;Low-level audio processing with QtMultimedia&lt;br /&gt;mentions the QAudioFormat::setChannels() ... but is this for generating audio 'data' and not for selecting the physical audio channel of a given audio device?&lt;br /&gt;&lt;br /&gt;I am using this in Mac OS, and the 'capabilities' example only returns: "Internal Speakers" for what is called Available audio devices.  If I try this in Linux, will it give me more options?   But as I write this I realize that these capabilities still don't give me the granularity of choosing output channels (left or right, for 2-channel audio device), right or am I in the dark about some new features?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-6460409457320970822?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/6460409457320970822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=6460409457320970822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/6460409457320970822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/6460409457320970822'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2010/09/what-phonon-how-to-select-individual.html' title='What the Phonon: How to select individual audio channels (left, right or both)'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-2885935061116892925</id><published>2010-02-24T20:07:00.000-08:00</published><updated>2010-02-24T20:07:08.727-08:00</updated><title type='text'>Would Motorola departure burst Chicago’s tech bubble?</title><content type='html'>Regarding:&lt;br /&gt;http://www.chicagotribune.com/business/ct-biz-0224-motorola-california-20100223,0,5853421.story?page=1&lt;br /&gt;From the Chicago Tribune, By Wailin Wong, Tribune reporter&lt;br /&gt;8:55 a.m. CST, February 24, 2010&lt;br /&gt;&lt;br /&gt;My Letter to Wailin Wong, on Feb 24, 2010:&lt;br /&gt;&lt;br /&gt;Hello Wailin,&lt;br /&gt;&lt;br /&gt;What Sanjay Jha says about Motorola's employees is infuriatingly disrespectful to the people&lt;br /&gt;that have help made Motorola what it was and is.  When he refers to the "talent" I would &lt;br /&gt;have liked to see this explored in more detail.  Who is he specifically referring to, the &lt;br /&gt;management and the folks that surround him or is he referring to the legions of exceedingly&lt;br /&gt;talented engineers that made it --the type of company it has been over the years and decades?&lt;br /&gt;&lt;br /&gt;It sounds to me like an easy copout to blame the problems on the talent.  The bureaucracy &lt;br /&gt;and the bad decisions at the top (where real and consequential decisions are made) should&lt;br /&gt;certainly bare some of the responsibility.&lt;br /&gt;&lt;br /&gt;If the mobile phone division moves out this area, so will the footprint of many of the supporting&lt;br /&gt;companies that help and support the various divisions.  This means a incalculable number of &lt;br /&gt;potential job losses across various sectors.  &lt;br /&gt;&lt;br /&gt;It's true that the Chicagoland area has struggled over the years to maintain a strong presence &lt;br /&gt;in the technology area, and so have others, pharma being the first that comes to mind.  It's &lt;br /&gt;my opinion that either the state of Illinois or the greater Chicagoland community (especially those in positions of power in influence) are to blame for the lack of vision in creating not only a self-sustaining high-tech industry, but from helping it grow. &lt;br /&gt;&lt;br /&gt;The reason Motorola has strong ties to California is not because of its offices, but it's because is where key partners and suppliers are located, Qualcomm being one of them.  The angle&lt;br /&gt;the section about Sanjay and California angers me, because it can't be as simple as &lt;br /&gt;capriciously wanting to move the division to California, just so he's closer to his family.&lt;br /&gt;The article doesn't explore the perceived benefits in full, talent is just one piece, and &lt;br /&gt;talent is lured by the seductive salaries, quality of life, and other factors.   &lt;br /&gt; &lt;br /&gt;The discussion on what would it takes to help Chicago follow the lead of the West and &lt;br /&gt;West coasts, or even that of Austin-Dallas Texas tech corridor misses the mark.  This is&lt;br /&gt;no different that what many other states, such as Michigan, are trying to do.  Those&lt;br /&gt;interviewed and quoted in that section should look at the bigger picture and then&lt;br /&gt;propose and help advance a vision of strong a high-tech heartland complemented by &lt;br /&gt;the finance sectors and its world class universities' graduates.  Building this is no&lt;br /&gt;easy task, but let's not kid ourselves a little bit of government money and a little&lt;br /&gt;bit of venture money here and there --without a plan for sustainability will be a bit &lt;br /&gt;in a Geopbyte!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-2885935061116892925?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/2885935061116892925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=2885935061116892925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/2885935061116892925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/2885935061116892925'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2010/02/would-motorola-departure-burst-chicagos.html' title='Would Motorola departure burst Chicago’s tech bubble?'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-1829747468817694847</id><published>2010-02-07T13:55:00.000-08:00</published><updated>2010-02-08T13:39:41.706-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qthread'/><category scheme='http://www.blogger.com/atom/ns#' term='multithreading'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>C++, Qt Multithreading</title><content type='html'>Exploring multithreading using Qt's QThread to run the UI on the main thread and then a high priority audio function in a second thread.&lt;br /&gt;&lt;br /&gt;This example consists of widget that builds the UI and offers running the audio within the main thread, and an audio-thread cpp file that takes care of the audio on a separate thread.&amp;nbsp; The startButton calls the audio function with in the same thread, and the newstartButton calls the new audio thread:&lt;br /&gt;&lt;style&gt;pre {font: 10.0px Monaco; border: 2px solid #016; padding: 5px; color: white; background: #333;}&lt;/style&gt;&lt;br /&gt;&lt;pre&gt;AudKeyWidget::AudKeyWidget(QWidget *parent)&lt;br /&gt;    : QWidget(parent)&lt;br /&gt;{&lt;br /&gt; createUI();&lt;br /&gt; &lt;br /&gt; connect(startButton, SIGNAL(clicked()), this, &lt;br /&gt;            SLOT(test_tone()));&lt;br /&gt; connect(newstartButton, SIGNAL(clicked()), this,&lt;br /&gt;            SLOT(conti_tone()));&lt;br /&gt; connect(quitButton , SIGNAL(clicked()), qApp, &lt;br /&gt;            SLOT(quit()));&lt;br /&gt;&lt;br /&gt; setWindowTitle(tr("AudKey"));&lt;br /&gt; resize(550, 400);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;The conti_tone() function is defined as: &lt;br /&gt;&lt;pre&gt;void AudKeyWidget::conti_tone()&lt;br /&gt;{&lt;br /&gt; printf("Audio slot\n");&lt;br /&gt;&lt;br /&gt; thread = new cAudioThread(this);&lt;br /&gt; thread-&gt;start();&lt;br /&gt; &lt;br /&gt;}&lt;/pre&gt;A key event is defined to stop the thread, but it's not working gracefully.  The objective is to hit the Escape key and stop the thread.  Below is the key event and function:&lt;br /&gt;&lt;pre&gt;void AudKeyWidget::keyPressEvent(QKeyEvent *event)&lt;br /&gt;{&lt;br /&gt;    switch (event-&gt;key()) {&lt;br /&gt;        case Qt::Key_Escape:&lt;br /&gt;            stopAudio();&lt;br /&gt;            break;&lt;br /&gt;        default:&lt;br /&gt;            QWidget::keyPressEvent(event);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;void AudKeyWidget::stopAudio()&lt;br /&gt;{&lt;br /&gt;    printf("Stop Audio\n");&lt;br /&gt;/* &lt;br /&gt;    if (thread-&gt;isRunning()) {&lt;br /&gt;        printf("New Thread Running\n");&lt;br /&gt;        //thread-&gt;stop();&lt;br /&gt;        //thread-&gt;wait();&lt;br /&gt;    }&lt;br /&gt;*/ &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;In the above code, I'm trying to find a method to gracefully stop the thread if isRunning().&lt;br /&gt;Hello!&lt;br /&gt;&lt;br /&gt;Got audio working off a second thread and I am able to 'stop' it while it isRunning(), &lt;br /&gt;but am I halting it gracefully, and what do I have to do to quit the app while thread is running?&lt;br /&gt;A pushbutton is used to  start the audio thread, then it is pressed again to Stop it.&lt;br /&gt;&lt;pre&gt;connect(newstartButton, SIGNAL(clicked()), this, SLOT(startAudioThread()));&lt;br /&gt;connect(quitButton , SIGNAL(clicked()), qApp, SLOT(quit())); // This doesn't work cleanly&lt;br /&gt;&lt;/pre&gt;The slot: I use t_stop bool flag to check if the button was pressed to stop the the thread.&lt;br /&gt;If the thread is started, I change the txt of the button to read "Stop Thread"&lt;br /&gt;&lt;pre&gt;void AudKeyWidget::startAudioThread()&lt;br /&gt;{&lt;br /&gt; if (t_stop) { &lt;br /&gt;  printf("Thread is running\n");&lt;br /&gt;  stopAudio();&lt;br /&gt; }&lt;br /&gt; else {&lt;br /&gt;  thread = new cAudioThread(this);&lt;br /&gt;  thread-&gt;start();&lt;br /&gt;  t_stop = !t_stop;&lt;br /&gt;  if(t_stop)&lt;br /&gt;  newstartButton-&gt;setText("Stop Thread");&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;If we are stopping the thread, then I handle this using function stopAudio().&lt;br /&gt;&lt;pre&gt;void AudKeyWidget::stopAudio()&lt;br /&gt;{ printf("Stop Audio\n");&lt;br /&gt; if (t_stop &amp;&amp; thread-&gt;isRunning()) {&lt;br /&gt;  thread-&gt;terminate(); &lt;br /&gt;  delete thread;&lt;br /&gt;  t_stop = !t_stop;&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;But using terminate() offers the proper way to halt the thread? &amp; reset things?&lt;br /&gt;now my Continuous audio thread (caudiothread), some of this code was taken from the &lt;br /&gt;mandelbrot example.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;cAudioThread::cAudioThread(QObject *parent)&lt;br /&gt;    : QThread(parent)&lt;br /&gt;{&lt;br /&gt;    printf("-- cAudioThread(QObject *parent) : QThead(parent) ...\n");&lt;br /&gt;    restart = false;&lt;br /&gt;    abort = false;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;cAudioThread::~cAudioThread()&lt;br /&gt;{&lt;br /&gt;    mutex.lock();&lt;br /&gt;    abort = true;&lt;br /&gt;    condition.wakeOne();&lt;br /&gt;    mutex.unlock();&lt;br /&gt;&lt;br /&gt;    wait();  // Does is make sense to use this if we will almost &lt;br /&gt;  // always halt the thread rather wait for it to end?&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;void cAudioThread::run()&lt;br /&gt;{&lt;br /&gt; printf("-- Independent thread, run() function started\n"); &lt;br /&gt; forever { &lt;br /&gt;  // ++++++++++++++++++ continuous audio (tone) ++++++++++++++++++ //&lt;br /&gt;  blah, blah, blah&lt;br /&gt;  // --------------------------- end continuous audio&lt;br /&gt;  mutex.lock();&lt;br /&gt;  if (!restart)&lt;br /&gt;   condition.wait(&amp;mutex);&lt;br /&gt;  restart = false;&lt;br /&gt;  mutex.unlock();&lt;br /&gt; }// ends forever&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Finally the caudiothread.h, I would be interested in how to quit while running and if stopAudio offers a clean approach to halt the thread.&lt;br /&gt;&lt;pre&gt;class cAudioThread : public QThread&lt;br /&gt;{&lt;br /&gt;    Q_OBJECT&lt;br /&gt;&lt;br /&gt;public:&lt;br /&gt;    cAudioThread(QObject *parent = 0);&lt;br /&gt;    ~cAudioThread();&lt;br /&gt;&lt;br /&gt;    void playAudio( int );&lt;br /&gt;&lt;br /&gt;protected:&lt;br /&gt;    void run();&lt;br /&gt;&lt;br /&gt;private:&lt;br /&gt;&lt;br /&gt;    QMutex mutex;&lt;br /&gt;    QWaitCondition condition;&lt;br /&gt;    bool restart;&lt;br /&gt;    bool abort;&lt;br /&gt;&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-1829747468817694847?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/1829747468817694847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=1829747468817694847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/1829747468817694847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/1829747468817694847'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2010/02/c-qt-multithreading-scenarios.html' title='C++, Qt Multithreading'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-9018324145615961397</id><published>2009-10-06T05:29:00.000-07:00</published><updated>2009-10-20T08:01:48.792-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CoreAudio'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='pulse audio'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Mac OSX Audio and C++</title><content type='html'>I'm trying to program a way to extract the audio devices installed on my system, but I'm running into problems.  I want to write a simple function using Xcode and in C++.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#c41a16;"&gt;&lt;span style="color:#643820;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#c41a16;"&gt;&lt;span style="color:#643820;"&gt;#include coreaudio/audiohardware.h&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#007400;"&gt;&lt;span class="Apple-style-span" style="color: rgb(100, 56, 32); "&gt;#include &lt;span style="color:#c41a16;"&gt;&lt;stdio.h&gt;&lt;/stdio.h&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#643820;"&gt;#include &lt;span style="color:#c41a16;"&gt;'&lt;'math.h'&gt;'&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span style="color:#aa0d91;"&gt;int&lt;/span&gt; main (&lt;span style="color:#aa0d91;"&gt;int&lt;/span&gt; argc, &lt;span style="color:#aa0d91;"&gt;const&lt;/span&gt; &lt;span style="color:#aa0d91;"&gt;char&lt;/span&gt; *argv[])&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;{&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;    &lt;span style="color:#5c2699;"&gt;OSStatus&lt;/span&gt; status;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#007400;"&gt;&lt;span class="Apple-style-span" style="color: rgb(92, 38, 153); "&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;UInt32&lt;span style="color:#000000;"&gt; sz;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#2e0d6e;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;AudioHardwareGetPropertyInfo&lt;span style="color:#000000;"&gt;(&lt;/span&gt;kAudioHardwarePropertyDevices&lt;span style="color:#000000;"&gt;,&amp;amp;sz,&lt;/span&gt;&lt;span style="color:#aa0d91;"&gt;NULL&lt;/span&gt;&lt;span style="color:#000000;"&gt;);&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span style="color:#aa0d91;"&gt;int&lt;/span&gt; nDevices = sz/&lt;span style="color:#aa0d91;"&gt;sizeof&lt;/span&gt;(&lt;span style="color:#5c2699;"&gt;AudioDeviceID&lt;/span&gt;);&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#5c2699;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;AudioDeviceID&lt;span style="color:#000000;"&gt; *devids = &lt;/span&gt;&lt;span style="color:#aa0d91;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;AudioDeviceID&lt;span style="color:#000000;"&gt;[nDevices];&lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#2e0d6e;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;AudioHardwareGetProperty&lt;span style="color:#000000;"&gt;(&lt;/span&gt;kAudioHardwarePropertyDevices&lt;span style="color:#000000;"&gt;,&amp;amp;sz,devids);&lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#007400;"&gt;&lt;span class="Apple-style-span" style="color: rgb(196, 26, 22); "&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2e0d6e;"&gt;printf&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;"Device Count: %d\n"&lt;span style="color:#000000;"&gt;, nDevices);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span style="color:#aa0d91;"&gt;for&lt;/span&gt;(&lt;span style="color:#aa0d91;"&gt;int&lt;/span&gt; i=&lt;span style="color:#1c00cf;"&gt;0&lt;/span&gt;;i&lt;ndevices;++i)&gt;&lt;/ndevices;++i)&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;span style="color:#aa0d91;"&gt;char&lt;/span&gt; *s;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#007400;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/span&gt;// get buffer list&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;span style="color:#5c2699;"&gt;UInt32&lt;/span&gt; outputChannelCount=&lt;span style="color:#1c00cf;"&gt;1&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#2e0d6e;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;status= &lt;/span&gt;AudioDeviceGetPropertyInfo&lt;span style="color:#000000;"&gt;(devids[i],&lt;span style="color:#1c00cf;"&gt;0&lt;/span&gt;,&lt;span style="color:#aa0d91;"&gt;false&lt;/span&gt;,&lt;span class="Apple-style-span" style="color: rgb(46, 13, 110); "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#2e0d6e;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span" style="color: rgb(46, 13, 110); "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;kAudioDevicePropertyStreamConfiguration&lt;span style="color:#000000;"&gt;,&amp;amp;sz,&lt;span style="color:#aa0d91;"&gt;NULL&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#5c2699;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/span&gt;AudioBufferList&lt;span style="color:#000000;"&gt; *bufferList=(&lt;/span&gt;AudioBufferList&lt;span style="color:#000000;"&gt; *)&lt;/span&gt;&lt;span style="color:#2e0d6e;"&gt;malloc&lt;/span&gt;&lt;span style="color:#000000;"&gt;(sz);&lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#2e0d6e;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;status= &lt;/span&gt;AudioDeviceGetProperty&lt;span style="color:#000000;"&gt;(devids[i],&lt;span style="color:#1c00cf;"&gt;0&lt;/span&gt;,&lt;span style="color:#aa0d91;"&gt;false&lt;/span&gt;,&lt;span class="Apple-style-span" style="color: rgb(46, 13, 110); "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#2e0d6e;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-style-span" style="color: rgb(46, 13, 110); "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;kAudioDevicePropertyStreamConfiguration&lt;span style="color:#000000;"&gt;, &amp;amp;sz,&amp;amp;bufferList);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;span style="color:#aa0d91;"&gt;if&lt;/span&gt; (!status) { &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;span style="color:#aa0d91;"&gt;for&lt;/span&gt;(&lt;span style="color:#aa0d91;"&gt;int&lt;/span&gt; j=&lt;span style="color:#1c00cf;"&gt;0&lt;/span&gt;;j&lt;bufferlist-&gt;&lt;span style="color:#5c2699;"&gt;mNumberBuffers&lt;/span&gt;;++j)&lt;/bufferlist-&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;outputChannelCount += bufferList-&gt;&lt;span style="color:#5c2699;"&gt;mBuffers&lt;/span&gt;[j].&lt;span style="color:#5c2699;"&gt;mNumberChannels&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;span style="color:#2e0d6e;"&gt;free&lt;/span&gt;(bufferList);&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;span style="color:#2e0d6e;"&gt;printf&lt;/span&gt;(&lt;span style="color:#c41a16;"&gt;"Output Chan Count: %d\n"&lt;/span&gt;, outputChannelCount);&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#007400;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/span&gt;// skip devices without any output channels&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;span style="color:#aa0d91;"&gt;if&lt;/span&gt;(outputChannelCount==&lt;span style="color:#1c00cf;"&gt;0&lt;/span&gt;)&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-style-span" style="white-space: pre; "&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#007400;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/span&gt;// output some device info&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#5c2699;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;sz=&lt;/span&gt;&lt;span style="color:#aa0d91;"&gt;sizeof&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;CFStringRef&lt;span style="color:#000000;"&gt;);&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#2e0d6e;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/span&gt;AudioDeviceGetProperty&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;        &lt;/span&gt;   devids[i],&lt;span style="color:#1c00cf;"&gt;0&lt;/span&gt;,&lt;span style="color:#aa0d91;"&gt;false&lt;/span&gt;,&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#2e0d6e;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;        &lt;/span&gt;   &lt;/span&gt;kAudioDevicePropertyDeviceUID&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;        &lt;/span&gt;   &amp;amp;sz,&amp;amp;s&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;        &lt;/span&gt;   );&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#c41a16;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2e0d6e;"&gt;printf&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;"DeviceUID: [%s]\n"&lt;span style="color:#000000;"&gt;,s);&lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#007400;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/span&gt;//free(s);&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#2e0d6e;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/span&gt;AudioDeviceGetProperty&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;        &lt;/span&gt;   devids[i],&lt;span style="color:#1c00cf;"&gt;0&lt;/span&gt;,&lt;span style="color:#aa0d91;"&gt;false&lt;/span&gt;,&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#2e0d6e;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;        &lt;/span&gt;   &lt;/span&gt;kAudioObjectPropertyName&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;        &lt;/span&gt;   &amp;amp;sz,&amp;amp;s&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;        &lt;/span&gt;   );&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#c41a16;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2e0d6e;"&gt;printf&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;"    Name: [%s]\n"&lt;span style="color:#000000;"&gt;,s);&lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#007400;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;//&lt;/span&gt;free(s);&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#007400;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&lt;/span&gt;//printf("    OutputChannels: %d",outputChannelCount);&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#c41a16;"&gt;&lt;span style="color:#000000;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2e0d6e;"&gt;printf&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;"    i: %d\n"&lt;span style="color:#000000;"&gt;,i);&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;    &lt;span style="color:#aa0d91;"&gt;return&lt;/span&gt; &lt;span style="color:#1c00cf;"&gt;0&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco"&gt;}&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" ;font-family:Monaco;font-size:10px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-9018324145615961397?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/9018324145615961397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=9018324145615961397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/9018324145615961397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/9018324145615961397'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2009/10/mac-osx-audio-and-c.html' title='Mac OSX Audio and C++'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-4438290145261135482</id><published>2009-08-28T14:18:00.000-07:00</published><updated>2009-08-28T14:49:09.668-07:00</updated><title type='text'>C++ Debug Methods</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_PzGlzcJJ-_k/SphQxI88hJI/AAAAAAAAATQ/TNCJYBq9dhQ/s1600-h/IMG_4217new.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 124px;" src="http://3.bp.blogspot.com/_PzGlzcJJ-_k/SphQxI88hJI/AAAAAAAAATQ/TNCJYBq9dhQ/s320/IMG_4217new.JPG" alt="" id="BLOGGER_PHOTO_ID_5375134960413607058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;I've been writing C++ code for under a year and I've gotten to a point where including lines for debugging is needed, plus I feel I need to make it available for others that are working on my code.  I had started using simple things such as simple print statements or using the Qt qDebug function, but I recently looked my friend Dr. Steve Neely's, from Boystown, method  and this is what he is using in his C source:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:monospace;"&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier;"&gt;e = getenv("ARSC_DEBUG");&lt;br /&gt;if (e){&lt;br /&gt;   debug = atoi(e);&lt;br /&gt;}&lt;br /&gt;nd = _ar_alsa_num_dev();&lt;br /&gt;if (debug) {&lt;br /&gt;   fprintf(stderr, "ARSC: debug=%d, nd=%ld\n", debug, nd);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;In this entry various methods will be investigated and presented.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-4438290145261135482?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/4438290145261135482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=4438290145261135482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/4438290145261135482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/4438290145261135482'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2009/08/c-debug-methods.html' title='C++ Debug Methods'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_PzGlzcJJ-_k/SphQxI88hJI/AAAAAAAAATQ/TNCJYBq9dhQ/s72-c/IMG_4217new.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-7896337302850224443</id><published>2009-07-20T12:47:00.000-07:00</published><updated>2009-07-20T13:19:41.929-07:00</updated><title type='text'>Open Source Schematic Capture and Layout</title><content type='html'>&lt;div&gt;&lt;div style="text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Issues with Footprints &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: tahoma; font-size: 13px; "&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;The footprint for the Texas Instruments part: TPA6120A2 calls for a thermal pad and the bottom half of the pins to be connected to ground.  A problem has risen with footprint, DRC errors highlight the pins in GEDAs pcb tool. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I have configured the symbol and called for the rest of the pins to be connected to ground, but an error flag persists.  What is the best way to troubleshoot this issue?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;The symbol has a property called: GND=6,7,8,9,10,11,12,13,15,21&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;My slotdefs are set: slotdef=1:1,2,3,4,5 and slotdef=2:20,19,18,17,16&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;So why does pcb highlight these pins when I connect them to GND?&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Below are the symbol and layout footprints.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Post Layout Checks&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Documentation&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;A very good source for documentation on pcb can be found in the following link:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;http://geda.seul.org/wiki/geda:pcb_tips?do=export_raw%22&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Figures:&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_PzGlzcJJ-_k/SmTOLWdazaI/AAAAAAAAASA/BdUeHZfidTg/s1600-h/tilayout.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 293px; height: 320px;" src="http://2.bp.blogspot.com/_PzGlzcJJ-_k/SmTOLWdazaI/AAAAAAAAASA/BdUeHZfidTg/s320/tilayout.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5360636150880587170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_PzGlzcJJ-_k/SmTM9yf-ZSI/AAAAAAAAAR4/r12MplsuF80/s1600-h/tiamp.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 233px;" src="http://4.bp.blogspot.com/_PzGlzcJJ-_k/SmTM9yf-ZSI/AAAAAAAAAR4/r12MplsuF80/s320/tiamp.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5360634818377704738" /&gt;&lt;/a&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-7896337302850224443?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/7896337302850224443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=7896337302850224443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/7896337302850224443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/7896337302850224443'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2009/07/open-source-schematic-capture-and.html' title='Open Source Schematic Capture and Layout'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_PzGlzcJJ-_k/SmTOLWdazaI/AAAAAAAAASA/BdUeHZfidTg/s72-c/tilayout.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-4130944996120728880</id><published>2008-12-18T11:26:00.000-08:00</published><updated>2009-01-08T16:22:14.602-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux Installation'/><category scheme='http://www.blogger.com/atom/ns#' term='xubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='MacBook Pro'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='8.10'/><title type='text'>MacBook Pro - Xubuntu</title><content type='html'>Running Xubuntu on a MacBook Pro&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Audio Issues&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;In general, I'm still having problems with the control of the devices that are part of the Intel HDA sound card.  I can control the main speakers, but the headphone has been tricky and I am nowhere touching the SPDIF interface.  The new issue is firewire audio devices.  I downloaded and installed ffado and jackd and they don't work and have not been able to find a solution.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More on this later.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Stability&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One recurring issue with the installation is that it looses that wireless connection with my cable modem.  It prompts me to reconnect and asks for the password, but after entering it carefully it does not connect at all.   I tried login'g out and login'g backing in, that does not work, so the solution is to restart and boot into my Linux Xubuntu.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A second problem with Xubuntu out of the box, it's too sensitive to touch on the touch-pad.  I have seen a patch to fix this, but I haven't tried it.  Will report on this again soon.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One very minor issue is the caps lock led does not light up.  I haven't looked for a patch for this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-4130944996120728880?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/4130944996120728880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=4130944996120728880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/4130944996120728880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/4130944996120728880'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2008/12/macbook-pro-xubuntu-audio-issues.html' title='MacBook Pro - Xubuntu'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-8879622136220251288</id><published>2008-10-27T08:23:00.000-07:00</published><updated>2008-12-02T20:04:07.120-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora 9'/><category scheme='http://www.blogger.com/atom/ns#' term='asoundrc'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac Pro quad core'/><category scheme='http://www.blogger.com/atom/ns#' term='pulse audio'/><title type='text'>Sound on Apple MacPro and MacBook Pro</title><content type='html'>&lt;ul&gt;&lt;li&gt;MacBook Pro&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;After installing the alsa drivers, for sound development, the audio stopped working.&lt;br /&gt;sudo lspci | grep Audio&lt;br /&gt;00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)&lt;br /&gt;&lt;br /&gt;aplay -l&lt;br /&gt;**** List of PLAYBACK Hardware Devices ****&lt;br /&gt;card 0: Intel [HDA Intel], device 0: ALC885 Analog [ALC885 Analog]&lt;br /&gt;Subdevices: 1/1&lt;br /&gt;Subdevice #0: subdevice #0&lt;br /&gt;card 0: Intel [HDA Intel], device 1: ALC885 Digital [ALC885 Digital]&lt;br /&gt;Subdevices: 1/1&lt;br /&gt;Subdevice #0: subdevice #0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;-------------------------------------&lt;br /&gt;chavo@tesla:~$ cat /etc/modprobe.d/alsa-base  | grep model&lt;br /&gt;chavo@tesla:~$ ls /etc/modprobe.d/al*&lt;br /&gt;/etc/modprobe.d/aliases  /etc/modprobe.d/alsa-base&lt;br /&gt;chavo@tesla:~$ head -n 1 /proc/asound/card0/codec*&lt;br /&gt;Codec: Realtek ALC889A&lt;br /&gt;chavo@tesla:~$ zless /usr/share/doc&lt;br /&gt;doc/      doc-base/&lt;br /&gt;chavo@tesla:~$ zless /usr/share/doc/alsa-base/driver/A&lt;br /&gt;ALSA-Configuration.txt.gz  Audigy-mixer.txt.gz        Audiophile-Usb.txt.gz&lt;br /&gt;chavo@tesla:~$ zless /usr/share/doc/alsa-base/driver/ALSA-Configuration.txt.gz&lt;br /&gt;chavo@tesla:~$ zless /usr/share/doc/alsa-base/driver/ALSA-Configuration.txt.gz&lt;br /&gt;chavo@tesla:~$ zless /usr/share/doc/alsa-base/driver/ALSA-Configuration.txt.gz&lt;br /&gt;chavo@tesla:~$ cat /etc/modprobe.d/alsa-base  &gt; /home/chavo/Documents/alsa_base_after_alsa_upgrade&lt;br /&gt;&lt;br /&gt;added the  option model to: chavo@tesla:~$ sudo vim  /etc/modprobe.d/alsa-base&lt;br /&gt;Reference: http://ubuntuforums.org/showthread.php?t=806620&lt;br /&gt;&lt;br /&gt;The model=mbp3 did not work, but using options snd-hda-intel model=imac24, worked ok for the main speakers.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mac Pro (mbp3) asoundrc&lt;/li&gt;&lt;/ul&gt;On the Mac Pro (Fedora 9 installation) Pulse Audio was installed, but still exhibited problems.  The original .asoundrc ( in the home directory ) configured as:&lt;br /&gt;&lt;br /&gt;pcm.pulse{&lt;br /&gt;type pulse&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ctl.pulse {&lt;br /&gt;type pulse&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pcm.phononpulse {&lt;br /&gt;type plug&lt;br /&gt;slave.pcm {&lt;br /&gt;type pulse&lt;br /&gt;}&lt;br /&gt;hint {&lt;br /&gt;show on&lt;br /&gt;description "PulseAudio"&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;I created a the "sound" file under /etc/modprob.d/ but for the Mac Pro laptop, the same did not work.  I changed it to "alsa-base" and that got my inputs (microphone and line-in) to work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-8879622136220251288?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/8879622136220251288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=8879622136220251288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/8879622136220251288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/8879622136220251288'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2008/10/mac-pro-mbp3-asoundrc.html' title='Sound on Apple MacPro and MacBook Pro'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-604708816024893998</id><published>2008-08-29T14:28:00.000-07:00</published><updated>2008-09-12T18:57:59.430-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NFS Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Firewall'/><category scheme='http://www.blogger.com/atom/ns#' term='Darwin Client'/><category scheme='http://www.blogger.com/atom/ns#' term='fedora on  Mac Pro'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora 9'/><title type='text'>NFS Server Setup on Mac Pro Tower</title><content type='html'>FEDORA 9 - NFS Server Setup&lt;br /&gt;===========================&lt;br /&gt;&lt;br /&gt;NFS Server&lt;br /&gt;==========&lt;br /&gt;/etc/exports&lt;br /&gt;/usr/local 76.223.xx.xx(ro)&lt;br /&gt;/home      76.223.xx.xx(rw,insecure,sync)&lt;br /&gt;&lt;br /&gt;/etc/hosts.allow&lt;br /&gt;#&lt;br /&gt;# hosts.allow   This file contains access rules which are used to&lt;br /&gt;#               allow or deny connections to network services that&lt;br /&gt;#               either use the tcp_wrappers library or that have been&lt;br /&gt;#               started through a tcp_wrappers-enabled xinetd.&lt;br /&gt;#&lt;br /&gt;#               See 'man 5 hosts_options' and 'man 5 hosts_access'&lt;br /&gt;#               for information on rule syntax.&lt;br /&gt;#               See 'man tcpd' for information on tcp_wrappers&lt;br /&gt;#&lt;br /&gt;mountd:  mac_os_client0, linux_client0&lt;br /&gt;&lt;br /&gt;/etc/hosts.deny&lt;br /&gt;currently empty&lt;br /&gt;&lt;br /&gt;Next, I typed the following:&lt;br /&gt;/usr/sbin/exportfs -ra&lt;br /&gt;&lt;br /&gt;Next, verify /proc/fs/nfs/exports&lt;br /&gt;# Version 1.1&lt;br /&gt;# Path Client(Flags) # IPs&lt;br /&gt;It comes up empty&lt;br /&gt;&lt;br /&gt;Next, I type the following:&lt;br /&gt;/sbin/chkconfig --list nfs&lt;br /&gt;nfs             0:off   1:off   2:off   3:off   4:off   5:on    6:off&lt;br /&gt;rpm -qa | grep nfs&lt;br /&gt;nfs-utils-1.1.2-2.fc9.x86_64&lt;br /&gt;system-config-nfs-1.3.40-1.fc9.noarch&lt;br /&gt;nfs-utils-lib-1.1.1-5.fc9.x86_64&lt;br /&gt;nfs-utils-lib-1.1.1-3.fc9.x86_64&lt;br /&gt;nfs-utils-1.1.2-6.fc9.x86_64&lt;br /&gt;&lt;br /&gt;/sbin/chkconfig portmap on&lt;br /&gt;error reading information on service portmap: No such file or directory&lt;br /&gt;&lt;br /&gt;/sbin/service nfs restart&lt;br /&gt;Shutting down NFS mountd:                                  [FAILED]&lt;br /&gt;Shutting down NFS daemon:                                  [FAILED]&lt;br /&gt;Shutting down NFS quotas:                                  [FAILED]&lt;br /&gt;Shutting down NFS services:  exportfs: could not open /var/lib/nfs/etab for locking&lt;br /&gt;exportfs: can't lock /var/lib/nfs/etab for writing&lt;br /&gt;                                                         [  OK  ]&lt;br /&gt;rm: cannot remove `/var/lock/subsys/nfs': Permission denied&lt;br /&gt;Starting NFS services:  exportfs: could not open /var/lib/nfs/etab for locking&lt;br /&gt;exportfs: can't lock /var/lib/nfs/etab for writing&lt;br /&gt;                                                         [  OK  ]&lt;br /&gt;Starting NFS quotas:                                       [  OK  ]&lt;br /&gt;Starting NFS daemon:                                       [FAILED]&lt;br /&gt;&lt;br /&gt;but if you use&lt;br /&gt;#sudo /sbin/service nfs restart, then they all pass.&lt;br /&gt;&lt;br /&gt;Verify export mounts:&lt;br /&gt;$ /usr/sbin/showmount -e&lt;br /&gt;Export list for hostname.domain.xxx:&lt;br /&gt;/home      mac_os_client_ip, linux_client_ip&lt;br /&gt;/usr/local mac_os_client_ip, linux_client_ip5&lt;br /&gt;&lt;br /&gt;Firewall Configuration&lt;br /&gt;From: http://blog.mottershead.me.uk&lt;br /&gt;Run from the command line:&lt;br /&gt;#system-config-firewall launches a gui (enter your root pwd)&lt;br /&gt;&lt;br /&gt;Add to Trusted Services:&lt;br /&gt;&lt;br /&gt;111 tcp sunrpc&lt;br /&gt;111 udp sunrpc&lt;br /&gt;&lt;br /&gt;Next, click on the Add again and User Defined box and enter each of the&lt;br /&gt;following ports:&lt;br /&gt;&lt;br /&gt;889 tcp&lt;br /&gt;889 udp&lt;br /&gt;890 tcp&lt;br /&gt;890 udp&lt;br /&gt;&lt;br /&gt;Next click on Apply and&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Client: Mac OS&lt;br /&gt;==============&lt;br /&gt;&lt;br /&gt;When I type:&lt;br /&gt; sudo mount_nfs server_ip:/home/ local_dir/&lt;br /&gt;&lt;br /&gt; sudo mount -t nfs server_ip:/home/usr/Music /local_dir/&lt;br /&gt;&lt;br /&gt; I keep getting error havind to do with RPC.&lt;br /&gt;&lt;br /&gt;#rpcinfo -p nn.nn.nn.nn&lt;br /&gt;rpcinfo: can't contact portmapper: RPC: Remote system error - Operation timed out&lt;br /&gt;&lt;br /&gt;rpcinfo command also takes a long time to acknowledge or return the error.&lt;br /&gt;&lt;br /&gt;Verifying the daemons running, I get the following&lt;br /&gt;  ps -aux | grep -E "nfsiod|nfsd|mountd|automount"&lt;br /&gt;  root       125   0.0  0.0    29308    512  ??  Ss    7:44AM   0:00.00 nfsiod -n 4&lt;br /&gt;  root       207   0.0  0.4    30336   3792  ??  Ss    7:44AM   0:02.53 /usr/sbin/automount -f -m /Network -&lt;br /&gt;  root       215   0.0  0.1    29420   1020  ??  Ss    7:44AM   0:00.29 /usr/sbin/automount -f -m /automount&lt;br /&gt;&lt;br /&gt;I have followed the directions to setup an automount using netinfo on the Mac side,&lt;br /&gt;but that did not return favorable results.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Useful links:&lt;br /&gt;http://linux.derkeiler.com/Mailing-Lists/Fedora/2007-09/msg03343.html&lt;br /&gt;&lt;br /&gt;/sysconfig/nfs&lt;br /&gt;http://blog.mottershead.me.uk/blog/_archives/2008/7/17/3796637.html&lt;br /&gt;&lt;br /&gt;http://physics.ramapo.edu/downloads/DarwinAndNFS.pdf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Useful links:&lt;br /&gt;http://linux.derkeiler.com/Mailing-Lists/Fedora/2007-09/msg03343.html&lt;br /&gt;&lt;br /&gt;/sysconfig/nfs&lt;br /&gt;http://blog.mottershead.me.uk/blog/_archives/2008/7/17/3796637.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-604708816024893998?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/604708816024893998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=604708816024893998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/604708816024893998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/604708816024893998'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2008/08/nfs-server-setup-on-mac-pro-tower.html' title='NFS Server Setup on Mac Pro Tower'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-1303012283632344700</id><published>2008-08-07T09:34:00.000-07:00</published><updated>2008-12-18T11:26:40.671-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fedora on  Mac Pro'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac Pro'/><category scheme='http://www.blogger.com/atom/ns#' term='Intel Xenon'/><category scheme='http://www.blogger.com/atom/ns#' term='Quad Core'/><title type='text'>Mandriva/Fedora on Mac Pro Quad-Core Intel Xenon - Part One</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Hardware Overview:&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Mac Pro - MacPro3,1&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Quad-Core Intel Xenon&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;2.8GHz&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;2 Processors&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;2GB of Memory&lt;br /&gt;&lt;br /&gt;1. &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Install rEFIT&lt;br /&gt;2. &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Using Boot Camp - Repartition the harddrive&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;- 32GB (actual 31.6GB)&lt;br /&gt;3. &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Downloaded and burned to DVD mandriva-linux-free-2008-spring-dvd-x86_64.iso&lt;br /&gt;4. &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Restart and when the system comes up check that that the partition tables are synced and no overlap problems are found with the partitions.&lt;br /&gt;5. &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Shutdown&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;6. &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Hold the "option" key and turn on the Mac Pro, this will show you two harddrives and one CD, select the CD.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;7. &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;You will now boot into linux.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;8.&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;go through the entire installation, this section had a tricky part .. the deletion of 32G fat32 partition and writing over it.  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I ended up doing everything by the book, I dedicated 30 gigs to  "/"  for the main installation and only 2gigs for swap.  Then after going through the entire thing, the kernel did not load and it didn't boot.  I ended up installing fedora9 and noticed that wha I had was two logical volumes, which I didn't understand.  I'm not versed in the arts of logical volumes, so I deleted the logical volumes, deleted everything to end up back with a 32G partition.  I again, dedicated 30 gig to "/" and the rest to the swap partition.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Update:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Problems with the installation of Mandriva were encountered.  The problem had to do with kernel unable to mount/boot from the correct HD partitions.  I had abandon this and instead installed fedora 9.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Fedora 9 on Mac Pro (Quad core)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;So far the only problem is that I don't have audio working!!&lt;br /&gt;Audio Update:&lt;br /&gt;1.  When I bring up the "Pulse Volume Control" gui, the first tab "Playback"  comes up empty, and grayed-out is "No Streams Available"&lt;br /&gt;2.   aplay does not produce sound, period!&lt;br /&gt;3.   Amrok's welcome sample does not produce sound out of the std tower speaker or the headphone jack.&lt;br /&gt;&lt;br /&gt;I didn't notice anything strange on the output of the alsa-info.sh file, but when I checked the var/log/messages, this is what I found:&lt;br /&gt;&lt;br /&gt;sudo cat /var/log/messages | grep ALSA&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_intel.c:1810: chipset global capabilities = 0x4401&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_intel.c:749: codec_mask = 0x1&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave Surround Playback Volume, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave Center Playback Volume, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave LFE Playback Volume, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave Side Playback Volume, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave Headphone Playback Volume, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave Speaker Playback Volume, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave &lt;/span&gt;&lt;span style="border-bottom: 1px dashed rgb(0, 102, 204); cursor: pointer;" class="yshortcuts" id="lw_1218832490_21"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Mono&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; Playback Volume, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave Line-Out Playback Volume, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave Surround Playback Switch, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave Center Playback Switch, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave LFE Playback Switch, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave Side Playback Switch, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave Speaker Playback Switch, skipped&lt;br /&gt;Aug 11 07:52:10 macprolinx kernel: ALSA sound/pci/hda/hda_codec.c:1073: Cannot find slave Mono Playback Switch, skipped&lt;br /&gt;&lt;br /&gt;Aug 15, 2008 Update:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=";"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;================================================&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=";"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Thanks to Stan from the alsa-project forum email list:&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=";"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Subject: Re: [alsa-devel] latest Mac Pro (quad core) audio issues&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=";"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;================================================&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=";"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I think your problem is a misidentification of your sound chip.  The &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=";"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;model being used for your 889A appears to be incompatible, thus all &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=";"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;the errors above.  It appears that the macpro ALC885 is being selected &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=";"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;before it gets to the choice for the ALC889A.  Perhaps a developer can &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=";"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;look into this.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt; &lt;/ul&gt;         &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;!!HDA-Intel Codec information&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;!!---------------------------&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Codec: Realtek ALC889A&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;!!Aplay/Arecord output&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;!!------------&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;APLAY&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;**** List of PLAYBACK Hardware Devices ****&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;card 0: Intel [HDA Intel], device 0: ALC885 Analog [ALC885 Analog]&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;  Subdevices: 1/1&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;  Subdevice #0: subdevice #0&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;One shows ALC889A and the other shows ALC885.  In the driver code &lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;there is a comment to the effect that the 889A is best handled as an &lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;ALC888, yet the macpro is listed under the ALC885.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;I am not a developer so can't go beyond this, but it seems that there &lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;is a problem.  There should be a macpro under the ALC888 as well as &lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;the 885.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Here are the model options for the two candidates&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;    ALC882/885&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      3stack-dig    3-jack with SPDIF I/O&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      6stack-dig    6-jack digital with SPDIF I/O&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      arima        Arima W820Di1&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      targa        Targa T8, MSI-1049 T8&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      asus-a7j    ASUS A7J&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      asus-a7m    ASUS A7M&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      macpro    MacPro support&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      mbp3        Macbook Pro rev3&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      imac24    iMac 24'' with jack detection&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      w2jc        ASUS W2JC&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      auto        auto-config reading BIOS (default)&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;    ALC883/888&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      3stack-dig    3-jack with SPDIF I/O&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      6stack-dig    6-jack digital with SPDIF I/O&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      3stack-6ch    3-jack 6-channel&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      3stack-6ch-dig 3-jack 6-channel with SPDIF I/O&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      6stack-dig-demo  6-jack digital for Intel demo board&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      acer        Acer laptops (Travelmate 3012WTMi, Aspire 5600, etc)&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      acer-aspire    Acer Aspire 9810&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      medion    Medion Laptops&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      medion-md2    Medion MD2&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      targa-dig    Targa/MSI&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      targa-2ch-dig    Targs/MSI with 2-channel&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      laptop-eapd  3-jack with SPDIF I/O and EAPD (Clevo M540JE, M550JE)&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      lenovo-101e    Lenovo 101E&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      lenovo-nb0763    Lenovo NB0763&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      lenovo-ms7195-dig Lenovo MS7195&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      haier-w66    Haier W66&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      3stack-hp    HP machines with 3stack (Lucknow, Samba boards)&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      6stack-dell    Dell machines with 6stack (Inspiron 530)&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      mitac        Mitac 8252D&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      clevo-m720    Clevo M720 laptop series&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      fujitsu-pi2515 Fujitsu AMILO Pi2515&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;      auto        auto-config reading BIOS (default)&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;From the code, here is the comment indicating it should be treated as &lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;an ALC888:&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;if (board_config &lt;&gt;= ALC882_MODEL_LAST) {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;        /* Pick up systems that don't supply PCI SSID */&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;        switch (codec-&gt;subsystem_id) {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;        case 0x106b0c00: /* Mac Pro */&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;            board_config = ALC885_MACPRO;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;            break;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;        case 0x106b1000: /* iMac 24 */&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;            board_config = ALC885_IMAC24;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;            break;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;        case 0x106b00a1: /* Macbook (might be wrong - PCI SSID?) */&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;        case 0x106b2c00: /* Macbook Pro rev3 */&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;        case 0x106b3600: /* Macbook 3.1 */&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;            board_config = ALC885_MBP3;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;            break;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;        default:&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;            /* ALC889A is handled better as ALC888-compatible */&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;            if (codec-&gt;revision_id == 0x100103) {&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;                alc_free(codec);&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;                return patch_alc883(codec);&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;            }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;            printk(KERN_INFO "hda_codec: Unknown model for ALC882, "&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;                          "trying auto-probe from BIOS...\n");&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;            board_config = ALC882_AUTO;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;        }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;    }&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; min-height: 15px; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;------------------------------&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;Flashplayer on a 64bit installation of Fedora 9&lt;br /&gt;&lt;br /&gt;Thanks to Hacktux: http://hacktux.com/fedora/9/flash&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;Contact me if you have any issues or questions.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-1303012283632344700?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/1303012283632344700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=1303012283632344700' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/1303012283632344700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/1303012283632344700'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2008/08/mandriva-on-mac-pro-quad-core-intel.html' title='Mandriva/Fedora on Mac Pro Quad-Core Intel Xenon - Part One'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-3182390122172226475</id><published>2008-07-15T11:22:00.000-07:00</published><updated>2010-10-19T06:10:50.323-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='indigo IO'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Motu'/><category scheme='http://www.blogger.com/atom/ns#' term='audio cards'/><category scheme='http://www.blogger.com/atom/ns#' term='alsa'/><category scheme='http://www.blogger.com/atom/ns#' term='layla3g'/><category scheme='http://www.blogger.com/atom/ns#' term='sync IO'/><category scheme='http://www.blogger.com/atom/ns#' term='asound'/><title type='text'>IO Synchronization on Audio Devices Running on Various Linux Platforms</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_PzGlzcJJ-_k/SXUChjtevLI/AAAAAAAAAJg/yCa6RX4YdqA/s1600-h/layla3g_both_big.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5293139712588823730" src="http://4.bp.blogspot.com/_PzGlzcJJ-_k/SXUChjtevLI/AAAAAAAAAJg/yCa6RX4YdqA/s320/layla3g_both_big.jpg" style="cursor: pointer; display: block; height: 120px; margin: 0px auto 10px; text-align: center; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: #330099; font-weight: bold;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #330099; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #330099; font-weight: bold;"&gt;Linux Audio&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #330099; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #330099; font-weight: bold;"&gt;IO Synchronization&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #330099;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #330099; font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;What commercial audio devices offer the best audio IO synchronization for use in auditory research?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #330099; font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #330099; font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;On the mailing list: Research in Auditory Perception &lt;auditory@lists.mcgill.ca&gt;&lt;/auditory@lists.mcgill.ca&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;- Christian Borss (Inst. of Acoustic Communications of Ruhr University at Bochum (DE)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;RME multiface&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;- Ivo Merks (Windows System&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;RME multiface&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;- Oliver Crouzet&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Edirol FA-101 and FA-66&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;On www.ffado.org ( linux project working on firewire drivers )&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;- Motu is hostile to linux comments&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;On Ardour (digital audio workstation for linux and Mac OSX)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;- Paul Davis&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Basically there are no drivers and motu is hostile to linux&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Recommended manufacturers (General no synch specific) : RME,M-Audio, Echo&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;- Ardour FAQ Basic Audio I/O&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;What audio interfaces should I use with Ardour?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;"You can use any interface supported on your platform (Linux or OS X).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;For PCI /PCIe/etc. cards to install inside a computer, we recommend:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;more than 26 channels&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;RME MADI&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;more than 12 channels&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;RME HDSP&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;2-12 channels&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;M-Audio Delta 1010&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;2-4 channels&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;M-Audio Delta 44, 66 or 2496&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;For portable devices to use with laptops and other portable computing&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;devices, we recommend:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;PCMCIA/CardBus/ExpressCard&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;All RME Hammerfall IO Boxes (Multiface, Digiface, RPM) work with either&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;the Cardbus or ExpressCard interface, but please check with your Cardbus&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;chipset driver first. There's also the RME MADIface, a mobile MADI&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;interface for the ExpressCard slot (up to 64 channels).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Firewire devices&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Please visit FFADO to see what Firewire devices are currently supported&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;on Linux.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;USB devices&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;You'll be using a nasty little USB thing with support for just a couple&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;of channels. Check the ALSA soundcard matrix to verify that specific&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;devices are supported. Note that almost all USB1 audio interface are&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;supported and that almost no USB2 audio interfaces are. You can thank&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;the brain dead morons in the audio technology industry for this situation.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Please note that MOTU have consistently been aggressively anti-Linux&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;when asked about the information needed to support their devices.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Those MOTU devices that actually work on Linux do so only because of&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;pain-staking reverse engineering, and most do not work. We recommend&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;that you avoid this company's products, not because of their engineering&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;quality, but because of their stubborn refusal to help us create drivers&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;for their product. This stands in marked contrast to the cooperation&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;offered by RME, M-Audio and many other companies."&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;On Portaudio&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;- Portaudio (PA) is an equivalent of ARSC as it is a 'C' language API and&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;library implemented as a layer on top of the Linux's ALSA host audio&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;services. This means that ALSA supported hardware is the only option&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;we have, since we have no plans to write our own drivers. Some drivers&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for firewire are available via ffado.org&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;- I'll look at PA's sync tests and run this on layla3g and will check&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;with Steve to interpret those results vs ARSC tstlat&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;So there seems to be some evidence that sync io on linux is good using&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;the RME cards! &amp;nbsp;The next best are Echo(GINA3G/LAYLA3G) and the&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;Roland/Edirol cards&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #330099; font-weight: bold;"&gt;Linux | Alsa | Echo Layla3G and Indigo IO&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #330099; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #330099; font-weight: bold;"&gt;Layla3g, Echo, PCI&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #330099;"&gt;&lt;span style="color: black;"&gt;Running on Fedora core 9, the installation went fairly easy, all I had to do after installing the OS, install the firmware.&lt;br /&gt;&lt;br /&gt;The next thing was uninstall pulse audio.  Alsamixer shows 5 pcm playback devices, and as many as 255 mixer capture devices and that does not make sense.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #330099; font-weight: bold;"&gt;ECHO Indigo IO &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;On Gentoo is a different story:&amp;nbsp; Using Sabayon, a Gentoo distro, I got the Indigo card to be recognized, but it does not work and I am looking for solutions to this problem online (14-jan-2010).&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ECHO Indigo IO working (to a first approximation) on Thinkpad X41&lt;br /&gt;&lt;div&gt;&lt;br /&gt;* Some initial issues with the installation:  ECHO Indigo IO pcmcia card&lt;br /&gt;&lt;br /&gt;I'm trying to get a PCMCIA card to work on Thinkpad X41 and it can't find the firmware.  According to www.webalice.it/g_pochini/ead/ I should install the hotplug scripts, if I download them from&lt;br /&gt;&lt;br /&gt;ftp.kernel.org/pub/linux/utils/kernel/hotplug/&lt;br /&gt;&lt;br /&gt;there are hotplug-2004XXXX&lt;br /&gt;hotplug-base&lt;br /&gt;hotplug-core&lt;br /&gt;hotplug-ng&lt;br /&gt;&lt;br /&gt;etc&lt;br /&gt;&lt;br /&gt;Is this recommended for SL5.1 ?&lt;br /&gt;&lt;br /&gt;The errors I get look like this ( from dmesg )&lt;br /&gt;PCI: Enabling device 0000:05:00.0 (0000 -&amp;gt; 0002)&lt;br /&gt;ACPI: PCI Interrupt 0000:05:00.0[A] -&amp;gt; GSI 16 (level, low) -&amp;gt; IRQ 177&lt;br /&gt;get_firmware(): Firmware not available (-2)&lt;br /&gt;ACPI: PCI interrupt for device 0000:05:00.0 disabled&lt;br /&gt;Echoaudio Indigo IO: probe of 0000:05:00.0 failed with error -2&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-3182390122172226475?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/3182390122172226475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=3182390122172226475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/3182390122172226475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/3182390122172226475'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2008/07/linux-alsa-indigo-io-pcmcia-audio-card.html' title='IO Synchronization on Audio Devices Running on Various Linux Platforms'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_PzGlzcJJ-_k/SXUChjtevLI/AAAAAAAAAJg/yCa6RX4YdqA/s72-c/layla3g_both_big.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-7798123766713946374</id><published>2008-07-08T19:57:00.000-07:00</published><updated>2008-12-10T16:07:13.599-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='configuring repository'/><category scheme='http://www.blogger.com/atom/ns#' term='scientific linux'/><category scheme='http://www.blogger.com/atom/ns#' term='working folders'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><title type='text'>Linux - Scientific Linux User</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_PzGlzcJJ-_k/SHzScRTqeEI/AAAAAAAAACU/0IIIX04uCjU/s1600-h/Screenshot.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_PzGlzcJJ-_k/SHzScRTqeEI/AAAAAAAAACU/0IIIX04uCjU/s200/Screenshot.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5223281050966980674" /&gt;&lt;/a&gt;&lt;br /&gt;DISPLAYS&lt;br /&gt;DUAL SCREEN&lt;br /&gt;Trying to drive a 1440x900 widescreen external LCD, these are some of the problems: I end up with the clone view and 3/4 of the external LCD are effectively configured, but pages use the entire LCD.  The figure below shows only what is effectively active, the greyed-out section on my screen looks active.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;AUDIO SETUP&lt;br /&gt;&lt;br /&gt;One of the requirements for audio development in my particular case is to start install arsc.  This requires tha my installation of Scientific Linux (SL) to have the kernel source code under /usr/src/&lt;br /&gt;&lt;br /&gt;HARDWARE&lt;br /&gt;&lt;br /&gt;* Thinkpad X41 &lt;br /&gt;&lt;br /&gt;* ECHO Indigo IO pcmcia card &lt;br /&gt;&lt;br /&gt;I'm trying to get a PCMCIA card to work on Thinkpad X41 and it can't find the firmware.  According to www.webalice.it/g_pochini/ead/ I should install the hotplug scripts, if I download them from&lt;br /&gt;&lt;br /&gt;   ftp.kernel.org/pub/linux/utils/kernel/hotplug/ &lt;br /&gt;&lt;br /&gt;there are hotplug-2004XXXX&lt;br /&gt;hotplug-base&lt;br /&gt;hotplug-core&lt;br /&gt;hotplug-ng&lt;br /&gt;&lt;br /&gt;etc &lt;br /&gt;&lt;br /&gt;Is this recommended for SL5.1 ?&lt;br /&gt;&lt;br /&gt;The errors I get look like this ( from dmesg ) &lt;br /&gt; PCI: Enabling device 0000:05:00.0 (0000 -&gt; 0002)&lt;br /&gt; ACPI: PCI Interrupt 0000:05:00.0[A] -&gt; GSI 16 (level, low) -&gt; IRQ 177&lt;br /&gt; get_firmware(): Firmware not available (-2)&lt;br /&gt; ACPI: PCI interrupt for device 0000:05:00.0 disabled&lt;br /&gt; Echoaudio Indigo IO: probe of 0000:05:00.0 failed with error -2&lt;br /&gt;&lt;br /&gt;Sound Card Fix&lt;br /&gt;Looking again to the following links, respectively, I managed to fix the problem without fully installing the firmware for the OS.&lt;br /&gt;1.  http://ubuntuforums.org/showthread.php?p=1398393&lt;br /&gt;2.  https://help.ubuntu.com/community/EchoMia&lt;br /&gt;&lt;br /&gt;The second link was very useful, because it walks you through the steps and allows one to "make clean" in case an attempt has been made to compile the alsa components.&lt;br /&gt;&lt;br /&gt;The only step I did by-pass is the one reference by g_puchini stating that we provide a link in /lib/firmware to /usr/lib/hotplug/firmware and vice versa.  While I did follow the steps to download the hotplug "scripts" I still did not do Puchini's step because I ended up with an installation that did not have the "hotplug/firmware" folders under "/usr/lib/" so I didn't know what aught to have been in the &lt;span style="font-style:italic;"&gt;hotplug/firmware&lt;/span&gt; folders.  Next, I restarted the Thinkpad and voila!  No errors on &lt;span style="font-style:italic;"&gt;dmesg&lt;/span&gt; were reported, and three devices or cards show up in the file: &lt;span style="font-style:italic;"&gt;/proc/asound/cards&lt;/span&gt;, thanks to the users on Scientific-Linux-Users forum and to the authors provided in the links.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Comment or correct if you see something worth mentioning.&lt;br /&gt;&lt;br /&gt;REVISION CONTROL&lt;br /&gt;&lt;br /&gt;Subversion Setup&lt;br /&gt;&lt;br /&gt;Creating repositories:  Following the instructions from blog, I ended up with an error in step 8.  When I type: "svnsync initialize file:///var/www/svn/repos http://localhost/repos --username=svnmirror"  below is the error msg:&lt;br /&gt;&lt;br /&gt;svnsync: 'pre-revprop-change' hook failed with error output:&lt;br /&gt;&lt;br /&gt;Lastly, step 3 also talks about setting: "NameVirtualHost *:80" but I already have the following, 'Listen 8080'&lt;br /&gt;should I append to the  &lt;br /&gt;"/etc/httpd/conf/httpd.conf" the line you mentioned: "NameVirtualHost *:80" ??&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-7798123766713946374?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/7798123766713946374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=7798123766713946374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/7798123766713946374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/7798123766713946374'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2008/07/creating-repositories-under-linux.html' title='Linux - Scientific Linux User'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_PzGlzcJJ-_k/SHzScRTqeEI/AAAAAAAAACU/0IIIX04uCjU/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-8381794011488002391</id><published>2008-07-07T14:02:00.000-07:00</published><updated>2008-07-07T14:15:59.091-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='berkeley-db'/><category scheme='http://www.blogger.com/atom/ns#' term='apache2'/><category scheme='http://www.blogger.com/atom/ns#' term='httpd'/><title type='text'>Apache httpd  v 2.2.9 problems with fresh installations</title><content type='html'>Using the source code to install apache2 there are problems with the configure option "--without-berkeley-db"  and none of the sites really discuss a work-around.  I had to downgrade to 2.2.3 although it might work with 2.2.8 as well, but I didn't try it.  My istallation warned me that it could deal with this option.  If any of you know a work around please let me know.&lt;br /&gt;&lt;br /&gt;There is more, while it didn't give me the same warning, when I got to starting the httpd it still complaints: "... Cannot load mod_dav_svn.so into server: /usr/lib/libsvn_fs_base-1.so.0: undefined symbol: db_create"&lt;br /&gt;&lt;br /&gt;where /usr/lib/libsvn_fs_base-1.so.0 is in fact a link to /usr/lib/libsvn_fs_base-1.so.0.0.0&lt;br /&gt;&lt;br /&gt;I welcome your info.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-8381794011488002391?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/8381794011488002391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=8381794011488002391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/8381794011488002391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/8381794011488002391'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2008/07/apache-httpd-v-229-problems-with-fresh.html' title='Apache httpd  v 2.2.9 problems with fresh installations'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-8120244786917716599</id><published>2008-04-05T05:43:00.000-07:00</published><updated>2008-04-05T10:38:53.781-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OSX 10.4.x'/><category scheme='http://www.blogger.com/atom/ns#' term='Not booting'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerBook G4'/><title type='text'>April 08 Mac OS update: G4 Powerbook does not boot</title><content type='html'>I press Command+option+shift+delete and all I get is a folder with question mark.  When I press "C" to boot from the CD, nothing happens even though I have a linux bootable CD installed.&lt;br /&gt;&lt;br /&gt;Pressing Shift after power-ON, nothing happens, it just sits on the first splash screen for a while, then kicks into "Staring Mac OS X" [reference: http://www.fif3.com/howto/archives/001983.html]&lt;br /&gt;&lt;br /&gt;Apple discussions and forums show that you can the System CD to boot from it and repair the installation.  What to do when you don't have  the stupid System CD?  There was an option for BootCD, but it does not support Mac OSX 10.4.x, so that does not work for me.  I'm downloading a version of OpenSuSe LiveCD to see if I can get access to the HD.&lt;br /&gt;&lt;br /&gt;Mean while from http://sonicchicken.net/blog/wordpress/20050926/boot-options-for-powerbook-g4/&lt;br /&gt;&lt;br /&gt;I got the PBG4 to boot to the command line using Command-S.  But after checking the HD, and it comes up ok, that's all I can think of doing.  I have also pressed the T to  connect it to my Mac Mini and use it to backup my Users folder.&lt;br /&gt;&lt;br /&gt;What I want is to be able to boot from CD, any input anyone might have will be very useful.&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;http://discussions.apple.com/thread.jspa?messageID=6547575&amp;#6547575&lt;br /&gt;http://docs.info.apple.com/article.html?path=Mac/10.4/en/cdb_strtup.html&lt;br /&gt;http://docs.info.apple.com/article.html?artnum=106214&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-8120244786917716599?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/8120244786917716599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=8120244786917716599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/8120244786917716599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/8120244786917716599'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2008/04/april-08-mac-os-update-g4-powerbook.html' title='April 08 Mac OS update: G4 Powerbook does not boot'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-2896233144176784685</id><published>2007-10-30T16:24:00.001-07:00</published><updated>2007-11-04T06:19:01.480-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='winsound'/><category scheme='http://www.blogger.com/atom/ns#' term='deploy app'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Acquistion'/><category scheme='http://www.blogger.com/atom/ns#' term='Matlab'/><title type='text'>Failing to fully test features in Matlab</title><content type='html'>Matlab release 14 SP3 included the data acquisition toolbox and when programs written in Matlab were compiled, using the Compiler, these programs were capable of being deployed to other machines.  Except, this did not work out-of-the-box.  I wrote a program about a year ago and compiled it. When the program run on the development PC, the stand-alone program works fine, but when deployed to other PCs, the program fails to talk with the hardware.&lt;br /&gt;&lt;br /&gt;A year later I need to demo the program, but after checking on the Matlab user forums no links are found relating to this problem, but a developer claims that the problem was fixed in later releases.  That's fine, but I need to run this program now and I don't have a current license to recompile the file be on my way.  The current release would allow me to recompile the file and solve the issue.  Contacting the support line has revealed little knowledge about a workaround to this issue on their side, and after a couple of days a solution was found.&lt;br /&gt;&lt;br /&gt;One must register the winsound dll file.  First, after running the executable, a directory is created: &lt;em&gt;app_name&lt;/em&gt;_mcr/ in this directory go to: \&lt;em&gt;app_name&lt;/em&gt;_mcr\&lt;em&gt;app_name&lt;/em&gt;_mcr\toolbox\daq\daq\private &lt;br /&gt;&lt;br /&gt;Here you will find a file: &lt;em&gt;&lt;strong&gt;mwwinsound.dll&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;in windows XP (check with Mathworks for other OS's) you register the dll by typing: regsrv32 mwwinsound.dll, then run your application again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-2896233144176784685?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/2896233144176784685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=2896233144176784685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/2896233144176784685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/2896233144176784685'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2007/10/failing-to-fully-test-features-in.html' title='Failing to fully test features in Matlab'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4139679813985071386.post-2747980748944049638</id><published>2007-10-25T19:07:00.000-07:00</published><updated>2008-12-10T16:07:13.858-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shareware'/><category scheme='http://www.blogger.com/atom/ns#' term='nonlinear-capacitance'/><category scheme='http://www.blogger.com/atom/ns#' term='prestin'/><title type='text'>Prestin Non-linear Capacitance Plotter: jplotNLC</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_PzGlzcJJ-_k/RyFhOBVx7KI/AAAAAAAAAAs/RnXVnFwl-jE/s1600-h/A6116006.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_PzGlzcJJ-_k/RyFhOBVx7KI/AAAAAAAAAAs/RnXVnFwl-jE/s200/A6116006.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5125484744430185634" /&gt;&lt;/a&gt;&lt;br /&gt;jplotNLC by S. Aguiñaga&lt;br /&gt;This basic java app plots the NLC ascii files extracted from jClamp32 (SciSoft).  Save files with asc file extension.  Then select each one with jplotNLC and display prestin's NLC.&lt;br /&gt;&lt;br /&gt;link: http://Electrophysiology.googlegroups.com/web/jplotNLC.jar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4139679813985071386-2747980748944049638?l=serpentinista.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://serpentinista.blogspot.com/feeds/2747980748944049638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4139679813985071386&amp;postID=2747980748944049638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/2747980748944049638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4139679813985071386/posts/default/2747980748944049638'/><link rel='alternate' type='text/html' href='http://serpentinista.blogspot.com/2007/10/prestin-non-linear-capacitance-plotter.html' title='Prestin Non-linear Capacitance Plotter: jplotNLC'/><author><name>windsword</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_PzGlzcJJ-_k/RyFhOBVx7KI/AAAAAAAAAAs/RnXVnFwl-jE/s72-c/A6116006.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
