LilyPond notation software - Minstrel Banjo2024-03-29T02:22:18Zhttp://minstrelbanjo.ning.com/forum/topics/lilypond-notation-software?commentId=2477478%3AComment%3A157284&feed=yes&xn_auth=noHi Manfred, Thank you for po…tag:minstrelbanjo.ning.com,2018-02-13:2477478:Comment:1705982018-02-13T09:24:42.810ZJean Louis Thiryhttp://minstrelbanjo.ning.com/profile/JeanLouisThiry
<p>Hi Manfred,<br></br> <br></br> Thank you for posting <span> </span><a href="http://minstrelbanjo.ning.com/forum/attachment/download?id=2477478%3AUploadedFile%3A157288">Briggs Girl with blue dress on.ly</a><span> as it is banjo music, the process of learning is much more easier for a banjo player. So I learnt a lot following your file that in a first time I adopted it as is, then adapted it to fit my own needs.</span></p>
<p><span>That made me an unconditional Lilypond user.</span></p>
<p><span>I'm…</span></p>
<p>Hi Manfred,<br/> <br/> Thank you for posting <span> </span><a href="http://minstrelbanjo.ning.com/forum/attachment/download?id=2477478%3AUploadedFile%3A157288">Briggs Girl with blue dress on.ly</a><span> as it is banjo music, the process of learning is much more easier for a banjo player. So I learnt a lot following your file that in a first time I adopted it as is, then adapted it to fit my own needs.</span></p>
<p><span>That made me an unconditional Lilypond user.</span></p>
<p><span>I'm actually compiling a lot of personal arrangements on mainly triple meter and syncopated music in clawhammer style. For this job, Lilypond is the tool of choice for standard notation and tab with the huge musical and technic documentation that comes with it.</span></p>
<p>In your tab setting I like very much the way you use the "\override Beam.damping" and "\override Beam.positions" commands that makes all beams level and I would like to know how to do the same for stems. I spent a lot of time to find in LP docs the way to do the same with stems with no or mediocre results. As far as I can understand stems and beams are not managed by the same engraver. Do you know a way to make stems and beams level? Hope you do… Thanks.</p>
<p><em>Jean Louis</em></p>
<blockquote cite="http://minstrelbanjo.ning.com/forum/topics/lilypond-notation-software?id=2477478%3ATopic%3A108964&page=1#2477478Comment157287"><div><div class="xg_user_generated"><p></p>
</div>
</div>
</blockquote> The files contain code that i…tag:minstrelbanjo.ning.com,2016-12-10:2477478:Comment:1573132016-12-10T13:28:15.923ZBrian Kimererhttp://minstrelbanjo.ning.com/profile/BrianKimerer
<p>The files contain code that is not necessarily used in every tune. As I figure things out I have been building up some templates with a general library of items I might need, such as the chord definitions. For example, if I want to add chord diagrams above the staff, I can add "c8.^\cmajorchord" etc. I don't use all of the items in all of the tunes. I didn't use the chord diagrams in the files I uploaded.</p>
<p>I have uploaded a Minstrel Banjo template that contains some pre-defined tunings…</p>
<p>The files contain code that is not necessarily used in every tune. As I figure things out I have been building up some templates with a general library of items I might need, such as the chord definitions. For example, if I want to add chord diagrams above the staff, I can add "c8.^\cmajorchord" etc. I don't use all of the items in all of the tunes. I didn't use the chord diagrams in the files I uploaded.</p>
<p>I have uploaded a Minstrel Banjo template that contains some pre-defined tunings that I use. It is based on my setting of the tune Old Joe. The Old Joe tune itself just uses #minstrel-high-d-tuning, but the others are there for when I set a different tune. I copy the template, rename the new file, then change the content to be a different tune.</p>
<p>There are still some mysteries. For example, I have not been able to suppress the string numbers on the standard notation output when I force a string on the tab version even though I told it to leave them out, e.g.</p>
<p>"\new Staff \with { \omit StringNumber }"</p>
<p>After I retire, I might spend some more time studying the Lilypond language to see if I can get some cleaner output. I might even be able to figure out what a "grob" is and how to use it.</p> It will take some time to stu…tag:minstrelbanjo.ning.com,2016-12-10:2477478:Comment:1573112016-12-10T09:32:43.711ZManfred Kilianhttp://minstrelbanjo.ning.com/profile/ManfredKilian
<p>It will take some time to study your files. Much appreciated!<br/> <br/> <cite>Manfred Kilian said:</cite></p>
<blockquote cite="http://minstrelbanjo.ning.com/forum/topics/lilypond-notation-software?id=2477478%3ATopic%3A108964&page=2#2477478Comment157380"><div><div class="xg_user_generated"><p>Thanks a lot Brian!</p>
<p>It seems it takes a programmer to work with lilypond. ;-)</p>
</div>
</div>
</blockquote>
<p>It will take some time to study your files. Much appreciated!<br/> <br/> <cite>Manfred Kilian said:</cite></p>
<blockquote cite="http://minstrelbanjo.ning.com/forum/topics/lilypond-notation-software?id=2477478%3ATopic%3A108964&page=2#2477478Comment157380"><div><div class="xg_user_generated"><p>Thanks a lot Brian!</p>
<p>It seems it takes a programmer to work with lilypond. ;-)</p>
</div>
</div>
</blockquote> Thanks a lot Brian!
It seems…tag:minstrelbanjo.ning.com,2016-12-10:2477478:Comment:1573802016-12-10T09:14:02.782ZManfred Kilianhttp://minstrelbanjo.ning.com/profile/ManfredKilian
<p>Thanks a lot Brian!</p>
<p>It seems it takes a programmer to work with lilypond. ;-)</p>
<p>Thanks a lot Brian!</p>
<p>It seems it takes a programmer to work with lilypond. ;-)</p> Here is Kemo Kimo, which mig…tag:minstrelbanjo.ning.com,2016-12-10:2477478:Comment:1573062016-12-10T00:29:10.108ZBrian Kimererhttp://minstrelbanjo.ning.com/profile/BrianKimerer
<p><br/> Here is Kemo Kimo, which might be simpler since it does not have the lyrics included.</p>
<p>These .ly files put out three different scores, e.g.</p>
<p>1 Standard notation - KeemoKimo.pdf</p>
<p>2. Tab notation - KeemoKimo-1.pdf</p>
<p>3. Midi file - KeemoKimo-2.midi</p>
<p></p>
<p>It takes a while to get all the magic in place so that Lily will compile it. It is a complex tool.</p>
<p></p>
<p><br/> Here is Kemo Kimo, which might be simpler since it does not have the lyrics included.</p>
<p>These .ly files put out three different scores, e.g.</p>
<p>1 Standard notation - KeemoKimo.pdf</p>
<p>2. Tab notation - KeemoKimo-1.pdf</p>
<p>3. Midi file - KeemoKimo-2.midi</p>
<p></p>
<p>It takes a while to get all the magic in place so that Lily will compile it. It is a complex tool.</p>
<p></p> Here is a short one where I u…tag:minstrelbanjo.ning.com,2016-12-10:2477478:Comment:1573042016-12-10T00:22:04.604ZBrian Kimererhttp://minstrelbanjo.ning.com/profile/BrianKimerer
<p>Here is a short one where I used it to put 3 measures on a line. Give this a go.</p>
<p>Musieu Bainjo</p>
<p>Here is a short one where I used it to put 3 measures on a line. Give this a go.</p>
<p>Musieu Bainjo</p> Thanks Brian,
can you give me…tag:minstrelbanjo.ning.com,2016-12-09:2477478:Comment:1573772016-12-09T19:19:46.192ZManfred Kilianhttp://minstrelbanjo.ning.com/profile/ManfredKilian
<p>Thanks Brian,</p>
<p>can you give me a .ly file where it is used ?</p>
<p>I pasted it in the macro section but the pdf cannot be generated.</p>
<p></p>
<p>Thank you </p>
<p>Thanks Brian,</p>
<p>can you give me a .ly file where it is used ?</p>
<p>I pasted it in the macro section but the pdf cannot be generated.</p>
<p></p>
<p>Thank you </p> It seems that the <pre>…tag:minstrelbanjo.ning.com,2016-12-09:2477478:Comment:1571992016-12-09T16:50:28.520ZBrian Kimererhttp://minstrelbanjo.ning.com/profile/BrianKimerer
<p>It seems that the <pre> tag that I used in my previous post has caused the text to be truncated. Here it is again, but with the tabstops removed by the html parser so that it is all there, even though unreadable.</p>
<p></p>
<p>#(define (line-break-every-nth-engraver bars-per-line) <br></br> (lambda (context) <br></br> (make-engraver <br></br> (acknowledgers ((paper-column-interface engraver grob source-engraver) <br></br> (let ((current-bar (ly:context-property context 'currentBarNumber))) <br></br> (if…</p>
<p>It seems that the <pre> tag that I used in my previous post has caused the text to be truncated. Here it is again, but with the tabstops removed by the html parser so that it is all there, even though unreadable.</p>
<p></p>
<p>#(define (line-break-every-nth-engraver bars-per-line) <br/> (lambda (context) <br/> (make-engraver <br/> (acknowledgers ((paper-column-interface engraver grob source-engraver) <br/> (let ((current-bar (ly:context-property context 'currentBarNumber))) <br/> (if (= (remainder current-bar bars-per-line) 1) <br/> (if (eq? #t (ly:grob-property grob 'non-musical)) <br/> (set! (ly:grob-property grob 'line-break-permission) 'force) <br/> (set! (ly:grob-property grob 'line-break-permission) '())))))))))</p>
<p></p>
<p>And the \layout is:</p>
<p>\layout { <br/> indent = 0\mm<br/> \override StringNumber.transparent = ##t<br/> \context { <br/> \Score <br/> %% the following line necessary if you want to put more <br/> %% measures to a line than Lily wants to allow <br/> \override NonMusicalPaperColumn #'line-break-permission = ##f <br/> \consists #(line-break-every-nth-engraver 4) <br/> } <br/> }</p>
<p></p> OK. Thanks for the pointer. L…tag:minstrelbanjo.ning.com,2016-12-09:2477478:Comment:1573742016-12-09T14:46:02.273ZBrian Kimererhttp://minstrelbanjo.ning.com/profile/BrianKimerer
<p>OK. Thanks for the pointer. Lilypond is a super good tool for typesetting music once you figure out how to use it, but it can be really difficult to figure out how to use it. </p>
<p>I don't remember running into the \break command. However, if I remember properly, Lilypond was occasionally putting fewer than 4 bars on a line, in which case the \break would not help. Here is the scheme that I downloaded from the interwebs.</p>
<p></p>
<pre>%% The following is a custom engraver written in…</pre>
<p>OK. Thanks for the pointer. Lilypond is a super good tool for typesetting music once you figure out how to use it, but it can be really difficult to figure out how to use it. </p>
<p>I don't remember running into the \break command. However, if I remember properly, Lilypond was occasionally putting fewer than 4 bars on a line, in which case the \break would not help. Here is the scheme that I downloaded from the interwebs.</p>
<p></p>
<pre>%% The following is a custom engraver written in scheme
% It is used to force Lilypond to write exactly four measures per<br />
% line in the output.<br />
% I don't know how it works. It was found on the web at<br />
% <a href="http://lilypond.1069038.n5.nabble.com/Four-Bars-per-Line-System-again-td45952.html" target="_blank">http://lilypond.1069038.n5.nabble.com/Four-Bars-per-Line-System-again-td45952.html</a><br />
%<br />
% This is basically a modulo counter that inserts a break<br />
% every four lines.<br />
%<br />
% The engraver is used in the \Layout at the bottom<br />
%<br />
#(define (line-break-every-nth-engraver bars-per-line) <br />
(lambda (context) <br />
(make-engraver <br />
(acknowledgers ((paper-column-interface engraver grob source-engraver) <br />
(let ((current-bar (ly:context-property context 'currentBarNumber))) <br />
(if (= (remainder current-bar bars-per-line) 1) <br />
(if (eq? #t (ly:grob-property grob 'non-musical)) <br />
(set! (ly:grob-property grob 'line-break-permission) 'force) <br />
(set! (ly:grob-property grob 'line-break-permission) '()))))))))) <br />
<br />
</pre>
<p>I wonder what a "grob" does. That's a great word, "grob".</p>
<p>The engraver is used in the \layout command further down. to wit:</p>
<pre>\layout { indent = 0\mm
\context { <br />
\Score <br />
%% the following line necessary if you want to put more <br />
%% measures to a line than Lily wants to allow <br />
\override NonMusicalPaperColumn #'line-break-permission = ##f <br />
\consists #(line-break-every-nth-engraver 4) <br />
} <br />
}<br/>
</pre>
<p>Once again, I do not understand how this all works. The Google gave it to me.</p>
<p>Just as a little background info, I have been programming computers since 1968. I make my living at it. And yet, Lisp and Scheme seem to escape my understanding. Time to hang up those spurs and spend more time on my music.</p> Hi Brian,
with the \break co…tag:minstrelbanjo.ning.com,2016-12-09:2477478:Comment:1571972016-12-09T13:53:32.312ZManfred Kilianhttp://minstrelbanjo.ning.com/profile/ManfredKilian
<p>Hi Brian, </p>
<p>with the \break command you can force a new line, see attached example</p>
<p></p>
<p>\version "2.18.0"<br></br>% \include "english.ly" % Use f & s for flat and sharp instead of is & es.</p>
<p>\header {<br></br> title = "The girl with the blue dress on" % Song Title<br></br> composer = "Briggs 1855" % Composer<br></br> arranger = "page 25"<br></br> enteredby = "Enterer" % Person who created this lilypond file<br></br> poet = "dGDF#A" % tuning<br></br> instrument = "Banjo"<br></br> copyright =…</p>
<p>Hi Brian, </p>
<p>with the \break command you can force a new line, see attached example</p>
<p></p>
<p>\version "2.18.0"<br/>% \include "english.ly" % Use f & s for flat and sharp instead of is & es.</p>
<p>\header {<br/> title = "The girl with the blue dress on" % Song Title<br/> composer = "Briggs 1855" % Composer<br/> arranger = "page 25"<br/> enteredby = "Enterer" % Person who created this lilypond file<br/> poet = "dGDF#A" % tuning<br/> instrument = "Banjo"<br/> copyright = "&copyright; now in the PD" %now in the PD% &copyright;<br/> tagline = ##t % Controls Lilypond tagline on last page<br/>}</p>
<p>\paper {<br/> #(set-paper-size "letter")<br/> #(include-special-characters)<br/> two-sided = ##t<br/> inner-margin = 0.5\in % For even total pages = 0.5, otherwise 0.7<br/> outer-margin = 0.7\in % For even total pages = 0.7, otherwise 0.5 <br/> top-margin = 0.5\in<br/> bottom-margin = 0.5\in<br/> ragged-last-bottom = ##t % False = evenly spread over pages; True = compact with trailing white space<br/> evenHeaderMarkup = \markup {<br/> \fill-line {<br/> \on-the-fly #print-page-number-check-first { <br/> \fromproperty #'header:title<br/> \fromproperty #'page:page-number-string<br/> \fromproperty #'header:instrument<br/> }<br/> }<br/> }<br/> oddHeaderMarkup = \evenHeaderMarkup <br/>}</p>
<p>% Macros<br/>#(define RH rightHandFinger) % -\RH #1,2,3 - allows right hand notation<br/>sl = \glissando % Slide</p>
<p>% Global settings<br/>global = {<br/> \time 2/4 % Time Signature<br/> \numericTimeSignature % Keep time signature 4/4 not C.<br/> \key g \major % Key<br/> \tempo 4 = 120 % Tempo<br/>}</p>
<p>% *** Chords go here<br/>chordlist = \chordmode {}</p>
<p>% *** Notes go here <br/>melody = {<br/> <br/> s4 s8 d8 \3 | % 1<br/> \repeat volta 2 {<br/> b8 b16 d'16 \5 b8 g8 | %2<br/> a8 b8 g8 b16 d'16 \5| % 3<br/> c'16 fis16 c'16 d'16 \5 e8 fis8 | \break % 4<br/> a8 g8 r8 d16 d'16 \5 | % 5<br/> b8 b16 d'16 \5 b8 g8 | %6<br/> a8 b8 g8 b16 d'16 \5| % 7<br/> c'16 fis16 c'16 d'16 \5 e8 fis8 | % 8 <br/> a8 g8 r8 d8 | \break % 9<br/> }<br/> <br/> % B part<br/> \repeat volta 2 {<br/> g8 b16 d'16 \5 g8 b16 d'16 \5| %10<br/> g8 g8 r8 d8| % 11<br/> g8 b16 d'16 \5 g8 b16 d'16 \5 | % 12<br/> fis8 a8 r8 d8| \break % 13<br/> g8 b16 d'16 \5 b8 g8| %14<br/> a8 b8 c'8 e'8| % 15<br/> d'16 \1 d'16 \5 d'16 \1 d'16 \5 a8 d'8 \5| % 16 <br/> b8 g8 r4 | % 17<br/> }<br/> <br/> % Song termination bar<br/>}</p>
<p>\score {<br/> \new StaffGroup = "tab with traditional" <<<br/> \chords {<br/> \set chordChanges = ##t % Only print chord when it changes.<br/> \chordlist % Chords<br/> }<br/> \set StaffGroup.instrumentName = "Banjo" <br/> \override StaffGroup.SystemStartBracket.collapse-height = #1<br/> % adds bracket even for single bar<br/> \override Score.SystemStartBar.collapse-height = #1<br/> % add start bar even for single bar<br/> % *** Comment out from here to >> to remove traditional notation.<br/> <br/> \new Staff = "banjo traditional" << <br/> \set Staff.midiInstrument = #"banjo"<br/> \set strokeFingerOrientations = #'(down)<br/> { <br/> \accidentalStyle forget<br/> \compressFullBarRests % Multi bars rest compressed to one bar.<br/> \stemUp % Stems are all up on traditional notation.<br/> \clef "treble_8" % G-clef dropped by one octave <br/> \global % global variables<br/> \melody % Music<br/> } <br/> >><br/>%}<br/> % *** Comment out from here to >> to remove tablature notation. <br/> \new TabStaff = "banjo tab" <<<br/> \set TabStaff.tablatureFormat = #fret-number-tablature-format-banjo<br/> \set TabStaff.stringTunings = \stringTuning < d' g d fis a> %eAEG#B<br/> \set strokeFingerOrientations = #'(down)<br/> \set TabStaff.minimumFret = #0 % This allows capoing<br/> \override Beam.damping = #+inf.0 % makes all beams level<br/> { <br/> \compressFullBarRests % Multi bars rest compressed to one bar.<br/> \tabFullNotation % Tab gets stems and rests<br/> \stemDown % Stems are all down on tablature<br/> \global % global variables<br/> \melody % Music<br/> } <br/> >><br/> >></p>
<p>\layout { <br/> \context { <br/> \Score<br/> % Remove string numbers (as tablature includes that inforamtion.<br/> \override StringNumber.transparent = ##t<br/> % set right hand digit names<br/> \override StrokeFinger.digit-names = ##("t" "i" "m" "" "") <br/> % Adjust the final number below to change spacing between notes.<br/> % 32 means smallest note is assumed to be a 32nd note.<br/> % \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/32) <br/> }<br/> }<br/> \midi { } % Produce a midi file of the music. Commented out for now.<br/>}</p>
<p>%{<br/>convert-ly.py (GNU LilyPond) 2.18.2 convert-ly.py: Processing `'...<br/>Applying conversion: 2.17.0, 2.17.4, 2.17.5, 2.17.6, 2.17.11, 2.17.14,<br/>2.17.15, 2.17.18, 2.17.19, 2.17.20, 2.17.25, 2.17.27, 2.17.29,<br/>2.17.97, 2.18.0<br/>%}</p>
<p><br/> <cite>Brian Kimerer said:</cite></p>
<blockquote cite="http://minstrelbanjo.ning.com/forum/topics/lilypond-notation-software#2477478Comment157292"><div><div class="xg_user_generated"><p>I use both Frescobaldi and Lilypond. The output is spectacular. Unfortunately, sometimes doing simple things is quite difficult. I wanted to tab Skeleton Dance so that it would have exactly four bars per line. I ended up downloading a short Scheme program to make that work. I still don't understand how that part works.</p>
<p>If you have a tolerance for the tedium of the input format, it makes the best output.</p>
</div>
</div>
</blockquote>