<?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:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>♩ ScoreRender ♫</title>
	
	<link>http://scorerender.abelcheung.org</link>
	<description>sheet music rendering plugin for Wordpress</description>
	<lastBuildDate>Thu, 13 Aug 2009 15:13:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/scorerender" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>0.3.2 Release: ‘LilyPond Sucks’</title>
		<link>http://scorerender.abelcheung.org/2009/08/13/0-3-2-release-lilypond-sucks/</link>
		<comments>http://scorerender.abelcheung.org/2009/08/13/0-3-2-release-lilypond-sucks/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 15:13:11 +0000</pubDate>
		<dc:creator>Abel Cheung</dc:creator>
				<category><![CDATA[Lilypond]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://scorerender.abelcheung.org/?p=61</guid>
		<description><![CDATA[Another bug fix version, and this is the first version ever with a code name &#8212; definitely an apt one. It only fixes command line invocation with LilyPond 2.12.x. So this fix need not be applied if lilypond is not used, or LilyPond inside server is not newer than 2.10.x release.
Why the name? I haven&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Another bug fix version, and this is the first version ever with a code name &mdash; definitely an apt one. It only fixes command line invocation with LilyPond 2.12.x. So this fix need not be applied if lilypond is not used, or LilyPond inside server is not newer than 2.10.x release.</p>
<p>Why the name? I haven&#8217;t used LilyPond for a long while. Only very recently, after testing compatibility with newer WordPress release, did I discover that LilyPond safe mode command line option is completely gone, resulting in error! There <strong><em>IS</em></strong> a reason even <a href="http://meta.wikimedia.org/wiki/Music_markup">Wikimedia people cast doubt about usage of LilyPond</a> &mdash; notation syntax and command line can change between every minor release, and even <strong><em>EVERY PATCH LEVEL</em></strong>! In the case of safe mode option:</p>
<table>
<tr>
<th>2.8.x</th>
<td><code>--safe</code></td>
</tr>
<tr>
<th>2.10.x</th>
<td><code>--safe-mode</code></td>
</tr>
<tr>
<th>2.12.x</th>
<td><em>No more</em></td>
</tr>
</table>
<p>Go figure.</p>
]]></content:encoded>
			<wfw:commentRss>http://scorerender.abelcheung.org/2009/08/13/0-3-2-release-lilypond-sucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ScoreRender 0.3.1 Released</title>
		<link>http://scorerender.abelcheung.org/2009/07/26/scorerender-0-3-1-released/</link>
		<comments>http://scorerender.abelcheung.org/2009/07/26/scorerender-0-3-1-released/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 11:59:00 +0000</pubDate>
		<dc:creator>Abel Cheung</dc:creator>
				<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://scorerender.abelcheung.org/?p=60</guid>
		<description><![CDATA[Yet another new release is out. Some fixes are backported from trunk:

When showing image only (score is not clickable, that is), also add image dimension as well, for speeding up HTML rendering.
Fix line break when showing score source code under Windows &#8212; always convert line break to \r\n when transferring data to clipboard.
Better auto-detection of [...]]]></description>
			<content:encoded><![CDATA[<p>Yet another new release is out. Some fixes are backported from trunk:</p>
<ul>
<li>When showing image only (score is not clickable, that is), also add image dimension as well, for speeding up HTML rendering.</li>
<li>Fix line break when showing score source code under Windows &mdash; always convert line break to \r\n when transferring data to clipboard.</li>
<li>Better auto-detection of programs. Make use of <code>glob()</code> under Windows and <code>which</code> command under Unix, with fallback if these are not available.</li>
<li>Bug fix in program availability checking. If desired matching string is not found in the first line of program output, program detection would result in failure in previous versions.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://scorerender.abelcheung.org/2009/07/26/scorerender-0-3-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dashboard widget shall be gone</title>
		<link>http://scorerender.abelcheung.org/2009/07/19/dashboard-widget-shall-be-gone/</link>
		<comments>http://scorerender.abelcheung.org/2009/07/19/dashboard-widget-shall-be-gone/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 00:42:58 +0000</pubDate>
		<dc:creator>Abel Cheung</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://scorerender.abelcheung.org/?p=59</guid>
		<description><![CDATA[In the coming (well, I can&#8217;t say exactly when &#8220;coming&#8221; is) release, i.e. 0.4.0, dashboard widget would be removed. It isn&#8217;t useful in current form, which just tells user how many images are there, and how many posts contain music score fragments. Actually one can already check number of images in the image cache directory. [...]]]></description>
			<content:encoded><![CDATA[<p>In the coming (well, I can&#8217;t say exactly when &#8220;coming&#8221; is) release, i.e. 0.4.0, dashboard widget would be removed. It isn&#8217;t useful in current form, which just tells user how many images are there, and how many posts contain music score fragments. Actually one can already check number of images in the image cache directory. Perhaps it might come back some day in the future, but at least in more useful way, not in current form as it is.</p>
]]></content:encoded>
			<wfw:commentRss>http://scorerender.abelcheung.org/2009/07/19/dashboard-widget-shall-be-gone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Source code moved to Google Code</title>
		<link>http://scorerender.abelcheung.org/2009/06/28/source-code-moved-to-google-code/</link>
		<comments>http://scorerender.abelcheung.org/2009/06/28/source-code-moved-to-google-code/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 05:57:21 +0000</pubDate>
		<dc:creator>Abel Cheung</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://scorerender.abelcheung.org/?p=58</guid>
		<description><![CDATA[Just finished the move a while ago, right now development version is available publicly from Google code page instead of my own private subversion repository. Probably it&#8217;s a rarely used plugin (and not exactly easy to install), so that there&#8217;s no bug entered; but I&#8217;m happy enough that some people are indeed interested in installing [...]]]></description>
			<content:encoded><![CDATA[<p>Just finished the move a while ago, right now development version is available publicly from <a href="http://code.google.com/p/scorerender/">Google code page</a> instead of my own private subversion repository. Probably it&#8217;s a rarely used plugin (and not exactly easy to install), so that there&#8217;s no bug entered; but I&#8217;m happy enough that some people are indeed interested in installing and using it.</p>
]]></content:encoded>
			<wfw:commentRss>http://scorerender.abelcheung.org/2009/06/28/source-code-moved-to-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ScoreRender 0.3.0 Released</title>
		<link>http://scorerender.abelcheung.org/2009/04/30/scorerender-0-3-0-release/</link>
		<comments>http://scorerender.abelcheung.org/2009/04/30/scorerender-0-3-0-release/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 05:02:37 +0000</pubDate>
		<dc:creator>Abel Cheung</dc:creator>
				<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://scorerender.abelcheung.org/?p=57</guid>
		<description><![CDATA[After 8 months, here comes another major release. Highlight of this shiny release include:

Philip&#8217;s Music Writer notation support.
IE PNG Fix has been incorporated, which provides translucent PNG support for IE 5.5 and 6.x. No more whining when this plugin detected that your readers are using IE 5/6. Thanks to Angus Turnbull for the terrific yet [...]]]></description>
			<content:encoded><![CDATA[<p>After 8 months, here comes another major release. Highlight of this shiny release include:</p>
<ul>
<li><a href="http://www.quercite.com/pmw.html"><strong>Philip&#8217;s Music Writer</strong></a> notation support.</li>
<li><a href="http://www.twinhelix.com/css/iepngfix/"><strong>IE PNG Fix</strong></a> has been incorporated, which provides translucent PNG support for IE 5.5 and 6.x. No more whining when this plugin detected that your readers are using IE 5/6. Thanks to Angus Turnbull for the terrific yet easy to use IE filter!</li>
<li><a href="http://code.google.com/p/zeroclipboard/"><strong>Zero Clipboard</strong></a> has been incorporated, which provides cross platform copy and paste function using Adobe Flash. No more whining again, but it&#8217;s Mozilla/Firefox and all other non-IE browsers instead. Oh yes, JavaScript and Flash must be there, of course. Thanks to jhuckaby for this great flash helper!</li>
<li>Better support of installation on web hostings. This has been described in <a href="http://scorerender.abelcheung.org/2009/04/05/recent-direction-of-scorerender/">another post</a>.</li>
<li>Rendering also depends on &#8216;<code>unfiltered_html</code>&#8216; WordPress capability.</li>
<li>Functions and files are completely refactored, so admin page is only included when needed, and PHP classes no longer access global variables as it has been done before.</li>
</ul>
<p>As usual, please visit <a href="http://scorerender.abelcheung.org/installation/">installation page</a> on how to install the plugin. You will need to install extra required programs for this plugin to function as well, and they are sometimes not as easy as installing the plugin itself. If you managed this part, you can visit <a href="http://scorerender.abelcheung.org/demo/">notation introduction page</a> to start publishing your blog with music content!</p>
]]></content:encoded>
			<wfw:commentRss>http://scorerender.abelcheung.org/2009/04/30/scorerender-0-3-0-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recent direction of ScoreRender</title>
		<link>http://scorerender.abelcheung.org/2009/04/05/recent-direction-of-scorerender/</link>
		<comments>http://scorerender.abelcheung.org/2009/04/05/recent-direction-of-scorerender/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 16:30:14 +0000</pubDate>
		<dc:creator>Abel Cheung</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://scorerender.abelcheung.org/?p=55</guid>
		<description><![CDATA[Looks like another half year has passed without any significant improvement on ScoreRender&#8230; actually not really. There is some work behind the scene, but not announcement yet.

A certain user has been facing problem with hosted web sites, so it looks like there IS need to make it work with web hosts &#8212; to be specific, [...]]]></description>
			<content:encoded><![CDATA[<p>Looks like another half year has passed without any significant improvement on ScoreRender&#8230; actually not really. There is some work behind the scene, but not announcement yet.</p>
<ol>
<li>A certain user has been facing problem with hosted web sites, so it looks like there IS need to make it work with web hosts &mdash; to be specific, ScoreRender needs to cope with the case when PHP functionas are disabled due to security reasons. It shouldn&#8217;t be hard. The hardest part is how it can work with older ImageMagick and other related software. I don&#8217;t see any solution yet.</li>
<li>IE6 PNG image transparency seems not as dead-end as I thought. With the <a href="http://www.twinhelix.com/css/iepngfix/">image filter published by TwinHelix</a>, it looks trivial to add the support for IE6. At least way better than the big fat warning with current releases.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://scorerender.abelcheung.org/2009/04/05/recent-direction-of-scorerender/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My most admired instrument</title>
		<link>http://scorerender.abelcheung.org/2008/10/02/my-most-admired-instrument/</link>
		<comments>http://scorerender.abelcheung.org/2008/10/02/my-most-admired-instrument/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 22:14:54 +0000</pubDate>
		<dc:creator>Abel Cheung</dc:creator>
				<category><![CDATA[ABC]]></category>
		<category><![CDATA[Mup]]></category>
		<category><![CDATA[Showcase]]></category>

		<guid isPermaLink="false">http://scorerender.abelcheung.org/?p=51</guid>
		<description><![CDATA[Though I used to play piano during old days (that&#8217;s why most of the demo pieces are from piano   ), pianist aren&#8217;t the kind of music player I admire most. At least, not as strong as towards drummer. I never said pianist is no good; their virtuosity for difficult (sometimes terrific) pieces keeps [...]]]></description>
			<content:encoded><![CDATA[<p>Though I used to play piano during old days (that&#8217;s why most of the demo pieces are from piano <img src='http://scorerender.abelcheung.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ), pianist aren&#8217;t the kind of music player I admire most. At least, not as strong as towards drummer. I never said pianist is no good; their virtuosity for difficult (sometimes terrific) pieces keeps me still addicted to concertos like Rachmaninoff&#8217;s and Prokofiev&#8217;s ones; but there are entirely different challenges for drummers, at least viewed from outsider&#8217;s angle. Example?</p>
<form target='fragmentpopup' action='http://scorerender.abelcheung.org/wp-content/plugins/scorerender/misc/showcode.php' method='post'>
<input type='image' name='music_image' class='scorerender-image' title='Click on image to view source' alt='Music fragment' src='http://scorerender.abelcheung.org/sr-images/sr-mup-9451dda00ca1d13e62f102134bb5891f.png' />
<input type='hidden' name='code' value='%5Bmup%5D%0D%0A%2F%2F%21Mup-Arkkra-5.0%0D%0Ascore%0D%0Aleftmargin%20%3D%200%0D%0Arightmargin%20%3D%200%0D%0Atopmargin%20%3D%200%0D%0Abottommargin%20%3D%200%0D%0Apagewidth%20%3D%205%0D%0Alabel%20%3D%20%22%22%0D%0Ascore%0D%0Atime%20%3D%203%2F4%0D%0Abeamstyle%20%3D%204%2C4%2C%288%2C8%29%0D%0Astaff%201%0D%0Astafflines%20%3D%201%0D%0Amusic%0D%0A1%3A%208c%3B%20%7B16%3B16%3B16%3B%7D3num%3B%208%3B%20%7B16%3B16%3B16%3B%7D3num%3B%208%3B%3B%0D%0Abar%0D%0A1%3A%208c%3B%20%7B16%3B16%3B16%3B%7D3num%3B%208%3B%20%7B16%3B16%3B16%3B%7D3num%3B%20%7B16%3B16%3B16%3B%7D3num%3B%20%7B16%3B16%3B16%3B%7D3num%3B%0D%0Abar%0D%0A%5B%2Fmup%5D'>
</form>
<p>Sounds familiar? How about this one:</p>
<form target='fragmentpopup' action='http://scorerender.abelcheung.org/wp-content/plugins/scorerender/misc/showcode.php' method='post'>
<input type='image' name='music_image' class='scorerender-image' title='Click on image to view source' alt='Music fragment' src='http://scorerender.abelcheung.org/sr-images/sr-abc-b020be19a18ce44c89aa6ff0a4c56e65.png' />
<input type='hidden' name='code' value='%5Babc%5D%0D%0A%25abc%0D%0A%25%25staffwidth%203in%0D%0A%25%25stretchlast%20no%0D%0A%25%25leftmargin%200.2in%0D%0A%25abc2mtex%3A%20yes%0D%0AX%3A1%0D%0AK%3AC%20clef%3Dnone%20stafflines%3D1%0D%0AL%3A1%2F16%0D%0AM%3A4%2F4%0D%0A%25%0D%0ABBBB%20B4%20BBBB%20B2BB%20%7C%20BBBB%20B2BB%20BBBB%20B4%20%7C%0D%0A%5B%2Fabc%5D'>
</form>
<p>Probably even starters can learn these rhythms very soon, as they are easy ones. Even people who haven&#8217;t played drum in their live can tap these rhythms with finger in no time (hey, drum games on game consoles don&#8217;t count!). But I haven&#8217;t finished: what if one need to:</p>
<ul>
<li>Beat these rhythms non-stop for <strong>more than 10 minutes</strong></li>
<li>Make absolutely <strong>no single error</strong></li>
<li>Play at <strong>constant speed</strong> thoughout the whole passage, without anybody noticing any tempo change</li>
</ul>
<p><em>That</em> is not so easy. This is the case for first rhythm, which comes from <a href="http://en.wikipedia.org/wiki/Bol%C3%A9ro">Ravel&#8217;s Boléro</a>. Think about beating the same rhythm again and again and again for 12+ minutes without any error, and controlling tempo / loudness at the same time! Probably even professional drummers can&#8217;t do that at single pass. It needs undivided attention and dedication in order to achieve the result.</p>
<p>For 2nd rhythm, which comes from <a href="http://en.wikipedia.org/wiki/Symphony_No._7_(Shostakovich)">Shostakovich&#8217;s 7th Symphony</a>, it&#8217;s not so demanding for drummer &mdash; just about 7-8 minutes instead of 12+ minutes (in Ravel&#8217;s own interpretation probably around 17 minutes). But every other element is the same: repeat the same thing over and over, non-stop, no mistake, very gradual crescendo like Boléro. And again, it&#8217;s snare drum&#8217;s call.</p>
<p>No, I don&#8217;t think I can devote such concentration, that&#8217;s why I give my thumbs up to these drummers.</p>
]]></content:encoded>
			<wfw:commentRss>http://scorerender.abelcheung.org/2008/10/02/my-most-admired-instrument/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Support on Windows</title>
		<link>http://scorerender.abelcheung.org/2008/09/19/support-on-windows/</link>
		<comments>http://scorerender.abelcheung.org/2008/09/19/support-on-windows/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 18:23:09 +0000</pubDate>
		<dc:creator>Abel Cheung</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://scorerender.abelcheung.org/?p=41</guid>
		<description><![CDATA[After several nights of hair pulling, Windows support is there, as well as support for yet another notation: Philip&#8217;s Music Writer.
Let me talk about Windows support first. It took me way too much time to finish it than I anticipated. There are a couple of scaring problems for using PHP on Windows.
Command execution on Windows
Under [...]]]></description>
			<content:encoded><![CDATA[<p>After several nights of hair pulling, <a href="http://plugins.trac.wordpress.org/browser/scorerender/trunk">Windows support is there</a>, as well as support for yet another notation: <a href="http://www.quercite.com/pmw.html">Philip&#8217;s Music Writer</a>.</p>
<p>Let me talk about Windows support first. It took me way too much time to finish it than I anticipated. There are a couple of scaring problems for using PHP on Windows.</p>
<h4>Command execution on Windows</h4>
<p>Under PHP documentation of <code>system()</code> function, people have been talking about PHP <strong>incapable of executing any command line with more than 2 double quotes, since PHP 4.3.x</strong>. So the following command line:</p>
<blockquote><p><code>"C:\Program&nbsp;Files\ImageMagick\convert.exe" "C:\Temp&nbsp;Folder\1.gif" C:\1.png</code></p></blockquote>
<p>Produces an instant failure (because there are 4 double quotes). And adding insult to injury: it&#8217;s not limited to <code>system()</code>, any other program execution functions like <code>exec()</code>, <code>popen()</code> are affected as well. Now the newest stable version is 5.2.6, guess what? Nothing changed. And people simply invented schemes to circumvent the bug, the most obvious one being using batch file, and that&#8217;s what I end up doing as well.</p>
<h4><code>tempnam()</code> stupidity on Windows</h4>
<p>So this is an undocumented feature: <code>tempnam()</code> on Windows only uses 3 letter prefix and a sequentially increasing counter as suffix! Now compare with the Unix counterpart &mdash; people have been complaining how this temp file creation is a security problem on Unix, but it&#8217;s suddenly not a security problem anymore on Windows! Fantastic!</p>
<p>Other people have been bragging programmers not to invent their own schemes, and use native functions instead. But no way, I won&#8217;t listen to such &#8220;recommendations&#8221;!</p>
<hr width="75%" size="1" noshade />
<p>For Philip&#8217;s Music Writer support, it is also not as straight forward as it should be, the main problem being on image conversion. No matter how I indicated sheet size in PMW source, ImageMagick invariably insists image size is 612&times;792 (which translates to 8.5&quot; &times; 11&quot; under 72 <abbr title="Dot Per Inch">DPI</abbr>)! And the final resulting PNG file is a 1&times;1 pixel dot.</p>
<p>Probably the problem is on PMW&#8217;s side. Normally within PostScript preamble part there is at least a declaration of <code>%%BoundingBox</code>, specifying its size (some even go as far as specifying <code>%%DocumentPaperSizes</code> and <code>%%HiResBoundingBox</code>); yet nothing like that exists in PostScripts produced by PMW. Anyway, that problem is temporarily fixed by forcing paper size using ImageMagick <code>-page</code> option.</p>
]]></content:encoded>
			<wfw:commentRss>http://scorerender.abelcheung.org/2008/09/19/support-on-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>0.2.0 debutted</title>
		<link>http://scorerender.abelcheung.org/2008/08/27/scorerender-0-2-0-release/</link>
		<comments>http://scorerender.abelcheung.org/2008/08/27/scorerender-0-2-0-release/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 23:59:54 +0000</pubDate>
		<dc:creator>Abel Cheung</dc:creator>
				<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://scorerender.abelcheung.org/?p=40</guid>
		<description><![CDATA[The much delayed release is out now. Download it by clicking on download icon!
Here is the list of more prominent changes since 0.1.x version:

Remove markup configuration, and adds lots more config options
Show statistics in dashboard
Clickable image showing music source
Start to migrate to PHP5-style classes
Image conversion routine redone
Allow clearing cache within admin page

However, to be sincere, [...]]]></description>
			<content:encoded><![CDATA[<p>The much delayed release is out now. Download it by clicking on download icon!</p>
<p>Here is the list of more prominent changes since 0.1.x version:</p>
<ol>
<li>Remove markup configuration, and adds lots more config options</li>
<li>Show statistics in dashboard</li>
<li>Clickable image showing music source</li>
<li>Start to migrate to PHP5-style classes</li>
<li>Image conversion routine redone</li>
<li>Allow clearing cache within admin page</li>
</ol>
<p>However, to be sincere, some of the changes <em>do</em> make me worried, namely:</p>
<ol>
<li><strong>Requirement of PHP5</strong>: though PHP5 growth is a bit stronger after PHP4 end of life, we are still seeing 41% adoption of PHP5 only (<a href="http://www.nexen.net/chiffres_cles/phpversion/18606-php_statistics_for_july_2008.php">statistics by nexen</a>). That means half of potential users can&#8217;t upgrade&#8230;</li>
<li><strong>Requirement of newer ImageMagick</strong>: I can&#8217;t stop cursing ImageMagick maintainers for this one. All packagers and software developers used to curse them, now I can feel the hatred in the guts too. ImageMagick can change API, compatilibility and even command line options between any minor, or even patch level releases! Damn it. Software versioning is completely meaningless for ImageMagick. As <a href="http://scorerender.abelcheung.org/2008/08/22/resuming-development/">I have said before</a>, <code>-channel alpha</code> no more creates alpha channel, causing all transparency rendering broken with previous release. However, not that many web servers have newest ImageMagick installed. I&#8217;d say the restriction is even more serious than PHP one. Perhaps I may need to think of another way to circumvent the problem in the coming releases.</li>
<li><strong>Potential of <abbr title="Cross Site Scripting">XSS</abbr> on showcode.php</strong>: right now showcode.php reads music fragment from POST request and dumps them only after minimal content filtering. I&#8217;m a bit worried it can be susceptible to XSS. Perhaps there is need to fire up XSS scanners in short future.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://scorerender.abelcheung.org/2008/08/27/scorerender-0-2-0-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>All notations side by side</title>
		<link>http://scorerender.abelcheung.org/2008/08/26/all-notations-side-by-side/</link>
		<comments>http://scorerender.abelcheung.org/2008/08/26/all-notations-side-by-side/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 14:02:43 +0000</pubDate>
		<dc:creator>Abel Cheung</dc:creator>
				<category><![CDATA[ABC]]></category>
		<category><![CDATA[GUIDO]]></category>
		<category><![CDATA[Lilypond]]></category>
		<category><![CDATA[Mup]]></category>
		<category><![CDATA[PMW]]></category>
		<category><![CDATA[Showcase]]></category>

		<guid isPermaLink="false">http://scorerender.abelcheung.org/?p=35</guid>
		<description><![CDATA[Upon a time I have had compared the results of various notations side by side in my own blog, split into several posts. But comparing them within one single post is cooler, and easier for comparison purpose. So here presents the beginning 2 bars of Prokofiev Piano Sonata No. 8, second movement:
ABC:




Guido:




Mup




Lilypond




PMW:




Among all notations, Lilypond [...]]]></description>
			<content:encoded><![CDATA[<p>Upon a time I have had compared the results of various notations side by side in my own blog, split into several posts. But comparing them within one single post is cooler, and easier for comparison purpose. So here presents the beginning 2 bars of Prokofiev Piano Sonata No. 8, second movement:</p>
<p>ABC:</p>
<form target='fragmentpopup' action='http://scorerender.abelcheung.org/wp-content/plugins/scorerender/misc/showcode.php' method='post'>
<input type='image' name='music_image' class='scorerender-image' title='Click on image to view source' alt='Music fragment' src='http://scorerender.abelcheung.org/sr-images/sr-abc-c0234f4ad2d227269a7bc5d0a70b0d24.png' />
<input type='hidden' name='code' value='%5Babc%5D%0D%0A%25abc%0D%0A%25%25staffwidth%203in%0D%0A%25%25stretchlast%20no%0D%0A%25%25leftmargin%200.2in%0D%0A%25abc2mtex%3A%20yes%0D%0A%25%25vocalfont%20Times-Italic%2013.0%0D%0AX%3A1%0D%0AT%3A%0D%0AM%3A3%2F4%0D%0AL%3A1%2F4%0D%0AQ%3A%22Andante%20sognando%22%0D%0AK%3ADb%0D%0A%25%25staves%20%7B%281%202%29%203%7D%0D%0A%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%0D%0AV%3A1%20%20stv%3D3%0D%0A%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%0D%0AV%3A1%0D%0AA2%20%28B%2F4A%2F4%3DG%2F4A%2F4%20%7C%5C%0D%0Aw%3A%20dolce%20%7C%0D%0AL%3A1%2F8%0D%0Ad%29%26gt%3BA%20%5BDFA%5D%28%5BDFA%5D%5BCEG%5D%29%5BB%2CDF%5D%20%7C%0D%0A%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%0D%0AV%3A2%0D%0A%21p%21%5BEF%5D%20%5BDF%5D%20%5BC%3DE%5D%20%7C%5C%0D%0AL%3A1%2F4%0D%0A%5BDF%5D%20x2%20%7C%0D%0A%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%0D%0AV%3A3%20clef%3Dbass%0D%0A%5BD%2C%2CD%2C%5D%20%5BA%2C%2CA%2C%5D%20%5BA%2C%2C%2CA%2C%2C%5D%20%7C%20%5BD%2C%2CD%2C%5D%20%5BA%2C%2CA%2C%5D%20%5BA%2C%2C%2CA%2C%2C%5D%20%7C%0D%0A%5B%2Fabc%5D'>
</form>
<p>Guido:</p>
<form target='fragmentpopup' action='http://scorerender.abelcheung.org/wp-content/plugins/scorerender/misc/showcode.php' method='post'>
<input type='image' name='music_image' class='scorerender-image' title='Click on image to view source' alt='Music fragment' src='http://scorerender.abelcheung.org/sr-images/sr-guido-5bdce4692d949c8c140f41e8778b2a32.png' />
<input type='hidden' name='code' value='%5Bguido%5D%0D%0A%7B%20%5B%5Ctempo%26lt%3B%22Andante%20sognando%22%2Cdy%3D8%26gt%3B%0D%0A%20%20%20%5CbarFormat%26lt%3Bstyle%3D%22system%22%26gt%3B%0D%0A%20%20%5Cstaff%26lt%3B1%26gt%3B%20%5Cclef%26lt%3B%22g%22%26gt%3B%20%5Ckey%26lt%3B-5%26gt%3B%20%5Cmeter%26lt%3B%223%2F4%22%26gt%3B%0D%0A%20%20%5Ctext%26lt%3B%22dolce%22%2Cfont%3D%22Times%22%2Cfsize%3D10pt%2Cfattrib%3D%22i%22%2Cdy%3D4%2Cdx%3D0%26gt%3B%20%5Cspace%26lt%3B0%26gt%3B%0D%0A%20%20%5Ci%26lt%3B%22p%22%26gt%3B%20%5CstemsUp%20a%26amp%3B%2F2%20%5Cslur%28b%26amp%3B%2F16%20a%26amp%3B%20g%20a%26amp%3B%20%5Cbar%20d%26amp%3B2%2F8.%29%20a%26amp%3B1%2F16%20%5Cbeam%28%7Bd%26amp%3B%2F8%2C%20f%2C%20a%26amp%3B%7D%20%5Cslur%28%7Bd%26amp%3B%2C%20f%2C%20a%26amp%3B%7D%20%7Bc%2C%20e%26amp%3B%2C%20g%26amp%3B%7D%29%20%7Bb0%2C%20d1%2C%20f%7D%29%20%5D%2C%0D%0A%20%20%5B%20%5Cstaff%26lt%3B1%26gt%3B%20%5CstemsDown%20%7Be%26amp%3B%2F4%2C%20f%7D%20%7Bd%26amp%3B%2C%20f%7D%20%7Bc%2C%20e%7D%20%5Cbar%20%7Bd%26amp%3B%2C%20f%7D%20%5D%2C%0D%0A%20%20%5B%20%5Cstaff%26lt%3B2%26gt%3B%20%5Cclef%26lt%3B%22f%22%26gt%3B%20%20%5Ckey%26lt%3B-5%26gt%3B%20%5Cmeter%26lt%3B%223%2F4%22%26gt%3B%0D%0A%20%20%7Bd%26amp%3B-1%2F4%2C%20d%26amp%3B0%7D%20%7Ba%26amp%3B-1%2C%20a%26amp%3B0%7D%20%7Ba%26amp%3B-2%2C%20a%26amp%3B-1%7D%20%5Cbar%20%7Bd%26amp%3B-1%2C%20d%26amp%3B0%7D%20%7Ba%26amp%3B-1%2C%20a%26amp%3B0%7D%20%7Ba%26amp%3B-2%2C%20a%26amp%3B-1%7D%5D%0D%0A%7D%0D%0A%5B%2Fguido%5D'>
</form>
<p>Mup</p>
<form target='fragmentpopup' action='http://scorerender.abelcheung.org/wp-content/plugins/scorerender/misc/showcode.php' method='post'>
<input type='image' name='music_image' class='scorerender-image' title='Click on image to view source' alt='Music fragment' src='http://scorerender.abelcheung.org/sr-images/sr-mup-6664da9ab389afb1c57d7883ac1f07f5.png' />
<input type='hidden' name='code' value='%5Bmup%5D%0D%0A%2F%2F%21Mup-Arkkra-5.0%0D%0Ascore%0D%0Aleftmargin%20%3D%200%0D%0Arightmargin%20%3D%200%0D%0Atopmargin%20%3D%200%0D%0Abottommargin%20%3D%200%0D%0Apagewidth%20%3D%205%0D%0Alabel%20%3D%20%22%22%0D%0Ascore%0D%0Astaffs%20%3D%202%0D%0Atime%20%3D%203%2F4%0D%0Abeamstyle%20%3D%204%2C4%2C4%0D%0Akey%20%3D%205%26amp%3B%0D%0Abrace%20%3D%201-2%0D%0Abarstyle%20%3D%201-2%0D%0A%0D%0Astaff%201%0D%0Avscheme%20%3D%202o%0D%0A%0D%0Astaff%202%0D%0Aclef%20%3D%20bass%0D%0A%0D%0Amusic%0D%0Abold%20%2816%29%20above%20all%3A%200%20%5B-4%5D%20%22Andante%20sognando%22%3B%0D%0A1%201%3A%202a%3B%2016b%3B%20a%3B%20gn%3B%20a%3B%0D%0A1%202%3A%204ef%3B%20df%3B%20cen%3B%0D%0A2%3A%204d-d%3B%20a-a%3B%20a1a-%3B%0D%0Aphrase%20above%201%3A%203%20til%201m%2B1%3B%0D%0Aital%20above%201%3A%201%20%5B-2%5D%20%22dolce%22%3B%0D%0Aboldital%20%2814%29%20dyn%20between%201%26amp%3B2%3A%201%20%22p%22%3B%0D%0Abar%0D%0A%0D%0A1%201%3A%208.d%2B%20bm%3B%2016a%20ebm%3B%208dfa%20bm%3B%20d%26lt%3Bc%26gt%3Bfa%3B%20ceg%3B%20b-df%20ebm%3B%0D%0A1%202%3A%204df%3B%202s%3B%0D%0A2%3A%204d-d%3B%20a-a%3B%20a1a-%3B%0D%0Abar%0D%0A%5B%2Fmup%5D'>
</form>
<p>Lilypond</p>
<form target='fragmentpopup' action='http://scorerender.abelcheung.org/wp-content/plugins/scorerender/misc/showcode.php' method='post'>
<input type='image' name='music_image' class='scorerender-image' title='Click on image to view source' alt='Music fragment' src='http://scorerender.abelcheung.org/sr-images/sr-lilypond-eb73f160d14f204e1fe965feae3dc100.png' />
<input type='hidden' name='code' value='%5Blilypond%5D%0D%0A%5Cversion%20%222.8.1%22%0D%0A%5Cheader%20%7B%0D%0A%09tagline%3D%20%22%22%0D%0A%7D%0D%0A%5Cpaper%20%7B%0D%0A%09ragged-right%20%3D%20%23%23t%0D%0A%09indent%20%3D%200.0%5Cmm%0D%0A%09line-width%20%3D%20360%5Cpt%0D%0A%7D%0D%0A%5Clayout%20%7B%0D%0A%09%5Ccontext%20%7B%0D%0A%09%09%5CScore%0D%0A%09%09%5Cremove%20%22Bar_number_engraver%22%0D%0A%09%7D%0D%0A%7Dglobal%20%3D%20%7B%0D%0A%20%20%5Ckey%20des%20%5Cmajor%0D%0A%20%20%5Conce%20%5Coverride%20Score.RehearsalMark%20%23%27break-align-symbol%20%3D%20%23%27time-signature%0D%0A%20%20%5Conce%20%5Coverride%20Score.RehearsalMark%20%23%27self-alignment-X%20%3D%20%23-1%0D%0A%20%20%5Conce%20%5Coverride%20Score.RehearsalMark%20%23%27Y-offset%20%3D%20%232%0D%0A%20%20%5Ctime%203%2F4%0D%0A%20%20%5Cmark%20%5Cmarkup%20%7B%20%5Cbold%20%7BAndante%20sognando%7D%20%7D%0D%0A%7D%0D%0A%0D%0Arh%20%3D%20%5Crelative%20c%27%27%20%7B%0D%0A%20%20%26lt%3B%26lt%3B%0D%0A%20%20%20%20%7B%20aes2%5E%5Cmarkup%20%7B%20%5Citalic%20%7Bdolce%7D%20%7D%20bes16%28%20aes%20g%20aes%20des8.%29%20aes16%20s2%20%7D%20%5C%5C%0D%0A%20%20%20%20%7B%20%26lt%3Bees%20f%26gt%3B4%20%26lt%3Bdes%20f%26gt%3B%20%26lt%3Bc%20e%26gt%3B%20%26lt%3Bdes%20f%26gt%3B%20%5CstemUp%20%26lt%3Bdes%20f%20aes%26gt%3B8%20%26lt%3Bdes%20f%20aes%26gt%3B%28%20%26lt%3Bc%20ees%20ges%26gt%3B%29%20%26lt%3Bbes%20des%20f%26gt%3B%20%7D%0D%0A%20%20%26gt%3B%26gt%3B%0D%0A%7D%0D%0A%0D%0Alh%20%3D%20%5Crelative%20c%20%7B%0D%0A%20%20%26lt%3Bdes%20des%2C%26gt%3B4%20%26lt%3Baes%27%20aes%2C%26gt%3B%20%26lt%3Baes%2C%20aes%2C%26gt%3B%20%26lt%3Bdes%20des%2C%26gt%3B%20%26lt%3Baes%27%20aes%2C%26gt%3B%20%26lt%3Baes%2C%20aes%2C%26gt%3B%0D%0A%7D%0D%0A%0D%0Adynamics%20%3D%20%7B%0D%0A%20%20s2-%5Cmarkup%20%7B%20%5Cdynamic%20%22p%22%20%7D%0D%0A%7D%0D%0A%0D%0A%0D%0A%5Cscore%20%7B%0D%0A%20%20%5Ccontext%20PianoStaff%0D%0A%20%20%26lt%3B%26lt%3B%0D%0A%20%20%20%20%5Ccontext%20Staff%3Drh%20%7B%0D%0A%20%20%20%20%20%20%5Cclef%20treble%20%5Cglobal%20%5Crh%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20%5Ccontext%20Dynamics%3Ddynamics%20%7B%0D%0A%20%20%20%20%20%20%5Cdynamics%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20%5Ccontext%20Staff%3Dlh%20%7B%0D%0A%20%20%20%20%20%20%5Cclef%20bass%20%5Cglobal%20%5Clh%0D%0A%20%20%20%20%7D%0D%0A%20%20%26gt%3B%26gt%3B%0D%0A%0D%0A%20%20%5Clayout%20%7B%0D%0A%20%20%20%20%5Ccontext%20%7B%0D%0A%20%20%20%20%20%20%5Ctype%20%22Engraver_group%22%0D%0A%20%20%20%20%20%20%5Cname%20Dynamics%0D%0A%20%20%20%20%20%20%5Calias%20Voice%20%25%20So%20that%20%5Ccresc%20works%2C%20for%20example.%0D%0A%20%20%20%20%20%20%5Cconsists%20%22Output_property_engraver%22%0D%0A%0D%0A%20%20%20%20%20%20%5Cconsists%20%22Script_engraver%22%0D%0A%20%20%20%20%20%20%5Cconsists%20%22Dynamic_engraver%22%0D%0A%20%20%20%20%20%20%5Cconsists%20%22Text_engraver%22%0D%0A%20%20%20%20%20%20%5Cconsists%20%22Axis_group_engraver%22%0D%0A%0D%0A%20%20%20%20%20%20%5Coverride%20TextScript%20%23%27font-size%20%3D%20%231.3%0D%0A%20%20%20%20%20%20%5Coverride%20DynamicText%20%23%27font-size%20%3D%20%231.3%0D%0A%20%20%20%20%20%20%5Coverride%20TextScript%20%23%27font-shape%20%3D%20%23%27italic%0D%0A%20%20%20%20%20%20%5Coverride%20TextScript%20%23%27extra-offset%20%3D%20%23%27%280%20.%202.5%29%0D%0A%20%20%20%20%20%20%5Coverride%20DynamicText%20%23%27extra-offset%20%3D%20%23%27%280%20.%202.5%29%0D%0A%20%20%20%20%20%20%5Coverride%20Hairpin%20%23%27extra-offset%20%3D%20%23%27%280%20.%203%29%0D%0A%20%20%20%20%20%20%25override%20DynamicTextSpanner%20%23%27bound-padding%20%3D%20%230%0D%0A%20%20%20%20%20%20%5Coverride%20DynamicTextSpanner%20%23%27extra-offset%20%3D%20%23%27%280%20.%202.5%29%0D%0A%0D%0A%20%20%20%20%20%20%5Cconsists%20%22Skip_event_swallow_translator%22%0D%0A%0D%0A%20%20%20%20%20%20%5Coverride%20VerticalAxisGroup%20%23%27minimum-Y-extent%20%3D%20%23%27%28-1%20.%201%29%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20%5Ccontext%20%7B%0D%0A%20%20%20%20%20%20%5CPianoStaff%0D%0A%20%20%20%20%20%20%5Caccepts%20Dynamics%0D%0A%20%20%20%20%20%20%5Coverride%20VerticalAlignment%20%23%27forced-distance%20%3D%20%237%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%0D%0A%7D%0D%0A%5B%2Flilypond%5D'>
</form>
<p>PMW:</p>
<form target='fragmentpopup' action='http://scorerender.abelcheung.org/wp-content/plugins/scorerender/misc/showcode.php' method='post'>
<input type='image' name='music_image' class='scorerender-image' title='Click on image to view source' alt='Music fragment' src='http://scorerender.abelcheung.org/sr-images/sr-pmw-48fb592089125169299f2a6c55b2b9c8.png' />
<input type='hidden' name='code' value='%5Bpmw%5D%0D%0ASheetsize%20A3%0D%0ALinelength%20360%0D%0AMagnification%201.5%0D%0Aheading%20%22%22%0D%0Akey%20D%24%0D%0Atime%203%2F4%0D%0Abrace%0D%0Astavespacing%200%2F48%201%2F0%202%2F48%203%2F0%0D%0A%0D%0A%5Bstave%200%5D%0D%0A%22%5Cbf%5CAndante%20Sognando%22q%20Q%20%7C%20Q%21%20%7C%20%402%0D%0A%5Bendstave%5D%0D%0A%0D%0A%5Bstave%201%20treble%201%20stems%20up%5D%0D%0AA%20%5Bslur%2Fa%5D%20b%3Da%3D%25g%3Da%3D%20%7C%20%401%0D%0Ad%27-.%20%5Bes%5D%20a%3D%3B%20%28d-f-a-%29%20%5Bslur%2Fb%5D%20%28d-f-a-%29%20%28c-e-g-%29%20%5Bes%5D%20%28b%60-d-f-%29%20%7C%20%402%0D%0A%5Bendstave%5D%0D%0A%0D%0A%5Bstave%202%20treble%201%20stems%20down%5D%0D%0A%22%5Cbi%5Cp%22%2Fb%20%22%5Cit%5Cdolce%22%2Fa%20%28ef%29%20%28df%29%20%28c%25e%29%20%7C%20%28df%29%20Q%20%7C%20%402%0D%0A%5Bendstave%5D%0D%0A%0D%0A%5Bstave%203%20bass%200%5D%0D%0A%28d%60d%29%20%28a%60a%29%20%28a%60%60a%60%29%20%7C%20%28d%60d%29%20%28a%60a%29%20%28a%60%60a%60%29%20%7C%20%402%0D%0A%5Bendstave%5D%0D%0A%5B%2Fpmw%5D'>
</form>
<p>Among all notations, Lilypond takes me the most time to get positions of various dynamics and texts right. Much time is spent on Guido one too, but documentation on Guido is considerably easier to read than Lilypond&#8217;s, and much manual layout simply can&#8217;t be done by Guido <img src='http://scorerender.abelcheung.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  .</p>
<p>I have been saying that ABC notation shows promise; now I want to take back to word. It doesn&#8217;t even allow specifying text marks in arbitrary position! This is 2008, not 1988, but still. Though ABC standard version 2.0 has it, but (1) it&#8217;s a draft, and (2) which software is implementing 2.0 standard?</p>
<hr />
<p>2008-09-28 Edit: Add Philip&#8217;s Music Writer counterpart since it is recently supported.</p>
]]></content:encoded>
			<wfw:commentRss>http://scorerender.abelcheung.org/2008/08/26/all-notations-side-by-side/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
