<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:posterous="http://posterous.com/help/rss/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Rabid Gravy</title>
    <link>http://blog.rabidgravy.com</link>
    <description>An Alternative To Music</description>
    <generator>posterous.com</generator>
    <link xmlns="http://www.w3.org/2005/Atom" type="application/json" href="http://posterous.com/api/sup_update#b5063b2af" rel="http://api.friendfeed.com/2008/03#sup" />
    
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/rabidgravy/xlYp" /><feedburner:info uri="rabidgravy/xlyp" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://posterous.superfeedr.com/" /><item>
      <pubDate>Tue, 07 Feb 2012 00:57:16 -0800</pubDate>
      <title>New Upload to Mixcloud.com</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/CsafTutOWpA/new-upload-to-mixcloudcom-1987</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/new-upload-to-mixcloudcom-1987</guid>
      <description>
        <![CDATA[<p>
	<div><object height="300" width="300"><param name="movie" value="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?feed=http%3A%2F%2Fwww.mixcloud.com%2FRabidGravy%2Frabid-gravy-for-no-warning-shot-brapfm-31012012%2F&amp;embed_uuid=f1faa344-d0d0-4c58-a208-910ac9a3562d&amp;stylecolor=&amp;embed_type=widget_standard" /><param name="allowFullScreen" value="true" /><param name="wmode" value="opaque" /><param name="allowscriptaccess" value="always" /><embed allowfullscreen="true" src="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?feed=http%3A%2F%2Fwww.mixcloud.com%2FRabidGravy%2Frabid-gravy-for-no-warning-shot-brapfm-31012012%2F&amp;embed_uuid=f1faa344-d0d0-4c58-a208-910ac9a3562d&amp;stylecolor=&amp;embed_type=widget_standard" allowscriptaccess="always" wmode="opaque" type="application/x-shockwave-flash" height="300" width="300"></embed></object><p /><p style="display: block; font-size: 12px; font-family: Helvetica, Arial, sans-serif; margin: 0; padding: 3px 4px; color: #999;"><a href="http://www.mixcloud.com/RabidGravy/rabid-gravy-for-no-warning-shot-brapfm-31012012/?utm_source=widget&amp;amp;utm_medium=web&amp;amp;utm_campaign=base_links&amp;amp;utm_term=resource_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Rabid Gravy for No Warning Shot (Brap.fm) 31.01.2012</a><span> by </span><a href="http://www.mixcloud.com/RabidGravy/?utm_source=widget&amp;amp;utm_medium=web&amp;amp;utm_campaign=base_links&amp;amp;utm_term=profile_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Rabid Gravy</a><span> on </span><a href="http://www.mixcloud.com/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=homepage_link" target="_blank" style="color: #02a0c7; font-weight: bold;"> Mixcloud</a></p><p /></div>I just uploaded "Rabid Gravy for No Warning Shot (Brap.fm) 31.01.2012" to www.mixcloud.com, please listen now at: <a href="http://www.mixcloud.com/RabidGravy/rabid-gravy-for-no-warning-shot-brapfm-31012012/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">http://www.mixcloud.com/RabidGravy/rabid-gravy-for-no-warning-shot-brapfm-31012012/</a>

<div class="posterous_quote_citation">via <a href="http://www.mixcloud.com">Mixcloud</a></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/new-upload-to-mixcloudcom-1987">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/new-upload-to-mixcloudcom-1987#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/new-upload-to-mixcloudcom-1987</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 03 Jul 2011 02:08:15 -0700</pubDate>
      <title>New Upload to Mixcloud.com</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/ww1o7AgmvEI/new-upload-to-mixcloudcom-59696</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/new-upload-to-mixcloudcom-59696</guid>
      <description>
        <![CDATA[<p>
	<div><object height="300" width="300"><param name="movie" value="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?feed=http%3A%2F%2Fwww.mixcloud.com%2FRabidGravy%2Frabid-gravy-live-04042011%2F&amp;embed_uuid=39b78838-9a7c-4393-8c9f-d85a7e123cb0&amp;embed_type=widget_standard" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed allowfullscreen="true" src="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?feed=http%3A%2F%2Fwww.mixcloud.com%2FRabidGravy%2Frabid-gravy-live-04042011%2F&amp;embed_uuid=39b78838-9a7c-4393-8c9f-d85a7e123cb0&amp;embed_type=widget_standard" allowscriptaccess="always" type="application/x-shockwave-flash" height="300" width="300"></embed></object><p /><p style="display: block; font-size: 12px; font-family: Helvetica, Arial, sans-serif; margin: 0; padding: 3px 4px; color: #999;"><a href="http://www.mixcloud.com/RabidGravy/rabid-gravy-live-04042011/#utm_source=widget&amp;amp;utm_medium=web&amp;amp;utm_campaign=base_links&amp;amp;utm_term=resource_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Rabid Gravy Live 04/04/2011</a><span> by </span><a href="http://www.mixcloud.com/RabidGravy/#utm_source=widget&amp;amp;utm_medium=web&amp;amp;utm_campaign=base_links&amp;amp;utm_term=profile_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Rabid Gravy</a><span> on </span><a href="http://www.mixcloud.com/#utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=homepage_link" target="_blank" style="color: #02a0c7; font-weight: bold;"> Mixcloud</a></p><p /></div>I just uploaded "Rabid Gravy Live 04/04/2011" to www.mixcloud.com, please listen now at: <a href="http://www.mixcloud.com/RabidGravy/rabid-gravy-live-04042011/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">http://www.mixcloud.com/RabidGravy/rabid-gravy-live-04042011/</a>

<div class="posterous_quote_citation">via <a href="http://www.mixcloud.com">Mixcloud</a></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/new-upload-to-mixcloudcom-59696">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/new-upload-to-mixcloudcom-59696#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/new-upload-to-mixcloudcom-59696</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 03 Jul 2011 01:10:58 -0700</pubDate>
      <title>New Upload to Mixcloud.com</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/LkDcvzUPG4s/new-upload-to-mixcloudcom-66058</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/new-upload-to-mixcloudcom-66058</guid>
      <description>
        <![CDATA[<p>
	<div><object height="300" width="300"><param name="movie" value="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?feed=http%3A%2F%2Fwww.mixcloud.com%2FRabidGravy%2Fsession-for-mantis-radio-2208201%2F&amp;embed_uuid=d306ea42-ba72-4c63-b0ab-f0ff531c7f43&amp;embed_type=widget_standard" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed allowfullscreen="true" src="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?feed=http%3A%2F%2Fwww.mixcloud.com%2FRabidGravy%2Fsession-for-mantis-radio-2208201%2F&amp;embed_uuid=d306ea42-ba72-4c63-b0ab-f0ff531c7f43&amp;embed_type=widget_standard" allowscriptaccess="always" type="application/x-shockwave-flash" height="300" width="300"></embed></object><p /><p style="display: block; font-size: 12px; font-family: Helvetica, Arial, sans-serif; margin: 0; padding: 3px 4px; color: #999;"><a href="http://www.mixcloud.com/RabidGravy/session-for-mantis-radio-2208201/#utm_source=widget&amp;amp;utm_medium=web&amp;amp;utm_campaign=base_links&amp;amp;utm_term=resource_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Session for MANTIS Radio 22/08/201</a><span> by </span><a href="http://www.mixcloud.com/RabidGravy/#utm_source=widget&amp;amp;utm_medium=web&amp;amp;utm_campaign=base_links&amp;amp;utm_term=profile_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Rabid Gravy</a><span> on </span><a href="http://www.mixcloud.com/#utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=homepage_link" target="_blank" style="color: #02a0c7; font-weight: bold;"> Mixcloud</a></p><p /></div>I just uploaded "Session for MANTIS Radio 22/08/201" to www.mixcloud.com, please listen now at: <a href="http://www.mixcloud.com/RabidGravy/session-for-mantis-radio-2208201/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">http://www.mixcloud.com/RabidGravy/session-for-mantis-radio-2208201/</a>

<div class="posterous_quote_citation">via <a href="http://www.mixcloud.com">Mixcloud</a></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/new-upload-to-mixcloudcom-66058">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/new-upload-to-mixcloudcom-66058#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/new-upload-to-mixcloudcom-66058</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 03 Jul 2011 00:37:05 -0700</pubDate>
      <title>New Upload to Mixcloud.com</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/78YIqKQEuTI/new-upload-to-mixcloudcom</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/new-upload-to-mixcloudcom</guid>
      <description>
        <![CDATA[<p>
	<div><object height="300" width="300"><param name="movie" value="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?feed=http%3A%2F%2Fwww.mixcloud.com%2FRabidGravy%2Frabid-gravy-live-07072010%2F&amp;embed_uuid=e25206e2-d31a-4735-b43b-975e55506734&amp;embed_type=widget_standard" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed allowfullscreen="true" src="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?feed=http%3A%2F%2Fwww.mixcloud.com%2FRabidGravy%2Frabid-gravy-live-07072010%2F&amp;embed_uuid=e25206e2-d31a-4735-b43b-975e55506734&amp;embed_type=widget_standard" allowscriptaccess="always" type="application/x-shockwave-flash" height="300" width="300"></embed></object><p /><p style="display: block; font-size: 12px; font-family: Helvetica, Arial, sans-serif; margin: 0; padding: 3px 4px; color: #999;"><a href="http://www.mixcloud.com/RabidGravy/rabid-gravy-live-07072010/#utm_source=widget&amp;amp;utm_medium=web&amp;amp;utm_campaign=base_links&amp;amp;utm_term=resource_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Rabid Gravy Live 07/07/2010</a><span> by </span><a href="http://www.mixcloud.com/RabidGravy/#utm_source=widget&amp;amp;utm_medium=web&amp;amp;utm_campaign=base_links&amp;amp;utm_term=profile_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Rabid Gravy</a><span> on </span><a href="http://www.mixcloud.com/#utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=homepage_link" target="_blank" style="color: #02a0c7; font-weight: bold;"> Mixcloud</a></p><p /></div>I just uploaded "Rabid Gravy Live 07/07/2010" to www.mixcloud.com, please listen now at: <a href="http://www.mixcloud.com/RabidGravy/rabid-gravy-live-07072010/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">http://www.mixcloud.com/RabidGravy/rabid-gravy-live-07072010/</a>

<div class="posterous_quote_citation">via <a href="http://www.mixcloud.com">Mixcloud</a></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/new-upload-to-mixcloudcom">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/new-upload-to-mixcloudcom#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/new-upload-to-mixcloudcom</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 10 Jun 2011 01:01:00 -0700</pubDate>
      <title>Last summer's Summer EP</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/O1e-Xx7fdUg/last-summers-summer-ep</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/last-summers-summer-ep</guid>
      <description>
        <![CDATA[<p>
	<p>Last summer I gathered together a few of my recent tracks and uploaded them to Last FM as <a href="http://www.last.fm/music/Rabid+Gravy/Summer+EP" target="_blank">Summer EP</a>.  I didn't really push it much and it was only really an EP because Last FM prefers it if you create an "album" rather than uploading individual tracks :)</p>
<p>Anyway yesterday someone asked me on twitter if I could send them some of my tracks for a radio show. And at that point I discovered that I still had the original ZIP file of the 320K mp3s that I had uploaded (that's a nice feature, thanks Last FM!) So rather than mail the file (google mail was struggling with the size of the message,) I uploaded it to <a href="http://rabidgravy.com/">rabidgravy.com</a> so I could share it more widely.</p>
<p><a href="http://rabidgravy.com/music/SummerEP.zip">Download the whole EP as single ZIP file here.</a></p>
<p>So here you have it, last summer's Summer EP.  Download it, play it, blog about it, share it with your friends and enjoy it.  Let me know what you think either with a comment here or on the <a href="http://soundcloud.com/RabidGravy">Soundcloud tracks</a> below.</p>
<p>I'm always interested in doing live performances, suggestions for remixes and ideas for other collaborative projects, <a href="http://&quot;mailto:post+sep@rabidgravy.com">e-mail</a> me or contact me via <a href="http://twitter.com/RabidGravy">twitter</a>.</p>
<p>
<object height="81" width="500">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F3554481" />
<param name="allowscriptaccess" value="always" /> <embed src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F3554481" type="application/x-shockwave-flash" height="81" width="500"></embed>
</object>
<span><a href="http://soundcloud.com/rabidgravy/test-tube">Test Tube</a> by <a href="http://soundcloud.com/rabidgravy">Rabid Gravy</a></span> 
<object height="81" width="500">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F3555714" />
<param name="allowscriptaccess" value="always" /> <embed src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F3555714" type="application/x-shockwave-flash" height="81" width="500"></embed>
</object>
<span><a href="http://soundcloud.com/rabidgravy/accidental-ambience">Accidental Ambience</a> by <a href="http://soundcloud.com/rabidgravy">Rabid Gravy</a></span> 
<object height="81" width="500">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F3148290" />
<param name="allowscriptaccess" value="always" /> <embed src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F3148290" type="application/x-shockwave-flash" height="81" width="500"></embed>
</object>
<span><a href="http://soundcloud.com/rabidgravy/tunnel">Tunnel</a> by <a href="http://soundcloud.com/rabidgravy">Rabid Gravy</a></span> 
<object height="81" width="500">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F3010773" />
<param name="allowscriptaccess" value="always" /> <embed src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F3010773" type="application/x-shockwave-flash" height="81" width="500"></embed>
</object>
<span><a href="http://soundcloud.com/rabidgravy/terminal-building-harder-wider-mix">Terminal Building (Harder Wider mix)</a> by <a href="http://soundcloud.com/rabidgravy">Rabid Gravy</a></span> 
<object height="81" width="500">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F3304018" />
<param name="allowscriptaccess" value="always" /> <embed src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F3304018" type="application/x-shockwave-flash" height="81" width="500"></embed>
</object>
<span><a href="http://soundcloud.com/rabidgravy/revolution">Revolution</a> by <a href="http://soundcloud.com/rabidgravy">Rabid Gravy</a></span> 
<object height="81" width="500">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F3366499" />
<param name="allowscriptaccess" value="always" /> <embed src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F3366499" type="application/x-shockwave-flash" height="81" width="500"></embed>
</object>
<span><a href="http://soundcloud.com/rabidgravy/lifetime-of-dither">Lifetime Of Dither</a> by <a href="http://soundcloud.com/rabidgravy">Rabid Gravy</a></span></p>
<p><a href="http://creativecommons.org/licenses/by/3.0/" rel="license"><img src="http://i.creativecommons.org/l/by/3.0/80x15.png" alt="Creative Commons License" style="border-width: 0;" /></a><br />This work is licensed under a <a href="http://creativecommons.org/licenses/by/3.0/" rel="license">Creative Commons Attribution 3.0 Unported License</a>.</p>
	
</p>

<p><a href="http://blog.rabidgravy.com/last-summers-summer-ep">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/last-summers-summer-ep#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/last-summers-summer-ep</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 19 May 2011 04:12:07 -0700</pubDate>
      <title>New favorite on Mixcloud.com</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/Zdsvzyc-Wko/new-favorite-on-mixcloudcom-8</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/new-favorite-on-mixcloudcom-8</guid>
      <description>
        <![CDATA[<p>
	<div><object height="300" width="300"><param name="movie" value="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?v=106" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="flashVars" value="feed=http://www.mixcloud.com/api/1/cloudcast/talalsound/end-of-winter-techno.json&embed_uuid=113743de-d10b-45c8-b87a-25452bf1b36e&embed_type=widget_standard" /><embed allowfullscreen="true" src="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?v=106" allowscriptaccess="always" type="application/x-shockwave-flash" height="300" flashvars="feed=http://www.mixcloud.com/api/1/cloudcast/talalsound/end-of-winter-techno.json&amp;embed_uuid=113743de-d10b-45c8-b87a-25452bf1b36e&amp;embed_type=widget_standard" width="300"></embed></object><p /><p style="display: block; font-size: 12px; font-family: Helvetica, Arial, sans-serif; margin: 0; padding: 3px 4px 3px 4px; color: #999;"><a href="http://www.mixcloud.com/talalsound/end-of-winter-techno/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=cloudcast_link" target="_blank" style="color: #02a0c7; font-weight: bold;">End Of Winter Techno</a> by <a href="http://www.mixcloud.com/talalsound/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=profile_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Talal</a> on <a href="http://www.mixcloud.com/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=homepage_link" target="_blank" style="color: #02a0c7; font-weight: bold;"> Mixcloud</a></p><p /></div>Just favorited "<a href="http://www.mixcloud.com/talalsound/end-of-winter-techno/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">End of Winter Techno</a>" by <a href="http://www.mixcloud.com/talalsound/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">Talal</a> on <a href="http://www.mixcloud.com/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">Mixcloud.com</a>

<div class="posterous_quote_citation">via <a href="http://www.mixcloud.com">Mixcloud</a></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/new-favorite-on-mixcloudcom-8">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/new-favorite-on-mixcloudcom-8#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/new-favorite-on-mixcloudcom-8</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 18 May 2011 07:27:12 -0700</pubDate>
      <title>New favorite on Mixcloud.com</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/H2XzdGqIemg/new-favorite-on-mixcloudcom-4</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/new-favorite-on-mixcloudcom-4</guid>
      <description>
        <![CDATA[<p>
	<div><object height="300" width="300"><param name="movie" value="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?v=106" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="flashVars" value="feed=http://www.mixcloud.com/api/1/cloudcast/groovetech/hybrid-things-industrial-tehno-blended-with-spices-of-disco-minimal-and-deep-techno-grooves.json&embed_uuid=20a2d938-c2e5-4d21-983c-9bdf99f792bf&embed_type=widget_standard" /><embed allowfullscreen="true" src="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?v=106" allowscriptaccess="always" type="application/x-shockwave-flash" height="300" flashvars="feed=http://www.mixcloud.com/api/1/cloudcast/groovetech/hybrid-things-industrial-tehno-blended-with-spices-of-disco-minimal-and-deep-techno-grooves.json&amp;embed_uuid=20a2d938-c2e5-4d21-983c-9bdf99f792bf&amp;embed_type=widget_standard" width="300"></embed></object><p /><p style="display: block; font-size: 12px; font-family: Helvetica, Arial, sans-serif; margin: 0; padding: 3px 4px 3px 4px; color: #999;"><a href="http://www.mixcloud.com/groovetech/hybrid-things-industrial-tehno-blended-with-spices-of-disco-minimal-and-deep-techno-grooves/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=cloudcast_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Hybrid Things - Industrial Tehno Blended With Spices Of Disco, Minimal, And Deep Techno Grooves</a> by <a href="http://www.mixcloud.com/groovetech/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=profile_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Rouchos</a> on <a href="http://www.mixcloud.com/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=homepage_link" target="_blank" style="color: #02a0c7; font-weight: bold;"> Mixcloud</a></p><p /></div>Just favorited "<a href="http://www.mixcloud.com/groovetech/hybrid-things-industrial-tehno-blended-with-spices-of-disco-minimal-and-deep-techno-grooves/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">Hybrid Things - Industrial Tehno blended with spices of Disco, Minimal, and Deep Techno Grooves</a>" by <a href="http://www.mixcloud.com/groovetech/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">rouchos</a> on <a href="http://www.mixcloud.com/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">Mixcloud.com</a>

<div class="posterous_quote_citation">via <a href="http://www.mixcloud.com">Mixcloud</a></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/new-favorite-on-mixcloudcom-4">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/new-favorite-on-mixcloudcom-4#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/new-favorite-on-mixcloudcom-4</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 17 May 2011 06:03:55 -0700</pubDate>
      <title>New favorite on Mixcloud.com</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/MDNnaD9xFH8/new-favorite-on-mixcloudcom-0</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/new-favorite-on-mixcloudcom-0</guid>
      <description>
        <![CDATA[<p>
	<div><object height="300" width="300"><param name="movie" value="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?v=106" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="flashVars" value="feed=http://www.mixcloud.com/api/1/cloudcast/Mario_Utopia/difficulties-mix.json&embed_uuid=6b36acc9-3029-4dd6-996c-e5677dd41d33&embed_type=widget_standard" /><embed allowfullscreen="true" src="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?v=106" allowscriptaccess="always" type="application/x-shockwave-flash" height="300" flashvars="feed=http://www.mixcloud.com/api/1/cloudcast/Mario_Utopia/difficulties-mix.json&amp;embed_uuid=6b36acc9-3029-4dd6-996c-e5677dd41d33&amp;embed_type=widget_standard" width="300"></embed></object><p /><p style="display: block; font-size: 12px; font-family: Helvetica, Arial, sans-serif; margin: 0; padding: 3px 4px 3px 4px; color: #999;"><a href="http://www.mixcloud.com/Mario_Utopia/difficulties-mix/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=cloudcast_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Difficulties Mix </a> by <a href="http://www.mixcloud.com/Mario_Utopia/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=profile_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Mario | Utopia Crew |</a> on <a href="http://www.mixcloud.com/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=homepage_link" target="_blank" style="color: #02a0c7; font-weight: bold;"> Mixcloud</a></p><p /></div>Just favorited "<a href="http://www.mixcloud.com/Mario_Utopia/difficulties-mix/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">Difficulties Mix </a>" by <a href="http://www.mixcloud.com/Mario_Utopia/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">Mario | Utopia Crew |</a> on <a href="http://www.mixcloud.com/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">Mixcloud.com</a>

<div class="posterous_quote_citation">via <a href="http://www.mixcloud.com">Mixcloud</a></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/new-favorite-on-mixcloudcom-0">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/new-favorite-on-mixcloudcom-0#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/new-favorite-on-mixcloudcom-0</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 17 May 2011 04:24:10 -0700</pubDate>
      <title>New favorite on Mixcloud.com</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/0Yh0U6A6HLE/new-favorite-on-mixcloudcom</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/new-favorite-on-mixcloudcom</guid>
      <description>
        <![CDATA[<p>
	<div><object height="300" width="300"><param name="movie" value="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?v=106" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="flashVars" value="feed=http://www.mixcloud.com/api/1/cloudcast/skinnydeejaymark/dj-skinny-mark-techno-live-mixed-vol02.json&embed_uuid=edd242cf-acb4-4e5f-9f44-1230b5bdc745&embed_type=widget_standard" /><embed allowfullscreen="true" src="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?v=106" allowscriptaccess="always" type="application/x-shockwave-flash" height="300" flashvars="feed=http://www.mixcloud.com/api/1/cloudcast/skinnydeejaymark/dj-skinny-mark-techno-live-mixed-vol02.json&amp;embed_uuid=edd242cf-acb4-4e5f-9f44-1230b5bdc745&amp;embed_type=widget_standard" width="300"></embed></object><p /><p style="display: block; font-size: 12px; font-family: Helvetica, Arial, sans-serif; margin: 0; padding: 3px 4px 3px 4px; color: #999;"><a href="http://www.mixcloud.com/skinnydeejaymark/dj-skinny-mark-techno-live-mixed-vol02/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=cloudcast_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Dj Skinny Mark - Techno Live Mixed Vol.02</a> by <a href="http://www.mixcloud.com/skinnydeejaymark/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=profile_link" target="_blank" style="color: #02a0c7; font-weight: bold;">Deejay Skinny Mark</a> on <a href="http://www.mixcloud.com/?utm_source=widget&amp;utm_medium=web&amp;utm_campaign=base_links&amp;utm_term=homepage_link" target="_blank" style="color: #02a0c7; font-weight: bold;"> Mixcloud</a></p><p /></div>Just favorited "<a href="http://www.mixcloud.com/skinnydeejaymark/dj-skinny-mark-techno-live-mixed-vol02/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">DJ Skinny Mark - Techno Live Mixed Vol.02</a>" by <a href="http://www.mixcloud.com/skinnydeejaymark/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">Deejay Skinny Mark</a> on <a href="http://www.mixcloud.com/" style="color: #02A0C7; cursor: pointer; font-weight: bold;">Mixcloud.com</a>

<div class="posterous_quote_citation">via <a href="http://www.mixcloud.com">Mixcloud</a></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/new-favorite-on-mixcloudcom">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/new-favorite-on-mixcloudcom#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/new-favorite-on-mixcloudcom</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 09 Mar 2011 14:12:00 -0800</pubDate>
      <title>Jonathan Stowe - Voodoo Slice (original mix) - Netaudio London 2011 - Open Platform submissions</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/OYFe61ofTFE/jonathan-stowe-voodoo-slice-original-mix-neta</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/jonathan-stowe-voodoo-slice-original-mix-neta</guid>
      <description>
        <![CDATA[<p>
	<div class="posterous_bookmarklet_entry">
      <div class='p_embed p_image_embed'>
<img alt="Media_httpnetaudiolon_bmifq" height="200" src="http://posterous.com/getfile/files.posterous.com/rabidgravy/vkjwqxdomzHleAsDedDvabrecrcuvfuwwJoBsCvbAGkJvifmcAdpGpreiafr/media_httpnetaudiolon_bmIfq.jpg.scaled500.jpg" width="200" />
</div>
<div class="posterous_quote_citation">via <a href="http://netaudiolondon-op.heroku.com/41">netaudiolondon-op.heroku.com</a></div>
    <p>I'd really like to play this gig. if you haven't already get in there and drop a vote. It's going to be great,
</p><p><a href="http://netaudiolondon-op.heroku.com/">http://netaudiolondon-op.heroku.com/</a></p></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/jonathan-stowe-voodoo-slice-original-mix-neta">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/jonathan-stowe-voodoo-slice-original-mix-neta#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="200" width="200" url="http://getfile5.posterous.com/getfile/files.posterous.com/rabidgravy/vkjwqxdomzHleAsDedDvabrecrcuvfuwwJoBsCvbAGkJvifmcAdpGpreiafr/media_httpnetaudiolon_bmIfq.jpg">
        <media:thumbnail height="200" width="200" url="http://getfile9.posterous.com/getfile/files.posterous.com/rabidgravy/vkjwqxdomzHleAsDedDvabrecrcuvfuwwJoBsCvbAGkJvifmcAdpGpreiafr/media_httpnetaudiolon_bmIfq.jpg.scaled500.jpg" />
      </media:content>
    <feedburner:origLink>http://blog.rabidgravy.com/jonathan-stowe-voodoo-slice-original-mix-neta</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 04 Mar 2011 04:21:00 -0800</pubDate>
      <title>Philharmonia Orchestra: The Sound Exchange: Make Music: Samples: Sample Library</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/BIi4hutLYUM/philharmonia-orchestra-the-sound-exchange-mak</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/philharmonia-orchestra-the-sound-exchange-mak</guid>
      <description>
        <![CDATA[<p>
	<div class="posterous_bookmarklet_entry">
      <blockquote><div>
  	<h3>
Sample Library</h3>
  	<p> </p>
		
			
			
			<p>Thousands of free, downloadable sound samples specially recorded by Philharmonia Orchestra players. </p>
<p>These samples are suitable for creating any kind of music, no matter what you're into. From piccolo to double bass there are single notes, phrases and whole orchestra samples to choose from.</p>
		
		
		
  </div></blockquote><div class="posterous_quote_citation">via <a href="http://www.philharmonia.co.uk/thesoundexchange/make_music/samples/library/">philharmonia.co.uk</a></div>
    <p>This morning I asked on Twitter: "<i>Anyone got a chromatic set of Tuba or Souzaphone samples ?"</i> after hearing the excellent bass lines on the souzaphone played by Kirk Joseph in the Dirty Dozen Brass Band.  I'd really like to get some of that sound in my tracks, okay probably messed up and filtered a bit but hey!
</p><p>Anyway a quick web search and this site came up as the top hit :)
</p><p>This is an absolutely awesome collection of well made and really useful samples and I don't know how I can praise the Philharmonia and the supporters of this project ("The David and Elaine Potter Charitable Foundation") enough for making it available.</p></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/philharmonia-orchestra-the-sound-exchange-mak">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/philharmonia-orchestra-the-sound-exchange-mak#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/philharmonia-orchestra-the-sound-exchange-mak</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 02 Mar 2011 12:07:00 -0800</pubDate>
      <title>Meet the MeeBlip, meet an opensource synthesizer</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/dByy1IVw7_M/meet-the-meeblip-meet-an-opensource-synthesiz</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/meet-the-meeblip-meet-an-opensource-synthesiz</guid>
      <description>
        <![CDATA[<p>
	<div class="posterous_bookmarklet_entry">
      <div class='p_embed p_image_embed'>
<a href="http://posterous.com/getfile/files.posterous.com/rabidgravy/HDHvIkEcoHvDxdrfcmacAhtdmgpmjhioGItyDeohwDIwroixyhpllAfijEjb/media_httpmeeblipnois_ylCBA.jpg.scaled1000.jpg"><img alt="Media_httpmeeblipnois_ylcba" height="386" src="http://posterous.com/getfile/files.posterous.com/rabidgravy/HDHvIkEcoHvDxdrfcmacAhtdmgpmjhioGItyDeohwDIwroixyhpllAfijEjb/media_httpmeeblipnois_ylCBA.jpg.scaled500.jpg" width="500" /></a>
</div>
<div class="posterous_quote_citation">via <a href="http://meeblip.noisepages.com/">meeblip.noisepages.com</a></div>
    <p>I've just ordered one of these. It's revolutionary, a completely opensource digital synthesizer - both the hardware design and the software are completely open and free to alter in any way you see fit.
</p><p>It's going to sound great too.</p></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/meet-the-meeblip-meet-an-opensource-synthesiz">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/meet-the-meeblip-meet-an-opensource-synthesiz#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="494" width="640" url="http://getfile3.posterous.com/getfile/files.posterous.com/rabidgravy/HDHvIkEcoHvDxdrfcmacAhtdmgpmjhioGItyDeohwDIwroixyhpllAfijEjb/media_httpmeeblipnois_ylCBA.jpg">
        <media:thumbnail height="386" width="500" url="http://getfile6.posterous.com/getfile/files.posterous.com/rabidgravy/HDHvIkEcoHvDxdrfcmacAhtdmgpmjhioGItyDeohwDIwroixyhpllAfijEjb/media_httpmeeblipnois_ylCBA.jpg.scaled500.jpg" />
      </media:content>
    <feedburner:origLink>http://blog.rabidgravy.com/meet-the-meeblip-meet-an-opensource-synthesiz</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 11 Feb 2011 05:06:00 -0800</pubDate>
      <title>Making Music to Save Our Libraries</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/-dOPDKGu-Pw/making-music-to-save-our-libraries</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/making-music-to-save-our-libraries</guid>
      <description>
        <![CDATA[<p>
	<div class="posterous_bookmarklet_entry">
<object height="81" width="500">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F10270379%3Fsecret_token%3Ds-nwTNE&amp;secret_url=true" />
<param name="allowscriptaccess" value="always" /> <embed src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F10270379%3Fsecret_token%3Ds-nwTNE&amp;secret_url=true" type="application/x-shockwave-flash" height="81" width="500"></embed>
</object>
<div class="posterous_quote_citation">via <a href="http://www.bofh.org.uk/2011/02/08/save-our-libraries">bofh.org.uk</a></div>
<p>I guess most if not all of you will have heard of the concern that the spending cuts being imposed by the government on local authorities are going to lead to the closure of a large number of public libraries in England.  I think every right minded person in the country would consider this a bad thing. People are campaigning in a variety of ways to make sure that the decision makers know that people think this is a bad thing.</p>
<p>So against this background my friend Piers, who among his many talents is a fine singer and curator of traditional English songs, has written this song about some of the reasons why public libraries are so important and why we wouldn't want to have them closed down. A protest song in the traditional sense if you will.</p>
<p>Now the cool thing about this, apart from it being a great song and a good cause, is that Piers has licensed the song and the recording of it under a Creative Commons license (<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/)">http://creativecommons.org/licenses/by-nc-sa/3.0/)</a> so basically you can do anything non-commercial you want with it as long as you attribute the authors and apply the same license to any resulting work.</p>
<p>Now what I thought would be really great given all the above would be for a great diversity of musicians, producers DJs and other audio artists working in different genres to make their own version of the song in their own way, whether that be reworking the music and words to fit the way that they make music, or "remixing" Piers' original recording with the accompaniment of their choice, and then get that  out to the people who listen to their music either as a live performance or a recording.  A bit like a distributed charity record, but rather than a few mediocre pop celebrities getting together in a studio to drink champagne and have their picture taken while they make one record, there will be a large number of people producing multiple versions of the song in much the same way as they normally do and getting it to their audience in the same way as their other stuff.  People are funny with music, they don't really listen to stuff they are unfamiliar with, however important the message. This way by rendering the song in a variety of different styles it becomes more accessible to a greater number of people, and by that more people get the message.</p>
<p>So get to it! Make your version, persuade your friends and relatives to make a version, persuade your favourite band to make a version.</p>
<p>The full original post with lyrics and guitar arrangement at <a href="http://www.bofh.org.uk/2011/02/08/save-our-libraries">http://www.bofh.org.uk/2011/02/08/save-our-libraries</a></p>
</div>
<div>
<h3>Update</h3>
Piers has made an updated version against a click track, which should make this even more accessible for people to make a remix or use it in their own project:
<p>
<object height="81" width="500">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F13031396" />
<param name="allowscriptaccess" value="always" /> <embed src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F13031396" type="application/x-shockwave-flash" height="81" width="500"></embed>
</object>
<span><a href="http://soundcloud.com/pdcawley/child-of-the-library-revised">Child Of The Library (Revised)</a> by <a href="http://soundcloud.com/pdcawley">pdcawley</a></span></p>
<p>Get to it :)</p>
</div>
	
</p>

<p><a href="http://blog.rabidgravy.com/making-music-to-save-our-libraries">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/making-music-to-save-our-libraries#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/making-music-to-save-our-libraries</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 22 Jan 2011 08:20:00 -0800</pubDate>
      <title>The Freesound Challenge!</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/SqujnV3CuvI/the-freesound-challenge</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/the-freesound-challenge</guid>
      <description>
        <![CDATA[<p>
	<p>The Freesound Challenge is about making a work of audio creativity using a random selection of samples from the wonderful <a href="http://www.freesound.org/" title="Freesound Project" target="_blank">Freesound Project</a> like a sort of musical "Scrapyard Challenge" but with audio samples rather than actual junk<a href="#note1">[1]</a>.&nbsp; To this end I've created the <a href="http://soundcloud.com/groups/the-free-sound-challenge">group on Soundcloud</a> - the following is from its description:</p>
<p style="padding-left: 30px;"><em>The  Freesound Challenge is an experiment to see how creative people can be  in creating music with constrained raw materials using the wonderful  resources found at  <a href="http://www.freesound.org/" rel="nofollow" target="_blank">The Freesound Project</a>.</em></p>
<div style="padding-left: 30px;">
<div>
<p><em>It's quite simple: create yourself an account at <a href="http://www.freesound.org/" rel="nofollow" target="_blank">http://www.freesound.org</a>/,  then using the "Random Sample" link on the left hand of the page  download the first fifteen (15) random samples you are presented with  (I'm expected you to be honest to yourself about this part because I've  no way of checking.) If you get fifteen cracking techno loops or  orchestral hits then great, if you get fifteen samples of various  flatulent animals then equally good, infact better because it means  you'll have to be more creative how you use them.</em></p>
<p><em>Once you've got the samples you can use them however you see fit,  Crush them, bend them, stretch then, stick them in your wavetable synth  or loop them but first and foremost make a creative piece of audio art  with them.  but ONLY with these samples - no other sound sources  allowed. Of course you don't have to use all fifteen samples if you  don't want to.  There is no restriction on the form of what you make, of  course I am anticipating that most will be beat oriented electronic  music, but if you can see your way clear to reworking Handel's Messiah  with the samples you've got all the better. This is about being as  creative as you can within the  imposed restrictions on the materials.</em></p>
<p><em>Then when you're happy with what you've made upload them to this  group including the list of the samples that you have used in the  description - you can find this in the "Attribution List" in the left  hand of the freesound homepage when you are logged in, just copy and  past the appropriate parts: this part is important as it is part of the  terms of use of the resources on Freesound and also it means that we can  see that the group isn't being spammed with unrelated material (not  that I don't want to hear your other tracks, you can send those to my  dropbox:) : anything that doesn't have this will get removed.  You also  should be free to license the created work under a Creative Commons  license as this seems only reasonable given the source of the input  material, but if you've signed some strange contract that prevents you  from doing this and are still keen to participate please get in touch  anyway.</em></p>
<p><em>I've got a vague notion that if we get enough good works then I'd  like to make a free compilation of the best, but we'll see how it goes  :) But primarily this is all about fun, there are no prizes, just a warm  glow of satisfaction and hopefully the appreciation of your peers :)</em></p>
<p><em>This is not in anyway associated with or supported by The Freesound  Project and all marks remain the property of their respective owners etc  etc ...</em></p>
<p>&nbsp;</p>
</div>
</div>
<p>Clearly you also need to have an account at <a href="http://soundcloud.com/">Soundcloud</a> but I'm guessing that it's as ubiquitous among people who like to make noise and share it as Flickr is with those with a camera :)</p>
<p>I'm really looking forward to hearing some really exciting works and I'm sure there are plenty of other people who will be excited by it too.</p>
<p>As alluded to above I'd be interested in making a Net Label release of the best examples, but let's see how it goes first.&nbsp;</p>
<p>This has got to be more fun than some "remix competition" if only because we don't have the faintest idea of what kind of stuff we are going to get :)</p>
<p>Tell your friends, tell the press. Let's have some fun with noise :)</p>
<p>&nbsp;</p>
<p><a name="note1">[1]</a>&nbsp; I'd like to do a real musical "Scrapyard Challenge" too but this requires some physical organisation, a venue and a "scrapyard" of musical (or potentially musical) junk. If you've got any ideas how this can be achieved get in touch :)</p>
	
</p>

<p><a href="http://blog.rabidgravy.com/the-freesound-challenge">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/the-freesound-challenge#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/the-freesound-challenge</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 20 Dec 2010 13:39:00 -0800</pubDate>
      <title>Voodoo Slice remixes</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/PWy791h7-fI/voodoo-slice-remixes</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/voodoo-slice-remixes</guid>
      <description>
        <![CDATA[<p>
	<p>The Voodoo Slices EP is now released.&nbsp; You can listen at <a href="http://www.last.fm/music/Rabid+Gravy/Voodoo+Slices+EP" title="Last.fm" target="_blank">Last.fm</a> or download the tracks in various formats from <a href="http://www.archive.org/details/VoodooSlicesEP" title="Gravy Sounds on archive.org" target="_blank">Gravy Sounds on archive.org</a> or whole thing as a ZIP file of 320K MP3s <a href="http://www.sendspace.com/file/lxpetx" title="here">here</a>.</p>
<p>I've been fortunate enough to obtain some fantastic remixes of my track "Voodoo Slice", these guys need some praise for crafting gems from such rough raw materials.</p>
<p>
<object height="81" width="500">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F7679006" />
<param name="allowscriptaccess" value="always" /> <embed src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F7679006" type="application/x-shockwave-flash" height="81" width="500"></embed>
</object>
<span><a href="http://soundcloud.com/dylabs/lemon-slice">Lemon slice</a> by <a href="http://soundcloud.com/dylabs">DyLABs</a></span></p>
<p>
<object height="81" width="500">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F7846400" />
<param name="allowscriptaccess" value="always" /> <embed src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F7846400" type="application/x-shockwave-flash" height="81" width="500"></embed>
</object>
<span><a href="http://soundcloud.com/kongsized/voodoo-slice-kongsized-remix">Voodoo Slice (kongsized remix)</a> by <a href="http://soundcloud.com/kongsized">kongsized</a></span></p>
<p>
<object height="81" width="500">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F8335371" />
<param name="allowscriptaccess" value="always" /> <embed src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F8335371" type="application/x-shockwave-flash" height="81" width="500"></embed>
</object>
<span><a href="http://soundcloud.com/vik44/rabid-gravy-voodoo-slice-vik44-remix">Rabid gravy-Voodoo Slice ( vik44 remix)</a> by <a href="http://soundcloud.com/vik44">vik44</a></span></p>
<p>
<object height="81" width="500">
<param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F4873276" />
<param name="allowscriptaccess" value="always" /> <embed src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F4873276" type="application/x-shockwave-flash" height="81" width="500"></embed>
</object>
<span><a href="http://soundcloud.com/rabidgravy/voodoo-slice">Voodoo Slice</a> by <a href="http://soundcloud.com/rabidgravy">Rabid Gravy</a></span></p>
<p>And this is the cover by the lovely <a href="http://twitter.com/#!/endomeso" title="Kev Gater">Kev Gater</a></p>
<p><div class='p_embed p_image_embed'>
<img alt="Voodooslicescover_500px" height="500" src="http://posterous.com/getfile/files.posterous.com/temp-2010-12-25/bkerpgzbaleqybbheDFusviAHmwvjuddklHwylziCquElAgCdaCEEGscCseG/VoodooSlicesCover_500px.jpg.scaled500.jpg" width="500" />
</div>
</p>
<p>Many thanks to the wonderful producers for the remixes and Kev for the great artwork.</p>
<p>Hope you enjoy it.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
	
</p>

<p><a href="http://blog.rabidgravy.com/voodoo-slice-remixes">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/voodoo-slice-remixes#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="500" width="500" url="http://getfile8.posterous.com/getfile/files.posterous.com/temp-2010-12-25/bkerpgzbaleqybbheDFusviAHmwvjuddklHwylziCquElAgCdaCEEGscCseG/VoodooSlicesCover_500px.jpg">
        <media:thumbnail height="500" width="500" url="http://getfile9.posterous.com/getfile/files.posterous.com/temp-2010-12-25/bkerpgzbaleqybbheDFusviAHmwvjuddklHwylziCquElAgCdaCEEGscCseG/VoodooSlicesCover_500px.jpg.scaled500.jpg" />
      </media:content>
    <feedburner:origLink>http://blog.rabidgravy.com/voodoo-slice-remixes</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 25 Aug 2010 11:40:01 -0700</pubDate>
      <title>MANTIS RADIO 067 + RABID GRAVY + STURQEN // DARKFLOOR // MANTIS RADIO // PODCAST // MIXES</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/IQwLNERHkZc/mantis-radio-067-rabid-gravy-sturqen-darkfloo</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/mantis-radio-067-rabid-gravy-sturqen-darkfloo</guid>
      <description>
        <![CDATA[<p>
	<div class="posterous_bookmarklet_entry">
      <object height="200" width="280"><param name="movie" value="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?v=20" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="flashVars" value="feed=http://www.mixcloud.com/api/1/cloudcast/darkfloor/mantis-radio-067-rabid-gravy-sturqen.json&amp;embed_uuid=7782a346-a86f-4a35-9d65-793e7a01780f&amp;embed_type=widget_standard" /><embed src="http://www.mixcloud.com/media/swf/player/mixcloudLoader.swf?v=20" allowfullscreen="true" type="application/x-shockwave-flash" allowscriptaccess="always" height="200" flashvars="feed=http://www.mixcloud.com/api/1/cloudcast/darkfloor/mantis-radio-067-rabid-gravy-sturqen.json&amp;embed_uuid=7782a346-a86f-4a35-9d65-793e7a01780f&amp;embed_type=widget_standard" width="280" /></object><div class="posterous_quote_citation">via <a href="http://darkfloor.co.uk/mantis-radio-067-rabid-gravy-sturqen/">darkfloor.co.uk</a></div>
    <p>This was a fantastic show on Sunday and it was a real pleasure to record a session for it.</p></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/mantis-radio-067-rabid-gravy-sturqen-darkfloo">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/mantis-radio-067-rabid-gravy-sturqen-darkfloo#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/mantis-radio-067-rabid-gravy-sturqen-darkfloo</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 18 Jul 2010 04:25:41 -0700</pubDate>
      <title>3:AM Magazine » Is the Atonal Hexed?</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/Zs30yD8gSNo/3am-magazine-is-the-atonal-hexed</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/3am-magazine-is-the-atonal-hexed</guid>
      <description>
        <![CDATA[<p>
	<div class="posterous_bookmarklet_entry">
      <blockquote><div>
				<p>By Joe Kennedy.</p>
<p><img src="http://www.3ammagazine.com/3am/wp-content/uploads/2010/07/david-stubbs-fear-of-music-193x300.jpg" height="300" alt="david stubbs" width="193" /></p>
<p>David Stubbs, <a href="http://www.bookdepository.co.uk/book/9781846941795/Fear-of-Music"><em>Fear of Music: Why People Get Rothk</em><em>o But Don’t Get Stockhausen</em></a>, Zer0 Books, 2009.</p>
<p>Not long ago, a friend of mine was telling me about an afternoon he spent watching the contemporary classical composer <a href="http://en.wikipedia.org/wiki/Pierre_Boulez">Pierre Boulez</a> conduct his own work. Despite his longstanding preference for the aesthetically challenging, he was disappointed by the performance. For some time, he struggled to explain precisely what he had found disquieting about it. Eventually, he looked up from his lunch and articulated the problem as best he could. ‘There was no…<em>window</em>,’ he said. ‘There just wasn’t a way of looking into it.’</p>
<p>That someone equipped with an advanced vocabulary for approaching the abrasive, anxiety-inducing complexities of modernist music should be able to express their frustration towards a concert only by falling back on a metaphor of obstructed sight is intriguingly consonant with the thesis of David Stubbs’s short book on the comparative fortunes of the sonic and the visual in terms of how experimental works have been received since the early twentieth century. According to Stubbs, modernist painting and sculpture have been embraced by the public to the extent that their initially traumatic force has been almost entirely absorbed. Modernist music, however, has remained marginal, resistant to convenient frameworks of ‘understanding’, and subject to popular derision. Although Picasso’s radical break from figurative painting, Les Demoiselles d’Avignon, occurred almost simultaneously with <a href="http://en.wikipedia.org/wiki/Arnold_Schoenberg">Schoenberg</a>’s tentative shifts away from traditional tonality, attitudes towards innovation in the visual and the musical have subsequently diverged so markedly that, as queues for a new exhibition at the Tate Modern snaked out of the building and along the South Bank, <a href="http://en.wikipedia.org/wiki/Karlheinz_Stockhausen">Karlheinz Stockhausen</a>’s death in 2007 was attended by a fusillade of media cynicism posing as good-natured satire. Quips comparing Stockhausen’s output to random clusters of unpleasant sound presented themselves as justifiably unimpressed retorts to elitism whilst furtively opening a linguistic ‘window’ into his unforgiving sound-worlds. With the handle of tonality wrenched off, it seems that, for many, mirth is the solitary space in which the experience of experimental music may be comfortably discussed.</p>
<p>Since the first instantiations of modernism, its detractors have dismissed it on the grounds that its variously non-figurative, dissonant, and paratactic ‘strategies’ do nothing more than lend spurious legitimacy to an apparently inexorable decline in craftsmanship. At best, the experimental is framed as a baffling diversion; at worst, it is pilloried as high-minded laziness buttressing itself with theoretical cant. Modernist music, where the relationship between theory and practice has been particularly intimate – <a href="http://en.wikipedia.org/wiki/Theodor_W._Adorno">Theodor Adorno</a>, notable for his celebration of Schoenberg, harboured serious aspirations towards becoming a composer – is perhaps uniquely vulnerable to this kind of attack. Early on in <em>Fear of Music</em>, Stubbs sympathetically announces his intention ‘to highlight the overwhelmingly rational and coherent reasons why a number of people have chose to make, and to listen to music which to uninitiated ears sounds cacophonous [and] atonal’. Of course, this raises questions about how one becomes ‘initiated’ and how far this process is related to the forming of a cultural elite, but the initial rejection of the belief that modernism is nothing more than the charlatanry of the contingent is gratifying in the context of a culture which seems increasingly to be shunning difficulty.</p>
<p>Two of the ways in which this apparently cacophonous music has been rationalised stand out in Stubbs’s account. Schoenberg’s decision that the work of his sometime mentor <a href="http://en.wikipedia.org/wiki/Gustav_Mahler">Gustav Mahler</a> could not be developed upon without making some kind of break from tonality is the first of these, and its inclusion in the narrative is significant in that it allows the reader to distinguish between the desire of the <a href="http://en.wikipedia.org/wiki/Second_Viennese_School">Second Viennese School</a> to replenish Western music via a fundamental break with tradition from the more nihilistically-inclined experiments with noise made by the Dadaists and Futurists. Already, we’re being shown how the history of noise and atonality cannot be understood as monolithic: while the Dadaists were known to play Schoenberg pieces at their gatherings, he saw them ‘as faddists and saw no crossover between his own work which only sought to “destroy” the great classical tradition in order to save it, and the anarchistic antics of the Zurich hell raisers.’ The second rationalisation is one with which many have become familiar through a trickling-down of Adorno’s 1938 claim that ‘every pleasure which emancipates itself from the exchange-value takes on subversive features’. Stubbs glosses this idea by noting that modernist music’s harshness made it ‘useless, in the most sublimely useful sense of that word.’ The Nazis could mobilise the eye-catching simplicity of modernist graphic art for their cause, but atonality possessed no populist application; likewise, it would take an implausible upheaval in the common understanding of what is considered ‘listenable’ for <a href="http://en.wikipedia.org/wiki/Iannis_Xenakis">Iannis Xenakis</a> to soundtrack a Renault advertisement.</p>
<p>For the most part, experimental music has required some form of dilution in order to meet with public approval. As <a href="http://www.guardian.co.uk/profile/paulmorley">Paul Morley</a> demonstrated in his strangely esoteric 2003 work <em>Words and Music</em>, Luigi Russolo’s <a href="http://www.unknown.nu/futurism/noises.html">Futurist noise machines</a> are genetic precursors of Kylie Minogue. However, Morley’s collapsing of twentieth century musical expression into a plane on which anything can be celebrated <em>in the same terms</em> is a move Stubbs avoids in favour of maintaining the alterity of the radically experimental. That there is a ‘fear of music’ is, on one level, encouraging, as it ensures a cultural space – effectively evacuated by visual art in the post-Warhol age of the Saatchi collection – in which exchange-value is meaningless. Stubbs doesn’t seek to completely extinguish the listener’s anxiety when confronted with the improvisations of <a href="http://en.wikipedia.org/wiki/AMM_%28group%29">AMM</a> or the intricate structures of <a href="http://en.wikipedia.org/wiki/Ornette_Coleman">Ornette Coleman</a> but to show how these experiments make sense within the cultural landscape of modernity: while this isn’t a demand for a reappraisal of Stockhausen in which his work is, <em>pace</em> the subtitle, suddenly ‘got’, <em>Fear of Music</em> serves as an effectve rebuttal of the idea that music in the modernist tradition is nothing but self-indulgent cacophony.</p>
<p><img src="http://www.3ammagazine.com/3am/wp-content/uploads/2009/11/joe.jpg" height="166" alt="joe" width="250" /></p>
<p><strong>ABOUT THE AUTHOR</strong><br />
<strong>Joe Kennedy</strong> is an academic and poet.</p>

				
				<p>
					<small>
						First published in 3:AM Magazine: Wednesday, July 14th, 2010. 
					</small>
				</p>

	

			</div></blockquote><div class="posterous_quote_citation">via <a href="http://www.3ammagazine.com/3am/is-the-atonal-hexed/">3ammagazine.com</a></div>
    <p>An interesting and tantalising review of what sounds an interesting book.
</p><p>From my limited knowledge of the subject I might suggest that for the most part it is only the atonal elements of modernist music that have resisted wider popularity, other developments such as serialism seem to have prospered, I guess which alludes to the different ways in which the human brain processes the rhythmic and structural elements of music as opposed to the tonal elements and by extension the ways in which these elements give rise to an emotional response to the music. I clearly need to study this more.
</p><p>It is also interesting to note that many elements of modernist music have firmly taken hold away from the academic and classical tradition, not entirely in the mainstream but from the Free Jazz of the sixties to modern electronic dance music forms, atonal and aharmonic sounds have been commonplace which would suggest that there is an appetite for these things just not so much in academic and classical oriented circles.</p></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/3am-magazine-is-the-atonal-hexed">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/3am-magazine-is-the-atonal-hexed#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/3am-magazine-is-the-atonal-hexed</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 28 Jun 2010 12:47:25 -0700</pubDate>
      <title>Alternative Airwaves: ASCAP vs Free Culture</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/AN3c7-XLH8c/alternative-airwaves-ascap-vs-free-culture</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/alternative-airwaves-ascap-vs-free-culture</guid>
      <description>
        <![CDATA[<p>
	<div class="posterous_bookmarklet_entry">
      <blockquote><div>
<a name="comments"></a>
<h4>
2
comments:
        
</h4>
<div>
<dl>
<dt>
<a name="c1078794933719300028"></a>
</dt></dl><div><span><a href="http://rabidgravy.com/" rel="nofollow"><img title="Jonathan Stowe" src="http://www.blogger.com/img/openid16-rounded.gif" height="16" alt="" width="16" /></a></span><p>

</p></div>
<a href="http://rabidgravy.com/" rel="nofollow">Jonathan Stowe</a>
said...

<dd>
<p>
Basically ASCAP have let the cat out of the bag by mistake here, they (and the BPI and the other guilty parties) have spent years, since "Home Taping Is Killing Music", trying to kid everyone that it was what they describe as "Copyright Theft" that was destroying the business, whereas in fact they have correctly identified (albeit by mistake) that new models of distribution based around freedom are actually what is killing them. According to some recent statistics (which I can't source right now but I think it was in either The Times or The Guardian,) people are actually spending *MORE* money on music now, it's just they are spending it on going to see live shows and quality merchandise and not on the recorded product. More money is going to the artists. This is a good thing.</p><p>The music publishing companies that are making the most noise about the rise of freely available music have business models that are largely unchanged since the days when sheet music and player piano rolls were in the ascendant: when they largely controlled the means of production of the "distributed media" and the distribution channels, an artist, a composer had little choice but to sign away most of the rights to their material if they wanted it to see the light of day.</p><p>Nowadays, a talented and savvy individual with access to a computer and the internet can equal the quality and breadth of distribution that might come from one of the music industry  mega-corporations and they can do it without giving up their rights to decide how the product is used or distributed. Of course ASCAP, SOCAN and the BPI are frothing madly like any good capitalist institution with the shareholders of their members to be worried about foremost, certainly before they artists they claim to represent and their customers.</p><p>In the end of the day it should be everyone's own choice under what terms the publish their creative work.  I certainly don't advocate re-distributing work for free that wasn't published for free any more than I would suggest someone should walk into a record shop and help themselves to a bunch of CDs and walk out. On the flip side the music industry should stop trying to portray me, and people like me who choose to give away our music for free as extremists or, by association with "illegal music piracy", as criminals.</p><p>Sorry for the long comment, I was going to reply on my own blog, but posterous couldn't quote the original text for some reason.
<span></span>
</p>
</dd>
<dd>
<span>
<a href="http://alternativeairwaves.blogspot.com/2010/06/ascap-vs-free-culture.html?showComment=1277752347233#c1078794933719300028" title="comment permalink">
June 28, 2010 3:12 PM
</a>
<span>
<a href="http://www.blogger.com/delete-comment.g?blogID=7252940023337635212&amp;postID=1078794933719300028" title="Delete Comment">
<img src="http://alternativeairwaves.blogspot.com//www.blogger.com/img/icon_delete13.gif" height="13" width="13" /></a></span></span><p>



</p></dd>
<dt>
<a name="c6804287135807006343"></a>
</dt><div><span><a href="http://www.blogger.com/profile/04880311368518953778" rel="nofollow"><img title="Steve Gower" src="http://4.bp.blogspot.com/_0TXmxJU9GDQ/Sh1UQ6pZRMI/AAAAAAAAAvA/PE-MyMXbm3U/S45/picture_small.jpg" height="35" alt="" width="35" style="" /></a></span><p>

<img src="http://4.bp.blogspot.com/_0TXmxJU9GDQ/Sh1UQ6pZRMI/AAAAAAAAAvA/PE-MyMXbm3U/S45/picture_small.jpg" height="35" alt="" width="35" /></p><p></p></div>
<a href="http://www.blogger.com/profile/04880311368518953778" rel="nofollow">Steve Gower</a>
said...

<dd>
<p>
Thanks for the comment - you bring up good points, so it is appreciated regardless of length :)</p><p>But yeah, I agree that free culture != giving your work away for free.  But I think that's part of the problem, a lot of people will probably buy into that description as portrayed by the music industry and those trying to protect their income streams.  They have more weapons at their disposal to get that belief out there.
<span></span>
</p>
</dd>
<dd>
<span>
<a href="http://alternativeairwaves.blogspot.com/2010/06/ascap-vs-free-culture.html?showComment=1277752827442#c6804287135807006343" title="comment permalink">
June 28, 2010 3:20 PM
</a>
<span>
<a href="http://www.blogger.com/delete-comment.g?blogID=7252940023337635212&amp;postID=6804287135807006343" title="Delete Comment">
<img src="http://alternativeairwaves.blogspot.com//www.blogger.com/img/icon_delete13.gif" height="13" width="13" /></a></span></span><p>



</p></dd>

</div>
<p>
</p><div>
<a name="comment-form"></a>
<h4>Post a Comment</h4>
<p>
</p>
<a href="http://www.blogger.com/comment-iframe.g?blogID=7252940023337635212&amp;postID=2035354850738606702&amp;blogspotRpcToken=6851720"></a>

</div>

<div>
<div><a name="links"></a><h4>Links to this post</h4>
<p>
<a href="http://www.blogger.com/blog-this.g" target="_blank">Create a Link</a>
</p>
</div>
</div>
</div></blockquote><div class="posterous_quote_citation">via <a href="http://alternativeairwaves.blogspot.com/2010/06/ascap-vs-free-culture.html">alternativeairwaves.blogspot.com</a></div>
    <p>I was going to make the comment here, but posterous wasn't picking up the original article, read that first then my comment :-)</p></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/alternative-airwaves-ascap-vs-free-culture">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/alternative-airwaves-ascap-vs-free-culture#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/alternative-airwaves-ascap-vs-free-culture</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 24 Jun 2010 10:38:00 -0700</pubDate>
      <title>When SPAM GOES BAD!</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/ecWhlmEK4YA/when-spam-goes-bad</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/when-spam-goes-bad</guid>
      <description>
        <![CDATA[<p>
	<p>I can't work out whether these idiots have either just spewed verbatim part of their templating code or have simply and naively chosen the wrong text randomly from the net in a vain attempt at defeating content based spam filters, in which case why didn't they just use Wikipedia - after all that is what it's for right?</p>
<p> </p>
<p>Anyway, nice one spammers. I knew you were scum before but now I know you're stupid scum too ...</p>
<p> </p>
<p style="padding-left: 30px;">Return-Path: &lt;<a href="mailto:info@irate.blue-ruinous.com.net">info@irate.blue-ruinous.com.net</a>&gt;<br />X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on coriolanus<br />X-Spam-Level: ***<br />X-Spam-Status: No, score=3.4 required=5.0<br /> tests=BAYES_50,DNS_FROM_OPENWHOIS,<br /> HTML_MESSAGE,HTML_MIME_NO_HTML_TAG,MIME_HTML_ONLY,MIME_HTML_ONLY_MULTI,<br /> MPART_ALT_DIFF autolearn=no version=3.2.5</p>
<p style="padding-left: 30px;">....</p>
<p style="padding-left: 30px;"><br />X-DomainKeys: Sendmail DomainKeys Filter v1.0.2 mail.bensalembedroom.com<br /> E1D58ED9EEA<br />X-DKIM: Sendmail DKIM Filter v2.8.2 mail.bensalembedroom.com E1D58ED9EEA<br />MIME-Version: 1.0<br />Precedence: bulk<br />From: Important-Wire-Notification&lt;<a href="mailto:info@irate.Blue-Ruinous.com">info@irate.Blue-Ruinous.com</a>&gt;<br />To: <a href="mailto:me@mail.bensalembedroom.com">me@mail.bensalembedroom.com</a><br />Subject: 1500Usd Wired to Your Bank_Account in 2Mins - 93% Apps_Approved<br />List-Unsubscribe: &lt;mailto:<a href="mailto:care@mail.bensalembedroom.com">care@mail.bensalembedroom.com</a>&gt;<br />Reply-to: &lt;<a href="mailto:info@irate.Blue-Ruinous.com">info@irate.Blue-Ruinous.com</a>&gt;<br />Z-PID: 184197610|gm|216.66.240.36|2010-06-24|5754|alm02<br />Content-Type: multipart/alternative;boundary=np4c236147e12fb<br />Message-Id: &lt;<a href="mailto:20100624134439.E1D58ED9EEA@mail.bensalembedroom.com">20100624134439.E1D58ED9EEA@mail.bensalembedroom.com</a>&gt;<br />Date: Thu, 24 Jun 2010 08:44:39 -0500 (CDT)<p />This is a MIME encoded message.<p />--np4c236147e12fb<br />Content-type: text/html;Content-Disposition: inline<p /><br />&lt;div style="color:#FFFFFF; font-size:0.001px; line-height:0.001%"&gt; Complete the final_step by filling out this 2.Minute form. No Faxing_required!<br />   =&gt; "right_arrow png",<p />    eval   $out = $lh-&gt;SUPER::maketext(@stuff) };<p />While you can use arbitrary unique IDs for lexicon keys (like "_min_larger_max_error"), it is often useful for if an entry's key is itself a valid value, like this example error message:<p /><p />            $lh = $class-&gt;get_handle($chosen_language)<br />        $lh = YourProjClass-&gt;get_handle(<p />  use ThisProject::I18N;<br />      $lh-&gt;init();<br />        $lh = Projname::L10N-&gt;get_handle(  ) || die "Language?";<br />  "I ate [quant,_1,rhubarb pie[ "<br />    return join '',<br />       <br />LANGUAGE CLASS HIERARCHIES<p /> <p /><br />       <p /><br />and then I can use it as:<br />An object belonging to a language class is called a "language handle"; it's typically a flyweight object <br />    * An item "_*" is interpreted to mean "all of @_ except $_[0]"  I e , @_[1 $#_]  Note that this is an empty list in the case of calls like $lh-&gt;maketext(key) where there are no parameters (except $_[0], the language handle) <p />   # that we load class ThisProject::I18N::en<br />   <br />  }  <br />       <br />      If you get tired of constantly saying print $lh-&gt;maketext, consider making a functional wrapper for it, like so:<p /><br />One possibly useful value for the "fail" attribute is the method name "failure_handler_auto"  This is a method defined in class Locale::Maketext itself  You set it with:<p /><br />  "Minimum ([_1]) is larger than maximum ([_2])!\n",<br />      YourProjClass-&gt;fallback_languages()<p />  }  <br /> <br />  $lh-&gt;fail_with( undef );<br />            $lh = $class-&gt;get_handle()<br />The "fail" attribute can be accessed with the fail_with method:<br />  else            $pod_bay_door-&gt;leave_closed() }  <br />(This is meant to be somewhat like the AUTOLOAD mechanism in Perl's function call system -- or, looked at another way, like the AutoLoader module )<br />      $lh-&gt;foo(" _1 ", " bar ", "baz"),  #!!!<br />The group as a whole is interpreted as follows:<p />         "[quant,_1,document was, documents were] matched \n"  <p />  =&gt; "Couldn't find file \"[_1]\"!\n",  <br />While the key must be a string value (since that's a basic restriction that Perl places on hash keys), the value in the lexicon can currenly be of several types: a defined scalar, scalarref, or coderef  The use of these is explained above, in the section 'The "maketext" Method', and Bracket Notation for strings is discussed in the next section <p />    my($failing_lh, $key, $params) = @_;<br />In order to make sense of Maketext and how all its components fit together, you should probably go read Locale::Maketext::TPJ13, and then read the following documentation <br />      ") is larger than maximum (",<p /><br />    This is generally meant to be called from inside Bracket Notation (which is discussed later), as in<p /> <p /><p />  which you'd then call in a construct like this:<p /><br />      You may also wish to discuss with the translators the question of how to relate different subforms of the same language tag, considering how this reacts with get_handle's treatment of these  For example, if a user accepts interfaces in "en, fr", and you have interfaces available in "en-US" and "fr", what should they get? You may wish to resolve this by establishing that "en" and "en-US" are effectively synonymous, by having one class zero-derive from the other <br /> <br />      <p /><br />  to this code that uses a key-as-value:<br />These are to do with constructing a language handle:<br />  }  <br />In the notation discussed so far, the characters "[" and "]" are given special meaning, for opening and closing bracket groups, and "," has a special meaning inside bracket groups, where it separates items in the group  This begs the question of how you'd express a literal "[" or "]" in a Bracket Notation string, and how you'd express a literal comma inside a bracket group  For this purpose I've adopted "~" (tilde) as an escape character: "~[" means a literal '[' character anywhere in Bracket Notation (i e , regardless of whether you're in a bracket group or not), and ditto for "~]" meaning a literal ']', and "~," meaning a literal comma  (Altho "," means a literal comma outside of bracket groups -- it's only inside bracket groups that commas are special )<br />        print "Foobar $thing stuff\n";  <p /><p /><br />The effect of using "failure_auto_handler" is like an AUTO lexicon, except that it 1) compiles $key even if it starts with "_", and 2) you have a record in the new hashref $lh-&gt; 'failure_lex'} of all the keys that have failed for this object  This should avoid your program dying -- as long as your keys aren't actually invalid as bracket code, and as long as they don't try calling methods that don't exist <p />      Remind the translators to consider the case where N is 0: "0 files found" isn't exactly natural-sounding in any language, but it may be unacceptable in many -- or it may condition special kinds of agreement (similar to English "I didN'T find ANY files") <br /> <p />These are covered in the following section <br /> <br />    );<br />I can picture all sorts of circumstances where you just do not want lookup to be able to fail (since failing normally means that maketext throws a die, altho see the next section for greater control over that)  But here's one circumstance where _AUTO lexicons are meant to be especially useful:<br />       ref($failing_lh), "\t", $key, "\n";<br />      get_handle appends the return value of this to the end of the list of classes it will try using  Unless you override this method, your project class will inherit Locale::Maketext's fallback_language_classes, which currently returns an empty list, ()  By setting this to some value (namely, the name of a loadable language class), you can be sure that get_handle will always manage to construct a language handle <br />            # Config file missing, maybe?<p /><p />    =&gt; "/styles/en_us/",<p />      "Couldn't find file \"[_1]\"!\n", $filename<br />    $lh-&gt;SUPER::init();<br />      return Chineeze::taiwan2mainland($value);<p /><br />    Because if _1 is one, you get "1 document were matched"  An acceptable hack here is to do something like this:<br />    *<br />    return $out unless $@;<p /><p />        );  <br />     <p />         "Couldn't access datanode [sprintf,%10x=~[%s~],_1,_2]!\n"  <p />    * Once the program is otherwise done, and once its localization for the first language works right (via the data and methods in Projname::L10N::en_us), you can get together the data for translation  If your first language lexicon isn't an _AUTO lexicon, then you already have all the messages explicitly in the lexicon (or else you'd be getting exceptions thrown when you call $lh-&gt;maketext to get messages that aren't in there)  But if you were (advisedly) lazy and are using an _AUTO lexicon, then you've got to make a list of all the phrases that you've so far been letting _AUTO generate for you  There are very many ways to assemble such a list  The most straightforward is to simply grep the source for every occurrence of "maketext" (or calls to wrappers around it, like the above pmt function), and to log the following phrase <br />  $lh-&gt;fail_with('failure_handler_auto');  <p />      $lh = YourProjClass-&gt;get_handle() || die "lg-handle?";<p /><p />      Create a class for the language your internal keys are in  Name the class after the language-tag for that language, in lowercase, with dashes changed to underscores  Assuming your project's first language is US English, you should call this Projname::L10N::en_us  It should consist minimally of:<br />       <br />      $lh-&gt;foo( $_[1], "bar", "baz"),<br /> <p /><p />Currently, bracket groups do not nest  That is, you cannot say:<p /><p /><br />  # Make all lookups fall back onto an English value,<br />    long long message  <p />      <br />      "Hoohah ",<p />Also, calling &amp;$coderef($lh,   parameters  ) can throw any sort of exception (if, say, code in that sub tries to divide by zero)  But a very common exception occurs when you have Bracket Notation text that says to call a method "foo", but there is no such method  (E g , "You have [quatn,_1,ball] " will throw an exception on trying to call $lh-&gt;quatn($_[1],'ball') -- you presumably meant "quant" ) maketext catches these exceptions, but only to make the error message more readable, at which point it rethrows the exception <br />    my $lh = $_[0];<br />In other words, text outside bracket groups is turned into string<p />        some code here  <p />CONTROLLING LOOKUP FAILURE<br /> "Minimum ([_1]) is larger than maximum ([_2])!\n",<br />      will try loading the classes YourProjClass::en_us (note lowercase!), YourProjClass::fr, YourProjClass::kon, YourProjClass::i_klingon and YourProjClass::i_klingon_romanized  (And it'll stop at the first one that actually loads )<br />Construction Methods<br />          'en-US', 'fr', 'kon', 'i-klingon', 'i-klingon-romanized'<p />      Assuming your call your class Projname::L10N, create a class consisting minimally of:<br /> <p />             || die "Can't get a language handle";<br />Or you may want to override it with something that traps any exceptions, if that's critical to your program:<br />        use base qw(Projname::L10N);<p />    return join '',<p />    * I assume that each language class derives (directly or indirectly) from your project class, and also defines its @ISA, its %Lexicon, or both  But I anticipate no dire consequences if these assumptions do not hold <br />      If the first item in a bracket group is empty-string, or "_*" or "_digits" or "_-digits", then that group is interpreted as just the interpolation of all its items:<p />  "_main_splash_imagemap"<br />these rules:  <br />  =&gt; "Couldn't find file \"[_1]\"!\n",  <br />          if($preferred_language)  <p /><br />  die $lh-&gt;maketext( "_min_larger_max_error", $min, $max )<br />$lh-&gt;fail_with or $lh-&gt;fail_with(PARAM)<br />Or write the "bar" method so you don't need to pass it the output from calling quux <br />A language class is a class containing a lexicon of phrases as class data, and possibly also some methods that are of use in interpreting phrases in the lexicon, or otherwise dealing with text in that language <br />            return $negative;<br />         #   except that we actually call numf to<br />   if $min &gt; $max;  <p />ENTRIES IN EACH LEXICON<br />But it actually compiles as this:<p /><br />        }  <br />  $lh-&gt;fail_with( 'failure_method' );<br />  sub init  <br />  =&gt; "Le minimum ([_1]) est plus grand que le maximum ([_2])!\n",  <br />  <p />  <p /><br />A language handle is a flyweight object -- i e , it doesn't (necessarily) carry any data of interest, other than just being a member of whatever class it belongs to <br />  getopt('oDI', \%opts) or die $lh-&gt;maketext('_USAGE_MESSAGE');  <p />$language-&gt;quant($number, $singular, $plural, $negative)<p /><br />    },<p /><br />            return "1 $singular";<br />    returning  <br />            return "$number $plural";<br />HOW TO USE MAKETEXT<br />  "Hoohah [foo, _1 , bar ,baz]!"  <br />    * I foresee no problems with having multiple inheritance in your hierarchy of language classes  (As usual, however, Perl will complain bitterly if you have a cycle in the hierarchy: i e , if any class is its own ancestor )<br />        $lh-&gt;that_method_name(<br /> <p />      Remember to ask your translators about numeral formatting in their language, so that you can override the numf method as appropriate  Typical variables in number formatting are: what to use as a decimal point (comma? period?); what to use as a thousands separator (space? nonbreakinng space? comma? period? small middot? prime? apostrophe?); and even whether the so-called "thousands separator" is actually for every third digit -- I've heard reports of two hundred thousand being expressable as "2,00,000" for some Indian (Subcontinental) languages, besides the less surprising "200 000", "200 000", "200,000", and "200'000"  Also, using a set of numeral glyphs other than the usual ASCII "0"-"9" might be appreciated, as via tr/0-9/\x 0966}-\x 096F}/ for getting digits in Devanagari script (for Hindi, Konkani, others) <p /><br />If the language handle has no "fail" attribute, maketext will simply throw an exception (i e , it calls die, mentioning the key whose lookup failed, and naming the line number where the calling $lh-&gt;maketext(key,  ) was <p />          my $class = $_[0];<br />  "Minimum ([_1]) is larger than maximum ([_2])!\n",  <br />       <p />QUICK OVERVIEW<br />    But for "directory", you'd want "[quant,_1,direcory,directories]" so that our elementary quant method doesn't think that the plural of "directory" is "directorys"  And you might find that the output may sound better if you specify a negative form, as in:<p /><br />$language-&gt;sprintf($format, @items)<br />  print $lh-&gt;maketext("You won!"), "\n";  <p /><br />    * Decide what system you'll use for lexicon keys  If you insist, you can use opaque IDs (if you're nostalgic for catgets), but I have better suggestions in the section "Entries in Each Lexicon", above  Assuming you opt for meaningful keys that double as values (like "Minimum ([_1]) is larger than maximum ([_2])!\n"), you'll have to settle on what language those should be in  For the sake of argument, I'll call this English, specifically American English, "en-US" <br />          my $lh;<p /> <p />  }  <p />  # In some other languages, left equals<p />   =&gt; "left_arrow png",<p />      instead do it thru maketext, using no variable interpolation in the key:<p />These are methods that you may find it handy to use, generally from %Lexicon routines of yours (whether expressed as Bracket Notation or not) <br /> <br />    return undef;<br />     <p />    return 0 if $answer eq 'n' or $answer eq 'non';<br />  sub  <br />      join '',<p />       <br />From then on, you use the maketext function to access entries in whatever lexicon(s) belong to the language handle you got  So, this:<br />        # And, assuming you want the base class to be an _AUTO lexicon,<br />    package YrProj::zh_cn; # Chinese with PRC-style glyphs<p /><br />  }  <br />          my $preferred_language = $Config_settings 'language'};<br />            rest of items in this group  <br />      get_handle appends the return value of this to the end of whatever list of languages you pass get_handle  Unless you override this method, your project class will inherit Locale::Maketext's fallback_languages, which currently returns ('i-default', 'en', 'en-US')  ("i-default" is defined in RFC 2277) <br />would compile to this:<p />  sub maketext  <br />  %Lexicon = (<br />        # as is discussed a few sections up:<br />    If you want anything fancier, consider overriding this with something that uses Number::Format, or does something else entirely <br />    return undef unless defined $_[1] and length $_[1];<br />    Currently this isn't used for anything, but it's provided (with default value of (ref($language) &amp;&amp; $language-&gt; 'encoding'})) or "iso-8859-1" ) as a sort of suggestion that it may be useful/necessary to associate encodings with your language handles (whether on a per-class or even per-handle basis )<br />    * Otherwise, each item is interpreted as a string literal <br />     <br />  $lh = TkBocciBall::Localize-&gt;get_handle();<p />      "!",<br />      my $value = $self-&gt;maketext(@_);<br />METHODS<br /> <p />Brackets must be balanced -- every openbracket must have one matching closebracket, and vice versa  So these are all invalid:<p />As you're writing an application, you decide as you go what messages you need to emit  Normally you'd go to write this:<p /><p />  if(-e $filename)  <p /> <br />      It runs thru the entire given list of language-tags, and finds no classes for those exact terms, it then tries "superordinate" language classes  So if no "en-US" class (i e , YourProjClass::en_us) was found, nor classes for anything else in that list, we then try its superordinate, "en" (i e , YourProjClass::en), and so on thru the other language-tags in the given list: "es"  (The other language-tags in our example list: happen to have no superordinates )<p /><p />      Language classes are what YourProjClass-&gt;get_handle will try to load  It will look for them by taking each language-tag (skipping it if it doesn't look like a language-tag or locale-tag!), turning it to all lowercase, turning and dashes to underscores, and appending it to YourProjClass   "::"  So this:<br />These are Locale::Maketext's assumptions about the class hierarchy formed by all your language classes:<br />      <br />    *<br /> <p /> "Minimum ([_1]) is larger than maximum ([_2])!\n",<br />      YourProjClass-&gt;fallback_language_classes()<br />A language handle is implemented as a blessed hash  Subclasses of yours can store whatever data you want in the hash  Currently the only hash entry used by any crucial Maketext method is "fail", so feel free to use anything else as you like <p /><br />    <p />  $lh-&gt;fail_with( \&amp;failure_handler );<p /><p /><br />        join('',<br />    It's for quantifying a noun (i e , saying how much of it there is, while giving the currect form of it)  The behavior of this method is handy for English and a few other Western European languages, and you should override it for languages where it's not suitable  You can feel free to read the source, but the current implementation is basically as this pseudocode describes:<br />      If you're using localization in an application that keeps a configuration file, you might consider something like this in your project class:<p /><br />        print $lh-&gt;maketext("Foobar [_1] stuff\n", $thing);  <p />  sub my_clever_failure_handler  <br />         elsif $number is 1,<br />  sub  <p /><br />      my $self = shift(@_);<br />    * maketext and other methods to do with accessing %Lexicon data for a given language handle <br />  # to be called by $lh-&gt;maketext(KEY, params  )<br />        sub pmt (@)   print( $lh-&gt;maketext(@_)) }<p />    *<p />    * Once you've localized your program/site/etc  for all desired languages, be sure to show the result (whether live, or via screenshots) to the translators  Once they approve, make every effort to have it then checked by at least one other speaker of that language  This holds true even when (or especially when) the translation is done by one of your own programmers  Some kinds of systems may be harder to find testers for than others, depending on the amount of domain-specific jargon and concepts involved -- it's easier to find people who can tell you whether they approve of your translation for "delete this message" in an email-via-Web interface, than to find people who can give you an informed opinion on your translation for "attribute value" in an XML query tool's interface <p /><br /> <br /> <br />      This constructs a language handle  You usually don't call this directly, but instead let get_handle find a language class to use and to then call -&gt;new on <br />The "maketext" Method<br /> <br />        use Projname::L10N;<p />BRACKET NOTATION<p /> <br />      $lh = YourProjClass::langname-&gt;new();<br />  }<p />Otherwise, the "fail" attribute's value should be a string denoting a method name, so that $lh-&gt;maketext(key,  params  ) can give up with:<p />    *<br />      Examples: "[_1]" and "[,_1]", which are synonymous; and "[,ID-(,_4,-,_2,)]", which compiles as join "", "ID-(", $_[4], "-", $_[2], ")" <br /> "_min_larger_max_error"<br />      <br />    go_process_file($filename)<br />     <br />to ThisProject/I18N/en pm, because if _AUTO is true there, then just looking for an entry with the key "Couldn't find file \"[_1]\"!\n" in that lexicon will cause it to be added, with that value!<br />    This returns the given number formatted nicely according to this language's conventions  Maketext's default method is mostly to just take the normal string form of the number (applying sprintf "%G" for only very large numbers), and then to add commas as necessary  (Except that we apply tr/, / ,/ if $language-&gt; 'numf_comma'} is true; that's a bit of a hack that's useful for languages that express two million as "2 000 000" and not as "2,000,000") <br />$language-&gt;encoding()<br />Now, as to what you may want to do with these handlers: Maybe you'd want to log what key failed for what class, and then die  Maybe you don't like die and instead you want to send the error message to STDOUT (or wherever) and then merely exit() <p /><br />If the language handle has a "fail" attribute whose value is a coderef, then $lh-&gt;maketext(key,  params  ) gives up and calls:<br />       <p />    return 1 if $answer eq 'o' or $answer eq 'oui';<br />  =&gt; "",   # fill in something here, Jacques!  <p />    *<br />        sub get_handle_via_config  <br />        1;  <br />      Otherwise (i e , if not a CGI), this tries various OS-specific ways to get the language-tags for the current locale/language, and then pretends that those were the value(s) passed to cet_handle <p />    *<br />     <br />         #  stringify $number before returning it   <br />    sub maketext  <br />          any methods you might want all your languages to share  <br />      When get_handle is called with an empty parameter list, magic happens:<br />The normal course of action is to call:<br />  } else  <br />    my $lh = $_[0];  # a newborn handle<p />  "I ate [quant,_1,rhubarb pie "<br />  my $response;<p />  "_forward_icon"<p />Here is a brief checklist on how to use Maketext to localize applications:<br />         Couldn't access datanode      Stuff=[thangamabob]!  <p /><p />    * You may at this point want to consider whether the your base class (Projname::L10N) that all lexicons inherit from (Projname::L10N::en, Projname::L10N::es, etc ) should be an _AUTO lexicon  It may be true that in theory, all needed messages will be in each language class; but in the presumably unlikely or "impossible" case of lookup failure, you should consider whether your program should throw an exception, emit text in English (or whatever your project's first language is), or some more complex solution as described in the section "Controlling Lookup Failure", above <br />         else<br /> <p />    *<p />You might want to do the same thing for expressing key bindings or the like (since hardwiring "q" as the binding for the function that quits a screen/menu/program is useful only if your language happens to associate "q" with "quit"!)<p /><br />If you need a notation that's that powerful, use normal Perl:<br />        use Projname::L10N;<br />  "_backward_icon"<br />   # make a language handle from among the classes available,<p />Note, incidentally, that items in each group are comma-separated, not /\s*,\s*/-separated  That is, you might expect that this bracket group:<p />  die "Couldn't make a language handle??" unless $lh;  <p />    * An item that is "_digits" or "_-digits" is interpreted as $_[value]  I e , "_1" is becomes with $_[1], and "_-3" is interpreted as $_[-3] (in which case @_ should have at least three elements in it)  Note that $_[0] is the language handle, and is typically not named directly <br /> <p />"failure_auto_handler" may not be exactly what you want, but I hope it at least shows you that maketext failure can be mitigated in any number of very flexible ways  If you can formalize exactly what you want, you should be able to express that as a failure handler  You can even make it default for every object of a given class, by setting it in that class's init:<br /> <p />       <p /><br />You may also want to read over the source for File::Findgrep and its constituent modules -- they are a complete (if small) example application that uses Maketext <br /> <br />Utility Methods<br />  if($response)   $pod_bay_door-&gt;open()         }<p /><p />  "_general_graphics_path"<br />         "Your search matched [quant,_1,document]!"  <br />  "I ate quant,_1,rhubarb pie] "<br />      you clever things here  <p />Note that the reason that keys that start with "_" are immune to _AUTO isn't anything generally magical about the underscore character -- I just wanted a way to have most lexicon keys be autoable, except for possibly a few, and I arbitrarily decided to use a leading underscore as a signal to distinguish those few <br />  ) if $min &gt; $max;  <br />      If none of those language-tags leads to loadable classes, we then try classes derived from YourProjClass-&gt;fallback_languages() and then if nothing comes of that, we use classes named by YourProjClass-&gt;fallback_language_classes()  Then in the (probably quite unlikely) event that that fails, we just return undef <p />    my $lh = $_[0];<p />  return &amp; $that_subref}($lh, $key, @params);  <br />    *<br />Bracket Notation is a crucial feature of Locale::Maketext  I mean Bracket Notation to provide a replacement for sprintf formatting  Everything you do with Bracket Notation could be done with a sub block, but bracket notation is meant to be much more concise <br />       <p /><br />    my $out;<br />  }  <br /> <br />  =&gt; "",   # fill in something here, Jacques  <p />        $Carp::Verbose = 1;<br />  }  <br />          } else  <br />             || die "No language handle for \"$chosen_language\" or the like";<br />   # and that's the class that $lh belongs to <br />Other than those two situations, I don't imagine that it's useful to override the maketext method  (If you run into a situation where it is useful, I'd be interested in hearing about it )<p />  my $lh = ThisProject::I18N-&gt;get_handle();<br />         # so if maketext fails, we see made the call to pmt  <br />But failure_handler_auto, instead of dying or anything, compiles $key, caching it in $lh-&gt; 'failure_lex'} $key} = $complied, and then calls the compiled value, and returns that  (I e , if $key looks like bracket notation, $compiled is a sub, and we return &amp; $compiled}(@params); but if $key is just a plain string, we just return that )<br />  die $lh-&gt;maketext(<p />    * Language classes may derive from other language classes (altho they should have "use Thatclassname" or "use base qw(  classes  )")  They may derive from the project class  They may derive from some other class altogether  Or via multiple inheritance, it may derive from any mixture of these <br />  "Couldn't find file \"[_1]\"!\n"<p />      In all cases where the very common phenomenon of quantification (saying "N files", for any value of N) is involved, each translator should make clear what dependencies the number causes in the sentence  In many cases, dependency is limited to words adjacent to the number, in places where you might expect them ("I found the-?PLURAL N empty-?PLURAL directory-?PLURAL"), but in some cases there are unexpected dependencies ("I found-?PLURAL   "!) as well as long-distance dependencies "The N directory-?PLURAL could not be deleted-?PLURAL"!) <br />    my $lh = $_[0];<br /> <br />       <p />   ^^^^^^^^^ XX ^^^^^^^^^^^^^^^^^^^^^^^^^^ XX ^^^^  <br />But I consider that somewhat of a distraction from the work of getting the main code working -- to say nothing of the fact that I often have to play with the program a few times before I can decide exactly what wording I want in the messages (which in this case would require me to go changing three lines of code: the call to maketext with that key, and then the two lines in ThisProject/I18N/en pm) <br />    my $answer = lc $_[1];  # smash case<p />  } else  <br />     <br />rather than this more cryptic mess:<br />      (You may, in fact, want to start with localizing to one other language at first, if you're not sure that you've property abstracted the language-dependent parts of your code )<p />         "[quant,_1,file,files,No files] matched your query \n"  <p />I almost always use keys that are themselves valid lexicon values  One notable exception is when the value is quite long  For example, to get the screenful of data that a command-line program might returns when given an unknown switch, I often just use a key "_USAGE_MESSAGE"  At that point I then go and immediately to define that lexicon entry in the ProjectClass::L10N::en lexicon (since English is always my "project lanuage"):<br />Other data worth storing in a lexicon might be things like filenames for language-targetted resources:<br />  "Couldn't find file \"[_1]\"!\n"<p />      $lh = YourProjClass-&gt;get_handle(   langtags   ) || die "lg-handle?";<p />When that string is compiled from bracket notation into a real Perl sub, it's basically turned into:<p />It is a common feature of applications (whether run directly, or via the Web) for them to be "localized" -- i e , for them to a present an English interface to an English-speaker, a German interface to a German-speaker, and so on for all languages it's programmed with  Locale::Maketext is a framework for software localization; it provides you with the tools for organizing and accessing the bits of text and text-processing code that you need for producing localized applications <br />        my $lh = Projname::L10N-&gt;get_handle(  ) || die "Language?";  <p /><br />    $lh-&gt;fail_with('my_clever_failure_handler');<p /><br />      The basic quant method that Locale::Maketext provides should be good for many languages  For some languages, it might be useful to modify it (or its constituent numerate method) to take a plural form in the two-argument call to quant (as in "[quant,_1,files]") if it's all-around easier to infer the singular form from the plural, than to infer the plural form from the singular <p />        );<p />  }  <br />  return $lh-&gt;$that_method_name($phrase, @params);  <br />        <br />$language-&gt;quant($number, $singular, $plural)<p />  );  <br />    * You must have a project base class, which you load, and which you then use as the first argument in the call to YourProjClass-&gt;get_handle(  )  It should derive (whether directly or indirectly) from Locale::Maketext  It doesn't matter how you name this class, altho assuming this is the localization component of your Super Mega Program, good names for your project class might be SuperMegaProgram::Localization, SuperMegaProgram::L10N, SuperMegaProgram::I18N, SuperMegaProgram::International, or even SuperMegaProgram::Languages or SuperMegaProgram::Messages <br />If the value is a scalarref, the scalar is dereferenced and returned (and any parameters are ignored)  If the value is a coderef, we return &amp;$value($lh,   parameters  )  If the value is a string that doesn't look like it's in Bracket Notation, we return it (after replacing it with a scalarref, in its %Lexicon)  If the value does look like it's in Bracket Notation, then we compile it into a sub, replace the string in the %Lexicon with the new coderef, and then we return &amp;$new_sub($lh,   parameters  ) <p />      Submit all messages/phrases/etc  to translators <br />Or instead of storing this in the language class's lexicon, you can (and, in some cases, really should) represent the same bit of knowledge as code is a method in the language class  (That leaves a tidy distinction between the lexicon as the things we know how to say, and the rest of the things in the lexicon class as things that we know how to do ) Consider this example of a processor for responses to French "oui/non" questions:<br />            return "$number "   $singular   "s";<br />      "!",<br />    print LEX_FAIL_LOG scalar(localtime), "\t",<br />        <br />         # "pmt" is short for "Print MakeText"<br />      otherwise deal with the exception  <br />Bracket Notation is a like a miniature "template" system (in the sense of Text::Template, not in the sense of C++ templates), where normal text is passed thru basically as is, but text is special regions is specially interpreted  In Bracket Notation, you use brackets ("[  ]" -- not "   }"!) to note sections that are specially interpreted <br />        1;  <p />          return $lh;<br />    use base ('YrProj::zh_tw');  # Taiwan-style<br />    *<br />  }<br />    * Otherwise this bracket group is invalid  For example, in the group "[!@#,whatever]", the first item "!@#" is neither empty-string, "_number", "_-number", "_*", nor a valid method name; and so Locale::Maketext will throw an exception of you try compiling an expression containing this bracket group <br />$language-&gt;numf($number)<br />    *<p /><br />      Otherwise, each group is taken to be a comma-separated group of items, and each item is interpreted as follows:<br />    * If the first item in a bracket group is "*", it's taken as shorthand for the so commonly called "quant" method  Similarly, if the first item in a bracket group is "#", it's taken to be shorthand for "numf" <p />    These two methods are discussed in the section "Controlling Lookup Failure" <br />        package Projname::L10N::en_us;<br />            rest of items in this group  <p />        "\n",<br /> <br />I think that keys as lexicon values makes the completed lexicon entries more readable:<p />     <p />    my($lh, @stuff) = @_;<p /> <p />  # Set to nothing (i e , so failure throws a plain exception)<br />      Go and write your program  Everywhere in your program where you would say:<br />  EOSTUFF  <p />    =&gt; "/styles/en_us/hey_there wav",<p />    This is just a wrapper around Perl's normal sprintf function  It's provided so that you can use "sprintf" in Bracket Notation:<p />          }<p />  "_alert_sound"<br />        %Lexicon = (<p /><p />  sub lex_fail  <br />      But for other languages (as is discussed at length in Locale::Maketext::TPJ13), simple quant/numerify is not enough  For the particularly problematic Slavic languages, what you may need is a method which you provide with the number, the citation form of the noun to quantify, and the case and gender that the sentence's syntax projects onto that noun slot  The method would then be responsible for determining what grammatical number that numeral projects onto its noun phrase, and what case and gender it may override the normal case and gender with; and then it would look up the noun in a lexicon providing all needed inflected forms <p /><p /><br />        use vars qw($lh);<br />I do not anticipate that you will need (or particularly want) to nest bracket groups, but you are welcome to email me with convincing (real-life) arguments to the contrary <br />  '_USAGE_MESSAGE' =&gt; &lt;&lt;'EOSTUFF',<br />      ")!\n",<p />    =&gt; "/styles/en_us/main_splash png",<br />If maketext goes to look in an individual %Lexicon for an entry for key (where key does not start with an underscore), and sees none, but does see an entry of "_AUTO" =&gt; some_true_value, then we actually define $Lexicon key} = key right then and there, and then use that value as if it had been there all along  This happens before we even look in any superclass %Lexicons!<p /><p /><br />        ),  <br />Language Handle Attributes and Internals<p /><br />   # Depending on the user's locale, etc , this will<p />      If get_handle senses that it's running in program that was invoked as a CGI, then it tries to get language-tags out of the environment variable "HTTP_ACCEPT_LANGUAGE", and it pretends that those were the languages passed as parameters to get_handle <p /> <br />         elsif there's a $plural,<br />Also, having valid values as keys becomes very useful if you set up an _AUTO lexicon  _AUTO lexicons are discussed in a later section <p />Currently, an unescaped "~" before a character other than a bracket or a comma is taken to mean just a "~" and that charecter  I e , "~X" means the same as "~~X" -- i e , one literal tilde, and then one literal "X"  However, by using "~X", you are assuming that no future version of Maketext will use "~X" as a magic escape sequence  In practice this is not a great problem, since first off you can just write "~~X" and not worry about it; second off, I doubt I'll add lots of new magic characters to bracket notation; and third off, you aren't likely to want literal "~" characters in your messages anyway, since it's not a character with wide use in natural language text <p />An exception may be thrown if key is not found in any of $lh's %Lexicon hashes  What happens if a key is not found, is discussed in a later section, "Controlling Lookup Failure" <p /><p />        some code here  <br />  until(defined $response)  <br />      <br />  "_main_splash_png"<br />Now, right after you've just written the above lines, you'd normally have to go open the file ThisProject/I18N/en pm, and immediately add an entry:<br />And on the off chance you need a literal tilde in a bracket expression, you get it with "~~" <br />Compare this code that uses an arbitrary ID  <p /><br />This is the most important method in Locale::Maketext:<br />      This is called by -&gt;new to initialize newly-constructed language handles  If you define an init method in your class, remember that it's usually considered a good idea to call $lh-&gt;SUPER::init in it (presumably at the beginning), so that all classes get a chance to initialize a new object however they see fit <br />    Note that numf is called by quant for stringifying all quantifying numbers <br />  sub y_or_n  <p />$language-&gt;language_tag()<br />The basic design of Locale::Maketext is object-oriented, and Locale::Maketext is an abstract base class, from which you derive a "project class"  The project class (with a name like "TkBocciBall::Localize", which you then use in your module) is in turn the base class for all the "language classes" for your project (with names "TkBocciBall::Localize::it", "TkBocciBall::Localize::en", "TkBocciBall::Localize::fr", etc ) <br />  "I ate quant,_1,rhubarb pie[ "  <br /> <br />Incidentally, note that each class's %Lexicon inherits-and-extends the lexicons in its superclasses  This is not because these are special hashes per se, but because you access them via the maketext method, which looks for entries across all the %Lexicon's in a language class and all its ancestor classes  (This is because the idea of "class data" isn't directly implemented in Perl, but is instead left to individual class-systems to implement as they see fit )<p /><p /><br />    =&gt; "/styles/en_us/main_splash incl",<br />  my $lh_backup = ThisProject-&gt;get_handle('en');<br />   # For the moment, assume that things are set up so<br />Note that you may have things stored in a lexicon besides just phrases for output: for example, if your program takes input from the keyboard, asking a "(Y/N)" question, you probably need to know what equivalent of "Y[es]/N[o]" is in whatever language  You probably also need to know what the equivalents of the answers "y" and "n" are  You can store that information in the lexicon (say, under the keys "~answer_y" and "~answer_n", and the long forms as "~answer_yes" and "~answer_no", where "~" is just an ad-hoc character meant to indicate to programmers/translators that these are not phrases for output) <p /><br />        $lh-&gt;bar('baz', $lh-&gt;quux('quuux')),<p /><br />      Bracket groups that are empty, or which consist only of whitespace, are ignored  (Examples: "[]", "[ ]", or a [ and a ] with returns and/or tabs and/or spaces between them <br />Also, once a project is otherwise complete and you start to localize it, you can scrape together all the various keys you use, and pass it to a translator; and then the translator's work will go faster if what he's presented is this:<br />    *<br />      (For the rest of this section, I'll assume that this "first language class" of Projname::L10N::en_us has _AUTO lexicon )<br />literals   Text in brackets is rather more complex, and currently follows<p />    print $lh-&gt;maketext("Open the pod bay door (y/n)? ");<br />    "some_key" =&gt; sub  <br /> <br />    So for English (with Bracket Notation) "  [quant,_1,file]  " is fine (for 0 it returns "0 files", for 1 it returns "1 file", and for more it returns "2 files", etc )<br />    return $lh_backup-&gt;maketext($key,@params);<br /> <br />    * Methods to do with constructing language handles <br />   "Minimum ([_1]) is larger than maximum ([_2])!\n",<p /><p />Bracket Notation is discussed in a later section  Note that trying to compile a string into Bracket Notation can throw an exception if the string is not syntactically valid (say, by not balancing brackets right )<p />      Translators may request clarification of the situation in which a particular phrase is found  For example, in English we are entirely happy saying "n files found", regardless of whether we mean "I looked for files, and found n of them" or the rather distinct situation of "I looked for something else (like lines in files), and along the way I saw n files " This may involve rethinking things that you thought quite clear: should "Edit" on a toolbar be a noun ("editing") or a verb ("to edit")? Is there already a conventionalized way to express that menu option, separate from the target language's normal word for "to edit"?<br />    You may override this as you like; Maketext doesn't use it for anything <p />    * Methods that you may find it handy to use, from routines of yours that you put in %Lexicon entries <br />    *<br />          '_AUTO' =&gt; 1,<br /> <br />        "Foo ",<br />Note that you might find it useful in some cases to override the maketext method with an "after method", if you want to translate encodings, or even scripts:<br />      This method (by having it return the name of a language-tag that has an existing language class) can be used for making sure that get_handle will always manage to construct a language handle (assuming your language classes are in an appropriate @INC directory)  Or you can use the next method:<br />      "Minimum (",<br />  $handler = $lh-&gt;fail_with();  <p />but since you anticipate localizing this, you write:<br />If you call $lh-&gt;maketext(key,   parameters  ), and there's no entry key in $lh's class's %Lexicon, nor in the superclass %Lexicon hash, and if we can't auto-make key (because either it starts with a "_", or because none of its lexicons have _AUTO =&gt; 1,), then we have failed to find a normal way to maketext key  What then happens in these failure conditions, depends on the $lh object "fail" attribute <br />    *<br />However, if you set "_AUTO =&gt; 1" in the %Lexicon in, ThisProject/I18N/en pm (assuming that English (en) is the language that all your programmers will be using for this project's internal message keys), then you don't ever have to go adding lines like this<br />        ),  <br />         if $number is 0 and there's a $negative,<br />    <p />$language-&gt;quant($number, $singular)<br />    $response = $lh-&gt;y_or_n( get_input_from_keyboard_somehow() );<br />      This tries loading classes based on the language-tags you give (like ("en-US", "sk", "kon", "es-MX", "ja", "i-klingon"), and for the first class that succeeds, returns YourProjClass::language-&gt;new() <br />  emits the right text for this language  If the object in $lh belongs to class "TkBocciBall::Localize::fr" and %TkBocciBall::Localize::fr::Lexicon contains ("You won!" =&gt; "Tu as gagn�!"), then the above code happily tells the user "Tu as gagn�!" <br />      Currently this OS-specific stuff consists of looking in the environment variables "LANG" and "LANGUAGE"; and on MSWin machines (where those variables are typically unused), this also tries using the module Win32::Locale to get a language-tag for whatever language/locale is currently selected in the "Regional Settings" (or "International"?) Control Panel  I welcome further suggestions for making this do the Right Thing under other operating systems that support localization <br />    Remember to keep in mind verb agreement (or adjectives too, in other languages), as in:<br />  sub  <p /><br />      "Hoohah ",<p /><br />        use base qw(Locale::Maketext);<br />    Currently this just takes the last bit of ref($language), turns underscores to dashes, and returns it  So if $language is an object of class Hee::HOO::Haw::en_us, $language-&gt;language_tag() returns "en-us"  (Yes, the usual representation for that language tag is "en-US", but case is never considered meaningful in language-tag comparison )<p />   $min, $max<br />For example, here all the areas that are taken literally are underlined with a "^", and all the in-bracket special regions are underlined with an X:<br />This looks in the %Lexicon of the language handle $lh and all its superclasses, looking for an entry whose key is the string key  Assuming such an entry is found, various things then happen, depending on the value found:<br />         #<p /><br />Locale::Maketext offers a variety of methods, which fall into three categories:<br />    go_process_file($filename)<br />      Create a class for your localization project  This is the name of the class that you'll use in the idiom:<br />$lh-&gt;failure_handler_auto<br /> <br />   # and any defaults that you declare <br />    my @params = @_;<br />  use TkBocciBall::Localize;  # the localization project class<p /><br />    }  <br /> <p />Remember: Don't be afraid to read the Maketext source if there's any point on which this documentation is unclear  This documentation is vastly longer than the module source itself <br />      my $lh = $_[0];<p /><p />      If the first item in a bracket group looks like a method name, then that group is interpreted like this:<br />  "Foo [bar,baz,[quux,quuux]]\n";  <br />      Besides whole phrases meant for output, anything language-dependent should be put into the class Projname::L10N::en_us, whether as methods, or as lexicon entries -- this is discussed in the section "Entries in Each Lexicon", above <p />  }<br />    print $lh-&gt;maketext(<p />$text = $lh-&gt;maketext(key,   parameters for this phrase  );<br />  #  but after we log it for later fingerpointing <br />A typical %Lexicon entry is meant to signify a phrase, taking some number (0 or more) of parameters  An entry is meant to be accessed by via a string key in $lh-&gt;maketext(key,   parameters  ), which should return a string that is generally meant for be used for "output" to the user -- regardless of whether this actually means printing to STDOUT, writing to a file, or putting into a GUI widget <p />    return;<p />  # Set to a coderef:<br />The second is, in short, more readable  In particular, it's obvious that the number of parameters you're feeding to that phrase (two) is the number of parameters that it wants to be fed  (Since you see _1 and a _2 being used in the key there )<p /><p />    print "Couldn't find file \"$filename\"!\n";<br />    *<br />  # Simply read:<br />Some users have expressed that they think this whole mechanism of having a "fail" attribute at all, seems a rather pointless complication  But I want Locale::Maketext to be usable for software projects of any scale and type; and different software projects have different ideas of what the right thing is to do in failure conditions  I could simply say that failure always throws an exception, and that if you want to be careful, you'll just have to wrap every call to $lh-&gt;maketext in an eval   }  However, I want programmers to reserve the right (via the "fail" attribute) to treat lookup failure as something other than an exception of the same level of severity as a config file being unreadable, or some essential resource being inaccessable <br />      <br />  open(LEX_FAIL_LOG, "&gt;&gt;wherever/lex log") || die "GNAARGH $!";<br />AUTO LEXICONS<p /><br />         "[quant,_1,document] were matched \n"  <br />Then when you call $lh-&gt;maketext(key,   parameters  ) and there's no key in any of those lexicons, maketext gives up with<p />  return $lh-&gt;failure_handler_auto($key, @params);  <br />  if(-e $filename)  <p />  # Set to a method name:<p /><br />      For some languages this issue may never come up (Danish is rarely expressed as "da-DK", but instead is just "da")  And for other languages, the whole concept of a "generic" form may verge on being uselessly vague, particularly for interfaces involving voice media in forms of Arabic or Chinese <br />Or maybe you don't want to die at all! Maybe you could use a handler like this:<br />    *<p />    return join '',<p />  #  BACKwards, and right is FOREwards <br />        package Projname::L10N;<br /> <p /><p />&lt;/menu&gt;<p /><br />&lt;/div&gt;<p /><br />&lt;b&gt;Grand_Cash_Advance Faster.Safer.Stronger.Resource for quick_cash_loans &lt;/b&gt;&lt;br&gt;<p />&lt;as&gt;#sionligh.com/grd.php?r-YWZhYTFlYSFkOHA0MnBmMHAyNCExNjdhITNlOSFhbG0wMnxnbSFtZGdyYW5kY2dtZnJqITdkYXQ2dDE4IQ==&lt;br&gt;&lt;br&gt;<p />You can get upto_Usd1500 CASH_FAST!!! Money_is wired directly into your bank_account. &lt;BR&gt;&lt;BR&gt;<p />&lt;b&gt;Get a quick_cash loan_for anything!! &lt;/b&gt;&lt;BR&gt;&lt;BR&gt;<p />Use your_cash for Tickets to the big_game ,bills ,car_payments ,emergencies ,rent_and more!&lt;BR&gt;&lt;BR&gt;<p />- No credit_Checks&lt;br&gt;<br />- No Employment_Checks&lt;br&gt;<br />- Money_In Minutes&lt;br&gt;<br />- Secure_Online Application&lt;br&gt;&lt;br&gt;<p />&lt;b&gt;Complete the final_step by filling out this 2.Minute form. No Faxing_required!&lt;/b&gt;&lt;br&gt;&lt;br&gt;<p />&lt;as&gt;#sionligh.com/grd.php?r-YWZhYTFlYSFkOHA0MnBmMHAyNCExNjdhITNlOSFhbG0wMnxnbSFtZGdyYW5kY2dtZnJqITdkYXQ2dDE4IQ==&lt;br&gt;&lt;br&gt;<p />&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;<br />&lt;BR&gt;<p />Unsubscribe_From_Sponsor:&lt;br&gt;<br />&lt;as&gt;#sionligh.com/ard.php?uu-YWZhYTFlYSFkOHA0MnBmMHAyNCExNjdhITNlOSFhbG0wMnxnbSFtZGdyYW5kY2dtZnJqITdkYXQ2dDE4IQ==&lt;BR&gt;<br />orWriteto_Sandusky_LLC 3315 Hwy_50 silver_springs nevada_89429&lt;br&gt;<br />&lt;br&gt; &lt;br&gt;<br />&lt;br&gt;Unsubscribe-From_Mailing:&lt;br&gt;<br />&lt;as&gt;#sionligh.com/ard.php?ui-YWZhYTFlYSFkOHA0MnBmMHAyNCExNjdhITNlOSFhbG0wMnxnbSFtZGdyYW5kY2dtZnJqITdkYXQ2dDE4IQ==&lt;BR&gt;<br />Write to pobox 137 1648 S_Ohio Salina KS-67401US<p /><br />--np4c236147e12fb--<p /></p>
	
</p>

<p><a href="http://blog.rabidgravy.com/when-spam-goes-bad">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/when-spam-goes-bad#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/when-spam-goes-bad</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 05 Jun 2010 05:34:56 -0700</pubDate>
      <title>Beautiful Things Live « Year Zero Writers</title>
      <link>http://feedproxy.google.com/~r/rabidgravy/xlYp/~3/vpVeWx9Wgas/beautiful-things-live-year-zero-writers</link>
      <guid isPermaLink="false">http://blog.rabidgravy.com/beautiful-things-live-year-zero-writers</guid>
      <description>
        <![CDATA[<p>
	<div class="posterous_bookmarklet_entry">
      <blockquote><div>
				<p><a href="http://yearzerowriters.files.wordpress.com/2010/06/btgig.jpg"><img title="BTGIG" src="http://yearzerowriters.files.wordpress.com/2010/06/btgig.jpg?w=211&amp;h=300" height="300" alt="" width="211" /></a></p><p></p>
<p><a href="http://www.reverbnation.com/tothemoon" rel="nofollow" target="_blank"><img title="btgigback2" src="http://yearzerowriters.files.wordpress.com/2010/06/btgigback2.jpg?w=211&amp;h=300" height="300" alt="" width="211" /></a></p><p><a href="http://www.reverbnation.com/tothemoon" rel="nofollow" target="_blank"></a></p>
<p>On July 7th we are absolutely thrilled that Sarah E Melville will be joining us all the way from Fresno for what promises to be the biggest and best Year Zero event yet as we take over The Good Ship in Kilburn (298 Kilburn High Road) for the whole night. We have amazing music, fantastic art, not one or two but THREE book launches, and, of course, a reading or several. All, in Sarah’s honour, on the theme “Beautiful Things that Happen to Ugly People”. It may be FREEEEE but there will be ample opportunity to part with your cash and purchase an unprecedented range of Year Zero books and stuff, as well as CDs from our collaborators.</p>
<p><a href="http://bit.ly/ay5mU0">JOIN THE FACEBOOK EVENT &amp; INVITE ALL YOUR FRIENDS</a></p>
<p>And, as some of you will be aware, this is the very last chance to see the amazing Daisy perform live in the UK before she heads for the desert.</p>
<p>All of which are reasons to make sure everyone you know who can go does, and make this a night that is simply spectacular</p>
<p><strong>Music from</strong></p>
<p><a href="http://www.myspace.com/shirleysaid">Shirley Said</a></p>
<p><a href="http://www.reverbnation.com/tothemoon">To The Moon</a></p>
<p><a href="http://www.rabidgravy.com/">Rabid Gravy</a></p>
<p><strong>Readings by</strong></p>
<p><a href="http://s-melville.blogspot.com">Sarah E Melville</a></p>
<p><a href="http://neobabylon.net">Daisy Anne Gree</a></p>
<p><a href="http://sulcicollective.blogspot.com">Marc Nash</a></p>
<p><a href="http://danholloway.wordpress.com">Dan Holloway</a></p>
<p>art by Sarm</p>
<p><strong>Featuring the launch of</strong></p>
<p><em>Beautiful Things that Happen to Ugly People </em>by Sarah E Melville</p>
<p><em>Dark Light</em> by Daisy Anne Gree</p>
<p><em>(life:) razorblades included</em> by Dan Holloway</p>
<p>and the all new <a href="http://www.eightcutsgallery.wordpress.com/">eight cuts gallery and press</a></p>
<p><a href="http://yearzerowriters.files.wordpress.com/2010/06/btgigback2.jpg"> </a></p>
<p><a href="http://yearzerowriters.files.wordpress.com/2010/06/btgigback2.jpg"><br />
</a></p>



<p>

								</p><p>~ by yearzerowriters on June 5, 2010.</p>
				<p>Posted in <a href="http://en.wordpress.com/tag/year-zero-live/" title="View all posts in Year Zero Live" rel="category tag">Year Zero Live</a>					<br />Tags: <a href="http://en.wordpress.com/tag/year-zero-writers/" rel="tag">year zero writers</a>, <a href="http://en.wordpress.com/tag/year-zero-live/" rel="tag">Year Zero Live</a>, <a href="http://en.wordpress.com/tag/literary-event/" rel="tag">literary event</a>, <a href="http://en.wordpress.com/tag/multi-arts/" rel="tag">multi-arts</a>, <a href="http://en.wordpress.com/tag/beautiful-things/" rel="tag">beautiful things</a>, <a href="http://en.wordpress.com/tag/sarah-melville/" rel="tag">sarah melville</a>, <a href="http://en.wordpress.com/tag/eight-cuts/" rel="tag">eight cuts</a>, <a href="http://en.wordpress.com/tag/to-the-moon/" rel="tag">to the moon</a>, <a href="http://en.wordpress.com/tag/rabid-gravy/" rel="tag">rabid gravy</a>, <a href="http://en.wordpress.com/tag/shirley-said/" rel="tag">shirley said</a>, <a href="http://en.wordpress.com/tag/music-festival-literary-festival/" rel="tag">music festival. literary festival</a>, <a href="http://en.wordpress.com/tag/lit-death-match/" rel="tag">lit death match</a>, <a href="http://en.wordpress.com/tag/spoken-word/" rel="tag">spoken word</a>				</p>
			</div></blockquote><div class="posterous_quote_citation">via <a href="http://yearzerowriters.wordpress.com/2010/06/05/beautiful-things-live/">yearzerowriters.wordpress.com</a></div>
    <p>I'm really looking forward to this.  There's a great tradition of literature / music cross-over events and I'm pleased to be involved. Should be a great night.</p></div>
	
</p>

<p><a href="http://blog.rabidgravy.com/beautiful-things-live-year-zero-writers">Permalink</a> 

	| <a href="http://blog.rabidgravy.com/beautiful-things-live-year-zero-writers#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/188197/rabid_m.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/kep8LGMG4N</posterous:profileUrl>
        <posterous:firstName>Rabid</posterous:firstName>
        <posterous:lastName>Gravy</posterous:lastName>
        <posterous:nickName>rabidgravy</posterous:nickName>
        <posterous:displayName>Rabid Gravy</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://blog.rabidgravy.com/beautiful-things-live-year-zero-writers</feedburner:origLink></item>
  </channel>
</rss>

