<?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>Some stuff &#187; sort</title>
	<atom:link href="http://blog.yhuang.org/?feed=rss2&#038;tag=sort" rel="self" type="application/rss+xml" />
	<link>https://blog.yhuang.org</link>
	<description>here.</description>
	<lastBuildDate>Wed, 27 Aug 2025 08:50:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Microsoft Songsmith</title>
		<link>https://blog.yhuang.org/?p=158</link>
		<comments>https://blog.yhuang.org/?p=158#comments</comments>
		<pubDate>Sun, 08 Feb 2009 21:42:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[audio editing programs]]></category>
		<category><![CDATA[editing]]></category>
		<category><![CDATA[karaoke program]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[music notation software]]></category>
		<category><![CDATA[song]]></category>
		<category><![CDATA[Songsmith]]></category>
		<category><![CDATA[sort]]></category>
		<category><![CDATA[spreadsheet program]]></category>
		<category><![CDATA[word processor software]]></category>

		<guid isPermaLink="false">http://scripts.mit.edu/~zong/wpress/?p=158</guid>
		<description><![CDATA[fakalin pointed me to this product from MSR. I was actually sort of aware of this during my stint at MSR, via overheard hallway conversations, but didn&#8217;t know it was going to be released as a product. http://research.microsoft.com/en-us/um/redmond/projects/songsmith/ So I downloaded it to see what&#8217;s up. It has been called the reverse Karaoke program. It [...]]]></description>
			<content:encoded><![CDATA[<p>fakalin pointed me to this product from MSR. I was actually sort of aware of this during my stint at MSR, via overheard hallway conversations, but didn&#8217;t know it was going to be released as a product.</p>
<p><a href="http://research.microsoft.com/en-us/um/redmond/projects/songsmith/">http://research.microsoft.com/en-us/um/redmond/projects/songsmith/</a></p>
<p>So I downloaded it to see what&#8217;s up. It has been called the reverse Karaoke program. It has only been released a month and it appears there are already a handful of parodies of well known songs. There is one that turned a rap by Eminem into bluegrass (stupid vulgar song, but anyway):</p>
<p><a href="http://www.youtube.com/watch?v=2ScVTBg2vxk">http://www.youtube.com/watch?v=2ScVTBg2vxk</a><br />
<span id="more-158"></span><br />
Some people hate the program, likening it to Bob, probably because most of the rearrangements are terrible. But that misses the point of how the program is to be used. Obviously, if you just let the algorithm determine the answer without any intervention, it is too unconstrained a problem to give you any exciting solution. You need some user intervention, as that Eminem example clearly employed (did you think Songsmith by itself would give you that? of course not&#8230;)</p>
<p>The strength of the program is actually in the new paradigm it introduces for transcribing rough musical ideas. I have a beef with pretty much all of the music notation software out there. Not only are they slower to notate than by hand (unless there is MIDI input attached &#8212; still unnatural), but they don&#8217;t fundamentally take advantage of the fact that there is a computer there with a huge amount of potential intelligence, at all. Imagine if your word processor software just showed a picture of a typewriter and you click on each key on the screen to write a document all in Courier, or a spreadsheet program that had no formulas or autoformatting. That&#8217;s pretty much the state of music notation software these days. They are &#8220;dumb&#8221; programs in every sense of the word. (Audio editing programs tend to be a lot more advanced, with non-linear editing and tracks, etc., but they deal in unnecessarily unwieldy &#8220;samples&#8221; and &#8220;loops&#8221;.)</p>
<p>Songsmith hardly resolves my complaints (because its audience is too different) but it does move in the right direction. For example:</p>
<p>* There is beginning to be the notion of hierarchy, where the &#8220;style&#8221; choice determines patterns and motifs and the legal chords and legal chord progressions. And the entire &#8220;style&#8221; can be swapped out.<br />
* Chord becomes a critical input unit that can actually be assigned, edited, and played back as a unit (rather than as merely a collection of notes)<br />
* Pitch detection and harmony inference. (Much better than the crap that is built into Finale, btw.)<br />
* Algorithmic determination of music paths based on rules &#8212; this is sort of a crutch like autocorrect, but for drafting it is helpful if only because it saves time.<br />
* Ability to assign constraints and alter paths, as well as to remove constraints.<br />
* Dynamic playback, where every time the thing is played back, the expression is not exactly the same.</p>
<p>None of these are fully developed in Songsmith but if the development goes on, perhaps there will be something really good yet. Already, it makes many mechanical things easy. The easiest of all is to transcribe existing music, as well as to make new arrangements (with a little user intervention).</p>
<p>Here&#8217;s an example. There&#8217;s a classic Cantonese song called 天才白痴往日情 (&#8220;genius, idiot, and nostalgia&#8221;). Here&#8217;s one version</p>
<p><a href="http://www.youtube.com/watch?v=T7FiQFsHzxs">http://www.youtube.com/watch?v=T7FiQFsHzxs</a></p>
<p>This song is AABA, with A and B each 8 bars, so in Songsmith, I put in the original chords in the first 8 bars, but then let it run loose on the rest with variations. After adjustments and incrementally locking down &#8220;finished&#8221; chords, here&#8217;s one result (transposed to a different key, sorry&#8230;):</p>
<p><audio controls><source src="wp-content/uploads/songsmith1.mp3" type="audio/mpeg"></audio><br />
<!--object type="application/x-shockwave-flash" data="wp-content/plugins/audio-player/assets/player.swf" width="290" height="24" id="audioplayer2">
<param name="movie" value="wp-content/plugins/audio-player/assets/player.swf" />
<param name="FlashVars" value="playerID=1&amp;bg=0xf8f8f8&amp;leftbg=0xeeeeee&amp;lefticon=0x666666&amp;rightbg=0xcccccc&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xFFFFFF&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=wp-content/uploads/songsmith1.mp3" />
<param name="quality" value="high" />
<param name="menu" value="false" />
<param name="bgcolor" value="#FFFFFF" /></object--></p>
<p><img src="wp-content/uploads/images/songsmith.png" width=100% /></p>
]]></content:encoded>
			<wfw:commentRss>https://blog.yhuang.org/?feed=rss2&#038;p=158</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>biometric authentication</title>
		<link>https://blog.yhuang.org/?p=139</link>
		<comments>https://blog.yhuang.org/?p=139#comments</comments>
		<pubDate>Thu, 04 Dec 2008 03:18:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[authentication protocol]]></category>
		<category><![CDATA[fingerprint reader]]></category>
		<category><![CDATA[paper]]></category>
		<category><![CDATA[paper templates]]></category>
		<category><![CDATA[pen]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[random strings]]></category>
		<category><![CDATA[sort]]></category>
		<category><![CDATA[tablet mode]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://scripts.mit.edu/~zong/wpress/?p=139</guid>
		<description><![CDATA[Now that I have gotten seriously addicted to Tablet PC (the faux paper templates in Windows Journal alone were enough to get me hooked), I&#8217;ve been pondering about some limitations of the platform. One is authentication. One of things you are not happy to do with a mouse &#8212; which the pen is, sort of [...]]]></description>
			<content:encoded><![CDATA[<p>Now that I have gotten seriously addicted to Tablet PC (the faux paper templates in Windows Journal alone were enough to get me hooked), I&#8217;ve been pondering about some limitations of the platform. One is authentication. One of things you are not happy to do with a mouse &#8212; which the pen is, sort of &#8212; is inputting random strings that have become of modern-day passwords.</p>
<p>So I understood the point of the fingerprint reader option on this build. Swipe and you can bypass having to type passwords in tablet mode when the keyboard is hidden. But I didn&#8217;t get the option, and I believe there are other alternatives.</p>
<p>There are many modes of biometric authentication, fingerprint, face recognition, handwriting, voice, etc., and getting nearly perfect reliability in each case is a difficult problem when used alone. State of the art is just not good enough. But combined into a multifactored authentication protocol, it may just work. Here is something that should work <em>today</em> with existing hardware:</p>
<table border="1" cellpadding="10" style="margin: 2 2 2 2; border-collapse: collapse; border-style: solid; border-color: #365873;">
<tr>
<td><strong>Look into the webcam, solve a quick reflexive cognition problem, and provide a handwriting sample.</strong></td>
</tr>
</table>
<p>That should do the trick for a quick keyboard-less authentication. Why hasn&#8217;t anybody written software to do this?</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.yhuang.org/?feed=rss2&#038;p=139</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The story begins (part 0)</title>
		<link>https://blog.yhuang.org/?p=35</link>
		<comments>https://blog.yhuang.org/?p=35#comments</comments>
		<pubDate>Sat, 30 Dec 2006 08:37:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[correct dates]]></category>
		<category><![CDATA[death]]></category>
		<category><![CDATA[disk]]></category>
		<category><![CDATA[ghostwriter]]></category>
		<category><![CDATA[initial draft]]></category>
		<category><![CDATA[laptop hard drive]]></category>
		<category><![CDATA[linux environment]]></category>
		<category><![CDATA[ntfs drive]]></category>
		<category><![CDATA[PGD]]></category>
		<category><![CDATA[sort]]></category>

		<guid isPermaLink="false">http://scripts.mit.edu/~zong/wpress/?p=35</guid>
		<description><![CDATA[My laptop hard drive died a painful death last week. Thanks to a friend (PGD) who agreed to be my ghostwriter for the initial draft, the process of my shuffling through the ruins is documented. This documentation is long, so it will be split into parts. The parts are assigned to the correct dates when [...]]]></description>
			<content:encoded><![CDATA[<p>My laptop hard drive died a painful death last week. Thanks to a friend (PGD) who agreed to be my ghostwriter for the initial draft, the process of my shuffling through the ruins is documented. This documentation is long, so it will be split into parts. The parts are assigned to the correct dates when the things described happened. Therefore, the sort order of the parts and the sort order of the dates do not necessarily match.</p>
<p>Part 0.</p>
<p><font color="#770033"><br />
The story begins:</p>
<p>A 40GB laptop hard drive using NTFS became corrupted.  The laptop could not boot off its normal disk, so was booted by CD into a Linux environment to recover the data.  The idea was to quickly save a raw image of the NTFS drive onto another disk, and to use recovery tools on the image&#8230; It turned out this was much easier said than done.<br />
</font></p>
<p>On to <a href="http://scripts.mit.edu/~zong/wpress/?p=36">Part 1</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.yhuang.org/?feed=rss2&#038;p=35</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
