<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://enfascination.com/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://enfascination.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Xylophone_gag_project_code</id>
		<title>Xylophone gag project code - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://enfascination.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Xylophone_gag_project_code"/>
		<link rel="alternate" type="text/html" href="http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;action=history"/>
		<updated>2026-05-15T09:24:18Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.21.0rc5</generator>

	<entry>
		<id>http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;diff=2520&amp;oldid=prev</id>
		<title>Seth at 02:21, 27 April 2010</title>
		<link rel="alternate" type="text/html" href="http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;diff=2520&amp;oldid=prev"/>
				<updated>2010-04-27T02:21:42Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 02:21, 27 April 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;for [[Xylophone_gag_project]]&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;for [[Xylophone_gag_project]]&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;file available [http://enfascination.com/forever/xylophonegag/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;endearing_charms_code006&lt;/del&gt;.r here]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;file available [http://enfascination.com/forever/xylophonegag/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;endearing_charms_code_006&lt;/ins&gt;.r here]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;### Seth Frey&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;### Seth Frey&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Seth</name></author>	</entry>

	<entry>
		<id>http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;diff=2514&amp;oldid=prev</id>
		<title>Seth at 01:45, 27 April 2010</title>
		<link rel="alternate" type="text/html" href="http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;diff=2514&amp;oldid=prev"/>
				<updated>2010-04-27T01:45:13Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 01:45, 27 April 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;for [[Xylophone_gag_project]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;for [[Xylophone_gag_project]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;file available [http://enfascination.com/forever/xylophonegag/endearing_charms_code006.r here&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;### Seth Frey&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;### Seth Frey&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Seth</name></author>	</entry>

	<entry>
		<id>http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;diff=2499&amp;oldid=prev</id>
		<title>Seth at 01:07, 27 April 2010</title>
		<link rel="alternate" type="text/html" href="http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;diff=2499&amp;oldid=prev"/>
				<updated>2010-04-27T01:07:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 01:07, 27 April 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;for [[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Xylophone_gag_project_code&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;for [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Xylophone_gag_project&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;### Seth Frey&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;### Seth Frey&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Seth</name></author>	</entry>

	<entry>
		<id>http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;diff=2498&amp;oldid=prev</id>
		<title>Seth at 01:07, 27 April 2010</title>
		<link rel="alternate" type="text/html" href="http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;diff=2498&amp;oldid=prev"/>
				<updated>2010-04-27T01:07:10Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 01:07, 27 April 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;for [[Xylophone_gag_project_code]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;### Seth Frey&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;### Seth Frey&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Seth</name></author>	</entry>

	<entry>
		<id>http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;diff=2497&amp;oldid=prev</id>
		<title>Seth at 01:06, 27 April 2010</title>
		<link rel="alternate" type="text/html" href="http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;diff=2497&amp;oldid=prev"/>
				<updated>2010-04-27T01:06:40Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 01:06, 27 April 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;###&amp;#160; Looney Tunes Xylophone Gag&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;###&amp;#160; Looney Tunes Xylophone Gag&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;### Class Project for Chris Rafael's Music Procesing, INFO-I547 at IU&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;### Class Project for Chris Rafael's Music Procesing, INFO-I547 at IU&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;### Spring 2010 (4/26/10)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;### Boilerplate&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;### Boilerplate&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Seth</name></author>	</entry>

	<entry>
		<id>http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;diff=2496&amp;oldid=prev</id>
		<title>Seth at 01:06, 27 April 2010</title>
		<link rel="alternate" type="text/html" href="http://enfascination.com/wiki/index.php?title=Xylophone_gag_project_code&amp;diff=2496&amp;oldid=prev"/>
				<updated>2010-04-27T01:06:01Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
### Seth Frey&lt;br /&gt;
### Error Detection, applied in this case to the Irish tune typical of the &lt;br /&gt;
###  Looney Tunes Xylophone Gag&lt;br /&gt;
### Class Project for Chris Rafael's Music Procesing, INFO-I547 at IU&lt;br /&gt;
&lt;br /&gt;
### Boilerplate&lt;br /&gt;
rm( list=ls() )&lt;br /&gt;
library(tuneR)&lt;br /&gt;
setWavPlayer(&amp;quot;/usr/local/bin/playRWave&amp;quot;)&lt;br /&gt;
path &amp;lt;- &amp;quot;~/Desktop/projecto/music_processing/&amp;quot;&lt;br /&gt;
### useful library for error analysis&lt;br /&gt;
#source(paste(path, &amp;quot;code/spectrogram.r&amp;quot;, sep=&amp;quot;&amp;quot; ), echo=FALSE)&lt;br /&gt;
&lt;br /&gt;
### The score&lt;br /&gt;
### endearing young charms in MIDI&lt;br /&gt;
#s_notes&amp;lt;- c(E4, D4, C4, D4, C4, C4, E4, G4, F4, A4, C5, C5, B4, A4)&lt;br /&gt;
eyc_orig_notes &amp;lt;-  c(64, 62, 60, 62, 60, 60, 64, 67, 65, 69, 72, 72)#, 71, 69)&lt;br /&gt;
score &amp;lt;- eyc_orig_notes&lt;br /&gt;
timing&amp;lt;-  c(.25, .25, .75,.25, 0.5,0.5,0.5 , 0.5 , 0.5 , 0.5 , 0.5 , .75,.25,.25) &lt;br /&gt;
### test the above representation of the score:&lt;br /&gt;
### scale timing info&lt;br /&gt;
#timing&amp;lt;-  timing /sum(timing)&lt;br /&gt;
### less than two seconds&lt;br /&gt;
#duration&amp;lt;- 150000&lt;br /&gt;
#sample &amp;lt;-c()&lt;br /&gt;
#for (i in 1:length(score)){ sample&amp;lt;-c(sample, rep(score[i], timing[i]*duration))}&lt;br /&gt;
#v = 2*pi*440.*2^((sample-69)/12)/sr&lt;br /&gt;
#z = round((2^13)*sin(cumsum(v)))&lt;br /&gt;
### insert click at errors&lt;br /&gt;
#z[ierrors] &amp;lt;- 32000&lt;br /&gt;
#u.samp = Wave(z, samp.rate = sr, bit=16)   # make wave struct&lt;br /&gt;
#play(u.samp)&lt;br /&gt;
                          &lt;br /&gt;
### Audio of endearing young charms, with or without mistakes&lt;br /&gt;
### bad (these don't get recognized well by the HMM)&lt;br /&gt;
w = readWave(paste(path, &amp;quot;final_project/bugs2001.wav&amp;quot;, sep=&amp;quot;&amp;quot; ))&lt;br /&gt;
w = readWave(paste(path, &amp;quot;final_project/bugs1001.wav&amp;quot;, sep=&amp;quot;&amp;quot; ))&lt;br /&gt;
### maybe (these kind of get recognized well by the HMM, with mistakes&lt;br /&gt;
###  that get labeled as player errors by my code)&lt;br /&gt;
w = readWave(paste(path, &amp;quot;final_project/travis001good.wav&amp;quot;, sep=&amp;quot;&amp;quot; ))&lt;br /&gt;
w = readWave(paste(path, &amp;quot;final_project/travis002good.wav&amp;quot;, sep=&amp;quot;&amp;quot; ))&lt;br /&gt;
### good  (these get recognized well by the HMM, and errors in them get caught&lt;br /&gt;
###  (though there are a few identification errors labeled as player errors&lt;br /&gt;
###  in these samples))&lt;br /&gt;
w = readWave(paste(path, &amp;quot;final_project/travislow003.wav&amp;quot;, sep=&amp;quot;&amp;quot; ))&lt;br /&gt;
w = readWave(paste(path, &amp;quot;final_project/decent001err2.wav&amp;quot;, sep=&amp;quot;&amp;quot; ))&lt;br /&gt;
w = readWave(paste(path, &amp;quot;final_project/travismistake003.wav&amp;quot;, sep=&amp;quot;&amp;quot; ))&lt;br /&gt;
w = readWave(paste(path, &amp;quot;final_project/travismistake006.wav&amp;quot;, sep=&amp;quot;&amp;quot; ))&lt;br /&gt;
w = readWave(paste(path, &amp;quot;final_project/yosemite1001.wav&amp;quot;, sep=&amp;quot;&amp;quot; ))&lt;br /&gt;
w = readWave(paste(path, &amp;quot;final_project/travislow004.wav&amp;quot;, sep=&amp;quot;&amp;quot; ))&lt;br /&gt;
&lt;br /&gt;
                          &lt;br /&gt;
### This project is a modification of the HMM code provided as the solution to HW6.&lt;br /&gt;
### http://www.music.informatics.indiana.edu/courses/I547/hw6_sln.r&lt;br /&gt;
### or&lt;br /&gt;
### http://enfascination.com/forever/xylophonegag/hw6_sln.r&lt;br /&gt;
### I will remove all of the original comments from the original code to high-&lt;br /&gt;
###  light my own comments.  For the unfamiliar, this may obscure the workings &lt;br /&gt;
###  of the HMM.&lt;br /&gt;
&lt;br /&gt;
### Extract some parameters from the audio&lt;br /&gt;
bits = w@bit&lt;br /&gt;
sr = w@samp.rate&lt;br /&gt;
y = w@left                                &lt;br /&gt;
#y = y[30000:1000000]   ### take subset of audio, for faster testing                      &lt;br /&gt;
u = Wave(y, samp.rate = sr, bit=bits)   &lt;br /&gt;
### preserve original&lt;br /&gt;
u.orig = Wave(y, samp.rate = sr, bit=bits)   &lt;br /&gt;
#play(u.orig)                  &lt;br /&gt;
&lt;br /&gt;
### Other Important parameters&lt;br /&gt;
lop = 59   # the lowest possible pitch &lt;br /&gt;
hip = 96   # the highest possible pitch &lt;br /&gt;
N = 1024   ### the frame length&lt;br /&gt;
skiplen = N/2&lt;br /&gt;
frames = floor(length(y)/skiplen)-1  ### The number of frames, given N&lt;br /&gt;
notes = length(lop:hip)              ### Number of notes represented&lt;br /&gt;
### minimum number of frames constituting a played note (must be small&lt;br /&gt;
###  for realistic run times)&lt;br /&gt;
state_per_note = 4                   &lt;br /&gt;
### minimum number of frames constituting a played error &lt;br /&gt;
state_per_error &amp;lt;- 8&lt;br /&gt;
&lt;br /&gt;
### Transition probability matrix (almost all borrowed code)&lt;br /&gt;
trans = matrix(0,notes*state_per_note,notes*state_per_note)&lt;br /&gt;
for (i in 1:ncol(trans)){&lt;br /&gt;
  if (i%%state_per_note&amp;gt;0){&lt;br /&gt;
    trans[i,i] = 1&lt;br /&gt;
    trans[i,i+1] = 1&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
### I had some problems with identifying a note in the wrong octave. &lt;br /&gt;
###  The code below makes note changes within an octave more likely &lt;br /&gt;
###  than these more than 6 half steps away, in either direction.  &lt;br /&gt;
###  Maybe useless, haven't done a thorough error analysis.&lt;br /&gt;
close_note_neighborhood &amp;lt;- 6&lt;br /&gt;
for (i in 1:notes) {&lt;br /&gt;
    for (j in 1:notes) {&lt;br /&gt;
        if (i!=j) {&lt;br /&gt;
            if (abs(i-j)&amp;lt;close_note_neighborhood) {&lt;br /&gt;
                trans[i*state_per_note,(j-1)*state_per_note+1] = 2&lt;br /&gt;
            }&lt;br /&gt;
            else {&lt;br /&gt;
                trans[i*state_per_note,(j-1)*state_per_note+1] = 1&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
### Normalize transition matrix&lt;br /&gt;
for (i in 1:ncol(trans))&lt;br /&gt;
  trans[i,]=trans[i,]/sum(trans[i,])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#######  Creating the emission probability function  #######&lt;br /&gt;
### create templates for each note.&lt;br /&gt;
wid = 1&lt;br /&gt;
decay = 4                &lt;br /&gt;
tplt = matrix(.01,hip,N/2)&lt;br /&gt;
for (j in lop:hip) {      &lt;br /&gt;
  f = 440*2^((j-69)/12)   &lt;br /&gt;
  b = f*N/sr              &lt;br /&gt;
  for (h in 1:15) {       &lt;br /&gt;
    if (j == lop) next            # lop is the rest = flat template&lt;br /&gt;
    tplt[j,] = tplt[j,] + 2^(-h/decay)*dnorm(1:(N/2),mean=b*h,sd = wid)&lt;br /&gt;
  }&lt;br /&gt;
  tplt[j,] = tplt[j,]/sum(tplt[j,]) &lt;br /&gt;
#  plot(tplt[j,],type='l')           &lt;br /&gt;
#  scan()                            # wait for human to type key&lt;br /&gt;
}&lt;br /&gt;
t = seq(from=0,by=2*pi/N,length=N)     &lt;br /&gt;
win = (1 + cos(t-pi))/2&lt;br /&gt;
&lt;br /&gt;
#### The function of computing the logorithm emission probabilities&lt;br /&gt;
log_emit = function (observation,cs,energy) {&lt;br /&gt;
  if (energy &amp;gt; 50000000){    #### this is how to classify rest&lt;br /&gt;
    Y = fft(win*observation)&lt;br /&gt;
    log_emit = sum(log(tplt[floor((cs-1)/state_per_note)+lop,])*Mod(Y[1:(N/2)]))&lt;br /&gt;
  }&lt;br /&gt;
  else{   ####  if the energy is less than a certain value (e.g. 50000000) the only possible states can generating this observation are rest states.&lt;br /&gt;
    log_emit = -Inf&lt;br /&gt;
    if (cs&amp;lt;=state_per_note) log_emit = 0&lt;br /&gt;
  }&lt;br /&gt;
  log_emit&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
### This is the core of the recognition&lt;br /&gt;
### All of this is untouched.  Error detection doesn't start until after recog-&lt;br /&gt;
###  nition and backtracking&lt;br /&gt;
### XXXXXXXXX&lt;br /&gt;
#######  Dynamic programming  #######&lt;br /&gt;
&lt;br /&gt;
### creating dynamic programming matrix&lt;br /&gt;
lat = matrix(-Inf,ncol(trans),frames)           # the array that holds the dynamic programming scores&lt;br /&gt;
best = matrix(0,ncol(trans),frames)          # the array of best predecessors.&lt;br /&gt;
&lt;br /&gt;
### initialize&lt;br /&gt;
lat[state_per_note*(1:notes)-(state_per_note-1),1] = 1/notes       # possible start states: every first state of a note&lt;br /&gt;
             &lt;br /&gt;
#### start computation&lt;br /&gt;
for (j in 2:frames) {                ### loop1: main loop of program (for all frames)&lt;br /&gt;
  s = (j-1)*skiplen +1               # start of frame&lt;br /&gt;
  observation = y[s:(s+N-1)]         # the frame&lt;br /&gt;
  energy = sum(observation^2)&lt;br /&gt;
### cs = current_state ; ps = previous_state&lt;br /&gt;
  for (cs in 1:ncol(trans)) {        ### loop2: loop for current state&lt;br /&gt;
    if (cs%%state_per_note==1) log_emit_value = log_emit(observation,cs,energy)&lt;br /&gt;
    for (ps in 1:ncol(trans)) {        ### loop3: the possible predecessor states&lt;br /&gt;
      if (trans[ps,cs]==0) next&lt;br /&gt;
      temp = lat[ps,j-1] + log_emit_value + log(trans[ps,cs])# score by data model&lt;br /&gt;
      if (temp &amp;gt; lat[cs,j]){&lt;br /&gt;
        lat[cs,j] = temp&lt;br /&gt;
        best[cs,j] = ps&lt;br /&gt;
      }&lt;br /&gt;
    }}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#######  Trace back  #######&lt;br /&gt;
&lt;br /&gt;
hat = rep(0,frames)                            # the optimal parse&lt;br /&gt;
hat[frames] = which.max(lat[,frames])          # know the optimal last note&lt;br /&gt;
for (j in frames:2)  hat[j-1] = best[hat[j],j] # trace back optimal parse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### Visualize results&lt;br /&gt;
hat = floor((hat-1)/state_per_note+lop)  ##### every state_per_note states represent the same pitch&lt;br /&gt;
hat.orig &amp;lt;- hat&lt;br /&gt;
hat&amp;lt;- hat.orig &lt;br /&gt;
plot(hat)&lt;br /&gt;
&lt;br /&gt;
### XXXXXXXXX&lt;br /&gt;
### End of shameless copying, transitioning into slightly shameful copying&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### Simplify this score (this project does not attempt timing problems, &lt;br /&gt;
###  only hitting the wrong note)&lt;br /&gt;
###  the best way to do this is to remove double notes and then make the &lt;br /&gt;
###  system robust to silence, which is already represented in the HMM&lt;br /&gt;
###  implementation above&lt;br /&gt;
### Removing doubles&lt;br /&gt;
xlist &amp;lt;- c()&lt;br /&gt;
for (i in 2:length(score)) {&lt;br /&gt;
    if (score[i] == score[i-1]) {&lt;br /&gt;
        xlist &amp;lt;- c(xlist, i)&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
score &amp;lt;- score[-xlist]&lt;br /&gt;
&lt;br /&gt;
### Find the key of the audio, and shift the whole score up or down to match it&lt;br /&gt;
key &amp;lt;-0&lt;br /&gt;
for (i in (state_per_error+1):(frames-1)) { &lt;br /&gt;
    key.window &amp;lt;- hat[(i-state_per_error):i]&lt;br /&gt;
    if ((length(unique(key.window))==1) &amp;amp;&amp;amp; (&lt;br /&gt;
        unique(key.window) != lop)) {&lt;br /&gt;
        key &amp;lt;- key.window[1]&lt;br /&gt;
        break&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
score.old &amp;lt;- score  ### saving old unshifted score&lt;br /&gt;
score &amp;lt;- score - (score[1] - key)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### Begin error detection/annotation&lt;br /&gt;
### detect errors while iterating through solution (the recognized audio &lt;br /&gt;
###  representation &amp;quot;hat&amp;quot;) and building waveform&lt;br /&gt;
### location in (index of) the score&lt;br /&gt;
### Current index of solution in the score (where &lt;br /&gt;
###  we are in my representation of the song.&lt;br /&gt;
iscore &amp;lt;- 1&lt;br /&gt;
### A place to store the indices of errors.  Where in the score&lt;br /&gt;
###  was a mistake made&lt;br /&gt;
ierrors &amp;lt;- c()&lt;br /&gt;
&lt;br /&gt;
### For converting the unmarked-up and marked-up versions of the &lt;br /&gt;
###  tune from midi representation into audio.&lt;br /&gt;
t = 0&lt;br /&gt;
t.err&amp;lt;-0&lt;br /&gt;
in.error&amp;lt;-FALSE   ### The error state.  Starting in not-in-error state&lt;br /&gt;
for (i in (state_per_error+1):(frames-1)) { &lt;br /&gt;
    ### This is 8 frames long, and I shift through it to find mistakes&lt;br /&gt;
    window &amp;lt;- hat[(i-state_per_error):i]&lt;br /&gt;
    ### I am allowed to be in lop (silence) or in the location of the&lt;br /&gt;
    ###  score that I think I'm in.&lt;br /&gt;
    legal &amp;lt;- c(lop, score[iscore])&lt;br /&gt;
    ### marked-up and non-marked-up pitch of current midi note.  Identical&lt;br /&gt;
    ###  but I'm keeping versions separate for comparison&lt;br /&gt;
    v.err = 2*pi*440.*2^((hat[i]-69)/12)/sr&lt;br /&gt;
    v = 2*pi*440.*2^((hat[i]-69)/12)/sr&lt;br /&gt;
    ### Silence&lt;br /&gt;
    if (hat[i] == lop) { v = 0; v.err &amp;lt;- 0 }&lt;br /&gt;
    ### If I am in an error, look for a return to the previous note, &lt;br /&gt;
    ###  or the expected next note, or the one after that, just in case &lt;br /&gt;
    ###  the expected next note get skipped.  Also watch for silence,&lt;br /&gt;
    ###  A sign that the player won't return to the previous note after&lt;br /&gt;
    ###  this mistake.&lt;br /&gt;
    if (in.error){&lt;br /&gt;
        ### If player returns to previous note, leave error state&lt;br /&gt;
        if (0 &amp;lt; length(intersect(c(score[i]), window))) {&lt;br /&gt;
            in.error &amp;lt;- FALSE&lt;br /&gt;
        }&lt;br /&gt;
        ### If the window enters one of the future pitches, leave error state and&lt;br /&gt;
        ###  advance past current location in the score.&lt;br /&gt;
        else if (0 &amp;lt; length(intersect(c(lop, score[iscore+1], score[iscore+2]), window))) {&lt;br /&gt;
            in.error &amp;lt;- FALSE&lt;br /&gt;
            ###  But, of course, don't advance in score if at end of score.&lt;br /&gt;
            if (iscore &amp;lt; length(score)) iscore &amp;lt;- iscore+1&lt;br /&gt;
        }&lt;br /&gt;
        ### If I haven't left the error state, I am still in it and shall&lt;br /&gt;
        ###  insert a high pitched screech to indicate recognition of error&lt;br /&gt;
        else {&lt;br /&gt;
            ierrors &amp;lt;- c(ierrors, iscore)&lt;br /&gt;
            v.err = 2*pi*440.*2^((hip-69)/12)/sr&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    ### If not in error state&lt;br /&gt;
    } else {&lt;br /&gt;
        ### If the current window has no silence or the expected note&lt;br /&gt;
        if (0 == length(intersect(legal, window))) {&lt;br /&gt;
            ### If the current window also doesn't have the next note&lt;br /&gt;
            ###  enter the error state and log the location in ierror,&lt;br /&gt;
            ###  the list of locations-in-error&lt;br /&gt;
            if (0 == length(intersect(c(legal, score[iscore+1]), window))) {&lt;br /&gt;
                ### Debugging output&lt;br /&gt;
                    #print (&amp;quot;at&amp;quot;)&lt;br /&gt;
                    #print(i)&lt;br /&gt;
                    #print(hat[i])&lt;br /&gt;
                    #print(iscore)&lt;br /&gt;
                    #print(&amp;quot;expect&amp;quot;)&lt;br /&gt;
                    #print(c(legal, score[iscore+1], score[iscore+2]))&lt;br /&gt;
                    #print(&amp;quot;in&amp;quot;)&lt;br /&gt;
                    #print(window)&lt;br /&gt;
                ierrors &amp;lt;- c(ierrors, iscore)&lt;br /&gt;
                in.error &amp;lt;- TRUE&lt;br /&gt;
            }&lt;br /&gt;
            ### If current window lacks silence and current note&lt;br /&gt;
            ###  but has next note, advance in the score&lt;br /&gt;
            else {&lt;br /&gt;
                ### unless you are already at the end of the score&lt;br /&gt;
                if (iscore &amp;lt; length(score)) iscore &amp;lt;- iscore+1&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    ### For conversion of short midirepresentation to a waveform suitable &lt;br /&gt;
    ###  for conversion back to real audio&lt;br /&gt;
    t = c(t,rep(v,N/2))&lt;br /&gt;
    t.err = c(t.err,rep(v.err,N/2))&lt;br /&gt;
}&lt;br /&gt;
### End of error detection/annotation&lt;br /&gt;
&lt;br /&gt;
### create scaled waveform of both HMM representation of audio and &lt;br /&gt;
###  version of audio annotated with &amp;quot;caught&amp;quot; mistakes&lt;br /&gt;
z = round((2^13)*sin(cumsum(t)))&lt;br /&gt;
z.caught = round((2^13)*sin(cumsum(t.err)))&lt;br /&gt;
### Convert both versions to .wav file&lt;br /&gt;
u = Wave(z, samp.rate = sr, bit=16)   # make wave struct&lt;br /&gt;
u.caught = Wave(z.caught, samp.rate = sr, bit=16)   # make wave struct&lt;br /&gt;
&lt;br /&gt;
### show where in the score mistakes were made&lt;br /&gt;
ierrors &amp;lt;- unique(ierrors) &lt;br /&gt;
print(&amp;quot;the score&amp;quot;)&lt;br /&gt;
score&lt;br /&gt;
print(&amp;quot;the indices of errors&amp;quot;)&lt;br /&gt;
ierrors&lt;br /&gt;
print(&amp;quot;the notes in the score corresponding to those indices&amp;quot;)&lt;br /&gt;
score[ierrors]&lt;br /&gt;
&lt;br /&gt;
### Play original audio, than recognized audio, then error-annotated audio&lt;br /&gt;
play(u.orig)&lt;br /&gt;
play(u)&lt;br /&gt;
play(u.caught)&lt;br /&gt;
### For writing audio to file&lt;br /&gt;
#writeWave(u, &amp;quot;~/Desktop/projecto/music_processing/final_project/Good_one_err11_01_frame10_hmm_bad.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Seth</name></author>	</entry>

	</feed>