<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Drawing Waveforms</title>
	<atom:link href="http://www.supermegaultragroovy.com/blog/2009/10/06/drawing-waveforms/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.supermegaultragroovy.com/blog/2009/10/06/drawing-waveforms/</link>
	<description>Chris Liscio's Boo-urns Log</description>
	<lastBuildDate>Sun, 04 Jul 2010 15:10:55 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Bastian</title>
		<link>http://www.supermegaultragroovy.com/blog/2009/10/06/drawing-waveforms/comment-page-1/#comment-92001</link>
		<dc:creator>Bastian</dc:creator>
		<pubDate>Fri, 26 Mar 2010 17:27:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.supermegaultragroovy.com/blog/?p=494#comment-92001</guid>
		<description>Your post just solved a huge problem I was struggling with for the last few days. Thanks a lot!

(There really is not too much information out there on these topics)</description>
		<content:encoded><![CDATA[<p>Your post just solved a huge problem I was struggling with for the last few days. Thanks a lot!</p>
<p>(There really is not too much information out there on these topics)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chris</title>
		<link>http://www.supermegaultragroovy.com/blog/2009/10/06/drawing-waveforms/comment-page-1/#comment-81979</link>
		<dc:creator>chris</dc:creator>
		<pubDate>Sun, 01 Nov 2009 15:15:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.supermegaultragroovy.com/blog/?p=494#comment-81979</guid>
		<description>@Fred: I don&#039;t know of any offhand. If you&#039;re struggling, I recommend you first try using the ExtAudioFile API, and then later move to a separate AudioFile / AudioConverter approach (which I&#039;ve yet to find necessary, FWIW).

With ExtAudioFile, the process boils down to opening the file, specifying your desired client format (Float32, deinterleaved in your case for two separate buffers), and then calling ExtAudioFileRead repeatedly to get your data.</description>
		<content:encoded><![CDATA[<p>@Fred: I don&#8217;t know of any offhand. If you&#8217;re struggling, I recommend you first try using the ExtAudioFile API, and then later move to a separate AudioFile / AudioConverter approach (which I&#8217;ve yet to find necessary, FWIW).</p>
<p>With ExtAudioFile, the process boils down to opening the file, specifying your desired client format (Float32, deinterleaved in your case for two separate buffers), and then calling ExtAudioFileRead repeatedly to get your data.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fred</title>
		<link>http://www.supermegaultragroovy.com/blog/2009/10/06/drawing-waveforms/comment-page-1/#comment-81973</link>
		<dc:creator>Fred</dc:creator>
		<pubDate>Sun, 01 Nov 2009 13:35:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.supermegaultragroovy.com/blog/?p=494#comment-81973</guid>
		<description>Does anyone know of a good code example that shows how to open an audio file (aif, wave, mp3, and aac) and then convert it to a buffer of Float32 as suggested in this article? If the incoming file is stereo, I&#039;d like two buffers and if mono, just one. 

So far, I&#039;m having terrible luck using AudioConverterFillComplexBuffer. I&#039;ve followed numerous examples from the web and AudioConverterFillComplexBuffer keeps returning osErr = -50. The callback seems to get called once, but never again (because of the error). Or, if I twiddle the channel count manually, I can get osErr=0, but the buffer seems to be empty and the callback gets called only once. Any ideas where I can go for help? Thanks!</description>
		<content:encoded><![CDATA[<p>Does anyone know of a good code example that shows how to open an audio file (aif, wave, mp3, and aac) and then convert it to a buffer of Float32 as suggested in this article? If the incoming file is stereo, I&#8217;d like two buffers and if mono, just one. </p>
<p>So far, I&#8217;m having terrible luck using AudioConverterFillComplexBuffer. I&#8217;ve followed numerous examples from the web and AudioConverterFillComplexBuffer keeps returning osErr = -50. The callback seems to get called once, but never again (because of the error). Or, if I twiddle the channel count manually, I can get osErr=0, but the buffer seems to be empty and the callback gets called only once. Any ideas where I can go for help? Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chris</title>
		<link>http://www.supermegaultragroovy.com/blog/2009/10/06/drawing-waveforms/comment-page-1/#comment-80715</link>
		<dc:creator>chris</dc:creator>
		<pubDate>Thu, 15 Oct 2009 23:28:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.supermegaultragroovy.com/blog/?p=494#comment-80715</guid>
		<description>@ChrisM: This is tough to deal with. I try to avoid scaling an image of the waveform curve as the anti-aliasing done to the original curve just doesn&#039;t behave well when resized.

I recommend an intermediate representation that can be rendered to the screen quickly (in the form of a CGPath, or something like that). Perhaps while live-resizing (you can query an NSView to see if it&#039;s mid-resize) you can avoid resampling the data until the resize is done—I&#039;ve done something similar to this in an earlier FuzzMeasure version.</description>
		<content:encoded><![CDATA[<p>@ChrisM: This is tough to deal with. I try to avoid scaling an image of the waveform curve as the anti-aliasing done to the original curve just doesn&#8217;t behave well when resized.</p>
<p>I recommend an intermediate representation that can be rendered to the screen quickly (in the form of a CGPath, or something like that). Perhaps while live-resizing (you can query an NSView to see if it&#8217;s mid-resize) you can avoid resampling the data until the resize is done—I&#8217;ve done something similar to this in an earlier FuzzMeasure version.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ChrisM</title>
		<link>http://www.supermegaultragroovy.com/blog/2009/10/06/drawing-waveforms/comment-page-1/#comment-80703</link>
		<dc:creator>ChrisM</dc:creator>
		<pubDate>Thu, 15 Oct 2009 18:26:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.supermegaultragroovy.com/blog/?p=494#comment-80703</guid>
		<description>I&#039;m using max/min pairs in my app. The difficulty I&#039;m experiencing at the moment, however, is how to get efficient interactive resizing. My waveform is scaled in the x and y directions, and since repainting on each resize can be expensive I cache an image and scale that. This is very fast, but unless the waveform is initially drawn at full size the waveform appears under-sampled when resized upwards.</description>
		<content:encoded><![CDATA[<p>I&#8217;m using max/min pairs in my app. The difficulty I&#8217;m experiencing at the moment, however, is how to get efficient interactive resizing. My waveform is scaled in the x and y directions, and since repainting on each resize can be expensive I cache an image and scale that. This is very fast, but unless the waveform is initially drawn at full size the waveform appears under-sampled when resized upwards.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
