tag:blogger.com,1999:blog-83513723342535269662024-03-05T05:16:03.857-07:00Leigh VerlagMusic Engraving - LilyPond Tips & Tutorials - Music Font DesignLeigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.comBlogger23125tag:blogger.com,1999:blog-8351372334253526966.post-78915542207671426882016-09-26T07:09:00.001-06:002016-09-26T07:09:50.460-06:00Now Open: Music Type Foundry<div style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.musictypefoundry.com/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmTWD144awb9GPWN2zkPF7dC-nrkWhqiIEqmHfgw1DYa0hoZ9YLG4Rt8EXjfdx529CRzGCH3NZyWoJci1hLwdPxqmaKLwJ-tXrKhfyS6fXEy9yd6K8umG5zpr4i1tkvfYbdLmdxNofOBHP/s200/mtf-logos-design2.png" width="200" /></a></div>
</div>
<br />
<h2>
The time has come, the wait is over! </h2>
<br />
The day has come to begin another chapter in my life. Before I do that, I just want to thank everyone for their support over that past few years. This has been a tremendous journey for me. I'd especially like to thank Urs Liska for his kindness, his generosity in sharing some server space and hosting <i>fonts.openlilylib.org</i> (which is no more) and providing so much musical expertise to myself and the music engraving community as a whole.<br />
<br />
And now, I'm very excited to announce that I have officially made the move to a brand-new web store: <a href="http://www.musictypefoundry.com/" style="font-style: italic;" target="_blank">Music Type Foundry</a>, a dedicated site to serve all my alternative music notation fonts. Each product page is full of a variety of example scores so you can get a
taste for what they look like in action in different styles of scores. The goal is to support users of all the major music scoring applications where possible (LilyPond, Sibelius, Finale, and Dorico). Not all fonts will be supported on all applications. The store is currently only providing fonts for LilyPond, but the others are in the works and I hope to have more support for the others by Q4 2016.<br />
<br />
<h2>
So what's new? </h2>
<br />
All the fonts in the store have been updated and improved in one way or another. Individual glyphs have been updated. Stylesheets have been improved. Some of them are now under commercial licenses and the name has been prefixed with "MTF" so users know the difference. I haven't uploaded ALL the fonts that were there before, though I intend to eventually.<br />
<br />
<h2>
Introducing...</h2>
<br />
I am pleased to officially announce a brand-new font: <a href="http://www.musictypefoundry.com/product/mtf-arnold/" target="_blank">MTF-Arnold</a>!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.musictypefoundry.com/wp-content/uploads/2016/04/mtf-arnold-sample-glyphs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.musictypefoundry.com/wp-content/uploads/2016/04/mtf-arnold-sample-glyphs.png" width="100%" /></a></div>
<span style="font-size: x-small;">(Image courtesy of Music Type Foundry)</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://lilypondblog.org/wp-content/uploads/2015/03/berg-ops-5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lilypondblog.org/wp-content/uploads/2015/03/berg-ops-5.png" width="100%" /></a></div>
<span style="font-size: x-small;">(An Alban Berg excerpt, engraved by Urs Liska, <a href="http://lilypondblog.org/2016/01/arnold/">lilypondblog.org</a>)</span><br />
<br />
<br />
This gorgeous 20th century revival design has all the finesse and beauty of classic Universal Edition scores. Readers of this blog can get <i><b>20% off</b></i> this fantastic font all the way through October. Just enter the code <span style="color: red;"><code>LEIGHVERLAG</code></span> at checkout to receive the discount.<br />
<br />
<h2>
What Am I Working On?</h2>
<br />
At the moment, I am hard at work--given the small amount of time I have each day for it--to make many of the current set of fonts available to Sibelius, Finale, and (future) Dorico users. This sure is helping me appreciate the SMuFL standard (thanks, Daniel Spreadbury!).<br />
<br />
One thing that I've mentioned in previous posts that I am most excited about is creating Multiple Master (MM) professional fonts (i.e., optical fonts) of each of my designs so that users get more appropriately designed/weighted glyphs for printing at smaller/larger sizes. For LilyPond, these will be at the usual standard set of staff sizes: 11, 13, 14, 16, 18, 20 (default), 23, and 26pt. For other apps, there will likely be just two sizes since they don't really support more than that (and some not even that, at least not in the same score): a standard size and an "ossia" size. The SMuFL standard supports these two sizes within the same file, but I'm not sure when any of the apps will actually be able to use them like that.<br />
<br />
I've also got some other LilyPond tips and tutorials that I hope to post here soon.<br />
<br />
If you notice anything amiss on the site--any links that are broken or missing, any instructions that aren't clear, and especially if any fonts aren't working--please don't hesitate to <a href="http://www.musictypefoundry.com/about/contact-us" target="_blank">let me know</a>. You may even get a little something in return ;-)Leigh Verlaghttp://www.blogger.com/profile/10116642109805458442noreply@blogger.com4tag:blogger.com,1999:blog-8351372334253526966.post-39482992081458845142016-04-14T10:16:00.000-06:002016-04-14T10:19:32.652-06:00A Couple of Home-grown Free PDF Utilities<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.nycmusicservices.com/musicresources_files/batchscalepdf.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/batchscalepdf.png" /></a><a href="http://www.nycmusicservices.com/musicresources_files/pdfbatchbooklet.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/pdfbatchbooklet.png" /></a></div>
<br />
So, I've been busy lately doing lots of fun things, both at home, work, and on the side. I'm working hard to get my new font site up and running, but a couple of things in particular I completed recently are two free PDF utilities that are currently being hosted by Philip Rothman of NYC Music Services: <a href="http://www.nycmusicservices.com/musicresources.html#2" target="_blank">PDF-BatchScale</a> and <a href="http://www.nycmusicservices.com/musicresources.html#3" target="_blank">PDF-BatchBooklet</a>. The are available for both Windows and Mac. I'm going to borrow some of the text/images from the download site (thanks, Philip!). If either of these sound interesting/useful to you, read on!<br />
<a name='more'></a><h2>
</h2>
<h2>
</h2>
<h2>
</h2>
<h2>
<br /></h2>
<h2>
PDF-BatchScale</h2>
<div>
<a href="http://www.nycmusicservices.com/musicresources_files/batchscalepdf.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/batchscalepdf.png" style="cursor: move;" /></a>
<br />
<br />
PDF-BatchScale PDF scales the original PDF to the specified size of the output PDF by the largest percentage possible while still fitting within the dimensions of the output PDF. The aspect ratio of the original PDF doesn’t change, so if the output page size is different than the original PDF, Batch Scale PDF will automatically add margins to the output PDF as needed.<br />
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.nycmusicservices.com/musicresources_files/stacks_image_4409.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/stacks_image_4409.png" width="100%" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Simply drag-and-drop the files into the window's file list box (or click the <b>Add</b> button),</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.nycmusicservices.com/musicresources_files/stacks_image_4426.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/stacks_image_4426.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
select any pre-configured output paper size (including a handful of common sizes used for music) or pick your own custom size,</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.nycmusicservices.com/musicresources_files/stacks_image_4428.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/stacks_image_4428.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
adjust any other output settings and click the <b>Process Files</b> button. Blink and you might miss how quickly it can churn through the files.</div>
<h2>
</h2>
<h2>
</h2>
<h2>
</h2>
<h2>
<br /></h2>
<h2>
PDF-BatchBooklet</h2>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://www.nycmusicservices.com/musicresources_files/pdfbatchbooklet.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/pdfbatchbooklet.png" /></a>
</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
This handy app creates booklets by imposing the pages for printing. The original image size is retained. For instance, it will take letter-size pages (8.5”x11”) and impose them on 17”x11” paper. It can impose the pages to make a traditional booklet to be printed double-sided, or it can also make an accordion-style booklet to be printed on single-sided paper. An option to allow half-sheets is also available.<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.nycmusicservices.com/musicresources_files/stacks_image_1724.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/stacks_image_1724.png" width="100%" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Again, drag-and-drop the files you'd like to turn into booklets into the window's list box (or click on the <b>Add</b> button),</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.nycmusicservices.com/musicresources_files/stacks_image_1713.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/stacks_image_1713.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Choose <b>Folded Booklet Order</b> to create a traditional booklet for double-sided printing.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.nycmusicservices.com/musicresources_files/stacks_image_1745.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/stacks_image_1745.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Choose <b>Allow half sheets</b> to create a double-sided insert on the same size page as the original PDF.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.nycmusicservices.com/musicresources_files/stacks_image_1759.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/stacks_image_1759.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Choose <b>Straight Page Order</b> to create an accordion-style book for single-sided printing.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.nycmusicservices.com/musicresources_files/stacks_image_1752.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/stacks_image_1752.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Choose <b>Allow half sheets</b> for the last page in an odd-numbered PDF to be created on the same size page as the original PDF.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.nycmusicservices.com/musicresources_files/stacks_image_1761.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.nycmusicservices.com/musicresources_files/stacks_image_1761.png" /></a></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Finally, adjust any other output settings and click the <b>Process Files</b> button to see how quickly this app can get through any number of files.</div>
<h2 style="clear: both; text-align: left;">
</h2>
<h2 style="clear: both; text-align: left;">
</h2>
<h2 style="clear: both; text-align: left;">
</h2>
<h2 style="clear: both; text-align: left;">
<br /></h2>
<h2 style="clear: both; text-align: left;">
(Pssst! Read this section before using the apps...)</h2>
<div style="clear: both; text-align: left;">
Now, there's one important thing to remember when using either of these two apps: they aren't bullet proof. Due to a lack of capability with the PDF library I'm using to do all this cool functionality, be aware that if any of a file's contents are encrypted and/or compressed, then you will likely get an error and the file will fail to be processed and will get skipped over. Sometimes, however, a file with encrypted/compressed contents will still get "processed" and even have an output file created, but these will also be bad files. Sometimes they are empty, sometimes they won't render correctly.</div>
<div style="clear: both; text-align: left;">
<br /></div>
<div style="clear: both; text-align: left;">
So, the take-away? <u>Decompress and decrypt your files before trying to process them.</u> This can be done quite easily with numerous free apps out there like <a href="https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/" target="_blank">PDFTK</a>, <a href="http://qpdf.sourceforge.net/" target="_blank">QPDF</a>, <a href="http://www.ghostscript.com/" target="_blank">Ghostscript</a>, or even your OS's "Save to PDF" print option.<br />
<br />
<h2>
That's it for today! </h2>
Give the apps a try! They're free, so why not? If either is useful, let me know in the comments below!</div>
<div>
</div>
Leigh Verlaghttp://www.blogger.com/profile/10116642109805458442noreply@blogger.com3tag:blogger.com,1999:blog-8351372334253526966.post-58183771044942739272015-12-15T02:07:00.000-07:002015-12-15T11:16:29.455-07:00Mimicking the Real Book Look<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfN-I8vP6qoi512QrwzQxA4IfRGizLg0l08V3K3y5hHa52U0jEB84_1v7_yeGx-ylAmIs2Q4JT-HTgcc3nWNAT010ySCzQ09ZiI2-itgVMlXdxSreBcTyhzxAs-jIJq13TTi8exEcbmRyT/s1600/real-book-cover.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfN-I8vP6qoi512QrwzQxA4IfRGizLg0l08V3K3y5hHa52U0jEB84_1v7_yeGx-ylAmIs2Q4JT-HTgcc3nWNAT010ySCzQ09ZiI2-itgVMlXdxSreBcTyhzxAs-jIJq13TTi8exEcbmRyT/s320/real-book-cover.jpg" width="265" /></a></div>
<b><i><br /></i></b>
<b><i>Stop!</i></b> If you have never heard of "Real Book" or "Fake Book", go look it up and then come back.<br />
<br />
<i>(no really, go ahead... I'll wait for you...)</i><br />
<br />
Done? Good. Now, hopefully you are more familiar with what a Real Book score looks like, so let's move forward.<br />
<a name='more'></a><br />
Basically, a "Real Book" is a compilation of any number of leadsheets of popular jazz tunes (see more details on the related <a href="https://en.wikipedia.org/wiki/Real_Book" target="_blank">Wikipedia page</a>). I've been able to acquire a handful of these Real Book volumes over the years and have always been fascinated with their fun hand-written style. Some of you are familiar with my rendition of the score "All Of Me", done in (mostly) authentic Real Book style, including the title bar. I've received numerous requests to see the source code for this score. If you aren't familiar with this particular score, click on the image below to see what all the fuss is about.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0DSEdYT1O103G_C0NOm3V6DKPOs8sYOK5SAlB-s0X5H1nhQ6vKOQP9nUmfqu9bKxY-AcJ4R-9ecqrFj26IsZpF1VHrO8adanrLUUVq3YBPwOzQ0W79KTEJyKyab7hvF-W_F94kZDEj6mE/s1600/AllOfMe.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0DSEdYT1O103G_C0NOm3V6DKPOs8sYOK5SAlB-s0X5H1nhQ6vKOQP9nUmfqu9bKxY-AcJ4R-9ecqrFj26IsZpF1VHrO8adanrLUUVq3YBPwOzQ0W79KTEJyKyab7hvF-W_F94kZDEj6mE/s320/AllOfMe.png" width="247" /></a></div>
<br />
For those of you who haven't tried to do a leadsheet or, more importantly, a Real Book leadsheet, I'm going to divulge the source code for this score so you can see how I've chosen to do it. You should notice immediately a few features that are common to Real Book scores. Here's a short list:<br />
<div>
<ul>
<li><b>In-staff title bar</b> - This is a historical artifact. The arrangers wrote down these scores by hand on regular staff paper, so they usually just used the top-most staff to show the score title, tempo, and composer.</li>
<li><b>Only one clef and time signature</b> - Unless there's a really good reason to show a clef change or change in time signature, why show it more than once? In this score, these two are only shown at the very beginning of the first system and nowhere else.</li>
<li><b>A single melody line with lyrics and chord progressions</b> - This is standard leadsheet material.</li>
</ul>
<div>
Let's work backward through these points to see how these features are accomplished.<br />
<br />
The last bullet point is the easy part. You just input the music.<br />
<br />
The second bullet point is accomplished with a couple of overrides:</div>
</div>
<blockquote class="tr_bq">
<pre id="document"><span class="lilypond-comment comment">% make only the first clef visible</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Score</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">Clef</span> <span class="scheme-scheme">#'break-visibility</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">#(</span><span class="scheme-scheme">#f</span> <span class="scheme-scheme">#f</span> <span class="scheme-scheme">#f</span><span class="scheme-delimiter">)</span>
<span class="lilypond-comment comment">% make only the first time signature visible</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Score</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">KeySignature</span> <span class="scheme-scheme">#'break-visibility</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">#(</span><span class="scheme-scheme">#f</span> <span class="scheme-scheme">#f</span> <span class="scheme-scheme">#f</span><span class="scheme-delimiter">)</span>
<span class="lilypond-comment comment">% allow single-staff system bars</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Score</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">SystemStartBar</span> <span class="scheme-scheme">#'collapse-height</span> = <span class="scheme-scheme">#</span><span class="scheme-number value">1</span></pre>
</blockquote>
These overrides can go in the score's <code>\layout</code> block, or in the global <code>\layout</code> block--it doesn't matter.<br />
<br />
The initial bullet point is the trickiest, but also the most fun. Rather than use a <i>real</i> system and force the header text inside it (because that would make a mess with bar numbers and lots of other things), we're going to use a powerful feature in LilyPond: inserting a <code>\score</code> in <code>\markup</code> mode. These markup scores behave just like a normal <code>\score</code>, but are really intended for short snippets. In our case, a single staff that spans the full width of the page. To make the usage easier, I'm going to combine a little bit of Scheme in with the <code>\markup</code> code. That way I can define the <code>title</code>, <code>tempo</code>, and <code>composer</code> text <i>outside</i> the <code>\markup</code> in a place that I can see right off. Here's the header markup definition:<br />
<blockquote class="tr_bq">
<pre id="document"><span class="lilypond-uservariable">realBookTitle</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\score</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">TextScript</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-number value">0</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">-4.5</span><span class="scheme-delimiter">)</span>
<span class="lilypond-pitch">s</span><span class="lilypond-duration">4</span>
<span class="lilypond-pitch">s</span><span class="lilypond-articulation">^</span><span class="lilypond-markup function">\markup</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\fill-line</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\fontsize</span> <span class="scheme-scheme">#</span><span class="scheme-number value">1</span> <span class="lilypond-markup function">\lower</span> <span class="scheme-scheme">#</span><span class="scheme-number value">1</span> <span class="lilypond-markup function">\rotate</span> <span class="scheme-scheme">#</span><span class="scheme-number value">7</span> <span class="lilypond-markup function">\concat</span> <span class="lilypond-delimiter keyword">{</span> <span class="lilypond-string string">" "</span> <span class="scheme-scheme">#meter</span> <span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-markup function">\fontsize</span> <span class="scheme-scheme">#</span><span class="scheme-number value">8</span>
<span class="lilypond-markup function">\override</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">offset</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">7</span><span class="scheme-delimiter">)</span>
<span class="lilypond-markup function">\override</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">thickness</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">6</span><span class="scheme-delimiter">)</span>
<span class="lilypond-markup function">\underline</span> <span class="lilypond-markup function">\sans</span> <span class="scheme-scheme">#title</span>
<span class="lilypond-markup function">\fontsize</span> <span class="scheme-scheme">#</span><span class="scheme-number value">1</span> <span class="lilypond-markup function">\lower</span> <span class="scheme-scheme">#</span><span class="scheme-number value">1</span> <span class="lilypond-markup function">\concat</span> <span class="lilypond-delimiter keyword">{</span> <span class="scheme-scheme">#composer</span> <span class="lilypond-string string">" "</span> <span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-pitch">s</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-keyword keyword">\layout</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-keyword keyword">\once</span> <span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Staff</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">Clef</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">stencil</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-keyword keyword">\once</span> <span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Staff</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">TimeSignature</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">stencil</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-keyword keyword">\once</span> <span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Staff</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">KeySignature</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">stencil</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-variable variable">ragged-right</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">TextScript</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">font-name</span> = <span class="scheme-scheme">#</span><span class="scheme-string string">"Pea Missy with a Marker"</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span></pre>
</blockquote>
This <code>realBookTitle</code> markup can be used directly in the normal <code>\header</code> block, assigned to the main <code>title</code> variable. You'll also notice that I've used a non-standard main text font called "Pea Missy with a Marker", just for fun. You can download it for free (just do a search on the name). To re-create the image above, you'll need the lilyjazz and lilyjazz-chord fonts and corresponding stylesheets mentioned below. I manually tuned the space between the title staff and the first real staff using the <code>markup-system-spacing</code> variable in the <code>\paper</code> block. Here is the full input source:<br />
<blockquote class="tr_bq">
<pre id="document"><span class="lilypond-keyword keyword">\version</span> <span class="lilypond-string string">"2.19.31"</span>
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-function function">set-global-staff-size</span> <span class="scheme-number value">18</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword">\include</span> <span class="lilypond-string string">"jazzchords.ily"</span>
<span class="lilypond-keyword keyword">\include</span> <span class="lilypond-string string">"lilyjazz.ily"</span>
<span class="lilypond-keyword keyword">\paper</span> <span class="lilypond-delimiter keyword">{</span>
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-keyword keyword">define</span> <span class="scheme-scheme">fonts</span>
<span class="scheme-delimiter">(</span><span class="scheme-scheme">set-global-fonts</span>
<span class="scheme-scheme">#:music</span> <span class="scheme-string string">"lilyjazz"</span>
<span class="scheme-scheme">#:roman</span> <span class="scheme-string string">"Pea Missy with a Marker"</span>
<span class="scheme-scheme">#:sans</span> <span class="scheme-string string">"Pea Missy with a Marker"</span>
<span class="scheme-scheme">#:factor</span> <span class="scheme-delimiter">(</span><span class="scheme-keyword keyword">/</span> <span class="scheme-scheme">staff-height</span> <span class="scheme-scheme">pt</span> <span class="scheme-number value">20</span><span class="scheme-delimiter">)))</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-keyword keyword">\paper</span> <span class="lilypond-delimiter keyword">{</span>
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-function function">set-paper-size</span> <span class="scheme-string string">"letter"</span><span class="scheme-delimiter">)</span>
<span class="lilypond-variable variable">indent</span> = <span class="lilypond-value value">0</span><span class="lilypond-command function">\mm</span>
<span class="lilypond-uservariable">between-system-space</span> = <span class="lilypond-value value">2.5</span><span class="lilypond-command function">\cm</span>
<span class="lilypond-uservariable">between-system-padding</span> = <span class="scheme-scheme">#</span><span class="scheme-number value">0</span>
<span class="lilypond-comment comment">%%set to ##t if your score is less than one page:</span>
<span class="lilypond-variable variable">ragged-last-bottom</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-variable variable">ragged-bottom</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-variable variable">markup-system-spacing</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">((</span><span class="scheme-scheme">basic-distance</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">23</span><span class="scheme-delimiter">)</span>
<span class="scheme-delimiter">(</span><span class="scheme-scheme">minimum-distance</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">8</span><span class="scheme-delimiter">)</span>
<span class="scheme-delimiter">(</span><span class="scheme-scheme">padding</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">1</span><span class="scheme-delimiter">))</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-uservariable">title</span> = <span class="scheme-scheme">#</span><span class="scheme-string string">"All Of Me"</span>
<span class="lilypond-uservariable">composer</span> = <span class="scheme-scheme">#</span><span class="scheme-string string">"-Simons & Marks"</span>
<span class="lilypond-uservariable">meter</span> = <span class="scheme-scheme">#</span><span class="scheme-string string">"(Med. Swing)"</span>
<span class="lilypond-uservariable">realBookTitle</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\score</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">TextScript</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-number value">0</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">-4.5</span><span class="scheme-delimiter">)</span>
<span class="lilypond-pitch">s</span><span class="lilypond-duration">4</span>
<span class="lilypond-pitch">s</span><span class="lilypond-articulation">^</span><span class="lilypond-markup function">\markup</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\fill-line</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\fontsize</span> <span class="scheme-scheme">#</span><span class="scheme-number value">1</span> <span class="lilypond-markup function">\lower</span> <span class="scheme-scheme">#</span><span class="scheme-number value">1</span> <span class="lilypond-markup function">\rotate</span> <span class="scheme-scheme">#</span><span class="scheme-number value">7</span> <span class="lilypond-markup function">\concat</span> <span class="lilypond-delimiter keyword">{</span> <span class="lilypond-string string">" "</span> <span class="scheme-scheme">#meter</span> <span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-markup function">\fontsize</span> <span class="scheme-scheme">#</span><span class="scheme-number value">8</span>
<span class="lilypond-markup function">\override</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">offset</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">7</span><span class="scheme-delimiter">)</span>
<span class="lilypond-markup function">\override</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">thickness</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">6</span><span class="scheme-delimiter">)</span>
<span class="lilypond-markup function">\underline</span> <span class="lilypond-markup function">\sans</span> <span class="scheme-scheme">#title</span>
<span class="lilypond-markup function">\fontsize</span> <span class="scheme-scheme">#</span><span class="scheme-number value">1</span> <span class="lilypond-markup function">\lower</span> <span class="scheme-scheme">#</span><span class="scheme-number value">1</span> <span class="lilypond-markup function">\concat</span> <span class="lilypond-delimiter keyword">{</span> <span class="scheme-scheme">#composer</span> <span class="lilypond-string string">" "</span> <span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-pitch">s</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-keyword keyword">\layout</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-keyword keyword">\once</span> <span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Staff</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">Clef</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">stencil</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-keyword keyword">\once</span> <span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Staff</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">TimeSignature</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">stencil</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-keyword keyword">\once</span> <span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Staff</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">KeySignature</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">stencil</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-variable variable">ragged-right</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">TextScript</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">font-name</span> = <span class="scheme-scheme">#</span><span class="scheme-string string">"Pea Missy with a Marker"</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-keyword keyword">\header</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-variable variable">title</span> = <span class="lilypond-usercommand variable">\realBookTitle</span>
<span class="lilypond-variable variable">tagline</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-uservariable">theNotes</span> = <span class="lilypond-command function">\relative</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">'</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-context">Staff</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-property variable">midiInstrument</span> = <span class="lilypond-string string">"flute"</span>
<span class="lilypond-command function">\key</span> <span class="lilypond-pitch">c</span> <span class="lilypond-command function">\major</span>
<span class="lilypond-usercommand variable">\showStartRepeatBar</span> <span class="lilypond-command function">\bar</span> <span class="lilypond-string string">"[|:"</span>
<span class="lilypond-repeat function">\repeat</span> <span class="lilypond-specifier variable">volta</span> <span class="lilypond-value value">2</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-pitch">c</span><span class="lilypond-octave">'</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">g</span><span class="lilypond-duration">8</span> <span class="lilypond-pitch">e</span> <span class="lilypond-slur">~</span> <span class="lilypond-pitch">e</span><span class="lilypond-duration">2</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">e</span><span class="lilypond-duration">2</span> <span class="lilypond-command function">\tuplet</span> <span class="lilypond-value value">3/2</span> <span class="lilypond-delimiter keyword">{</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">'</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">d</span> <span class="lilypond-pitch">c</span> <span class="lilypond-delimiter keyword">}</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">b</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">gis</span><span class="lilypond-duration">8</span> <span class="lilypond-pitch">e</span> <span class="lilypond-slur">~</span> <span class="lilypond-pitch">e</span><span class="lilypond-duration">2</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">e</span><span class="lilypond-duration">1</span> <span class="lilypond-check">|</span><span class="lilypond-command function">\break</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">4.</span> <span class="lilypond-pitch">g</span><span class="lilypond-duration">8</span> <span class="lilypond-pitch">e</span><span class="lilypond-duration">2</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">e</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">dis</span> <span class="lilypond-pitch">e</span><span class="lilypond-duration">8</span> <span class="lilypond-pitch">bes</span><span class="lilypond-octave">'</span> <span class="lilypond-pitch">a</span><span class="lilypond-duration">4</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">g</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">f</span><span class="lilypond-duration">2</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">f</span><span class="lilypond-duration">1</span> <span class="lilypond-check">|</span><span class="lilypond-command function">\break</span>
<span class="lilypond-pitch">e</span><span class="lilypond-duration">4.</span> <span class="lilypond-pitch">ees</span><span class="lilypond-duration">8</span> <span class="lilypond-pitch">d</span><span class="lilypond-duration">2</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">d</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">e</span><span class="lilypond-duration">8</span> <span class="lilypond-pitch">gis</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">4</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">d</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">2</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">c</span><span class="lilypond-duration">1</span> <span class="lilypond-check">|</span> <span class="lilypond-command function">\break</span>
<span class="lilypond-pitch">b</span><span class="lilypond-duration">4.</span> <span class="lilypond-pitch">bes</span><span class="lilypond-duration">8</span> <span class="lilypond-pitch">a</span><span class="lilypond-duration">2</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">a</span><span class="lilypond-duration">8</span> <span class="lilypond-pitch">d</span> <span class="lilypond-pitch">b</span><span class="lilypond-duration">4</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">1</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">b</span><span class="lilypond-duration">1</span> <span class="lilypond-command function">\bar</span> <span class="lilypond-string string">"||"</span> <span class="lilypond-command function">\break</span>
<span class="lilypond-pitch">c</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">g</span><span class="lilypond-duration">8</span> <span class="lilypond-pitch">e</span> <span class="lilypond-slur">~</span> <span class="lilypond-pitch">e</span><span class="lilypond-duration">2</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">e</span><span class="lilypond-duration">2</span> <span class="lilypond-command function">\tuplet</span> <span class="lilypond-value value">3/2</span> <span class="lilypond-delimiter keyword">{</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">'</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">d</span> <span class="lilypond-pitch">c</span> <span class="lilypond-delimiter keyword">}</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">b</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">gis</span><span class="lilypond-duration">8</span> <span class="lilypond-pitch">e</span> <span class="lilypond-slur">~</span> <span class="lilypond-pitch">e</span><span class="lilypond-duration">2</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">e</span><span class="lilypond-duration">1</span> <span class="lilypond-check">|</span> <span class="lilypond-command function">\break</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">4.</span> <span class="lilypond-pitch">g</span><span class="lilypond-duration">8</span> <span class="lilypond-pitch">e</span><span class="lilypond-duration">2</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">e</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">dis</span> <span class="lilypond-pitch">e</span><span class="lilypond-duration">8</span> <span class="lilypond-pitch">bes</span><span class="lilypond-octave">'</span> <span class="lilypond-pitch">a</span><span class="lilypond-duration">4</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">g</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">f</span><span class="lilypond-duration">2</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">f</span><span class="lilypond-duration">1</span> <span class="lilypond-check">|</span> <span class="lilypond-command function">\break</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-command function">\alternative</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-pitch">d</span><span class="lilypond-octave">'</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">b</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">d</span><span class="lilypond-duration">2.</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">4</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">b</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">e</span><span class="lilypond-octave">,</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">g</span><span class="lilypond-duration">4</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">b</span><span class="lilypond-duration">2.</span> <span class="lilypond-pitch">a</span><span class="lilypond-duration">4</span> <span class="lilypond-check">|</span> <span class="lilypond-command function">\break</span>
<span class="lilypond-pitch">c</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">a</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">c</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">e</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">e</span><span class="lilypond-duration">2</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">c</span><span class="lilypond-duration">1</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">c</span><span class="lilypond-duration">1</span> <span class="lilypond-command function">\bar</span> <span class="lilypond-string string">":|][|:"</span> <span class="lilypond-command function">\break</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-pitch">d</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">b</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">d</span><span class="lilypond-duration">2.</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">4</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">b</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">e</span><span class="lilypond-octave">,</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">g</span><span class="lilypond-duration">4</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">b</span><span class="lilypond-duration">2.</span> <span class="lilypond-pitch">a</span><span class="lilypond-duration">4</span> <span class="lilypond-check">|</span> <span class="lilypond-command function">\break</span>
<span class="lilypond-pitch">c</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">a</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">c</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">e</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">e</span><span class="lilypond-duration">2</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">c</span><span class="lilypond-duration">1</span> <span class="lilypond-slur">~</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">c</span><span class="lilypond-duration">1</span> <span class="lilypond-command function">\bar</span> <span class="lilypond-string string">":|]"</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-uservariable">theChords</span> = <span class="lilypond-command function">\chordmode</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-repeat function">\repeat</span> <span class="lilypond-specifier variable">volta</span> <span class="lilypond-value value">2</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-pitch">c</span><span class="lilypond-duration">1</span><span class="lilypond-chord">:maj</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">1</span><span class="lilypond-chord">:maj</span> <span class="lilypond-pitch">e</span><span class="lilypond-chord">:7</span> <span class="lilypond-pitch">e</span><span class="lilypond-chord">:7</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">a</span><span class="lilypond-chord">:7</span> <span class="lilypond-pitch">a</span><span class="lilypond-chord">:7</span> <span class="lilypond-pitch">d</span><span class="lilypond-chord">:m7</span> <span class="lilypond-pitch">d</span><span class="lilypond-chord">:m7</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">e</span><span class="lilypond-chord">:7</span> <span class="lilypond-pitch">e</span><span class="lilypond-chord">:7</span> <span class="lilypond-pitch">a</span><span class="lilypond-chord">:m7</span> <span class="lilypond-pitch">a</span><span class="lilypond-chord">:m7</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">d</span><span class="lilypond-chord">:7</span> <span class="lilypond-pitch">d</span><span class="lilypond-chord">:7</span> <span class="lilypond-pitch">d</span><span class="lilypond-chord">:m7</span> <span class="lilypond-pitch">g</span><span class="lilypond-chord">:7</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">c</span><span class="lilypond-duration">1</span><span class="lilypond-chord">:maj</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">1</span><span class="lilypond-chord">:maj</span> <span class="lilypond-pitch">e</span><span class="lilypond-chord">:7</span> <span class="lilypond-pitch">e</span><span class="lilypond-chord">:7</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">a</span><span class="lilypond-chord">:7</span> <span class="lilypond-pitch">a</span><span class="lilypond-chord">:7</span> <span class="lilypond-pitch">d</span><span class="lilypond-chord">:m7</span> <span class="lilypond-pitch">d</span><span class="lilypond-chord">:m7</span> <span class="lilypond-check">|</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-command function">\alternative</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-pitch">f</span><span class="lilypond-duration">1</span> <span class="lilypond-pitch">f</span><span class="lilypond-chord">:m</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">2</span><span class="lilypond-chord">:maj</span> <span class="lilypond-pitch">e</span><span class="lilypond-chord">:m7</span> <span class="lilypond-pitch">a</span><span class="lilypond-duration">1</span><span class="lilypond-chord">:7</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">d</span><span class="lilypond-chord">:m7</span> <span class="lilypond-pitch">g</span><span class="lilypond-chord">:7</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">2</span><span class="lilypond-chord">:6</span> <span class="lilypond-pitch">ees</span><span class="lilypond-chord">:dim</span> <span class="lilypond-pitch">d</span><span class="lilypond-duration">2</span><span class="lilypond-chord">:m7</span> <span class="lilypond-pitch">g</span><span class="lilypond-chord">:7</span> <span class="lilypond-check">|</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-pitch">f</span><span class="lilypond-duration">1</span> <span class="lilypond-pitch">f</span><span class="lilypond-chord">:m</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">2</span><span class="lilypond-chord">:maj</span> <span class="lilypond-pitch">e</span><span class="lilypond-chord">:m7</span> <span class="lilypond-pitch">a</span><span class="lilypond-duration">1</span><span class="lilypond-chord">:7</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">d</span><span class="lilypond-chord">:m7</span> <span class="lilypond-pitch">g</span><span class="lilypond-chord">:7</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">1</span><span class="lilypond-chord">:6</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration">1</span><span class="lilypond-chord">:6</span> <span class="lilypond-check">|</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-uservariable">theWords</span> = <span class="lilypond-lyricmode function">\lyricmode</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-repeat function">\repeat</span> <span class="lilypond-string string">"volta"</span> <span class="lilypond-value value">2</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-lyrictext">All</span> <span class="lilypond-lyrictext">of</span> <span class="lilypond-lyrictext">me</span>
<span class="lilypond-lyrictext">Why</span> <span class="lilypond-lyrictext">not</span> <span class="lilypond-lyrictext">take</span> <span class="lilypond-lyrictext">all</span> <span class="lilypond-lyrictext">of</span> <span class="lilypond-lyrictext">me</span>
<span class="lilypond-lyrictext">Can't</span> <span class="lilypond-lyrictext">you</span> <span class="lilypond-lyrictext">see</span>
<span class="lilypond-lyrictext">I'm</span> <span class="lilypond-lyrictext">no</span> <span class="lilypond-lyrictext">good</span> <span class="lilypond-lyrictext">with</span> <span class="lilypond-lyrictext">--</span> <span class="lilypond-lyrictext">out</span> <span class="lilypond-lyrictext">you</span>
<span class="lilypond-lyrictext">Take</span> <span class="lilypond-lyrictext">my</span> <span class="lilypond-lyrictext">lips</span>
<span class="lilypond-lyrictext">I</span> <span class="lilypond-lyrictext">want</span> <span class="lilypond-lyrictext">to</span> <span class="lilypond-lyrictext">lose</span> <span class="lilypond-lyrictext">them</span>
<span class="lilypond-lyrictext">Take</span> <span class="lilypond-lyrictext">my</span> <span class="lilypond-lyrictext">arms</span>
<span class="lilypond-lyrictext">I</span> <span class="lilypond-lyrictext">ne</span> <span class="lilypond-lyrictext">--</span> <span class="lilypond-lyrictext">ver</span> <span class="lilypond-lyrictext">use</span> <span class="lilypond-lyrictext">them</span>
<span class="lilypond-lyrictext">Your</span> <span class="lilypond-lyrictext">Good</span> <span class="lilypond-lyrictext">--</span> <span class="lilypond-lyrictext">bye</span>
<span class="lilypond-lyrictext">Left</span> <span class="lilypond-lyrictext">me</span> <span class="lilypond-lyrictext">with</span> <span class="lilypond-lyrictext">eyes</span> <span class="lilypond-lyrictext">that</span> <span class="lilypond-lyrictext">cry</span>
<span class="lilypond-lyrictext">How</span> <span class="lilypond-lyrictext">can</span> <span class="lilypond-lyrictext">I</span> <span class="lilypond-lyrictext">go</span> <span class="lilypond-lyrictext">on</span> <span class="lilypond-lyrictext">dear</span> <span class="lilypond-lyrictext">with</span> <span class="lilypond-lyrictext">--</span> <span class="lilypond-lyrictext">out</span> <span class="lilypond-lyrictext">you</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-command function">\alternative</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-lyrictext">You</span> <span class="lilypond-lyrictext">took</span> <span class="lilypond-lyrictext">the</span> <span class="lilypond-lyrictext">part</span>
<span class="lilypond-lyrictext">That</span> <span class="lilypond-lyrictext">once</span> <span class="lilypond-lyrictext">was</span> <span class="lilypond-lyrictext">my</span> <span class="lilypond-lyrictext">heart</span>
<span class="lilypond-lyrictext">So</span> <span class="lilypond-lyrictext">why</span> <span class="lilypond-lyrictext">not</span> <span class="lilypond-lyrictext">take</span> <span class="lilypond-lyrictext">all</span> <span class="lilypond-lyrictext">of</span> <span class="lilypond-lyrictext">me</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-lyrictext">You</span> <span class="lilypond-lyrictext">took</span> <span class="lilypond-lyrictext">the</span> <span class="lilypond-lyrictext">best</span>
<span class="lilypond-lyrictext">So</span> <span class="lilypond-lyrictext">why</span> <span class="lilypond-lyrictext">not</span> <span class="lilypond-lyrictext">take</span> <span class="lilypond-lyrictext">the</span> <span class="lilypond-lyrictext">rest</span>
<span class="lilypond-lyrictext">Ba</span> <span class="lilypond-lyrictext">--</span> <span class="lilypond-lyrictext">by</span> <span class="lilypond-lyrictext">take</span> <span class="lilypond-lyrictext">all</span> <span class="lilypond-lyrictext">of</span> <span class="lilypond-lyrictext">me.</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-keyword keyword">\score</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-delimiter keyword"><<</span>
<span class="lilypond-command function">\new</span> <span class="lilypond-context">ChordNames</span> <span class="lilypond-usercommand variable">\theChords</span>
<span class="lilypond-command function">\new</span> <span class="lilypond-context">Voice</span> = <span class="lilypond-uservariable">vocals</span> <span class="lilypond-usercommand variable">\theNotes</span>
<span class="lilypond-command function">\new</span> <span class="lilypond-context">Lyrics</span> <span class="lilypond-lyricmode function">\lyricsto</span> <span class="lilypond-uservariable">vocals</span> <span class="lilypond-usercommand variable">\theWords</span>
<span class="lilypond-delimiter keyword">>></span>
<span class="lilypond-keyword keyword">\layout</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-comment comment">% make only the first clef visible</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Score</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">Clef</span> <span class="scheme-scheme">#'break-visibility</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">#(</span><span class="scheme-scheme">#f</span> <span class="scheme-scheme">#f</span> <span class="scheme-scheme">#f</span><span class="scheme-delimiter">)</span>
<span class="lilypond-comment comment">% make only the first time signature visible</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Score</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">KeySignature</span> <span class="scheme-scheme">#'break-visibility</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">#(</span><span class="scheme-scheme">#f</span> <span class="scheme-scheme">#f</span> <span class="scheme-scheme">#f</span><span class="scheme-delimiter">)</span>
<span class="lilypond-comment comment">% allow single-staff system bars</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Score</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">SystemStartBar</span> <span class="scheme-scheme">#'collapse-height</span> = <span class="scheme-scheme">#</span><span class="scheme-number value">1</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">LyricHyphen</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">thickness</span> = <span class="scheme-scheme">#</span><span class="scheme-number value">4</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-context">Score</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-grob">VoltaBracket</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">font-name</span> = <span class="scheme-scheme">#</span><span class="scheme-string string">"Pea Missy with a Marker"</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-keyword keyword">\midi</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-command function">\tempo</span> <span class="lilypond-duration">4</span> = <span class="lilypond-value value">88</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span></pre>
</blockquote>
That's it for today! Let me know if I left anything out. Hopefully this tutorial brings lots of inspiration to you. If you happen to create your own leadsheet in the "Real Book" fashion, please let me know in the comments below! I'm sure others would be interested to see them too. Happy Engraving!Leigh Verlaghttp://www.blogger.com/profile/10116642109805458442noreply@blogger.com9tag:blogger.com,1999:blog-8351372334253526966.post-78283823096626448582015-12-08T23:10:00.000-07:002015-12-09T23:21:06.696-07:00A Small Holiday GiftSo, I've not been able to keep this blog as up-to-date as I'd like to. To remedy that a little, here's a small holiday gift to you. This gift was originally given by Mark Adler on the Finale Blog, but since he offered it freely, I decided to pass it along, with a little extra for all the LilyPond users out there.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx7V3ps41ZcP72qh_eQ4TX8rvDa3PbN-yhbJQ3g10Wydb57e21ZhnjZOEnt1NjCU9n7gXKKg6qtp-NP8btrB8syTIE9wT_4nANpuWrhDfoJzVCqSh6JDVVhux2io26XA-cbdM7IqrQpzqu/s1600/FinaleMisc.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="145" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx7V3ps41ZcP72qh_eQ4TX8rvDa3PbN-yhbJQ3g10Wydb57e21ZhnjZOEnt1NjCU9n7gXKKg6qtp-NP8btrB8syTIE9wT_4nANpuWrhDfoJzVCqSh6JDVVhux2io26XA-cbdM7IqrQpzqu/s640/FinaleMisc.png" width="640" /></a></div>
<br />
<a name='more'></a>
<br />
Mark has created a font that has some fun clefs, noteheads, and rehearsal marks (which you should download <a href="http://finalemusic.com/wp-content/uploads/2015/12/FinaleMisc.zip" target="_blank">here</a>). I especially like the candy-cane clefs and jingle bell noteheads. Here is the full glyph set contained in the font (click to zoom-in):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAq2GZRhx7G8n9H9Rw4LoPtuADGa0kegdmH3ao4C1dUes3AsRbXZpNyK8n2tc5-d_E7B9r0Suczc7QZtLO5b-5hbDpUpJztbs4aYDjphKcgTv6S27BGtoAluWz0rFyuyWsQyo7-ZCURinU/s1600/FinaleMisc-Music-Font-all-glyphs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAq2GZRhx7G8n9H9Rw4LoPtuADGa0kegdmH3ao4C1dUes3AsRbXZpNyK8n2tc5-d_E7B9r0Suczc7QZtLO5b-5hbDpUpJztbs4aYDjphKcgTv6S27BGtoAluWz0rFyuyWsQyo7-ZCURinU/s400/FinaleMisc-Music-Font-all-glyphs.png" width="400" /></a></div>
<br />
If you look closely, you'll notice a couple of things, like both rehearsal marks for "J" are not in their correct code point and thus all the other glyphs have been shifted left one code point in the font table. Mark explains the reasoning this way:<br />
<blockquote class="tr_bq">
<i><span style="font-family: "georgia" , "times new roman" , serif;">Traditionally, because “I” and “J” are easily confused, “J” is never used. If your heart is set on “J”, I have included it elsewhere in the font, just not in the rehearsal letter sequence.</span></i></blockquote>
This seems to go against what is documented in LilyPond's NR:<br />
<blockquote class="tr_bq">
<i><span style="font-family: "georgia" , "times new roman" , serif;">The letter ‘I’ is skipped in accordance with engraving traditions.</span></i></blockquote>
Whatever. I'm not sure what to believe, so if you have experience in this regard, leave a comment below (thanks!). Other things to note are the boxed rehearsal marks are in the upper-case letters and the ball ornament rehearsal marks are in the lower-case letters (which currently isn't supported in the list of rehearsal mark formatters). Anyone want to tackle adding a formatter that allows lower-case letters? Let me know ;-)<br />
<br />
Now, to use the font in LilyPond, I borrowed some of Nathan Ho's early code for using SMuFL fonts (which you can read about <a href="http://lilypondblog.org/2014/01/smufl-fonts-in-lilypond/" target="_blank">here</a>) and adapted it for Mark's font. Once you've downloaded the "FinaleMisc.ily" stylesheet (get it <code><a href="https://www.dropbox.com/s/w1wqhlyzvq3ihnr/FinaleMisc.ily?dl=1" target="_blank">here</a></code>), then you only need to add a couple of lines to your input file to utilize any of Mark's designs in your own scores. Here's the code I used to create the first four bars of "Jingle Bells" above:<br />
<blockquote class="tr_bq">
<pre id="document"><span class="lilypond-keyword keyword">\version</span> <span class="lilypond-string string">"2.19.31"</span>
<span class="lilypond-keyword keyword">\include</span> <span class="lilypond-string string">"FinaleMisc.ily"</span>
<span class="lilypond-uservariable">pianoStruct</span> = <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-usercommand variable">\christmasStyleOn</span>
<span class="lilypond-command function">\key</span> <span class="lilypond-pitch">f</span> <span class="lilypond-command function">\major</span>
<span class="lilypond-command function">\time</span> <span class="lilypond-value value">4/4</span> <span class="lilypond-command function">\numericTimeSignature</span>
<span class="lilypond-pitch">s</span><span class="lilypond-duration">1</span> <span class="lilypond-check">|</span>
<span class="lilypond-usercommand variable">\engraverClefOn</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-context">Staff</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-property variable">forceClef</span> = <span class="scheme-scheme">##t</span>
<span class="lilypond-pitch">s</span><span class="lilypond-duration">1</span> <span class="lilypond-check">|</span>
<span class="lilypond-usercommand variable">\splitClefOn</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-context">Staff</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-property variable">forceClef</span> = <span class="scheme-scheme">##t</span>
<span class="lilypond-pitch">s</span><span class="lilypond-duration">1</span> <span class="lilypond-check">|</span>
<span class="lilypond-usercommand variable">\polygonClefOn</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-context">Staff</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-property variable">forceClef</span> = <span class="scheme-scheme">##t</span>
<span class="lilypond-pitch">s</span><span class="lilypond-duration">1</span> <span class="lilypond-check">|</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-uservariable">pianoRH</span> = <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-command function">\clef</span> <span class="lilypond-specifier variable">treble</span>
<span class="lilypond-pitch">a</span><span class="lilypond-octave">'</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">a</span><span class="lilypond-octave">'</span> <span class="lilypond-pitch">a</span><span class="lilypond-octave">'</span><span class="lilypond-duration">2</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">a</span><span class="lilypond-octave">'</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">a</span><span class="lilypond-octave">'</span> <span class="lilypond-pitch">a</span><span class="lilypond-octave">'</span><span class="lilypond-duration">2</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">a</span><span class="lilypond-octave">'</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">''</span> <span class="lilypond-pitch">f</span><span class="lilypond-octave">'</span> <span class="lilypond-pitch">g</span><span class="lilypond-octave">'</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">a</span><span class="lilypond-octave">'</span><span class="lilypond-duration">1</span> <span class="lilypond-check">|</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-uservariable">pianoLH</span> = <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-command function">\clef</span> <span class="lilypond-specifier variable">bass</span>
<span class="lilypond-pitch">f</span><span class="lilypond-octave">,</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">a</span><span class="lilypond-octave">,</span> <span class="lilypond-pitch">c</span> <span class="lilypond-pitch">f</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">f</span> <span class="lilypond-pitch">c</span> <span class="lilypond-pitch">e</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">f</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">c</span> <span class="lilypond-pitch">d</span> <span class="lilypond-pitch">e</span> <span class="lilypond-check">|</span>
<span class="lilypond-pitch">f</span><span class="lilypond-duration">4</span> <span class="lilypond-pitch">e</span> <span class="lilypond-pitch">d</span> <span class="lilypond-pitch">c</span> <span class="lilypond-check">|</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-keyword keyword">\score</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-command function">\new</span> <span class="lilypond-context">PianoStaff</span> <span class="lilypond-delimiter keyword"><<</span>
<span class="lilypond-command function">\new</span> <span class="lilypond-context">Staff</span> <span class="lilypond-delimiter keyword"><<</span> <span class="lilypond-usercommand variable">\pianoStruct</span> <span class="lilypond-usercommand variable">\pianoRH</span> <span class="lilypond-delimiter keyword">>></span>
<span class="lilypond-command function">\new</span> <span class="lilypond-context">Staff</span> <span class="lilypond-delimiter keyword"><<</span> <span class="lilypond-usercommand variable">\pianoStruct</span> <span class="lilypond-usercommand variable">\pianoLH</span> <span class="lilypond-delimiter keyword">>></span>
<span class="lilypond-delimiter keyword">>></span>
<span class="lilypond-keyword keyword">\layout</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-variable variable">indent</span> = <span class="lilypond-value value">0</span>
<span class="lilypond-variable variable">ragged-right</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-variable variable">line-width</span> = <span class="lilypond-value value">5</span><span class="lilypond-command function">\in</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-keyword keyword">\midi</span> <span class="lilypond-delimiter keyword">{</span> <span class="lilypond-command function">\tempo</span> <span class="lilypond-duration">4</span> = <span class="lilypond-value value">180</span> <span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span></pre>
</blockquote>
In this example, the first line you need to add is<br />
<blockquote class="tr_bq">
<pre id="document"><span class="lilypond-keyword keyword">\include</span> <span class="lilypond-string string">"FinaleMisc.ily"</span></pre>
</blockquote>
which makes all the necessary commands available. After that, you'll notice a handful of commands:<br />
<ul>
<li><code>\christmasStyleOn</code></li>
<li><code>\engraverClefOn</code></li>
<li><code>\splitClefOn</code></li>
<li><code>\polygonClefOn</code></li>
</ul>
<div>
These can occur inline with the music content or in a <code>\layout</code> block. Each of these commands have their "Off" counterparts to annul the overrides that the "On" commands invoke. Here's a complete list of commands that are included in "FinaleMisc.ily":</div>
<div>
<ul>
<li><code>\candyCaneClefOn / ...Off</code> - treble, alto, and bass clefs</li>
<li><code>\engraverClefOn / ...Off</code> - treble, alto, and bass clefs</li>
<li><code>\splitClefOn / ...Off</code> - treble and bass clefs (no alto clef)</li>
<li><code>\polygonClefOn / ...Off</code> - treble, alto, and bass clefs</li>
<li><code>\holidayNotesOn / ...Off</code> - holiday bell noteheads</li>
<li><code>\christmasStyleOn / ...Off</code> - shortcut to use candycane clefs and bell noteheads</li>
</ul>
<div>
So there you go. Now you can spice up your holiday scores with candy canes and silver bells. To that end, here's my small Christmas gift to all the beginning piano players out there (like my daughter) which shows how a full score might look using Mark's font (click on image to download printable PDF):</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.dropbox.com/s/0r9pxxtr6c0r2vz/jingle-bells.pdf?dl=1" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Jingle Bells by Leigh Verlag" border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwaix8vBIyeQfxeL7OOjlMiMjaoc9PD9K_bn01UP1bJXMGxz7XnUmDsDKG2gLMGxZ3FcAs1AGlC2ubjg5KECFkboRUdC_i93Bjfo3_eAzq8WWbnPNQvWobTVk1XIEvmgaxBvIlHjDJNUbi/s400/jingle-bells-thumbnail.png" title="" width="306" /></a></div>
<div>
<br /></div>
<div>
<div style="text-align: center;">
<b><i><span style="color: #38761d;">M</span><span style="color: #cc0000;">e</span><span style="color: #38761d;">r</span><span style="color: #cc0000;">r</span><span style="color: #38761d;">y</span> <span style="color: #cc0000;">C</span><span style="color: #38761d;">h</span><span style="color: #cc0000;">r</span><span style="color: #38761d;">i</span><span style="color: #cc0000;">s</span><span style="color: #38761d;">t</span><span style="color: #cc0000;">m</span><span style="color: #38761d;">a</span><span style="color: #cc0000;">s</span> <span style="color: #38761d;">&</span> <span style="color: #cc0000;">H</span><span style="color: #38761d;">a</span><span style="color: #cc0000;">p</span><span style="color: #38761d;">p</span><span style="color: #cc0000;">y</span> <span style="color: #38761d;">E</span><span style="color: #cc0000;">n</span><span style="color: #38761d;">g</span><span style="color: #cc0000;">r</span><span style="color: #38761d;">a</span><span style="color: #cc0000;">v</span><span style="color: #38761d;">i</span><span style="color: #cc0000;">n</span><span style="color: #38761d;">g</span><span style="color: #cc0000;">!</span></i></b></div>
</div>
</div>
Leigh Verlaghttp://www.blogger.com/profile/10116642109805458442noreply@blogger.com2tag:blogger.com,1999:blog-8351372334253526966.post-57822711863909902822015-09-10T11:43:00.000-06:002015-12-09T23:22:30.100-07:00Gorgeous Plate Engraving PicsIn a <a href="https://www.facebook.com/baerenreiter/posts/909780449100403" target="_blank">Facebook post</a> today from Bärenreiter-Verlag, they shared some images of the good-ol'-days of real plate engraving that I think any modern computer music engraver/copyist/etc. will appreciate. I know I do. This comes from the golden-era of music publishing, folks! I share them here for long-term enjoyment just in case the above post/pictures disappear from Facebook. <a name='more'></a> I quote from their post (click on the pictures below to see all the lovely details):<br />
<div style="margin: 30px;padding: 15px;border: 1px solid #aaa; border-radius: 6px;background-color: #def;">
<i>What you might not have known ... until today</i><br />
<br />
<i>Do you know what the first photograph is showing? It is a 30 year old printing plate from the “New Mozart Edition” with the start of the “Sanctus” from the “Mass in C minor K. 427”. And the photograph is not deliberately back-to-front!</i><br /><br />
<i>Since the start of the 18th century, the old craft of printing sheet music used heavy, soft printing plates into which all signs and lines were hammered or drawn by hand using stamps and blades. But before this could take place, with the aid of a manuscript or a template, one had to determine how many bars could fit on a page, how large the gap between the staves could be and where there should be a page turn. Of course, in terms of spacing the last page had to be just as balanced as the first page. You have to remember that unlike with books, all of these parameters (which we would describe as layout nowadays) change constantly in musical notation. And so that musicians did not have any nasty surprises, the engraver had to create a mirrored image of the music by aligning it right to left. Little mistakes could be hammered out of the back of the plate but woe betide if there were larger mistakes. Then, new plates had to be made.</i><br />
<br />
<i>Right up until the late 20th century, this procedure was used more or less unchanged and was only replaced when computer music notation came into being. But the craftsmanship, perseverance and attention to detail which were needed in order to produce a large scale complex score such as Berlioz’ “Symphonie fantastique” still astonish us today!</i><br />
<br />
<i>*********************************</i><br />
<br />
<i>Erkennen Sie, was auf dem Foto zu sehen ist? Das ist eine 30 Jahre alte Druckplatte der Neuen Mozart-Ausgabe mit dem Beginn des Sanctus aus der c-Moll-Messe (KV 427). Das Foto ist übrigens nicht aus Versehen gespiegelt!</i><br />
<br />
<i>Das jahrhundertealte Handwerk des Notendrucks benutzte seit dem 18. Jahrhundert schwere, weiche Druckplatten, in die mit Stempeln und Klingen alle Zeichen und Linien von Hand eingeschlagen oder gezogen wurden. Vorher wurde mit Hilfe eines Manuskripts oder einer Stichvorlage festgelegt, wie viele Takte auf einer Seite angelegt werden, welcher Abstand zwischen den Systemen optimal ist und wo ein Umbruch gesetzt wird - und die letzte Seite musste in ihrer Taktanzahl natürlich genauso ausgewogen sein wie die erste; denn im Unterschied zu einem Buch wechseln solche Parameter, die wir heute als Layout bezeichnen würden, in der Notation von Musik mitunter viel häufiger. Und damit die Musiker keine bösen Überraschungen erlebten, musste der Notenstecher die Musik auf der Druckplatte natürlich spiegelverkehrt von rechts nach links ausrichten. Kleinere Fehler wurden auf der Rückseite der Platte wieder ausgeklopft, bei größeren Änderungen mussten die Platten neu angefertigt werden.</i><br />
<br />
<i>Bis in das späte 20. Jahrhundert wurde dieses Verfahren mehr oder weniger unverändert angewandt, bis es schließlich durch modernen Notensatz am Computer ersetzt wurde. Die benötigte Kunstfertigkeit und Ausdauer, um eine komplexe Partitur wie die Symphonie fantastique von Hector Berlioz anzufertigen, versetzen uns aber auch noch heute in Staunen.</i></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDkJy-pxLWY0EOoyCYDEl1gDdUC4yCOu2VzRQoSrNpModTdBa4-CVEPLZ458E0guQdkLdKeXkY-to7neGEmgG_CDqhgHcdmqZq3D19vgv4-rsgt56DmTDDirwz5gJPlJWkde8wuFdlhV3h/s1600/barenreiter-plate-engraving-mozart-sanctus-mass-in-C-minor-K.427.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDkJy-pxLWY0EOoyCYDEl1gDdUC4yCOu2VzRQoSrNpModTdBa4-CVEPLZ458E0guQdkLdKeXkY-to7neGEmgG_CDqhgHcdmqZq3D19vgv4-rsgt56DmTDDirwz5gJPlJWkde8wuFdlhV3h/s640/barenreiter-plate-engraving-mozart-sanctus-mass-in-C-minor-K.427.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlgnTwZ57tG9y5iHE9g8yIwKh0TXxZlG4Tkkcz38uYJrWU3aFHaRz4Rq7yo2Ui0lhyphenhyphenBVR54zajOR2qGh_ddv5J3i0Tjrkd7rj56DVuOapk3kphDkqtGLIN0d48whVF2m_voqeHhDOHSB_P/s1600/barenreiter-plate-engraving-tools-and-plate.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="476" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlgnTwZ57tG9y5iHE9g8yIwKh0TXxZlG4Tkkcz38uYJrWU3aFHaRz4Rq7yo2Ui0lhyphenhyphenBVR54zajOR2qGh_ddv5J3i0Tjrkd7rj56DVuOapk3kphDkqtGLIN0d48whVF2m_voqeHhDOHSB_P/s640/barenreiter-plate-engraving-tools-and-plate.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjopC2dyfxxa7H_XbwOEt0TpuG1-j0ToNc5vKL0eI9Pu_f-SNc1VSQmUVr2v8n_bgbVS1yxG5qppCPzjsJFuWOk8xIRMDi_vjMyeneoqZ27b_0jo2qp6KRSqoN4-JdMfYCfz9KbZnGJn5tj/s1600/barenreiter-plate-engraving-scoring-a-plate.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="476" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjopC2dyfxxa7H_XbwOEt0TpuG1-j0ToNc5vKL0eI9Pu_f-SNc1VSQmUVr2v8n_bgbVS1yxG5qppCPzjsJFuWOk8xIRMDi_vjMyeneoqZ27b_0jo2qp6KRSqoN4-JdMfYCfz9KbZnGJn5tj/s640/barenreiter-plate-engraving-scoring-a-plate.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM72buAxNK6QYPsr2ASmwhnPY8YnWcY79pfTMuFhZghUmyk2Fbp2Ps0Rx9ACRHJxD1aKQ-odwUhm0iqfuMjsNnNAX-1mLG-PtSkueriKcOqKqTKHLebXNX1kqUl0kOpdGkCigJvRFmRQIo/s1600/barenreiter-plate-engraving-engraving-a-beam.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM72buAxNK6QYPsr2ASmwhnPY8YnWcY79pfTMuFhZghUmyk2Fbp2Ps0Rx9ACRHJxD1aKQ-odwUhm0iqfuMjsNnNAX-1mLG-PtSkueriKcOqKqTKHLebXNX1kqUl0kOpdGkCigJvRFmRQIo/s640/barenreiter-plate-engraving-engraving-a-beam.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh78a5qQZ82jHTvivfIEBh4thrqdtMdJeRKfCp31__8I-Xez5kRRt-pMIvLzv6ZE9kfRL0h8m-KIMYdKIIO0cOiRtELEN2ve9aFafMAUQrRIJcHL88goadVvGQuM0Ldl788cQhjV7uTKmyE/s1600/barenreiter-plate-engraving-punch-set.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="476" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh78a5qQZ82jHTvivfIEBh4thrqdtMdJeRKfCp31__8I-Xez5kRRt-pMIvLzv6ZE9kfRL0h8m-KIMYdKIIO0cOiRtELEN2ve9aFafMAUQrRIJcHL88goadVvGQuM0Ldl788cQhjV7uTKmyE/s640/barenreiter-plate-engraving-punch-set.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijpJY70PEBb9pqsz9ZpTIq2r6M3s-3nnj4UNcCvi50xBlcHnMqxlFG0jmdmgCtK2JRvuEbT_TGB1zlUY7fUBrbDMWz1qzfwL8Ma880vrmzzWj6qpvMCuoDWXkceMaSoczhLnno_pkF9GTa/s1600/barenreiter-plate-engraving-engraving-a-slur.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijpJY70PEBb9pqsz9ZpTIq2r6M3s-3nnj4UNcCvi50xBlcHnMqxlFG0jmdmgCtK2JRvuEbT_TGB1zlUY7fUBrbDMWz1qzfwL8Ma880vrmzzWj6qpvMCuoDWXkceMaSoczhLnno_pkF9GTa/s640/barenreiter-plate-engraving-engraving-a-slur.jpg" width="640" /></a></div>
<br />Leigh Verlaghttp://www.blogger.com/profile/10116642109805458442noreply@blogger.com0tag:blogger.com,1999:blog-8351372334253526966.post-62625523944045120972015-07-06T17:51:00.000-06:002015-12-09T23:23:16.325-07:00Quick Summer 2015 UpdateIt seems like I've been out of the loop for too long, so I thought I'd post a quick update with info about what I've been up to.<br />
<a name='more'></a>
<br />
<h2>
Capriccio</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWxdfR0pLRv2R3kAIBDC-kCPWVwSHO0SSvCwvF0JwwxUxYnf0vgHU0xOv_okg6tQF81TEOAg0hXAdDTaGsTv2McrjrLbN1iMmfcpq6qTTSV-B4lxM8kBEd0i5as2Ix3EqadCbRn-SV6dT-/s1600/capriccio-example.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="86" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWxdfR0pLRv2R3kAIBDC-kCPWVwSHO0SSvCwvF0JwwxUxYnf0vgHU0xOv_okg6tQF81TEOAg0hXAdDTaGsTv2McrjrLbN1iMmfcpq6qTTSV-B4lxM8kBEd0i5as2Ix3EqadCbRn-SV6dT-/s400/capriccio-example.png" width="400" /></a></div>
<br />
I've finally gotten around to basically finishing Giovanni Murolo's experimental font Capriccio. It has turned out to be more difficult to manage/use than I thought. Up to this point, I have decided to make two separate fonts (though I hope to integrate them properly with LilyPond's optical font usage routines), called Capriccio and Capriccio-Light. Capriccio doesn't work outside the default 20pt staff size, but I'm thinking about how to fix this behavior.<br />
<br />
I've also adjusted the stylesheet and added an example page to showcase the font. I can't wait to see how users end up utilizing this very interesting font. And to compliment the music and brace fonts, I discovered a variant of the famous Bodoni font family that is freely available, beautifully created by Pablo Impallari and appropriately called "Libre Bodoni". You can download it on <a href="http://www.impallari.com/" target="_blank">his website</a>.<br />
<br />
<h2>
Delusse</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkb7PWSUKAgCDUbFXz1-N-FLohWkfjsWzUH4aSr2YOkM1AxSVSXG5FRG9slU368oBn9JhUT38L0T8p8Los96ve7953-AlI2fFT5K3qypEC-Sa6JwoDGUhLagAM1O7ZZNRg90Lu7x_DQ5D2/s1600/delusse-image.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkb7PWSUKAgCDUbFXz1-N-FLohWkfjsWzUH4aSr2YOkM1AxSVSXG5FRG9slU368oBn9JhUT38L0T8p8Los96ve7953-AlI2fFT5K3qypEC-Sa6JwoDGUhLagAM1O7ZZNRg90Lu7x_DQ5D2/s400/delusse-image.png" width="400" /></a></div>
<br />
Here's a small golden nugget that I found online (I can't remember how at the moment). It is a small font and still needs some work (esp. flags), but fun nonetheless. A very old style of music symbol design, but who knows? Maybe you'll find a use for it...<br />
<br />
<h2>
Animal Noteheads</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9H9m1zt6vNP5uGOcimRKj2RjrxM5RaHnk60aiyvMeZQ1UWKAwim0UAv8hDXO314V4DhGa0NLzJCpEjO78sJtjROohDV_vqbyDAFA8CjxSWF9hn0zNmvLHw7UbuNYyDgysNa5InVMXp3xq/s1600/animal-noteheads-logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="60" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9H9m1zt6vNP5uGOcimRKj2RjrxM5RaHnk60aiyvMeZQ1UWKAwim0UAv8hDXO314V4DhGa0NLzJCpEjO78sJtjROohDV_vqbyDAFA8CjxSWF9hn0zNmvLHw7UbuNYyDgysNa5InVMXp3xq/s400/animal-noteheads-logo.png" width="400" /></a></div>
<br />
At the request of Andreas Larsen, I've been helping get a project going that uses LilyPond to engrave scores with easily recognizable animal caricatures as noteheads where the first letter of the animal's name is the name of the pitch. Together with a handful of other contributors, this project has expanded to support numerous international languages. Check out the progress on <a href="https://github.com/andreaslarsen/animalnoteheads" target="_blank">GitHub</a> or the <a href="http://animalnoteheads.com/" target="_blank">website</a>!<br />
<br />
The difference with this system of font work is that the noteheads are actually pure svg images instead of a dedicated font file like I've usually done. This was not easy to figure out, but we did it.<br />
<br />
<h2>
Where To From Here</h2>
<div>
Soon I hope to get these and all my other font updates uploaded for public consumption. Until then, happy engraving!</div>
Leigh Verlaghttp://www.blogger.com/profile/10116642109805458442noreply@blogger.com0tag:blogger.com,1999:blog-8351372334253526966.post-21610309092194168542015-06-02T13:53:00.000-06:002015-12-09T23:24:46.073-07:00New LilyPond Templates (part 2)<div>
As promised, here is the second installment of templates. I've created templates for Rock and Pop, Jazz, and Latin style scores.</div>
<br />
<a name='more'></a>
<div>
<b><u>Rock and Pop</u></b></div>
<div>
<br />
<table style="width: 66%;"><tbody>
<tr>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Rock%20and%20Pop/Pop%20group.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Rock%20and%20Pop/Pop%20group.png" style="width: 90%;" /></a></td>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Rock%20and%20Pop/R%20%26%20B%20band-page1.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Rock%20and%20Pop/R%20%26%20B%20band-page1.png" style="width: 90%;" /></a></td>
</tr>
<tr> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Rock%20and%20Pop/Pop%20group.ly">Pop band.ly</a></td> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Rock%20and%20Pop/R%20%26%20B%20band.ly">R & B band.ly</a></td> </tr>
<tr> <td width="33%"></td></tr>
</tbody></table>
</div>
<br />
<div>
<b><u>Jazz</u></b></div>
<div>
<br />
<table><tbody>
<tr>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Big%20band-page1.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Big%20band-page1.png" style="width: 90%;" /></a></td>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Jazz%20combo%2C%202%20horns.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Jazz%20combo%2C%202%20horns.png" style="width: 90%;" /></a></td>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Jazz%20combo%2C%203%20horns.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Jazz%20combo%2C%203%20horns.png" style="width: 90%;" /></a></td>
</tr>
<tr> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Big%20band.ly">Big band.ly</a></td> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Jazz%20combo%2C%202%20horns.ly">Jazz combo, 2 horns.ly</a>*</td> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Jazz%20combo%2C%203%20horns.ly">Jazz combo, 3 horns.ly</a>*</td> </tr>
</tbody></table>
</div>
<br />
<div>
<table style="width: 66%;"><tbody>
<tr>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Jazz%20combo%2C%204%20horns-page1.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Jazz%20combo%2C%204%20horns-page1.png" style="width: 90%;" /></a></td>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Jazz%20quartet.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Jazz%20quartet.png" style="width: 90%;" /></a></td>
</tr>
<tr> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Jazz%20combo%2C%204%20horns.ly">Jazz combo, 4 horns.ly</a>*</td> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Jazz/Jazz%20quartet.ly">Jazz quartet.ly</a>*</td> </tr>
</tbody></table>
</div>
<br />
*<i>This template, as is, requires the LilyJAZZ fonts and stylesheet, all of which can be downloaded <a href="http://fonts.openlilylib.org/lilyjazz">here</a>.</i><br />
<span style="font-size: small;"><i><br /></i></span>
<b><u>Latin</u></b><br />
<table style="width: 66%;"><tbody>
<tr>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Latin/Mariachi%20band.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Latin/Mariachi%20band.png" style="width: 90%;" /></a></td>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Latin/Salsa%20band-page1.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Latin/Salsa%20band-page1.png" style="width: 90%;" /></a></td>
</tr>
<tr> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Latin/Mariachi%20band.ly">Mariachi band.ly</a></td> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Latin/Salsa%20band.ly">Salsa band.ly</a></td> </tr>
<tr> <td width="33%"></td></tr>
</tbody></table>
<br />
In the future, in addition to these monolithic template files, I plan to provide another set of files that divide each of these template files into two (at least): a "content" file, which contains the music itself (assigned to variables) for each instrument, and a "structure" file, which arranges the staves and calls the content variables. It basically focuses on the look-and-feel and layout of the music on the printed page.<br />
<br />
I'll also provide some more instruction on how to effectively utilize/customize the templates to your needs. But for now, play around with the files and if you have questions, feel free to email me with questions or post a comment below!Leigh Verlaghttp://www.blogger.com/profile/10116642109805458442noreply@blogger.com2tag:blogger.com,1999:blog-8351372334253526966.post-29348412631840864082015-05-27T16:52:00.000-06:002015-12-09T23:25:31.420-07:00New LilyPond Templates (part 1)Greetings, everyone!<br />
<br />
It feels strange to (once again) not have put up a post before another month passed, but, alas, it has happened again. Let's remedy the situation!<br />
<br />
I've decided to take it upon myself to create a small library of LilyPond 2.18.2 template files that are inspired by those found in the latest version of Sibelius (7.5). When all is said and done, I plan on replicating ALL of its templates in the following categories:<br />
<ol>
<li>No Category</li>
<li>Solo Instruments</li>
<li>Band</li>
<li>Chamber Groups</li>
<li>Choral and Song</li>
<li>Handbells</li>
<li>Jazz</li>
<li>Latin</li>
<li>Marching Band and Percussion</li>
<li>Orchestral</li>
<li>Orff Instruments</li>
<li>Rock and Pop</li>
</ol>
<div>
So far, I've got #1 and 2 done, but hopefully will be able to pick up the pace and get the others cranked out. I've tried to follow Sibelius' designs as faithfully as possible in hopes that Sibelius users who are familiar with them will find the change over to LilyPond that much easier.<br />
<a name='more'></a>
<br />
In each template there are one or more variables called <code>xxxMusic</code> (like <code>guitarMusic</code> or <code>pianoRHMusic</code>) which contains the music itself and another called <code>scoreBreaks</code> where the user can have finer control over system and page breaks instead of putting them in the music variable. This isn't strictly necessary, but it can be quite handy in more complex scores where you <i>really</i> want to separate music content from score structure and/or repeat certain pieces of information (like rehearsal marks) without actually repeating the code.</div>
<div>
<br /></div>
<div>
Here is the first installment of templates (downloadable here):<br />
<br /></div>
<div>
<b><u>No Category</u></b></div>
<div>
<br />
<table><tbody>
<tr>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Bass%20staff.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Bass staff.png" style="width: 90%;" /></a></td>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Blank.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Blank.png" style="width: 90%;" /></a></td>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Treble%20staff.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Treble staff.png" style="width: 90%;" /></a></td>
</tr>
<tr> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Bass%20staff.ly">Bass staff.ly</a></td> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Blank.ly">Blank.ly</a></td> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Treble%20staff.ly">Treble staff.ly</a></td> </tr>
</tbody></table>
</div>
<br />
<div>
<b><u>Solo Instruments</u></b></div>
<div>
<br />
<table><tbody>
<tr> <td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Guitar%20%2B%20tab.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Guitar%20%2B%20tab.png" style="width: 90%;" /></a></td>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Guitar%20tab.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Guitar%20tab.png" style="width: 90%;" /></a></td>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Guitar.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Guitar.png" style="width: 90%;" /></a></td>
</tr>
<tr style="bottom-padding: 10px;"> <td style="padding-bottom: 30px; text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Guitar%20%2B%20tab.ly">Guitar + tab.ly</a></td> <td style="padding-bottom: 30px; text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Guitar%20tab.ly">Guitar tab.ly</a></td> <td style="padding-bottom: 30px; text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Guitar.ly">Guitar.ly</a></td> </tr>
<tr>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Lead%20sheet.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Lead%20sheet.png" style="width: 90%;" /></a></td>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Lute%20tablature.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Lute%20tablature.png" style="width: 90%;" /></a></td>
<td style="text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Piano.png"><img src="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Piano.png" style="width: 90%;" /></a></td>
</tr>
<tr> <td style="padding-bottom: 30px; text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Lead%20sheet.ly">Lead sheet.ly</a>*</td> <td style="padding-bottom: 30px; text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Lute%20tablature.ly">Lute tablature.ly</a></td> <td style="padding-bottom: 30px; text-align: center;" width="33%"><a href="https://raw.githubusercontent.com/tisimst/lilypond-adventures/master/templates/Solo%20Instruments/Piano.ly">Piano.ly</a></td> </tr>
</tbody></table>
</div>
<div>
*<i><span style="font-size: small;">This template, as is, requires the LilyJAZZ fonts and stylesheet, all of which can be downloaded <a href="http://fonts.openlilylib.org/lilyjazz">here</a>.</span></i><br />
<br />
My goal here is to provide a framework that gives a newer user a taste of well-structured code that helps them expand their knowledge (like with using <code>\override</code>, spacing variables, etc.) without overwhelming them. This first set may not be terribly helpful to <i>you</i>, but just wait until I get into the more involved ones, then you might thank me :-).<br />
<br />
As I get around to posting templates that have multiple instruments involved, I will also go through how to go about "extracting parts" (to show you just how easy it is with LilyPond).<br />
<br />
What do you think? Check them out and let me know in the comments if you think there's enough information (or too much).</div>
Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com4tag:blogger.com,1999:blog-8351372334253526966.post-1501701423433931452015-04-20T10:26:00.001-06:002015-12-09T23:26:38.172-07:00Recent DevelopmentsWow, over a whole month has gone by without a post. Well, I've been busy working on myriad of (mostly font-related) projects. I'm still not quite done with most of them, but here are some highlights of my latest adventures that will hopefully be released soon:<br />
<a name='more'></a>
<ul>
<li><b>Arnold</b> - A font inspired by early Universal Edition scores. Sponsored by Urs Liska.</li>
<li><b>Broadway</b> - Rogers and Hammerstein anyone? Sponsored by Kieren MacMillan, which may or may not be released publicly.</li>
<li><b>Capriccio</b> - A totally new take on music fonts, this font was designed by Giovanni Murolo to match the elegance of high contrast found in Didot and Bodoni typefaces. LilyPond is the only music notation program that can even use it because it requires some programmatic functionality to make the notes appear in the correct orientation. This is because the noteheads (half and quarter) can only have a stem attach in ONE place, so it has to be rotated depending on the direction of the stem and if they appear in a chord. Giovanni has others, but we're starting with this one. More information about his thesis can be found <a href="http://aiapzine.aiap.it/notizie/13899" target="_blank">here</a>. He created a video that showcases his different fonts (Capriccio is the first one shown):<br /><br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="281" mozallowfullscreen="" src="https://player.vimeo.com/video/42033824" webkitallowfullscreen="" width="500"></iframe></div>
</li>
<li><b>LilyJAZZ</b> - After some suggestions from users, I've renamed these fonts so they all follow a more consistent naming convention:</li>
<ul>
<li>lilyjazz-11 through lilyjazz-26</li>
<li>lilyjazz-brace</li>
<li>lilyjazz-text</li>
<li>lilyjazz-chord</li>
<li>lilyjazz.ily (the stylesheet)</li>
</ul>
<li><b>Improviso</b> - A minor addition to the stylesheet to make ties, slurs, and phrasing slurs all have a uniform thickness, just like everything else.</li>
<li><b>Optically sized fonts</b> - This is one adventure I'm most excited about. To this day, LilyPond is still the only notation program that CAN utilize different sized fonts in the same score and, at this point, Emmentaler is the only font family that has this feature (8 sizes from 11pt to 26pt staff-heights). I'm in the process of making optical variants for each of my fonts. We'll see how long this takes me :-P</li>
</ul>
<div>
In addition to these efforts, I've also been creating some <b>"Quick Start" tutorials</b> designed for users migrating to LilyPond. I'm super close, so I'm hoping these will be available soon! I can't stop thinking that I should make some companion videos for them, but we'll see.<br />
<br />
This makes me think of another thing I've heard about quite a bit: <i>Simplifying LilyPond Documentation</i>. Let me be clear: the online docs are incredibly detailed and deep, but it also doesn't provide a <i>clear path</i> for new users to find the information they need. It seems that this is a good-sized barrier for new users. Once used a bit, it becomes more intuitive where the needed information is, but let's be honest. Many things are just not <i>that</i> easy to find in the online docs. I've had numerous occasions where I've been working on a score and I am trying to remember the syntax for something and I find myself saying something like, <i>I know I've seen that somewhere! Which manual was it in? What is that magic word so that I can find it in the search box?</i><br />
<br />
Have you ever felt that way? I just feel that it often takes too many "clicks" to get to the information and often it's not obvious. So, I just might pursue making my own simple, unofficial documentation page that is more straightforward and obvious, using notation terms that people are the most accustomed to. Maybe that's what my "Quick Start" tutorials function as anyway.<br />
<br />
What do you think? What would make the transition easier for new users of LilyPond from another notation program? Let me know in the comments!</div>
Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com2tag:blogger.com,1999:blog-8351372334253526966.post-21725127635498065992015-03-05T09:53:00.002-07:002015-12-09T23:26:13.229-07:00Different Staff SizesI've seen a lot of discussion as to how to deal with staves of different heights, either within the same score or elsewhere. I don't propose to have a great solution for this, but I'd like to share something I discovered (accidentally) while preparing some LilyPond tutorials.<br />
<a name='more'></a>
<br />
Normally, to change the staff size for the entire document you use<br />
<blockquote class="tr_bq">
<pre style="color: #120d04;"><span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-function function" style="color: #0000c0; font-weight: bold;">set-global-staff-size</span> <span class="scheme-number value" style="color: olive;">16</span><span class="scheme-delimiter">)</span></pre>
</blockquote>
to set a staff height to 16pt, which works great. Normally, putting multiple <code>set-global-staff-size</code> statements in the same file is fruitless since the last one will override any prior statements. However, I discovered that this is not always true...<br />
<br />
For example, let's create a simple musical passage--let's have use some microtonal accidentals, just for fun:<br />
<blockquote class="tr_bq">
<pre style="color: #120d04;"><span class="lilypond-uservariable">music</span> = <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\relative</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">'</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-pitch">cff</span> <span class="lilypond-pitch">dtqf</span> <span class="lilypond-pitch">ef</span> <span class="lilypond-pitch">fqf</span> <span class="lilypond-pitch">gqs</span> <span class="lilypond-pitch">as</span> <span class="lilypond-pitch">btqs</span> <span class="lilypond-pitch">css</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span></pre>
</blockquote>
If we explicitly put the passage within a <code>\book</code> block, then we can set the global staff size for that book like we normally do.<br />
<blockquote class="tr_bq">
<pre style="color: #120d04;"><span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-function function" style="color: #0000c0; font-weight: bold;">set-global-staff-size</span> <span class="scheme-number value" style="color: olive;">11</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\book</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\score</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-usercommand variable" style="color: blue;">\music</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\header</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-variable variable" style="color: blue;">piece</span> = <span class="lilypond-string string" style="color: #c00000;">"11pt"</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span></pre>
</blockquote>
Now, let's say we want to create a <span style="font-size: large; font-weight: bold;">LARGER</span> version of this same passage. I learned that we can use ANOTHER <code>set-global-staff-size</code> statement before this new <code>\book</code> block and it will be sized correctly, spacing and everything! Here is the passage in 11pt, 20pt, and 26pt sizes:<br />
<blockquote class="tr_bq">
<pre style="color: #120d04;"><span class="lilypond-keyword keyword" style="font-weight: bold;">\version</span> <span class="lilypond-string string" style="color: #c00000;">"2.18.2"</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\language</span> <span class="lilypond-string string" style="color: #c00000;">"english"</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\paper</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-variable variable" style="color: blue;">indent</span> = <span class="lilypond-value value" style="color: olive;">0</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-uservariable">music</span> = <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\relative</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">'</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-pitch">cff</span> <span class="lilypond-pitch">dtqf</span> <span class="lilypond-pitch">ef</span> <span class="lilypond-pitch">fqf</span> <span class="lilypond-pitch">gqs</span> <span class="lilypond-pitch">as</span> <span class="lilypond-pitch">btqs</span> <span class="lilypond-pitch">css</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-keyword keyword" style="font-weight: bold;">define</span> <span class="scheme-scheme">output-suffix</span> <span class="scheme-string string" style="color: #c00000;">"26pt"</span><span class="scheme-delimiter">)</span>
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-function function" style="color: #0000c0; font-weight: bold;">set-global-staff-size</span> <span class="scheme-number value" style="color: olive;">26</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\book</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\score</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-usercommand variable" style="color: blue;">\music</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\header</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-variable variable" style="color: blue;">piece</span> = <span class="lilypond-string string" style="color: #c00000;">"26pt"</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-keyword keyword" style="font-weight: bold;">define</span> <span class="scheme-scheme">output-suffix</span> <span class="scheme-string string" style="color: #c00000;">"20pt"</span><span class="scheme-delimiter">)</span>
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-function function" style="color: #0000c0; font-weight: bold;">set-global-staff-size</span> <span class="scheme-number value" style="color: olive;">20</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\book</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\score</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-usercommand variable" style="color: blue;">\music</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\header</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-variable variable" style="color: blue;">piece</span> = <span class="lilypond-string string" style="color: #c00000;">"20pt"</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-keyword keyword" style="font-weight: bold;">define</span> <span class="scheme-scheme">output-suffix</span> <span class="scheme-string string" style="color: #c00000;">"11pt"</span><span class="scheme-delimiter">)</span>
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-function function" style="color: #0000c0; font-weight: bold;">set-global-staff-size</span> <span class="scheme-number value" style="color: olive;">11</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\book</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\score</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-usercommand variable" style="color: blue;">\music</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\header</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-variable variable" style="color: blue;">piece</span> = <span class="lilypond-string string" style="color: #c00000;">"11pt"</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span></pre>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTi2WDKceS_PA1INnq4z5RdEUI3RNhCwuL0LuZEKVR7ev9BsBLZsWD4ET-AUqGQUSR88nEdtcz4Mrk-rIrcdOWV9uEtOqClsql0PaS7fkIyEqhHph5qiah32dpGB3DAvbgf0ZV4Mz8unIa/s1600/11pt.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTi2WDKceS_PA1INnq4z5RdEUI3RNhCwuL0LuZEKVR7ev9BsBLZsWD4ET-AUqGQUSR88nEdtcz4Mrk-rIrcdOWV9uEtOqClsql0PaS7fkIyEqhHph5qiah32dpGB3DAvbgf0ZV4Mz8unIa/s1600/11pt.png" style="width: 100%;" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjk7-6twWv4OiI9Zoc2Cb9JLj-aAE46FVw8B4i4NSjBE0NdaR_ILYLGuzx4WjJ0cuB-hRseKP_13paqJjlUE8Cro1lS02Rdy0X5LAO_ikyNMiZowdTRIKc8fespevY1KdU72RN6LvO2jQV/s1600/20pt.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjk7-6twWv4OiI9Zoc2Cb9JLj-aAE46FVw8B4i4NSjBE0NdaR_ILYLGuzx4WjJ0cuB-hRseKP_13paqJjlUE8Cro1lS02Rdy0X5LAO_ikyNMiZowdTRIKc8fespevY1KdU72RN6LvO2jQV/s1600/20pt.png" style="width: 100%;" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXzHTdeuqfcolCkcAzVWW-pDnkn3xOWghGrLS7vTPx4Tev2-1tgHiOLT7xVXD2OH9YNtATeKxSOC1QP9R83M_YSlyQh6HAF4Bc4Biq_i3PSfP_U0oPcRJe0BtexU3927S7MzgUKVzc5msJ/s1600/26pt.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXzHTdeuqfcolCkcAzVWW-pDnkn3xOWghGrLS7vTPx4Tev2-1tgHiOLT7xVXD2OH9YNtATeKxSOC1QP9R83M_YSlyQh6HAF4Bc4Biq_i3PSfP_U0oPcRJe0BtexU3927S7MzgUKVzc5msJ/s1600/26pt.png" style="width: 100%;" /></a></div>
<br />
These three documents were compiled in the same file. Amazing! I had no idea this was even possible! I also am not sure of the extent that this works. I do know that you can't place <scode>set-global-staff-size</scode> statements in between <code>\score</code> blocks and have that work, but you can with <code>\book</code> blocks! This might come in handy when compiling both a full ensemble score and the individual parts from the same file...<br />
<br />
What have you done to print scores with varying staff sizes? Let me know in the comments!Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com0tag:blogger.com,1999:blog-8351372334253526966.post-28950073953404635862015-02-18T10:59:00.000-07:002015-02-18T11:18:23.974-07:00Panorama ModeDo you come from a notation program that has a "Panarama" mode for viewing your score? Well, fear not! Such a feature exists even in LilyPond to make you feel right at home, but it's not called "Panorama". It's a layout algorithm called <code>ly:one-line-breaking</code>.<br />
<br />
To have your score print on a single sheet that adjusts to the length of the score, use the following code:<br />
<blockquote class="tr_bq"><pre><span class="lilypond-keyword keyword" style="font-weight: bold;">\paper</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-variable variable" style="color: blue;">page-breaking</span> = <span class="scheme-scheme">#</span><span class="scheme-function function" style="color: #0000c0; font-weight: bold;">ly:one-line-breaking</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span></pre></blockquote>For example, here are the first two pages from a 3-page score in "normal paper" mode:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4ty4DkKxK0weTbcPu4eEtwhGJxp-zXrwAhnrl_v1fw9cm4VPfUHg1PvXLz2wpeSJ6s6H6rybVnw8oPI9tXcvuro3x7B5lDmRMP8-CDSxdMEVChJ60SxUZhlr97UvBwj5AbxzdV6fPCn2/s1600/paper-mode.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4ty4DkKxK0weTbcPu4eEtwhGJxp-zXrwAhnrl_v1fw9cm4VPfUHg1PvXLz2wpeSJ6s6H6rybVnw8oPI9tXcvuro3x7B5lDmRMP8-CDSxdMEVChJ60SxUZhlr97UvBwj5AbxzdV6fPCn2/s1600/paper-mode.png" width="100%" /></a></div><br />
And here's how it looks when we use the <code>one-line-breaking</code> algorithm (cropped slightly):<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCrphShAXm_peQtBxhk_wznA9G6WX2IqjOrwWdIUs8g7shcx19m-G1UeGrz9ejiaIiuX8BMuRoItcsqK3V98DNnqEZgOVsZCGN_t3spXLkWTkcaEq3GBaSIZyhN7JJ9BBTdqzsSM9QIh_p/s1600/panorama-mode.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCrphShAXm_peQtBxhk_wznA9G6WX2IqjOrwWdIUs8g7shcx19m-G1UeGrz9ejiaIiuX8BMuRoItcsqK3V98DNnqEZgOVsZCGN_t3spXLkWTkcaEq3GBaSIZyhN7JJ9BBTdqzsSM9QIh_p/s1600/panorama-mode.png" width="100%" /></a></div><br />
That's it! Now, there are some things to remember about using this mode (<a href="http://www.lilypond.org/doc/v2.18/Documentation/notation/one_002dline-page-breaking" target="_blank">from the official docs</a>):<br />
<ol><li>Each score gets its own line, but everything is on a single page.</li>
<li>All text in the <code>\header</code> block is NOT typeset, which is fine since this is really more of a preview mode anyway.</li>
<li>The width of the page will be adjusted so the longest score fits on one page.</li>
<li>Some variables in the <code>\paper</code> block will be ignored (like <code>paper-width</code>, <code>indent</code>, <code>line-width</code>) while others will be honored (like <code>left-margin</code>, <code>right-margin</code>, etc.).</li>
<li>The height of the page is un-changed, but honored to whatever you set it to be.</li>
</ol><div>Personally, I wish the height of the page automatically fit to the scores, but oh-well.</div><div><br />
</div><div>Do you miss this mode? Do you find it useful? Let me know in the comments!</div>Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com2tag:blogger.com,1999:blog-8351372334253526966.post-43283908077019952082015-02-07T10:01:00.000-07:002015-02-07T10:01:11.386-07:00Font Update (Improviso, Ross, Profondo)Another set of updates have been applied and are now available on my font site: <a href="http://fonts.openlilylib.org/">fonts.openlilylib.org</a>. Here are the highlights:<br />
<ul>
<li><b>Improviso (v1.1)</b></li>
<ul>
<li>Fixed a bad contour in the <code>clefs.C_change</code> glyph.</li>
<li>Packaged three hand-written text fonts (one of my own creation) to compliment the font style.</li>
</ul>
<li><b>Ross (v1.1)</b></li>
<ul>
<li>Thickened up the <code>scripts.tenuto</code> articulation (which also updated the up and down portato).</li>
<li>Added information about the IM FELL text fonts.</li>
</ul>
<li><b>Profondo (no version change)</b></li>
<ul>
<li>Packaged my tuplet number font so the style is more consistent (the glyphs come from Bravura). The <code>\override</code> is now part of the default <code>profondo.ily</code> stylesheet.</li>
</ul>
</ul>
If you haven't been over there in a while, go check them out and let me know if something is not working correctly!<br />
<br />
Do you have a score that uses one of your favorite music fonts? Let me know so I can add it as an example on the respective font page!<br />
<br />
<div style="text-align: center;">
<span style="font-size: large;"><i><b>Happy Engraving! </b></i></span></div>
Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com0tag:blogger.com,1999:blog-8351372334253526966.post-3192565992256805052015-02-04T15:41:00.000-07:002015-02-04T17:11:24.936-07:00Engraver Spotlight: David Stephen GrantI was recently introduced to the composer/engraver David Stephen Grant, who shared with me a very lovely score he had composed and engraved using LilyPond. The score is done with my <i><a href="http://fonts.openlilylib.org/ross/" target="_blank">Ross</a></i> music font (and accompanying stylesheet), complimented perfectly by the <i><a href="http://iginomarini.com/fell/the-revival-fonts/" target="_blank">IM Fell English</a></i> text font.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://davidgrant.no/pdf/Grant_OvertureToBerenice_part_A4.pdf" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihMbmldnvOYgXQG8CJtgzQSFqf93yjfWsRu0OoP7GA4Jy321qTCp4gw3lo0uHM6_NsjXMxmYzZpJKvLukpzDKMXfPs2UFDTitXln0_tLXLMYcXTRoZqkgRW5pNYYhk-C4yC88sX2r9JHAQ/s1600/overture-to-berenice-preview.png" height="320" width="224" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
David shared with me some background to the score:<br />
<blockquote class="tr_bq">
<i>... "Overture to Bérénice" was actually used as an Overture to a modern theatre production of Racine's "Bérénice" that I composed and contributed sound design for. The music quickly moved from this "Baroque" atmosphere into more noisy electronic sound design, ...</i></blockquote>
Great job, David, and thanks for sharing this with us!<br />
<br />
<hr />
<br />
Have you engraved something you'd like to feature here that shows off one of my music fonts? Let me know or provide a link in the comment section!Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com2tag:blogger.com,1999:blog-8351372334253526966.post-9067098935093415312015-01-23T09:52:00.000-07:002015-01-23T09:52:00.980-07:00Update to fonts website!I'm proud to announce a few nice updates to <a href="http://fonts.openlilylib.org/">fonts.openlilylib.org</a> today! I had wanted to make some changes and add a few things since the last major update and I finally got around to it. Here are the changes:<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<ul>
<li><b>Updated fonts</b>: A few fonts had "hole" artifacts from overlapping contours when using certain programs to view the glyphs (such as Inkscape, Adobe Acrobat PDF, etc.). These have now been fixed and any future use of these glyphs should result in the proper forms. Specifically, the fonts affected by this update are: <i>Beethoven</i>, <i>Improviso</i>, <i>LilyJAZZ</i>, <i>Ross</i>, and <i>Scorlatti</i>. If you notice any others, let me know!</li>
<br />
<li><b>Font stylesheets</b>: A few minor additions to the stylesheets have been included and on each page there is now a direct link to the respective stylesheet itself for easier viewing and downloading.</li>
<br />
<li><b>Font viewer</b>: I've added a convenient way to quickly look through the main glyphs in each font and compare them to others. This is what I'd wanted to do for some time and now it's finally here. <a href="http://fonts.openlilylib.org/font-specimen-viewer.html" target="_blank">Go check it out</a>!</li>
<div class="separator" style="clear: both; padding: 20px; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrXViF0UXFj7R9h8T8vpx3uPYQurN9Fx7ijx4lwSnvzUpwZ3F_XpTV9-ATiHtEm4VYQbMsIzQ2UCXfeifLm1gJVRokI9zrMp1U_hlIbWBPUNGPWwnKVZtpHUnD2CGpOy1tgGzgGwY_BhJS/s1600/font-viewer.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrXViF0UXFj7R9h8T8vpx3uPYQurN9Fx7ijx4lwSnvzUpwZ3F_XpTV9-ATiHtEm4VYQbMsIzQ2UCXfeifLm1gJVRokI9zrMp1U_hlIbWBPUNGPWwnKVZtpHUnD2CGpOy1tgGzgGwY_BhJS/s1600/font-viewer.png" height="320" width="244" /></a></div>
<br />
<li><b>Documentation</b>: All documentation about installation and usage that used to be on the main page has been moved to a <a href="http://fonts.openlilylib.org/docs.html" target="_blank">dedicated page</a> to keep the landing page simpler. As always, if a link is broken, I want to hear about it.</li>
</ul>
I always am trying to improve the look-and-feel of the page, so you may see some minor changes there too. Are things working on your machine/browser? Do you like the changes? Let me know in the comments!<br />
<br />Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com2tag:blogger.com,1999:blog-8351372334253526966.post-38902215248676204142015-01-20T11:53:00.000-07:002015-01-20T11:54:04.162-07:00Advanced Staff Grouping<div class="tr_bq">
Man, I love the <a href="http://lsr.di.unimi.it/" target="_blank">LSR</a>! There are so many interesting snippets there. I had to write a quick post about <a href="http://lsr.di.unimi.it/LSR/Item?id=906" target="_blank">this one</a>, too:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://lsr.di.unimi.it/LSR/Image?id=906" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lsr.di.unimi.it/LSR/Image?id=906" /></a></div>
<br />
To be honest, the big orchestral brace looks a bit ugly to me (no offense to the original creators). It uses postscript code (and that's probably the point of the snippet) and requires a bunch of unnecessary \overrides. Let's clean it (and the code) up a bit!<br />
<br />
In this snippet, a handful of useful new contexts are created to assist in grouping things together. The main contexts that already exist are: Score, GrandStaff, StaffGroup, Staff, Voice, etc. We can create new contexts by <i>aliasing</i> the appropriate default contexts. For example, if we want to create a "ViolinGroup", because we'd like to give a staff to the 1st and 2nd violin groups, we can do so like this:<br />
<blockquote>
<pre><span class="lilypond-keyword keyword" style="font-weight: bold;">\layout</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\context</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-context" style="font-weight: bold;">\StaffGroup</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\name</span> ViolinGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\alias</span> StaffGroup
<span class="lilypond-property variable" style="color: blue;">systemStartDelimiter</span> = <span class="scheme-scheme">#'SystemStartBrace</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span></pre>
</blockquote>
The ViolinGroup now behaves like a StaffGroup, but with a system brace as its group indicator. The snippet goes on to similarly create a WindGroup, but uses the default system bracket as the group indicator, inheriting from StaffGroup.<br />
<br />
Going further, we now create a StringGroup, intended for including the ViolinGroup as well as the normal Staff for the violas, cellos, and contrabasses:<br />
<blockquote class="tr_bq">
<pre><span class="lilypond-keyword keyword" style="font-weight: bold;">\layout</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\context</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-context" style="font-weight: bold;">\StaffGroup</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\name</span> StringGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\alias</span> StaffGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\accepts</span> ViolinGroup
<span class="lilypond-property variable" style="color: blue;">systemStartDelimiter</span> = <span class="scheme-scheme">#'SystemStartBracket</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span></pre>
</blockquote>
Since StaffGroup already \accepts the Staff context, there is no need to repeat that here, but we do need to explicitly say "\accepts ViolinGroup" since that's a custom context. The StringGroup would then need to be accepted by the context containing it (if necessary, which it is here):<br />
<blockquote class="tr_bq">
<pre><span class="lilypond-keyword keyword" style="font-weight: bold;">\layout</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\context</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-context" style="font-weight: bold;">\StaffGroup</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\name</span> OrchestraGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\accepts</span> WindGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\accepts</span> StringGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\remove</span> <span class="lilypond-string string" style="color: #c00000;">"System_start_delimiter_engraver"</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span></pre>
</blockquote>
We remove the "System_start_delimiter_engraver" because we don't want it to show up right by the system itself, so we will customize this in the instrumentName variable. For this, we're going to rotate the text "Orchestra" vertically and add a large brace to show the correct grouping:<br />
<blockquote class="tr_bq">
<pre><span class="lilypond-markup function" style="color: green;">\markup</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-markup function" style="color: green;">\lower</span> <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">0.75</span> <span class="lilypond-markup function" style="color: green;">\rotate</span> <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">90</span> <span class="lilypond-string string" style="color: #c00000;">"Orchestra"</span> <span class="lilypond-markup function" style="color: green;">\hspace</span> <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">1</span>
<span class="lilypond-markup function" style="color: green;">\left-brace</span> <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">175</span> <span class="lilypond-markup function" style="color: green;">\hspace</span> <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">5</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span></pre>
</blockquote>
The extra "\hspace" commands are just to give each element a good amount of space. The last little bit of \override-ing we need to do is for the regular instrument names:<br />
<blockquote class="tr_bq">
<pre><span class="lilypond-keyword keyword" style="font-weight: bold;">\layout</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\context</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-context" style="font-weight: bold;">\Staff</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\override</span> <span class="lilypond-grob" style="color: #c000c0;">InstrumentName</span><span class="lilypond-delimiter keyword" style="font-weight: bold;">.</span><span class="lilypond-variable variable" style="color: blue;">font-size</span> = <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">-1</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\override</span> <span class="lilypond-grob" style="color: #c000c0;">InstrumentName</span><span class="lilypond-delimiter keyword" style="font-weight: bold;">.</span><span class="lilypond-variable variable" style="color: blue;">extra-offset</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-number value" style="color: olive;">6</span> <span class="scheme-scheme">.</span> <span class="scheme-number value" style="color: olive;">0</span><span class="scheme-delimiter">)</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span></pre>
</blockquote>
If we didn't do these, they will show up too far-away to the system (depending on the value of "indent", of course) and to help with spacing we decrease the font-size slightly.<br />
<br />
Those are the main building blocks we need. Here's the full updated snippet:<br />
<blockquote class="tr_bq">
<pre><span class="lilypond-keyword keyword" style="font-weight: bold;">\version</span> <span class="lilypond-string string" style="color: #c00000;">"2.18.2"</span>
<span class="lilypond-comment comment" style="color: grey; font-style: italic;">%% http://lsr.di.unimi.it/LSR/Item?id=906</span>
<span class="lilypond-comment comment" style="color: grey; font-style: italic;">% by Kieren MacMillan and P.P.Schneider.</span>
<span class="lilypond-comment comment" style="color: grey; font-style: italic;">% => http://lists.gnu.org/archive/html/lilypond-user/2013-03/msg00260.html</span>
<span class="lilypond-comment comment" style="color: grey; font-style: italic;">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
<span class="lilypond-comment comment" style="color: grey; font-style: italic;">% LSR workaround:</span>
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-keyword keyword" style="font-weight: bold;">set!</span> <span class="scheme-variable variable" style="color: blue;">paper-alist</span> <span class="scheme-delimiter">(</span><span class="scheme-keyword keyword" style="font-weight: bold;">cons</span> <span class="scheme-scheme">'</span><span class="scheme-delimiter">(</span><span class="scheme-string string" style="color: #c00000;">"snippet"</span> <span class="scheme-scheme">.</span> <span class="scheme-delimiter">(</span><span class="scheme-keyword keyword" style="font-weight: bold;">cons</span> <span class="scheme-delimiter">(</span><span class="scheme-keyword keyword" style="font-weight: bold;">*</span> <span class="scheme-number value" style="color: olive;">90</span> <span class="scheme-scheme">mm</span><span class="scheme-delimiter">)</span> <span class="scheme-delimiter">(</span><span class="scheme-keyword keyword" style="font-weight: bold;">*</span> <span class="scheme-number value" style="color: olive;">120</span> <span class="scheme-scheme">mm</span><span class="scheme-delimiter">)))</span> <span class="scheme-variable variable" style="color: blue;">paper-alist</span><span class="scheme-delimiter">))</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\paper</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-function function" style="color: #0000c0; font-weight: bold;">set-paper-size</span> <span class="scheme-string string" style="color: #c00000;">"snippet"</span><span class="scheme-delimiter">)</span>
<span class="lilypond-uservariable">tagline</span> = <span class="scheme-scheme">##f</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-markup function" style="color: green;">\markup</span> <span class="lilypond-markup function" style="color: green;">\vspace</span> <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">1</span>
<span class="lilypond-comment comment" style="color: grey; font-style: italic;">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
<span class="lilypond-comment comment" style="color: grey; font-style: italic;">%here starts the snippet:</span>
<span class="lilypond-uservariable">someMusic</span> = <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\tempo</span> <span class="lilypond-string string" style="color: #c00000;">"Andante."</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\time</span> <span class="lilypond-value value" style="color: olive;">3/4</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\key</span> <span class="lilypond-pitch">c</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\minor</span>
<span class="lilypond-pitch">c</span><span class="lilypond-octave">'</span><span class="lilypond-duration" style="color: teal;">2.</span> <span class="lilypond-pitch">r</span><span class="lilypond-duration" style="color: teal;">8</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\paper</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-variable variable" style="color: blue;">indent</span> = <span class="lilypond-value value" style="color: olive;">40</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\layout</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\context</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-context" style="font-weight: bold;">\Staff</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\override</span> <span class="lilypond-grob" style="color: #c000c0;">InstrumentName</span><span class="lilypond-delimiter keyword" style="font-weight: bold;">.</span><span class="lilypond-variable variable" style="color: blue;">font-size</span> = <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">-1</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\override</span> <span class="lilypond-grob" style="color: #c000c0;">InstrumentName</span><span class="lilypond-delimiter keyword" style="font-weight: bold;">.</span><span class="lilypond-variable variable" style="color: blue;">extra-offset</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-number value" style="color: olive;">6</span> <span class="scheme-scheme">.</span> <span class="scheme-number value" style="color: olive;">0</span><span class="scheme-delimiter">)</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\context</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-context" style="font-weight: bold;">\StaffGroup</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\name</span> ViolinGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\alias</span> StaffGroup
<span class="lilypond-property variable" style="color: blue;">systemStartDelimiter</span> = <span class="scheme-scheme">#'SystemStartBrace</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\context</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-context" style="font-weight: bold;">\StaffGroup</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\name</span> WindGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\alias</span> StaffGroup
<span class="lilypond-property variable" style="color: blue;">systemStartDelimiter</span> = <span class="scheme-scheme">#'SystemStartBracket</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\override</span> <span class="lilypond-grob" style="color: #c000c0;">SystemStartBracket</span><span class="lilypond-delimiter keyword" style="font-weight: bold;">.</span><span class="lilypond-variable variable" style="color: blue;">collapse-height</span> = <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">1</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\context</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-context" style="font-weight: bold;">\StaffGroup</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\name</span> StringGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\alias</span> StaffGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\accepts</span> ViolinGroup
<span class="lilypond-property variable" style="color: blue;">systemStartDelimiter</span> = <span class="scheme-scheme">#'SystemStartBracket</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\context</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-context" style="font-weight: bold;">\StaffGroup</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\name</span> OrchestraGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\accepts</span> WindGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\accepts</span> StringGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\remove</span> <span class="lilypond-string string" style="color: #c00000;">"System_start_delimiter_engraver"</span>
<span class="lilypond-property variable" style="color: blue;">instrumentName</span> = <span class="lilypond-markup function" style="color: green;">\markup</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-markup function" style="color: green;">\lower</span> <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">0.75</span> <span class="lilypond-markup function" style="color: green;">\rotate</span> <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">90</span> <span class="lilypond-string string" style="color: #c00000;">"Orchestra"</span> <span class="lilypond-markup function" style="color: green;">\hspace</span> <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">1</span>
<span class="lilypond-markup function" style="color: green;">\left-brace</span> <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">175</span> <span class="lilypond-markup function" style="color: green;">\hspace</span> <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">5</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\context</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-context" style="font-weight: bold;">\GrandStaff</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\remove</span> <span class="lilypond-string string" style="color: #c00000;">"System_start_delimiter_engraver"</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\accepts</span> OrchestraGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\accepts</span> StaffGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\accepts</span> VocalGroup
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\context</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-context" style="font-weight: bold;">\StaffGroup</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\name</span> VocalGroup
<span class="lilypond-keyword keyword" style="font-weight: bold;">\alias</span> StaffGroup
<span class="lilypond-property variable" style="color: blue;">systemStartDelimiter</span> = <span class="scheme-scheme">#'SystemStartBracket</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\score</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-context" style="font-weight: bold;">GrandStaff</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-uservariable">OrchestraGroup</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-uservariable">WindGroup</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-context" style="font-weight: bold;">Staff</span> <span class="lilypond-keyword keyword" style="font-weight: bold;">\with</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-property variable" style="color: blue;">instrumentName</span> = <span class="lilypond-string string" style="color: #c00000;">"Oboe"</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-usercommand variable" style="color: blue;">\someMusic</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-uservariable">StringGroup</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-uservariable">ViolinGroup</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-context" style="font-weight: bold;">Staff</span> <span class="lilypond-keyword keyword" style="font-weight: bold;">\with</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-property variable" style="color: blue;">instrumentName</span> = <span class="lilypond-string string" style="color: #c00000;">"Violino I"</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-usercommand variable" style="color: blue;">\someMusic</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-context" style="font-weight: bold;">Staff</span> <span class="lilypond-keyword keyword" style="font-weight: bold;">\with</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-property variable" style="color: blue;">instrumentName</span> = <span class="lilypond-string string" style="color: #c00000;">"Violino II"</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-usercommand variable" style="color: blue;">\someMusic</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-context" style="font-weight: bold;">Staff</span> <span class="lilypond-keyword keyword" style="font-weight: bold;">\with</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-property variable" style="color: blue;">instrumentName</span> = <span class="lilypond-string string" style="color: #c00000;">"Viola"</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\clef</span> <span class="lilypond-specifier variable" style="color: blue;">C</span> <span class="lilypond-usercommand variable" style="color: blue;">\someMusic</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-uservariable">VocalGroup</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-context" style="font-weight: bold;">Staff</span> <span class="lilypond-keyword keyword" style="font-weight: bold;">\with</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-property variable" style="color: blue;">instrumentName</span> = <span class="lilypond-string string" style="color: #c00000;">"Soprano"</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-usercommand variable" style="color: blue;">\someMusic</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-context" style="font-weight: bold;">Staff</span> <span class="lilypond-keyword keyword" style="font-weight: bold;">\with</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-property variable" style="color: blue;">instrumentName</span> = <span class="lilypond-string string" style="color: #c00000;">"Alto"</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\clef</span> <span class="lilypond-specifier variable" style="color: blue;">C</span> <span class="lilypond-usercommand variable" style="color: blue;">\someMusic</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span></pre>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji-kbax8KXaIC_3XdhTQP3w3Rr46-Vehtv09nhgitqYucrKIx9rz1Otb2ch8l7dJPNysKQ6eEkQcVtv9Xx68hguEaP3JRYN_Qc6XK2bttWhyphenhyphenn-S6R3-JkuecfCIs8c2JE95npY9dnOogo7/s1600/snippet906-updated.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji-kbax8KXaIC_3XdhTQP3w3Rr46-Vehtv09nhgitqYucrKIx9rz1Otb2ch8l7dJPNysKQ6eEkQcVtv9Xx68hguEaP3JRYN_Qc6XK2bttWhyphenhyphenn-S6R3-JkuecfCIs8c2JE95npY9dnOogo7/s1600/snippet906-updated.png" /></a></div>
What do you think? Let me know in the comments. What other contexts have you used/created before? How have you shown grouped instruments? I'd love to hear your experiences.Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com0tag:blogger.com,1999:blog-8351372334253526966.post-5388138088267322722015-01-05T13:09:00.000-07:002016-04-01T09:10:18.648-06:00Increasing the horizontal size of a single measureSo, I couldn't help but make a small post about this when I saw it, since I've heard numerous people ask about it. In programs like Musescore, to increase/decrease the size of a measure, there's a keyboard shortcut for that. In LilyPond, since the horizontal spacing engine makes the whitespace "springy" and compressible, it's a less straightforward process. The documented ways of adjusting the horizontal spacing are found in the Notation Reference (<a href="http://www.lilypond.org/doc/v2.19/Documentation/notation/horizontal-spacing" target="_blank">NR</a>), so I won't go over them here (well, maybe later).<br />
<br />
As I was browsing through the LilyPond Snippet Repository (<a href="http://lsr.di.unimi.it/" target="_blank">LSR</a>), looking for something completely different, I stumbled upon this little trick for adjusting measure width. Unfortunately, it is only helpful for <i>increasing</i> the width. Let's start with a simple score:<br />
<blockquote class="tr_bq">
<pre><span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-context" style="font-weight: bold;">Voice</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\relative</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">'</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\dynamicUp</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration" style="color: teal;">1</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-pitch">s</span><span class="lilypond-duration" style="color: teal;">2</span><span class="lilypond-dynamic" style="color: #ff8000; font-weight: bold;">\f</span> <span class="lilypond-pitch">s</span><span class="lilypond-duration" style="color: teal;">2</span><span class="lilypond-dynamic" style="color: #ff8000; font-weight: bold;">\p</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span> <span class="lilypond-check">|</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\noBreak</span>
<span class="lilypond-pitch">f</span><span class="lilypond-duration" style="color: teal;">4</span> <span class="lilypond-pitch">e</span> <span class="lilypond-pitch">d</span> <span class="lilypond-pitch">c</span> <span class="lilypond-check">|</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\noBreak</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration" style="color: teal;">1</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-pitch">s</span><span class="lilypond-duration" style="color: teal;">2</span><span class="lilypond-dynamic" style="color: #ff8000; font-weight: bold;">\f</span> <span class="lilypond-pitch">s</span><span class="lilypond-duration" style="color: teal;">2</span><span class="lilypond-dynamic" style="color: #ff8000; font-weight: bold;">\p</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span> <span class="lilypond-check">|</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\noBreak</span>
<span class="lilypond-pitch">d</span><span class="lilypond-duration" style="color: teal;">2</span> <span class="lilypond-pitch">e</span> <span class="lilypond-check">|</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\break</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span></pre>
</blockquote>
The issue we'd like to remedy is the horizontal spacing given to the dynamics in the first measure, which we will adjust in the third measure for comparison. The real trick here is to use a parallel voice that contains basically no musical information, but allows us to override some dimensions. Using a <span style="color: #c000c0;">MultiMeasureRest</span> (MMR) gives us access to a property called "<span style="color: blue;">minimum-length</span>". This is what we will use to force the measure to extend in length, thus creating more space for the second dynamic marking. To make it more useful, I wrapped the code within a music function that we can reuse.<br />
<blockquote class="tr_bq">
<pre><span class="lilypond-uservariable">extender</span> = <span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-function function" style="color: #0000c0; font-weight: bold;">define-music-function</span> <span class="scheme-delimiter">(</span><span class="scheme-scheme">parser</span> <span class="scheme-scheme">location</span> <span class="scheme-keyword keyword" style="font-weight: bold;">length</span> <span class="scheme-scheme">music</span><span class="scheme-delimiter">)</span>
<span class="scheme-delimiter">(</span><span class="scheme-keyword keyword" style="font-weight: bold;">number?</span> <span class="scheme-function function" style="color: #0000c0; font-weight: bold;">ly:music?</span><span class="scheme-delimiter">)</span>
<span class="scheme-lilypond">#{</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="scheme-scheme">$music</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-context" style="font-weight: bold;">Voice</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\override</span> <span class="lilypond-grob" style="color: #c000c0;">MultiMeasureRest</span><span class="lilypond-delimiter keyword" style="font-weight: bold;">.</span><span class="lilypond-variable variable" style="color: blue;">transparent</span> = <span class="scheme-scheme">##t</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\override</span> <span class="lilypond-grob" style="color: #c000c0;">MultiMeasureRest</span><span class="lilypond-delimiter keyword" style="font-weight: bold;">.</span><span class="lilypond-variable variable" style="color: blue;">minimum-length</span> = <span class="scheme-scheme">#</span><span class="scheme-keyword keyword" style="font-weight: bold;">length</span>
<span class="lilypond-pitch">R</span><span class="lilypond-duration" style="color: teal;">1</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span>
<span class="scheme-lilypond">#}</span><span class="scheme-delimiter">)</span></pre>
</blockquote>
<div>
This function takes two arguments. The first sets the value for "<span style="color: blue;">minimum-length</span>". By definition, if the measure is already as long or longer than this value, then nothing changes. The second argument is the music expression that the spacing should apply to. There are two things to remember with this:</div>
<ol>
<li>The above code assumes the largest duration is a whole note, so you will need to change the duration of the MMR if you are using a different time signature ("<span class="lilypond-pitch">R</span><span class="lilypond-duration" style="color: teal;">2.</span>" for 3/4 time, etc.).</li>
<li>It's designed to extend the length of ONE measure only. Repeat as necessary.</li>
</ol>
<div>
Now, let's put it to use:</div>
<div>
<blockquote class="tr_bq">
<pre><span class="lilypond-keyword keyword" style="font-weight: bold;">\version</span> <span class="lilypond-string string" style="color: #c00000;">"2.18.2"</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\paper</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-variable variable" style="color: blue;">line-width</span> = <span class="lilypond-value value" style="color: olive;">9</span><span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\cm</span>
<span class="lilypond-variable variable" style="color: blue;">indent</span> = <span class="lilypond-value value" style="color: olive;">0</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-uservariable">extender</span> = <span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-function function" style="color: #0000c0; font-weight: bold;">define-music-function</span> <span class="scheme-delimiter">(</span><span class="scheme-scheme">parser</span> <span class="scheme-scheme">location</span> <span class="scheme-keyword keyword" style="font-weight: bold;">length</span> <span class="scheme-scheme">music</span><span class="scheme-delimiter">)</span>
<span class="scheme-delimiter">(</span><span class="scheme-keyword keyword" style="font-weight: bold;">number?</span> <span class="scheme-function function" style="color: #0000c0; font-weight: bold;">ly:music?</span><span class="scheme-delimiter">)</span>
<span class="scheme-lilypond">#{</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="scheme-scheme">$music</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-context" style="font-weight: bold;">Voice</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\override</span> <span class="lilypond-grob" style="color: #c000c0;">MultiMeasureRest</span><span class="lilypond-delimiter keyword" style="font-weight: bold;">.</span><span class="lilypond-variable variable" style="color: blue;">transparent</span> = <span class="scheme-scheme">##t</span>
<span class="lilypond-keyword keyword" style="font-weight: bold;">\override</span> <span class="lilypond-grob" style="color: #c000c0;">MultiMeasureRest</span><span class="lilypond-delimiter keyword" style="font-weight: bold;">.</span><span class="lilypond-variable variable" style="color: blue;">minimum-length</span> = <span class="scheme-scheme">#</span><span class="scheme-keyword keyword" style="font-weight: bold;">length</span>
<span class="lilypond-pitch">R</span><span class="lilypond-duration" style="color: teal;">1</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span>
<span class="scheme-lilypond">#}</span><span class="scheme-delimiter">)</span>
<span class="lilypond-markup function" style="color: green;">\markup</span> <span class="lilypond-string string" style="color: #c00000;">"Before"</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-context" style="font-weight: bold;">Voice</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\relative</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">'</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\dynamicUp</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration" style="color: teal;">1</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-pitch">s</span><span class="lilypond-duration" style="color: teal;">2</span><span class="lilypond-dynamic" style="color: #ff8000; font-weight: bold;">\f</span> <span class="lilypond-pitch">s</span><span class="lilypond-duration" style="color: teal;">2</span><span class="lilypond-dynamic" style="color: #ff8000; font-weight: bold;">\p</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span> <span class="lilypond-check">|</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\noBreak</span>
<span class="lilypond-pitch">f</span><span class="lilypond-duration" style="color: teal;">4</span> <span class="lilypond-pitch">e</span> <span class="lilypond-pitch">d</span> <span class="lilypond-pitch">c</span> <span class="lilypond-check">|</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\noBreak</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration" style="color: teal;">1</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-pitch">s</span><span class="lilypond-duration" style="color: teal;">2</span><span class="lilypond-dynamic" style="color: #ff8000; font-weight: bold;">\f</span> <span class="lilypond-pitch">s</span><span class="lilypond-duration" style="color: teal;">2</span><span class="lilypond-dynamic" style="color: #ff8000; font-weight: bold;">\p</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span> <span class="lilypond-check">|</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\noBreak</span>
<span class="lilypond-pitch">d</span><span class="lilypond-duration" style="color: teal;">2</span> <span class="lilypond-pitch">e</span> <span class="lilypond-check">|</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\break</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span>
<span class="lilypond-markup function" style="color: green;">\markup</span> <span class="lilypond-string string" style="color: #c00000;">"After"</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\new</span> <span class="lilypond-context" style="font-weight: bold;">Voice</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\relative</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">'</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span>
<span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\dynamicUp</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration" style="color: teal;">1</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-pitch">s</span><span class="lilypond-duration" style="color: teal;">2</span><span class="lilypond-dynamic" style="color: #ff8000; font-weight: bold;">\f</span> <span class="lilypond-pitch">s</span><span class="lilypond-duration" style="color: teal;">2</span><span class="lilypond-dynamic" style="color: #ff8000; font-weight: bold;">\p</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span> <span class="lilypond-check">|</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\noBreak</span>
<span class="lilypond-pitch">f</span><span class="lilypond-duration" style="color: teal;">4</span> <span class="lilypond-pitch">e</span> <span class="lilypond-pitch">d</span> <span class="lilypond-pitch">c</span> <span class="lilypond-check">|</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\noBreak</span>
<span class="lilypond-usercommand variable" style="color: blue;">\extender</span> <span class="scheme-scheme">#</span><span class="scheme-number value" style="color: olive;">12</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;"><<</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-pitch">c</span><span class="lilypond-duration" style="color: teal;">1</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">{</span> <span class="lilypond-pitch">s</span><span class="lilypond-duration" style="color: teal;">2</span><span class="lilypond-dynamic" style="color: #ff8000; font-weight: bold;">\f</span> <span class="lilypond-pitch">s</span><span class="lilypond-duration" style="color: teal;">2</span><span class="lilypond-dynamic" style="color: #ff8000; font-weight: bold;">\p</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span> <span class="lilypond-delimiter keyword" style="font-weight: bold;">>></span> <span class="lilypond-check">|</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\noBreak</span>
<span class="lilypond-pitch">d</span><span class="lilypond-duration" style="color: teal;">2</span> <span class="lilypond-pitch">e</span> <span class="lilypond-check">|</span> <span class="lilypond-command function" style="color: #0000c0; font-weight: bold;">\break</span>
<span class="lilypond-delimiter keyword" style="font-weight: bold;">}</span></pre>
</blockquote>
</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsvNipQ3E1PgFixU2Um25Ltw-Rg1S7pg55UZRPb7_MpIdSoL8PbdxgRq0mRnNYWugqOoGmS1m4Au1l1aaeDlvc3YVcw7SvSYONrHaE2_Ipri5K5YXVAjIXbxOCOuAc0eNC7Gnl_WtlXvLZ/s1600/blog-extend-measure.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsvNipQ3E1PgFixU2Um25Ltw-Rg1S7pg55UZRPb7_MpIdSoL8PbdxgRq0mRnNYWugqOoGmS1m4Au1l1aaeDlvc3YVcw7SvSYONrHaE2_Ipri5K5YXVAjIXbxOCOuAc0eNC7Gnl_WtlXvLZ/s1600/blog-extend-measure.png" width="400" /></a></div>
<br /></div>
That looks better (focus is on the <i>third measure</i>, of course) and certainly could be adjusted further, but we'll stop there for now, having accomplished our goal.<br />
<br />
I'm still on the lookout for a more convenient solution for "shrinking" a measure, but some of the methods in the NR (above) can help with this.<br />
<br />
Got any other great ideas for shrinking or expanding measures to make the page look better? Share them in the comments!Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com4tag:blogger.com,1999:blog-8351372334253526966.post-77853503908672927492014-12-23T10:35:00.003-07:002014-12-23T10:35:55.034-07:00Merry Christmas!To everyone out there, firstly, I want to wish the happiest of holidays, in whatever form you choose to celebrate. I truly hope these holidays are wonderful for each of you. It's a time to remember those that we love and the friendships we cherish. Hope the new year brings lots of great opportunities to each of you.<br />
<br />
Last Sunday I performed my own arrangement of <i>Oh, Come, All Ye Faithful</i> for my local congregation. It turned out wonderfully and I certainly felt the spirit of Christmas as I sang it. My little brother, a very talented pianist, composer, arranger, improvisor, etc., accompanied me on the piano, though I wish we could have done it with the organ. If you're interested, here's the sheet music for your enjoyment. Feel free to download and use!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://db.tt/4NjorVEV"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOGH3bUTg1eOGYRX7bh017RKP0c4PsKqYzNVRW7WTKEe6nMgbcBxZKZ043hJLLsp3qCdw0IjOY3ylAblz27QMISA52rfshOIdFkJI6q7FDrAKnu1Bz1GGaJeo7hIzy1nkCC73i_LtYgHzn/s1600/oh-come-all-ye-faithful-thumbnail.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibDJv3NdQv1ZuXol6OqNWXAwgnZOCj1tSKOr8O1J9rOAuHLmjxNazuA9zX_uEC2Gkw0CpbkkJbYB2EVpXCOjQiJmWcuVes1dr0N-6qIeR89pFlKfCKwQaSdK0oUxzjagH-CoQJvwfcPqjB/s1600/happy-holidays1.png" /></div>
Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com0tag:blogger.com,1999:blog-8351372334253526966.post-54039946649688209702014-12-14T08:08:00.001-07:002014-12-14T08:10:36.949-07:00New Music Font: SebastianoSo, I've actually had this done for a little while, but just hadn't released it yet. This new font is a OFL derivative of a (basically) non-public OFL-licensed font designed by engraver/composer Florian Kretlow (<a href="https://github.com/fkretlow/sebastian" target="_blank">github source</a>). It follows what I call the "inky" look, where internal corners (at least some of them) get "rounded" by what would have been caused by the capillary action of the liquid ink. Here's a sample (click to see a full-size PDF).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://drive.google.com/file/d/0B-mYgToFFF2MMVNkd3B2S0kwZzQ/view?usp=sharing" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0t4w-YK7Hif74P3qmnZbprDUTkOnm281SHWFTQ2ymzZU2UspTeer6BwFNgJMSR6G_akgfWC37mzW4FT5zTEom1wdTD_FeNftd2u9WDz2JdujAcdo-pTnQw3-Bh0DBqhQ6Q_Eb_gGjBmxY/s1600/praludium-sample.png" height="105" width="320" /></a></div>
<br />
<br />
I think the font itself is quite nice. It has some inconsistencies that bother me a little, though. For example, the default flat symbol is thicker in the stem than inside the eyelet. The second f in the "sffz" ligature is different from the first. Having these inconsistencies doesn't make the font BAD, per se, just not to my taste.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxY92hc4qtRpHoTCZkrhzyn-N_MIZbgqYzjmdc8Dt8uL9-wJ8CTb2Z8oMUi5Hwexn_6N37KHVgHvjzLUH8owtc-Q25sttwV9o_yZku0B8llxEDZsJel_VT6EPDKrvCTU5IrDR0ynooJLss/s1600/flat.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxY92hc4qtRpHoTCZkrhzyn-N_MIZbgqYzjmdc8Dt8uL9-wJ8CTb2Z8oMUi5Hwexn_6N37KHVgHvjzLUH8owtc-Q25sttwV9o_yZku0B8llxEDZsJel_VT6EPDKrvCTU5IrDR0ynooJLss/s1600/flat.png" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGWxcncSxGLcUQTiOpGEtSaH12e7toLxDMGG2R5FCLbyTOaa6MuHUFnKTnK6mzWAtRmePqd4ju07fpxBPHVPX6BWSSbAra8YBgn7mU1yq3HGaQlLGWzbn14EtmE0svQ8TUI5joGA2PBIYm/s1600/sffz.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGWxcncSxGLcUQTiOpGEtSaH12e7toLxDMGG2R5FCLbyTOaa6MuHUFnKTnK6mzWAtRmePqd4ju07fpxBPHVPX6BWSSbAra8YBgn7mU1yq3HGaQlLGWzbn14EtmE0svQ8TUI5joGA2PBIYm/s1600/sffz.png" /></a></div>
<br />
<br />
Fortunately, in the source files, there were a bunch of other variants in his source files that were more to my liking. Here's the same score as above, but with my selected variants, as done in LilyPond.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://fonts.openlilylib.org/sebastiano/PraludiumUndFuge.pdf" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Pkenwhk7zDA9iqRuh_qM6bC8fuMBjzxB5cpVLF2G4zzUkIhI8MFvxcgETurp-YRupATodFbRS4B8MFPDDaJuxkF2QshIhAaan4-WZc4bzgw4LxbArkNr4CjLuG-plccAr0RcShxvUA5x/s1600/praludium-sebastiano-sample.png" height="100" width="320" /></a></div>
<br />
The new font is available at <a href="http://fonts.openlilylib.org/">fonts.openlilylib.org</a>. Go get it! Here's a more extensive example: <a href="https://drive.google.com/file/d/0B-mYgToFFF2MRG5ScmYwbXA3WFE/view?usp=sharing" target="_blank">Grieg's Piano Concerto in A-minor, Second Movement</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com2tag:blogger.com,1999:blog-8351372334253526966.post-2320605058849635892014-11-12T17:02:00.000-07:002015-01-20T10:15:30.014-07:00Piano RH/LH Brackets<div class="separator" style="clear: both; text-align: center;">
</div>
Sometimes when I'm playing the piano or organ (especially the organ, since I'm not that great with the pedals yet), I need to mark that a high note in the lower stave should be played with the right hand. Here's an example of this situation:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjalKLviqv_XvXT-xU742LIx8qafNiQuCIOyaUVNSLELPXBSKv3sp3hoVBKk8tFAo3jEVkstKJWE4wbEcW7ICFqlDerKhAu2_Cksqg4iYVSIyQglMy84XKw2RlVQrtddRNokNDQB7fzNQ6P/s1600/example.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjalKLviqv_XvXT-xU742LIx8qafNiQuCIOyaUVNSLELPXBSKv3sp3hoVBKk8tFAo3jEVkstKJWE4wbEcW7ICFqlDerKhAu2_Cksqg4iYVSIyQglMy84XKw2RlVQrtddRNokNDQB7fzNQ6P/s1600/example.png" /></a></div>
For me, the indicated note is easily reachable with the right hand. So, how do I mark it that way? Well, in the <i>Notation Reference</i>, in the <a href="http://lilypond.org/doc/v2.18/Documentation/notation/inside-the-staff#fingering-instructions" target="_blank">Fingering Instructions</a> section, I found an example of a custom fingering markup. Normally, if you want to indicate that a note be played with a particular finger you use the "<b>-N</b>" syntax where N=1, 2, etc., and you'd get something like this:<br />
<br />
<blockquote class="tr_bq">
<pre id="document"><span class="lilypond-command function">\relative</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">''</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-pitch">c</span><span class="lilypond-duration">4</span><span class="lilypond-articulation">-</span><span class="lilypond-fingering">1</span> <span class="lilypond-pitch">d</span><span class="lilypond-articulation">-</span><span class="lilypond-fingering">2</span> <span class="lilypond-pitch">f</span><span class="lilypond-articulation">-</span><span class="lilypond-fingering">4</span> <span class="lilypond-pitch">e</span><span class="lilypond-articulation">-</span><span class="lilypond-fingering">3</span>
<span class="lilypond-delimiter keyword">}</span><span class="lilypond-delimiter keyword"></span></pre>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYU7iU7rm83SkNLOtYW-z2j-6XtUkqBJ0z6MJmJUKchk_xEIBsubcxNdzd3BwO6paiXiE1dTnBikYe-zyjsOCFq9Jx9ktLJewmXizHwAE6wGDp-GJ6j1-MW6FJxO-FU10aqj03srUBk0Wc/s1600/image-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYU7iU7rm83SkNLOtYW-z2j-6XtUkqBJ0z6MJmJUKchk_xEIBsubcxNdzd3BwO6paiXiE1dTnBikYe-zyjsOCFq9Jx9ktLJewmXizHwAE6wGDp-GJ6j1-MW6FJxO-FU10aqj03srUBk0Wc/s1600/image-1.png" /></a></div>
Pretty simple. If you need a more complex instruction (like a finger-substitution), we can use the built-in "<b>\finger</b>" macro that allows us to put in a "<b>\markup</b>" object:<br />
<br />
<blockquote class="tr_bq">
<pre id="document"><span class="lilypond-command function">\relative</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">''</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-pitch">c</span><span class="lilypond-duration">4</span><span class="lilypond-articulation">-</span><span class="lilypond-fingering">1</span> <span class="lilypond-pitch">d</span><span class="lilypond-articulation">-</span><span class="lilypond-fingering">2</span> <span class="lilypond-pitch">f</span><span class="lilypond-usercommand variable">\finger</span> <span class="lilypond-markup function">\markup</span> <span class="lilypond-markup function">\tied-lyric</span> <span class="scheme-scheme">#</span><span class="scheme-string string">"4~3"</span> <span class="lilypond-pitch">c</span><span class="lilypond-usercommand variable">\finger</span> <span class="lilypond-string string">"2 - 3"</span>
<span class="lilypond-delimiter keyword">}</span><span class="lilypond-delimiter keyword"></span></pre>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi790CroSUFylWUXkMaI_aoRt7o1Fnyy_844A-xtgAbIAf_Mfv5GhUxm_kUuTqFhRon2-KBTZzVzFKHEJkJxkZDbz-uKHIyXQlzBp-vKaWLNgMTdNHxO3k_VauN0m1F6MMeL1-nS6vvtvGv/s1600/image-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi790CroSUFylWUXkMaI_aoRt7o1Fnyy_844A-xtgAbIAf_Mfv5GhUxm_kUuTqFhRon2-KBTZzVzFKHEJkJxkZDbz-uKHIyXQlzBp-vKaWLNgMTdNHxO3k_VauN0m1F6MMeL1-nS6vvtvGv/s1600/image-2.png" /></a></div>
Nice! Now, we take this a step further. I decided to create a bracket (or half-bracket, really) using some simple post-script commands within a "<b>\markup</b>" object:<br />
<blockquote class="tr_bq">
<pre id="document"><span class="lilypond-uservariable">lhMark</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\path</span> <span class="scheme-scheme">#</span><span class="scheme-number value">0.1</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">((</span><span class="scheme-scheme">moveto</span> <span class="scheme-number value">-1</span> <span class="scheme-number value">0</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">0</span> <span class="scheme-number value">1.5</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">0.5</span> <span class="scheme-number value">0</span><span class="scheme-delimiter">))</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-uservariable">rhMark</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\path</span> <span class="scheme-scheme">#</span><span class="scheme-number value">0.1</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">((</span><span class="scheme-scheme">moveto</span> <span class="scheme-number value">-1</span> <span class="scheme-number value">0</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">0</span> <span class="scheme-number value">-1.5</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">0.5</span> <span class="scheme-number value">0</span><span class="scheme-delimiter">))</span>
<span class="lilypond-delimiter keyword">}</span></pre>
</blockquote>
This is in the shape of an "L" and is designed to go on the LEFT side of the notehead. However, the default position is ABOVE the notehead (or chord, if it's part of one). So, in order to place it NEXT to the note, I need to change the "fingeringOrientations" property, like so:<br />
<blockquote class="tr_bq">
<pre id="document"><span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">fingeringOrientations</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">left</span><span class="scheme-delimiter">)</span></pre>
</blockquote>
Putting these together, we get something like this:<br />
<blockquote class="tr_bq">
<pre id="document"><span class="lilypond-command function">\relative</span> <span class="lilypond-pitch">c</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-command function">\clef</span> <span class="lilypond-specifier variable">bass</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">fingeringOrientations</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">left</span><span class="scheme-delimiter">)</span>
<span class="lilypond-chord"><</span><span class="lilypond-pitch">f</span><span class="lilypond-octave">,</span> <span class="lilypond-pitch">a</span><span class="lilypond-octave">'</span><span class="lilypond-usercommand variable">\finger</span> <span class="lilypond-usercommand variable">\rhMark</span><span class="lilypond-chord">></span><span class="lilypond-duration">4</span>
<span class="lilypond-delimiter keyword">}</span></pre>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtOVUjHE-VJDB8hJJ6q_yJvFO01itnzCyBZgNWkAzZJC0B8kkriGhw6yB23F0lOAmvPY2CwmI9klFo8INRFrjELFVvue7-n9Iwn4rb3x1oLvNuRsW8tjT92dd_FIBqm8ymnX0tmj72gGdM/s1600/image-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtOVUjHE-VJDB8hJJ6q_yJvFO01itnzCyBZgNWkAzZJC0B8kkriGhw6yB23F0lOAmvPY2CwmI9klFo8INRFrjELFVvue7-n9Iwn4rb3x1oLvNuRsW8tjT92dd_FIBqm8ymnX0tmj72gGdM/s1600/image-3.png" /></a></div>
<br />
Let's take this a step further. Suppose I now want to indicate "<i>R.H.</i>" next to the bracket. This can be done pretty easily by using the "<b>\concat</b>" function within the "<b>\markup</b>" object, which concatenates two expressions, like this:<br />
<blockquote class="tr_bq">
<pre id="document"><span class="lilypond-uservariable">lhMarkText</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\concat</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\override</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">font-encoding</span> <span class="scheme-scheme">.</span> <span class="scheme-scheme">latin1</span><span class="scheme-delimiter">)</span> <span class="lilypond-markup function">\italic</span> <span class="lilypond-string string">"L.H. "</span>
<span class="lilypond-markup function">\path</span> <span class="scheme-scheme">#</span><span class="scheme-number value">0.1</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">((</span><span class="scheme-scheme">moveto</span> <span class="scheme-number value">0</span> <span class="scheme-number value">-0.5</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">0</span> <span class="scheme-number value">1.5</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">0.5</span> <span class="scheme-number value">0</span><span class="scheme-delimiter">))</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-uservariable">rhMarkText</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\concat</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\override</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">font-encoding</span> <span class="scheme-scheme">.</span> <span class="scheme-scheme">latin1</span><span class="scheme-delimiter">)</span> <span class="lilypond-markup function">\italic</span> <span class="lilypond-string string">"R.H. "</span>
<span class="lilypond-markup function">\path</span> <span class="scheme-scheme">#</span><span class="scheme-number value">0.1</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">((</span><span class="scheme-scheme">moveto</span> <span class="scheme-number value">0</span> <span class="scheme-number value">1</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">0</span> <span class="scheme-number value">-1.5</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">0.5</span> <span class="scheme-number value">0</span><span class="scheme-delimiter">))</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-command function">\relative</span> <span class="lilypond-pitch">c</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-command function">\clef</span> <span class="lilypond-specifier variable">bass</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">fingeringOrientations</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">left</span><span class="scheme-delimiter">)</span>
<span class="lilypond-chord"><</span><span class="lilypond-pitch">f</span><span class="lilypond-octave">,</span> <span class="lilypond-pitch">a</span><span class="lilypond-octave">'</span><span class="lilypond-usercommand variable">\finger</span> <span class="lilypond-usercommand variable">\rhMarkText</span><span class="lilypond-chord">></span><span class="lilypond-duration">4</span>
<span class="lilypond-delimiter keyword">}</span><span class="lilypond-delimiter keyword"></span></pre>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSvrGmmEYS651dnkpyqQhqHrYTWRIw0dZel9-7sz7es-mH6g2y0G53mWXrLaI5aDEm9Ug4k2zJCyOavzhL_bIpIyw6aM3eqbnqTzimxEQvkmo_FqHge2L97twgWntUdye9d3FUjrO2190o/s1600/image-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSvrGmmEYS651dnkpyqQhqHrYTWRIw0dZel9-7sz7es-mH6g2y0G53mWXrLaI5aDEm9Ug4k2zJCyOavzhL_bIpIyw6aM3eqbnqTzimxEQvkmo_FqHge2L97twgWntUdye9d3FUjrO2190o/s1600/image-4.png" /></a></div>
This can get even more involved if we need to actually bracket a section of a chord, but following the snippets above, we can do crazy things like this:<br />
<blockquote class="tr_bq">
<pre id="document"><span class="lilypond-uservariable">rhBracket</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\concat</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\path</span> <span class="scheme-scheme">#</span><span class="scheme-number value">0.1</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">((</span><span class="scheme-scheme">moveto</span> <span class="scheme-number value">0</span> <span class="scheme-number value">-1.75</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">0.5</span> <span class="scheme-number value">0</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">0</span> <span class="scheme-number value">4.25</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">-0.5</span> <span class="scheme-number value">0</span><span class="scheme-delimiter">))</span>
<span class="lilypond-markup function">\override</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">font-encoding</span> <span class="scheme-scheme">.</span> <span class="scheme-scheme">latin1</span><span class="scheme-delimiter">)</span> <span class="lilypond-markup function">\italic</span> <span class="lilypond-string string">" RH"</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-uservariable">lhBracket</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\concat</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-markup function">\path</span> <span class="scheme-scheme">#</span><span class="scheme-number value">0.1</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">((</span><span class="scheme-scheme">moveto</span> <span class="scheme-number value">0</span> <span class="scheme-number value">0.75</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">0.5</span> <span class="scheme-number value">0</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">0</span> <span class="scheme-number value">-3.25</span><span class="scheme-delimiter">)(</span><span class="scheme-scheme">rlineto</span> <span class="scheme-number value">-0.5</span> <span class="scheme-number value">0</span><span class="scheme-delimiter">))</span>
<span class="lilypond-markup function">\override</span> <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">font-encoding</span> <span class="scheme-scheme">.</span> <span class="scheme-scheme">latin1</span><span class="scheme-delimiter">)</span> <span class="lilypond-markup function">\lower</span> <span class="scheme-scheme">#</span><span class="scheme-number value">1.25</span> <span class="lilypond-markup function">\italic</span> <span class="lilypond-string string">" LH"</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-command function">\new</span> <span class="lilypond-context">Staff</span> <span class="lilypond-command function">\relative</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">,</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-command function">\clef</span> <span class="lilypond-specifier variable">bass</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">fingeringOrientations</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">right</span><span class="scheme-delimiter">)</span>
<span class="lilypond-chord"><</span><span class="lilypond-pitch">e</span> <span class="lilypond-pitch">f</span> <span class="lilypond-pitch">bes</span><span class="lilypond-usercommand variable">\finger</span> <span class="lilypond-usercommand variable">\lhBracket</span> <span class="lilypond-pitch">e</span><span class="lilypond-usercommand variable">\finger</span> <span class="lilypond-usercommand variable">\rhBracket</span> <span class="lilypond-pitch">g</span> <span class="lilypond-pitch">b</span><span class="lilypond-accidental">!</span> <span class="lilypond-pitch">dis</span><span class="lilypond-chord">></span><span class="lilypond-duration">1</span><span class="lilypond-command function">\arpeggio</span>
<span class="lilypond-delimiter keyword">}</span><span class="lilypond-delimiter keyword"></span></pre>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXt4E2G4t2vQgSO0MC-XlJ_ADzuEExJ4qHXy9G8HnonC-WJccghXrfdC4kNxdyz0YZVq7r2SqP6iZjHe43V1lsOsD6xivyFuSsvuVBbKlUzpOIkbnAH0dvbqp8l8yuZdhhgpbbmDQnnzMm/s1600/image-5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXt4E2G4t2vQgSO0MC-XlJ_ADzuEExJ4qHXy9G8HnonC-WJccghXrfdC4kNxdyz0YZVq7r2SqP6iZjHe43V1lsOsD6xivyFuSsvuVBbKlUzpOIkbnAH0dvbqp8l8yuZdhhgpbbmDQnnzMm/s1600/image-5.png" /></a></div>
There you go, all you piano/organ players! You may have to play around with the numbers (since there isn't a dedicated function to do this yet), but without too much effort, you should be able to get the job done.<br />
<br />
If you are trying to do this and can't figure it out for your situation, send me an email.Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com1tag:blogger.com,1999:blog-8351372334253526966.post-72419325259672292352014-11-06T13:53:00.001-07:002015-01-20T10:15:49.742-07:00Long, Broken (De-)Crescendo TextHave you ever wondered how to create a dynamic marking like this:<br />
<div style="text-align: center;">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg00bjp2B433ETWm_5cqcN4ux8kyaMO1_PsUHNJJ2z_e8pevFcM0OhfM3x6fnQcaGQF_C52YZnbMLOPlqBa6QhDnQKkhyTo9n2qhHMNxwaZ431Hdqsyhje8EqjXMounxvYfvxGd6fpep37X/s1600/chopin-example-highlighted.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg00bjp2B433ETWm_5cqcN4ux8kyaMO1_PsUHNJJ2z_e8pevFcM0OhfM3x6fnQcaGQF_C52YZnbMLOPlqBa6QhDnQKkhyTo9n2qhHMNxwaZ431Hdqsyhje8EqjXMounxvYfvxGd6fpep37X/s1600/chopin-example-highlighted.png" /></a></div>
<br /></div>
<div style="text-align: center;">
<br /></div>
I know I have, and as I was looking through the Chopin score above, I noticed this marking again, and having never tried to do it in LilyPond, I thought I'd figure it out.<br />
<br />
In the LilyPond Notation Reference, under the <a href="http://lilypond.org/doc/v2.18/Documentation/notation/expressive-marks-attached-to-notes#dynamics" target="_blank">Dynamics Section</a> there's a subsection called "<i>Changing text and spanner styles for text dynamics</i>". In the example, it shows how you can customize the crescendo markings to be text instead of a hairpin and use your own markup text.<br />
<br />
<blockquote class="tr_bq">
<pre class="verbatim"><span style="font-size: small;"><span class="lilypond-command function">\relative</span> <span class="lilypond-pitch">c</span><span class="lilypond-octave">''</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">crescendoText</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-delimiter keyword">{</span> <span class="lilypond-markup function">\italic</span> <span class="lilypond-delimiter keyword">{</span> cresc. poco <span class="lilypond-delimiter keyword">}</span> <span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">crescendoSpanner</span> = <span class="scheme-scheme">#'text</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">DynamicTextSpanner</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">style</span> = <span class="scheme-scheme">#'dotted-line</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">2</span><span class="lilypond-dynamic">\<</span> <span class="lilypond-pitch">a</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">a</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">a</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">a</span><span class="lilypond-dynamic">\mf</span>
<span class="lilypond-delimiter keyword">}</span></span></pre>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM62Bw1oTjSxXKyxLvzpnbuTdLv3LjMruOO8vcxZs76NDT_t1DV7qsqloy8TICLfJjT-WQd2amnNR5DjQnkcpJIhzKFphrultaYQCQBMBTjGCMQmTMA7-Km5oM_m_bn8iTzBPfJxckJrat/s1600/NR-example.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM62Bw1oTjSxXKyxLvzpnbuTdLv3LjMruOO8vcxZs76NDT_t1DV7qsqloy8TICLfJjT-WQd2amnNR5DjQnkcpJIhzKFphrultaYQCQBMBTjGCMQmTMA7-Km5oM_m_bn8iTzBPfJxckJrat/s1600/NR-example.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
We can extend this further by using successive "\<" marks, which allows us to have as many bits of text as I want in the chain, <i>except for the last one</i>. To end the chain, it must end on a stand-alone dynamic. This can be created with:<br />
<blockquote class="tr_bq">
<pre id="document"><span style="font-size: small;"><span class="lilypond-uservariable">do</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-delimiter keyword">{</span> <span class="lilypond-markup function">\normal-text</span> <span class="lilypond-markup function">\italic</span> do <span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-uservariable">do</span> = <span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">make-dynamic-script</span> <span class="scheme-keyword keyword">do</span><span class="scheme-delimiter">)</span></span></pre>
</blockquote>
or these operations can be combined:<br />
<blockquote class="tr_bq">
<pre id="document"><span style="font-size: small;"><span class="lilypond-uservariable"><span class="lilypond-uservariable">do</span> = <span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-scheme">make-dynamic-script</span> <span class="scheme-delimiter">(</span><span class="scheme-function function">markup</span> <span class="scheme-scheme">#:normal-text</span> <span class="scheme-scheme">#:italic</span> <span class="scheme-string string">"do"</span><span class="scheme-delimiter">))</span></span><span class="scheme-delimiter"></span>
</span></pre>
</blockquote>
<br />
Now, to create the broken-up crescendo (I'll leave the default dashed-line), we can do something like this:<br />
<blockquote>
<pre id="document"><span class="lilypond-command function" style="font-size: small;">\relative</span><span style="font-size: small;"> <span class="lilypond-pitch">c</span><span class="lilypond-octave">''</span> <span class="lilypond-delimiter keyword">{</span>
</span><span style="font-size: small;"><span style="font-size: small;"> <span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">crescendoSpanner</span> = <span class="scheme-scheme">#'text</span>
</span> <span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">crescendoText</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-markup function">\italic</span> <span class="scheme-string string">"cre"</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">2</span><span class="lilypond-dynamic">\<</span> <span class="lilypond-pitch">a</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">crescendoText</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-markup function">\italic</span> <span class="scheme-string string">"scen"</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">a</span><span class="lilypond-dynamic">\<</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">a</span>
<span class="lilypond-pitch">a</span><span class="lilypond-duration">2</span> <span class="lilypond-pitch">a</span><span class="lilypond-usercommand variable">\do</span>
<span class="lilypond-delimiter keyword">}</span></span></pre>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT1xQBdRChP8taUJUws3vbj443jGBbrluzjDQDk744iMB4sO0ufvTyS9ZMFAsrp42DONVoWwc3yRCURStnTAvmR-4w8xc6GTfZVh-bH8AU6f5Bmk8xbzvQTM1OaYR6a-sy_QY3uWYBlbA0/s1600/long-broken-crescendo-text.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT1xQBdRChP8taUJUws3vbj443jGBbrluzjDQDk744iMB4sO0ufvTyS9ZMFAsrp42DONVoWwc3yRCURStnTAvmR-4w8xc6GTfZVh-bH8AU6f5Bmk8xbzvQTM1OaYR6a-sy_QY3uWYBlbA0/s1600/long-broken-crescendo-text.png" /> </a></div>
So, all we need to do is put <code><span style="font-size: small;"><span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">crescendoText</span> = <span class="lilypond-markup function">\markup</span> <span class="lilypond-markup function">\italic</span> <span class="scheme-string string">"some text"</span></span></code> before the note or chord we want to attach it to and <code><span class="lilypond-dynamic" style="font-size: small;">\<</span></code> after it like we would normally do.Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com0tag:blogger.com,1999:blog-8351372334253526966.post-53935572860187251542014-11-05T16:57:00.000-07:002016-04-01T09:10:52.747-06:00Vertically Centering LyricsRecently, I had to create one with a couple of verses with lyrics. Creating the lyrics is easy enough, but I quickly ran into a speed-bump when I wanted to make the chorus show up vertically centered in the same system as the verses. One way around this is to simply start a new system before the chorus lyrics show up, but I didn't want to do that. Doing a quick search through the <a href="http://lsr.di.unimi.it/LSR/Item?id=503" target="_blank">LSR</a> under the search term "lyrics" showed me that I could set up a series of temporary overrides and offset the vertical position of the lyrics:<br />
<blockquote>
<pre><span style="font-size: small;"><span class="lilypond-uservariable">dropLyrics</span> = <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">LyricText</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-number value">0</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">-4.5</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">LyricHyphen</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-number value">0</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">-4.5</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">LyricExtender</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-number value">0</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">-4.5</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">StanzaNumber</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-number value">0</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">-4.5</span><span class="scheme-delimiter">)</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-uservariable">raiseLyrics</span> = <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-keyword keyword">\revert</span> <span class="lilypond-grob">LyricText</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span>
<span class="lilypond-keyword keyword">\revert</span> <span class="lilypond-grob">LyricHyphen</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span>
<span class="lilypond-keyword keyword">\revert</span> <span class="lilypond-grob">LyricExtender</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span>
<span class="lilypond-keyword keyword">\revert</span> <span class="lilypond-grob">StanzaNumber</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span>
<span class="lilypond-delimiter keyword">}</span>
</span></pre>
</blockquote>
These two macros would then be used like this (in the first of the four verses):<br />
<blockquote>
<pre><span style="font-size: small;"><span class="lilypond-uservariable">lyricsA</span> = <span class="lilypond-lyricmode function">\lyricmode</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-lyrictext">The</span> <span class="lilypond-lyrictext">first</span> <span class="lilypond-lyrictext">verse</span> <span class="lilypond-lyrictext">has</span>
<span class="lilypond-usercommand variable">\dropLyrics</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">stanza</span> = <span class="scheme-scheme">#</span><span class="scheme-string string">" All:"</span>
<span class="lilypond-lyrictext">the</span> <span class="lilypond-lyrictext">com</span> <span class="lilypond-lyrictext">--</span> <span class="lilypond-lyrictext">mon</span> <span class="lilypond-lyrictext">__</span> <span class="lilypond-lyrictext">words</span>
<span class="lilypond-usercommand variable">\raiseLyrics</span>
<span class="lilypond-lyrictext">used</span> <span class="lilypond-lyrictext">in</span> <span class="lilypond-lyrictext">all</span> <span class="lilypond-lyrictext">four.</span>
<span class="lilypond-delimiter keyword">}</span></span>
</pre>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfEsQXR2PfkjlaOgf8_WrMDVj9IZ2o03QKv2AdtCV56bMNB6Cm0u5OvegJtPQlhHACx9MH2iyRApV32VS_k7FbB0F_scWaOV0em-dKPGhiVgzSnvL5KD3Tl7yMlJoXLBRorHw-KuAsgBZq/s1600/vertically-centered-lyrics.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfEsQXR2PfkjlaOgf8_WrMDVj9IZ2o03QKv2AdtCV56bMNB6Cm0u5OvegJtPQlhHACx9MH2iyRApV32VS_k7FbB0F_scWaOV0em-dKPGhiVgzSnvL5KD3Tl7yMlJoXLBRorHw-KuAsgBZq/s1600/vertically-centered-lyrics.png" /></a></div>
<div class="separator" style="background: #ffffff; clear: both; text-align: center;">
</div>
<br />
This was exactly what I was looking for, but I felt like it needed to be a little more robust and customizable. So, with my limited knowledge of Scheme, I proceeded to make a function out of it:<br />
<style type="text/css">
p, li { white-space: pre-wrap; }
</style> <br />
<blockquote>
<pre><span style="font-size: small;"><span class="lilypond-uservariable">dropLyrics</span> =
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-function function">define-music-function</span> <span class="scheme-delimiter">(</span><span class="scheme-scheme">parser</span> <span class="scheme-scheme">location</span> <span class="scheme-scheme">x</span> <span class="scheme-scheme">music</span><span class="scheme-delimiter">)</span>
<span class="scheme-delimiter">(</span><span class="scheme-keyword keyword">number?</span> <span class="scheme-function function">ly:music?</span><span class="scheme-delimiter">)</span>
<span class="scheme-lilypond">#{</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">LyricText</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-keyword keyword">cons</span> <span class="scheme-number value">0</span> <span class="scheme-scheme">x</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">LyricHyphen</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-keyword keyword">cons</span> <span class="scheme-number value">0</span> <span class="scheme-scheme">x</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">LyricExtender</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-keyword keyword">cons</span> <span class="scheme-number value">0</span> <span class="scheme-scheme">x</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">StanzaNumber</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-keyword keyword">cons</span> <span class="scheme-number value">0</span> <span class="scheme-scheme">x</span><span class="scheme-delimiter">)</span>
<span class="scheme-scheme">$music</span>
<span class="lilypond-keyword keyword">\revert</span> <span class="lilypond-grob">LyricText</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span>
<span class="lilypond-keyword keyword">\revert</span> <span class="lilypond-grob">LyricHyphen</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span>
<span class="lilypond-keyword keyword">\revert</span> <span class="lilypond-grob">LyricExtender</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span>
<span class="lilypond-keyword keyword">\revert</span> <span class="lilypond-grob">StanzaNumber</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span>
<span class="scheme-lilypond">#}</span>
<span class="scheme-delimiter">)</span></span></pre>
</blockquote>
Putting it in a function allows me to control the vertical alignment at the same location where I'm typing the text. Now, whenever I need to center a section of lyrics, all I need to do is something like this, adjusting for the proper height:<br />
<blockquote>
<pre><span style="font-size: small;"><span class="lilypond-uservariable">lyricsA</span> = <span class="lilypond-lyricmode function">\lyricmode</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-lyrictext">The</span> <span class="lilypond-lyrictext">first</span> <span class="lilypond-lyrictext">verse</span> <span class="lilypond-lyrictext">has</span>
<span class="lilypond-usercommand variable">\dropLyrics</span> <span class="scheme-scheme">#</span><span class="scheme-number value">-4.5</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">stanza</span> = <span class="scheme-scheme">#</span><span class="scheme-string string">" All:"</span>
<span class="lilypond-lyrictext">the</span> <span class="lilypond-lyrictext">com</span> <span class="lilypond-lyrictext">--</span> <span class="lilypond-lyrictext">mon</span> <span class="lilypond-lyrictext">__</span> <span class="lilypond-lyrictext">words</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-lyrictext">used</span> <span class="lilypond-lyrictext">in</span> <span class="lilypond-lyrictext">all</span> <span class="lilypond-lyrictext">four.</span>
<span class="lilypond-delimiter keyword">}</span></span>
</pre>
</blockquote>
One thing I've learned is that centering lyrics between an odd-number of verses is as easy as including the single line of words <i>in the middle verse</i> while putting "\skip"s in all the others (only necessary if they pick up after the centered text like the example here). So, the above function is really only required for an <i>even-number</i> of verses, and only in the system where they appear together. If I put the centered text in the verse <i>just above</i> where I want to center it (i.e., the second verse if there are four), then I don't need to be explicit about the offset and it can be <i>hard-coded</i>:<br />
<blockquote>
<pre><span style="font-size: small;"><span class="lilypond-uservariable">dropLyrics</span> =
<span class="scheme-scheme">#</span><span class="scheme-delimiter">(</span><span class="scheme-function function">define-music-function</span> <span class="scheme-delimiter">(</span><span class="scheme-scheme">parser</span> <span class="scheme-scheme">location</span> <span class="scheme-scheme">music</span><span class="scheme-delimiter">)</span>
<span class="scheme-delimiter">(</span><span class="scheme-function function">ly:music?</span><span class="scheme-delimiter">)</span>
<span class="scheme-lilypond">#{</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">LyricText</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-number value">0</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">-1.5</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">LyricHyphen</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-number value">0</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">-1.5</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">LyricExtender</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-number value">0</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">-1.5</span><span class="scheme-delimiter">)</span>
<span class="lilypond-keyword keyword">\override</span> <span class="lilypond-grob">StanzaNumber</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span> = <span class="scheme-scheme">#'</span><span class="scheme-delimiter">(</span><span class="scheme-number value">0</span> <span class="scheme-scheme">.</span> <span class="scheme-number value">-1.5</span><span class="scheme-delimiter">)</span>
<span class="scheme-scheme">$music</span>
<span class="lilypond-keyword keyword">\revert</span> <span class="lilypond-grob">LyricText</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span>
<span class="lilypond-keyword keyword">\revert</span> <span class="lilypond-grob">LyricHyphen</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span>
<span class="lilypond-keyword keyword">\revert</span> <span class="lilypond-grob">LyricExtender</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span>
<span class="lilypond-keyword keyword">\revert</span> <span class="lilypond-grob">StanzaNumber</span><span class="lilypond-delimiter keyword">.</span><span class="lilypond-variable variable">extra-offset</span>
<span class="scheme-lilypond">#}</span>
<span class="scheme-delimiter">)</span></span>
</pre>
</blockquote>
And to use it now, we move the centered text to the second verse and add \skipFour to the first one:<br />
<blockquote>
<pre><span style="font-size: small;"><span class="lilypond-uservariable">lyricsA</span> = <span class="lilypond-lyricmode function">\lyricmode</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-lyrictext">The</span> <span class="lilypond-lyrictext">first</span> <span class="lilypond-lyrictext">verse</span> <span class="lilypond-lyrictext">has</span>
<span class="lilypond-usercommand variable">\skipFour</span>
<span class="lilypond-lyrictext">used</span> <span class="lilypond-lyrictext">in</span> <span class="lilypond-lyrictext">all</span> <span class="lilypond-lyrictext">four.</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-uservariable">lyricsB</span> = <span class="lilypond-lyricmode function">\lyricmode</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-lyrictext">In</span> <span class="lilypond-lyrictext">stan</span> <span class="lilypond-lyrictext">--</span> <span class="lilypond-lyrictext">za</span> <span class="lilypond-lyrictext">two,</span>
<span class="lilypond-usercommand variable">\dropLyrics</span> <span class="lilypond-delimiter keyword">{</span>
<span class="lilypond-keyword keyword">\set</span> <span class="lilypond-property variable">stanza</span> = <span class="scheme-scheme">#</span><span class="scheme-string string">" All:"</span>
<span class="lilypond-lyrictext">the</span> <span class="lilypond-lyrictext">com</span> <span class="lilypond-lyrictext">--</span> <span class="lilypond-lyrictext">mon</span> <span class="lilypond-lyrictext">__</span> <span class="lilypond-string string">"words "</span>
<span class="lilypond-delimiter keyword">}</span>
<span class="lilypond-lyrictext">al</span> <span class="lilypond-lyrictext">--</span> <span class="lilypond-lyrictext">so</span> <span class="lilypond-lyrictext">ap</span> <span class="lilypond-lyrictext">--</span> <span class="lilypond-lyrictext">pear.</span>
<span class="lilypond-delimiter keyword">}</span></span>
</pre>
</blockquote>
The only catch to this is that the text will only look for collisions between surrounding characters, so it may be necessary to add additional spaces to the first/last words (as I've done with <code><span class="scheme-string string" style="font-size: small;">" All:"</span></code> and <code><span class="scheme-string string" style="font-size: small;">"words "</span></code>). Maybe it would be more useful now to call the function "centerLyrics" instead, but whatever.Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com0tag:blogger.com,1999:blog-8351372334253526966.post-56170738795329068842014-11-03T23:16:00.003-07:002014-11-12T17:04:22.994-07:00No Music Font Industry?You may know of my involvement with designing <a href="http://fonts.openlilylib.org/" target="_blank">alternative music fonts</a> for LilyPond. Ever since I was able to get these fonts to work, I have often wondered why there aren't more music notation fonts out there. The most common seem to be:<br />
<ul>
<li>Maestro (<i>Finale</i>)</li>
<li>Petrucci (<i>Finale</i>)</li>
<li>Opus (<i>Sibelius</i>)</li>
<li>Helsinki (<i>Sibelius</i>)</li>
<li>Jazz & Swing (<i>Sigler</i>)</li>
<li>Sonata (<i>Adobe</i>)</li>
<li>Bravura (<i>Steinberg</i>)</li>
</ul>
There are definitely others out there, but as I've looked through the various notation software, most have one, maybe two, music fonts. There is an ocean of text fonts, but not for music fonts. Why is this? I can only speculate that it is because of a couple of reasons:<br />
<ol>
<li><b>No common character set standard</b> (like Unicode or ASCII). Most music fonts have followed the mnemonic approach of <i>Sonata</i>, like putting the treble clef in the "&" character spot, the sharp accidental in the "#" character spot, etc. Recently, Steinberg's Daniel Spreadbury has been hard at work trying to change this and create a complete music glyph standard that will support nearly any conceivable notation element, ancient and modern. This standard is called the "Standard Music Font Layout" or <a href="http://www.smufl.org/"><i>SMuFL</i></a>. If this catches on, it could open up the door to a host of designers. </li>
<li><b>A relatively small user base</b>. Let's face it, there are more people who are going to type up a document with words in it (I'll call them "typesetters") than there are people who are going to type up a document with music in it (I'll call them "engravers"). Since the proportion of engravers to typesetters is extremely small, there doesn't appear to be the same kind of demand for original music typefaces, so high quality designers don't spend much time in it.</li>
<li><b>Typeface styles/Contextual Purpose</b>. In text, there are so many variants and they all have their own usefulness (light, book, italic, bold, black, serif, sans-serif, monospace, etc.). However, music notation has a specific utility for conveying performance instructions to musicians. The music font (as well as the rest of the score) must be clear so that the musician can play it correctly. Musicians expect this and get quite frustrated when the music is not clear. Since notational elements already vary widely in weight and shape, it is hard to find a correlation to the very many text typeface variants. In that sense, and in my experience, music fonts are MUCH easier to design because there is pretty much just the one glyph set. The only variants to be found are the text-related ones like tuplet numbers. The two main font styles that seem to exist for music fonts are "engraved" and "handwritten". The handwritten fonts tend to be associated with a "jazzy" feel, and basically everything else gets the classic engraved look. </li>
</ol>
<div>
Well, that's all I can think of for now. Maybe the industry will change, especially as there are more and more self-publishers who may seek a less generic look for their scores. In any case, creating music fonts for LilyPond has given me a chance to contribute to the small pool of high quality music font industry. Who knows where that will lead me?</div>
Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com0tag:blogger.com,1999:blog-8351372334253526966.post-73362214105972773482014-10-20T23:26:00.001-06:002014-10-20T23:26:14.884-06:00Let the posts begin!Welcome to the new blog for all things LilyPond. I hope that this can be a useful place for users to come to learn little tricks and helpful hints to make life easier and more enjoyable. Why? Because LilyPond's results are absolutely incredible and gorgeous! I've used several of the most popular music notation applications and I have never saved so much time than when I stopped using them and only engraved using LilyPond. Now, that sounds pretty ruthless and there are plenty of people out there that would come back with flaming rebuttals. That's ok. If LilyPond isn't for you, then no worries! But if you are willing to try something a little different, the results will more than speak for themselves.<br />
<br />
It can sometimes be a challenge to switch from a graphical interface, where you click on the screen or enter the music with a MIDI keyboard, to a text-based input system. The beautiful thing about this is the change in focus. LilyPond changes the effort from the tedious task of laying out what you want to see on the page to structure and description of the actual music. LilyPond's algorithms are carefully crafted to evaluate many, many different scenarios for laying out the score on the page and finally picks the best one it can find. It's not perfect and it doesn't think of everything, but it sure comes close!<br />
<br />
As scores get more complex, then there will certainly be opportunities to tweak the position of objects on the page, but I have yet to find another piece of software that can compare to LilyPond's default output. Don't believe me? I'd love for you to provide me with a score's DEFAULT output in another notation program (i.e., no tweaks allowed) and let me score it up with LilyPond (with no tweaks). I am quite confident you will be impressed at the difference. And if there is something you don't like, there are ways to tweak the default output to suit your needs.<br />
<br />In the upcoming posts. I'll go through some of the basics of LilyPond syntax, leading into (hopefully) helpful tips and tricks. I'll also showcase new and upcoming music and text fonts I'm working on. Stay tuned!Leigh Verlaghttp://www.blogger.com/profile/05254929011194875581noreply@blogger.com2