<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SuperMegaUltraGroovy</title>
	<atom:link href="http://supermegaultragroovy.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://supermegaultragroovy.com</link>
	<description>Chris Liscio&#039;s Boo-urns Log</description>
	<lastBuildDate>Fri, 03 May 2013 14:42:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>FuzzMeasure 3.2.5</title>
		<link>http://supermegaultragroovy.com/2013/03/21/fuzzmeasure-3-2-5/</link>
		<comments>http://supermegaultragroovy.com/2013/03/21/fuzzmeasure-3-2-5/#comments</comments>
		<pubDate>Thu, 21 Mar 2013 19:10:24 +0000</pubDate>
		<dc:creator>Chris Liscio</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://supermegaultragroovy.com/?p=867</guid>
		<description><![CDATA[It&#8217;s been too long since I&#8217;ve spoken about FuzzMeasure. To the outside world, it might seem like I&#8217;ve not done a thing with the product in years! Fortunately for my users, that is certainly not the case. I have been working on a major update to FuzzMeasure for quite some time now. The work has [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s been too long since I&#8217;ve spoken about <a href="http://fuzzmeasure.com">FuzzMeasure</a>.</p>

<p>To the outside world, it might seem like I&#8217;ve not done a thing with the product in years! Fortunately for my users, that is certainly not the case.</p>

<p>I have been working on a major update to FuzzMeasure for quite some time now. The work has been slow, but I assure you that significant progress has been made. I certainly bit off more than I could chew with this one, so it&#8217;s going to be a little while still.</p>

<p>Unfortunately for my users, that just means more waiting. Few people like to wait, no matter how much greater the reward will be.</p>

<p>During all this development, I have identified and corrected some issues in the code that I&#8217;m unhappy with. Many of those bug fixes required large engineering efforts that cannot be integrated into the FuzzMeasure 3.2 code base. Fortunately for my users, that&#8217;s not true for all the fixes!</p>

<p>So today&#8217;s release includes a little fix that actually makes a big difference to FuzzMeasure&#8217;s operation. When checking for an adequate recording level, FuzzMeasure will now analyze the <em>recorded audio</em>, and not the <em>calculated impulse response</em>.</p>

<p>When I first implemented this check, it made perfect sense because it was working to ensure adequate SNR in the impulse response. In reality, it was too often filtering out impulses that had legitimate reasons for being &#8220;too quiet&#8221;. For instance, a subwoofer with adequate recording level would result in an impulse response with a very small magnitude.</p>

<p>In addition to the above fix, I managed to get the FuzzMeasure application bundle signed using my Developer ID, which makes downloading the application on newer Macs go much more smoothly.</p>

<p>I hope to have more to share soon regarding FuzzMeasure. Stay tuned, and go <a href="http://fuzzmeasure.com">download FuzzMeasure 3.2.5</a> now!.</p>
]]></content:encoded>
			<wfw:commentRss>http://supermegaultragroovy.com/2013/03/21/fuzzmeasure-3-2-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TapeDeck and Capo Updates for the Mac</title>
		<link>http://supermegaultragroovy.com/2013/02/27/tapedeck-and-capo-updates-for-the-mac/</link>
		<comments>http://supermegaultragroovy.com/2013/02/27/tapedeck-and-capo-updates-for-the-mac/#comments</comments>
		<pubDate>Wed, 27 Feb 2013 14:30:00 +0000</pubDate>
		<dc:creator>Chris Liscio</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://supermegaultragroovy.com/?p=863</guid>
		<description><![CDATA[This week I shipped Capo 2.1.10 and TapeDeck 1.5.2. Capo 2.1.10 addresses a few major issues that were found in the 2.1.9 update, as well as some longer-standing ones. For instance, the default keyboard shortcuts failed to operate properly and displayed the additional fn modifier key in the Control menu. It turns out that either [...]]]></description>
				<content:encoded><![CDATA[<p>This week I shipped <a href="http://capoapp.com">Capo 2.1.10</a> and <a href="http://tapedeckapp.com">TapeDeck 1.5.2</a>.</p>

<p><a href="http://capoapp.com">Capo 2.1.10</a> addresses a few major issues that were found in the 2.1.9 update, as well as some longer-standing ones. For instance, the default keyboard shortcuts failed to operate properly and displayed the additional <em>fn</em> modifier key in the Control menu.</p>

<p>It turns out that either Lion or Mountain Lion started to render the <em>fn</em> key as a modifier key, and I had inadvertantly stored a set of modifier flags with the default keystrokes that had that flag set. Oops.</p>

<p>Also, I wasn&#8217;t hooking the user-defined key equivalents to the menu items until the menu was shown (in the <code>validateMenuItem:</code> call), because I was catching those keystrokes using other means. However, that other method isn&#8217;t foolproof and I needed to forcefully (rather than lazily) set those menu key equivalents at launch time.</p>

<p>For existing users to benefit from this fix, run the following command at the terminal:</p>

<pre><code>defaults delete com.supermegaultragroovy.capo CapoPlaybackCommands
</code></pre>

<p>If you purchased using the Mac App Store, use this one instead:</p>

<pre><code>defaults delete com.supermegaultragroovy.capo.macappstore CapoPlaybackCommands
</code></pre>

<p>I also found an OpenGL-related race condition that stumped me for some time. It turns out that a Core Animation-backed <code>NSOpenGLView</code> cannot make any assumptions about owning its context. I was creating textures (i.e. calling <code>glGenTexture()</code>) at the same time that CoreAnimation was disposing them on another thread (i.e. calling <code>glDeleteTexture()</code>). Locking the <code>CGLContextObj</code> fixed that issue up good.</p>

<p><a href="http://tapedeckapp.com">TapeDeck 1.5.2</a> was a much quicker update to put together. When I rewrote the tape box view to use a view-based <code>NSTableView</code>, I didn&#8217;t carry over the ability to drag .m4a (MPEG-4 audio) files into the list. It was partially a copy/paste job from my old tape box view class, but I ended up rewriting much of that code using new (and much nicer!) APIs for drag and drop.</p>

<p>Other than the above, I&#8217;ve been crunching on a whole lot of new development lately. I&#8217;ve split my time between reading papers, writing up tests using <a href="http://www.mathworks.com">MATLAB</a>, and coding up prototypes for the past few months. It&#8217;s been busy, but I hope to have something to share soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://supermegaultragroovy.com/2013/02/27/tapedeck-and-capo-updates-for-the-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Capo 2.1.9</title>
		<link>http://supermegaultragroovy.com/2013/01/23/capo-2-1-9/</link>
		<comments>http://supermegaultragroovy.com/2013/01/23/capo-2-1-9/#comments</comments>
		<pubDate>Wed, 23 Jan 2013 16:39:09 +0000</pubDate>
		<dc:creator>Chris Liscio</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://supermegaultragroovy.com/?p=853</guid>
		<description><![CDATA[It was an odd coincidence that Capo 2.1.9 was released on the same day as Capo 1.3 for iOS. I submitted both products on the same day, and fully expected the Mac update to take twice as long. I&#8217;m glad to see things seem to be improving with Mac App Store review times. But I [...]]]></description>
				<content:encoded><![CDATA[<p>It was an odd coincidence that <a href="http://capoapp.com">Capo 2.1.9</a> was released on the same day as <a href="http://capoapp.com/iphone.html">Capo 1.3 for iOS</a>. I submitted both products on the same day, and fully expected the Mac update to take twice as long. I&#8217;m glad to see things seem to be improving with <a href="http://reviewtimes.shinydevelopment.com">Mac App Store review times</a>.</p>

<p>But I digress!</p>

<p>Capo 2.1.9 is a major bugfix release that primarily addresses the slow scrolling in Capo. This performance issue was on my mind since 2.0, and I&#8217;ve had a desire to rewrite &#8220;everything&#8221; in the spectrogram for a long time now. Capo 2.1.8 forced my hand to jump on that project early, because it was pushing 2x as many pixels through the pipe on Retina display Macs.</p>

<p>The bottleneck was in the rendering of the spectrogram. I do a fair bit of compositing there, and Quartz / CoreAnimation just weren&#8217;t able to push pixels quickly enough. OpenGL is great at the sort of things I wanted to do, so that seemed to be the obvious solution to my problem.</p>

<p>Capo generates its spectrogram as a black-and-white &#8220;intensity map&#8221; which I would use as a mask to draw its colour atop the background grid (which is also composited.) I also use a multiplier on the intensity map to adjust the display intensity so that users can bring out the details in their songs.</p>

<p>Any of you with OpenGL chops can see that this stuff is <em>perfect</em> for shaders. The multiplications can be done with a uniform intensity value that is used as a multiplier on the spectrogram intensity map. Hell, I could even work in the HSL colour space if I wanted to (and I do, though that will be more likely to show up in <a href="http://fuzzmeasure.com">FuzzMeasure</a> first.)</p>

<p>To accomplish all this, I had to perform a major reorganization of the code that draws everything between the metadata/HUD (left side of the window) and the effects (right side of the window.) The &#8220;meat and potatoes&#8221; of the UI, if you will.</p>

<p>I also decided to adopt the system-supplied scroll view (and its fantastic disappearing scrollers) to power all this nonsense. I actually have seven NSScrollViews (that overlap!) synchronized with one another to pull this off!</p>

<p>Oh, and while I was in there, I enabled ARC and got tighter memory footprint in the process. Why not, right?!</p>

<p>Coming out at the other end of this, I&#8217;m really happy with the improved code base. I feel a huge weight lifted off my shoulders, and I feel much better about moving forward with the features that users have been clamouring for.</p>

<p>If you haven&#8217;t already, go get the <a href="http://capoapp.com">Capo 2.1.9</a> update, and see the improvements for yourself. And, as always, stay tuned for more&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://supermegaultragroovy.com/2013/01/23/capo-2-1-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Capo 1.3 for iOS</title>
		<link>http://supermegaultragroovy.com/2013/01/22/capo-1-3-for-ios/</link>
		<comments>http://supermegaultragroovy.com/2013/01/22/capo-1-3-for-ios/#comments</comments>
		<pubDate>Tue, 22 Jan 2013 18:36:15 +0000</pubDate>
		<dc:creator>Chris Liscio</dc:creator>
				<category><![CDATA[Capo]]></category>

		<guid isPermaLink="false">http://supermegaultragroovy.com/?p=855</guid>
		<description><![CDATA[Today I released Capo 1.3 for iOS, and you can buy it now from the link at http://capoapp.com/iphone.html. In this release, I added a much-requested feature. That is, you can now import MP3, WAV, AIFF, and MPEG-4 audio files from other applications such as Mail and Dropbox. I also did a ton of work under [...]]]></description>
				<content:encoded><![CDATA[<p>Today I released <a href="http://capoapp.com/iphone.html">Capo 1.3 for iOS</a>, and you can buy it now from the link at <a href="http://capoapp.com/iphone.html">http://capoapp.com/iphone.html</a>.</p>

<p>In this release, I added a much-requested feature. That is, you can now import MP3, WAV, AIFF, and MPEG-4 audio files from other applications such as Mail and Dropbox.</p>

<p>I also did a ton of work under the hood to help improve stability, performance, and maintainability. One of the major efforts there was in enabling ARC on the project. This doesn&#8217;t really matter much to the end user (outside of some small performance gains and a few less crashes,) but it was an important milestone for me.</p>

<p>Now that Capo 1.3 is all cleaned up on the inside, I hope to make some more interesting changes very soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://supermegaultragroovy.com/2013/01/22/capo-1-3-for-ios/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Help Wanted</title>
		<link>http://supermegaultragroovy.com/2012/12/11/help-wanted/</link>
		<comments>http://supermegaultragroovy.com/2012/12/11/help-wanted/#comments</comments>
		<pubDate>Tue, 11 Dec 2012 18:05:15 +0000</pubDate>
		<dc:creator>Chris Liscio</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://supermegaultragroovy.com/?p=849</guid>
		<description><![CDATA[I&#8217;m going to level with you: I&#8217;m drowning here on my own with four products on my plate and a fast-moving set of platforms to support. I&#8217;d rather be focusing on adding features, but lately I am spending too much time on playing catch-up. So instead of continuing to put this off, I need to [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m going to level with you: I&#8217;m drowning here on my own with four products on my plate and a fast-moving set of platforms to support. I&#8217;d rather be focusing on adding features, but lately I am spending too much time on playing catch-up.</p>

<p>So instead of continuing to put this off, I need to attack this problem head-on. I want to find someone that I can work with on the fun and exciting things that I am building. Hopefully you are the one I am looking for.</p>

<p>In a perfect world, I would like to find a skilled iOS and Mac developer that is an expert in the following fields:</p>

<ul>
<li>Graphic, and/or User Interaction Design</li>
<li>Music Theory</li>
<li>Digital Signal Processing</li>
<li>Acoustics, and the Physics of Sound</li>
<li>Music Information Retrieval</li>
</ul>

<p>Pretty crazy, right? I mean, nobody can be an expert in <em>all</em> that stuff. However, I hope you read the list above and got somewhat excited because you are great at some of it, and wish to learn more about the rest.</p>

<p>So, <a href="mailto:chris+iwanttowork@supermegaultragroovy.com">send me an email</a> and let&#8217;s talk about how you can help me to continue making some of the best software on the Mac, iPhones, and iPads. Please include any relevant information about your background, and some examples of code you&#8217;ve shipped.</p>

<p>Note that this is a full-time contract-to-hire position. Telecommuting is a necessity.</p>
]]></content:encoded>
			<wfw:commentRss>http://supermegaultragroovy.com/2012/12/11/help-wanted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.288 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-05-22 04:00:40 -->
