Re: Creating click tracks for an arbitrary time signature and length of music
Hello ! here's a very useful thing ... Is it possible to add a countdown ? -- Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html
Re: Suppressing a voice in the midi output
On Sun, Dec 15, 2019 at 12:56:22PM +0100, Karsten Reincke wrote: > Dear friends; > > In the LilyPOnd tutorial I found the explanation how to assign each a voice a > separate midi channel = instrument > > http://lilypond.org/doc/v2.18/Documentation/notation/creating-midi-files > > Unfortunately, I have to prevent one / some voice(s) from being ingrated into > the > midi file (because it only contains meta information which shall not be > played). > > Does anyone know how I can say that voice X shall not be converted into the > midi > file? Or does any know how I could assign this voice 'a silent instrument'? Would setting volume to zero be ok for your use case ? If so, try something like the following: \new Staff \with { midiInstrument = "muted trumpet" midiMinimumVolume = #0.0 midiMaximumVolume = #0.0 } { \new Voice = "vocal" { \melody } } --strk;
Re: Suppressing a voice in the midi output
On Fri, Dec 20, 2019 at 10:41:26AM +0100, Sandro Santilli wrote: > On Sun, Dec 15, 2019 at 12:56:22PM +0100, Karsten Reincke wrote: > > Dear friends; > > > > In the LilyPOnd tutorial I found the explanation how to assign each a voice > > a > > separate midi channel = instrument > > > > http://lilypond.org/doc/v2.18/Documentation/notation/creating-midi-files > > > > Unfortunately, I have to prevent one / some voice(s) from being ingrated > > into the > > midi file (because it only contains meta information which shall not be > > played). > > > > Does anyone know how I can say that voice X shall not be converted into the > > midi > > file? Or does any know how I could assign this voice 'a silent instrument'? > > Would setting volume to zero be ok for your use case ? If so, try > something like the following: > > \new Staff \with { > midiInstrument = "muted trumpet" > midiMinimumVolume = #0.0 > midiMaximumVolume = #0.0 > } { > \new Voice = "vocal" { \melody } > } Or simply create a different "book" for the midi, and only include the voices you want... I often do this also because I want to \unfoldRepeats and maybe add a \tripletFeel and most significantly because I'm using transposed instruments which then need to be transposed for the sake of MIDI output but not for reading... --strk;
Re: Creating click tracks for an arbitrary time signature and length of music
On 20/12/2019 01:10, Aaron Hill wrote: On 2019-12-19 3:03 pm, Matt Wallis wrote: What I want to do is to automatically create a click track for any length of music, and any time signature. For example, if the music is L measures in length, and the numerator of the time signature is N, and the denominator is D, then I want a click track that looks like this: \repeat unfold \drummode { wbh \repeat unfold { wbl\pp }} Here's a quick-and-dirty way to achieve close to what you want: See brilliant solution in previous message: https://lists.gnu.org/archive/html/lilypond-user/2019-12/msg00346.html Firstly, \clickTrack is a function for generating one measure of clicking based on a desired beat and meter. The beat defaults to the denominator of the meter if unspecified. If the beat duration does not divide the measure perfectly, a final rest is inserted to pad out the measure. Here are examples of use: \repeat unfold 8 \clickTrack 2 4/4 % click on 1 and 3 \repeat unfold 8 \clickTrack 4/4 % click on all four \repeat unfold 8 \clickTrack 4. 6/8 % click on 1 and 4 \repeat unfold 8 \clickTrack 4 6/8 % click on 1, 3, and 5 \repeat unfold 8 \clickTrack 6/8 % click on all six Secondly, \clickTrackDuring is a very basic wrapper for \clickTrack that automatically repeats the click measure to cover the duration of the specified music. Note that no attempt is made to handle music that changes time signature nor music with \partial measures or other funny business. If you had a anacrusis, you would need to manually offset the music: % Assume \musicWithPickup begins with \partial 4 \clickTrackDuring 3/4 { s2 \musicWithPickup } Thanks Aaron. That is amazing, and I think it over-achieves! I appreciate your attention to detail - with the option to specify the beat, and to add a final rest if the beat does not perfectly divide the measure. The fact that is does not handle music with \partial measures, nor changes of time signature is not a problem to me at all, and it's simple to work around both of these 'limitations'. Starting with a \partial measure is never an issue for me - if I want a click track, then I always want it to start at the beginning of a measure. Thanks again. This will now be added to my standard template. Never again will I find that my click track ends before the music because I've added to the music and forgotten to update the repeat count for the click track :-) Matt Wallis
Re: Notes or chords sustained with a pedal
Robert Blackstone wrote: Dear all, I’m presently transcribing some piano-scores in which schords, sustained with a pedal are notated in a way had not seen before (see screenshot). I would like to copy it but I have no idea how to do it. This thread may get you started: https://lists.gnu.org/archive/html/lilypond-user/2019-05/msg00202.html Cheers, Robin
How to use make-music?
Thee are many examples of the use of the make-music function in NR and Snippets, but I cannot find any reference to its definition in LR, NR or IR. I can use the examples to do what I want, but I'd like to know a bit more about how it works. Is there a definition of it and its parameters anywhere (apart from delving into the code)? Regards, Peter mailto:lilyp...@ptoye.com www.ptoye.com
Re: How to use make-music?
Peter Toye writes: > Thee are many examples of the use of the make-music function in NR and > Snippets, but I cannot find any reference to its definition in LR, NR > or IR. I can use the examples to do what I want, but I'd like to know > a bit more about how it works. Is there a definition of it and its > parameters anywhere (apart from delving into the code)? Sometimes delving in the code just to discover comment strings/comments is not the worst idea with LilyPond. scm/define-music-types.scm: (define-safe-public (make-music name . music-properties) "Create a music object of given name, and set its properties according to @code{music-properties}, a list of alternating property symbols and values. E.g: @example (make-music 'OverrideProperty 'symbol 'Stem 'grob-property 'thickness 'grob-value (* 2 1.5)) @end example Instead of a successive symbol and value, an entry in the list may also be an alist or a music object in which case its elements, respectively its @emph{mutable} property list (properties not inherent to the type of the music object) will get taken. The argument list will be interpreted left-to-right, so later entries override earlier ones." -- David Kastrup
Re: How to use make-music?
David, Thanks for this. I'm obviously going to have to dust off my LISP lectures from 1967! Best regards, Peter mailto:lilyp...@ptoye.com www.ptoye.com - Friday, December 20, 2019, 12:41:31 PM, David Kastrup wrote: > Peter Toye writes: >> Thee are many examples of the use of the make-music function in NR and >> Snippets, but I cannot find any reference to its definition in LR, NR >> or IR. I can use the examples to do what I want, but I'd like to know >> a bit more about how it works. Is there a definition of it and its >> parameters anywhere (apart from delving into the code)? > Sometimes delving in the code just to discover > comment strings/comments > is not the worst idea with LilyPond. > scm/define-music-types.scm: > (define-safe-public (make-music name . music-properties) > "Create a music object of given name, and set its properties > according to @code{music-properties}, a list of > alternating property symbols > and values. E.g: > @example > (make-music 'OverrideProperty > 'symbol 'Stem > 'grob-property 'thickness > 'grob-value (* 2 1.5)) > @end example > Instead of a successive symbol and value, an entry in the list may > also be an alist or a music object in which case its elements, > respectively its @emph{mutable} property list > (properties not inherent > to the type of the music object) will get taken. > The argument list will be interpreted > left-to-right, so later entries > override earlier ones."
How to avoid dynamic clashes?
I'm trying to set a score where dynamic words are too close together for beautiful typesetting. I've tried using offsets to move one of them vertically, but they don't seem to work. What's the best way of setting this to produce a good-looking result? \version "2.19.83" \score { << \new Staff { \clef "bass" c16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 } \new Dynamics { \once \override DynamicTextSpanner.style = #'none \once \override DynamicText.extra-offset = #'( 0 . -3) s16\cresc s16\dim s4\! } >> } Regards, Peter mailto:lilyp...@ptoye.com www.ptoye.com
Re: How to avoid dynamic clashes?
Hi Peter, > I'm trying to set a score where dynamic words are too close together for > beautiful typesetting. I've tried using offsets to move one of them > vertically, but they don't seem to work. What's the best way of setting this > to produce a good-looking result? I’d force the notes themselves apart: \temporary \override NoteHead.extra-spacing-width = #'(0 . 5) c16 16 16 16 \revert NoteHead.extra-spacing-width c16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 Hope that helps! Kieren. Kieren MacMillan, composer (he/him/his) ‣ website: www.kierenmacmillan.info ‣ email: i...@kierenmacmillan.info
Re: How to avoid dynamic clashes?
How to avoid dynamic clashes? If you read about dynamics in the NR, it says: "Vertical positioning of dynamics is handled by Section "DynamicLineSpanner" in Internals Reference." Looking in the IR we see reference to Y-offset. So this does as you wish, I think: \score { << \new Staff { \clef "bass" c16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 } \new Dynamics { \once \override DynamicTextSpanner.style = #'none \once \override DynamicLineSpanner.Y-offset = #2 s16\cresc s16\dim s4\! } >> } -- Phil Holmes - Original Message - From: Peter Toye To: lilypond-user@gnu.org Sent: Friday, December 20, 2019 4:10 PM Subject: How to avoid dynamic clashes? I'm trying to set a score where dynamic words are too close together for beautiful typesetting. I've tried using offsets to move one of them vertically, but they don't seem to work. What's the best way of setting this to produce a good-looking result? \version "2.19.83" \score { << \new Staff { \clef "bass" c16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 } \new Dynamics { \once \override DynamicTextSpanner.style = #'none \once \override DynamicText.extra-offset = #'( 0 . -3) s16\cresc s16\dim s4\! } >> } Regards, Peter mailto:lilyp...@ptoye.com www.ptoye.com
Re: convert-ly problem 2
I think all you need in Windows is an entry in your PATH like this: C:\Program Files (x86)\LilyPond\usr\bin Then type convert-ly.py and Windows will ask you what program you want to execute it with. Select python.exe and you're done. At least that's how it works in my version of Windows 10. There are ways to set this up by hand, but try this first. --- Knute Snortum (via Gmail) On Thu, Dec 19, 2019 at 9:14 AM Carl Sorensen wrote: > > In general, the way to execute convert-ly.py is not with > > > > convert-ly.py > > > > But instead > > > > python convert-ly.py > > > > If you create an executable batch file somewhere in your PATH called > convert-ly, with the contents > > > > C:\Program Files (x86)\LilyPond\usr\bin\python.exe C:\Program Files > (x86)\LilyPond\usr\bin\convert-ly.py > > > > Then I expect you can just call > > > > convert-ly > > > > But I don’t use Windows now, so I haven’t tested this. I do use the > equivalent in MacOS. > > > > HTH, > > Carl > > > > > > > > > > > > > > > > From: Peter Gentry > Reply-To: > Date: Thursday, December 19, 2019 at 8:44 AM > To: Lilypond Users > Subject: convert-ly problem 2 > > > > Having rediscovered the fact that Frescobaldi does not call convert-ly > anymore. I went to the section 2.2 of the usage manual and popped the > following into a windows 10 command prompt (with administrator privs) > > > > C:\Program Files (x86)\LilyPond\usr\bin>forfiles /s /p > "C:\users\peter\Lilypool\Music_Files\Bouffil" /M **.ly /c "cmd /c > convert-ly.py -e @file" > > > > The result was > > 'convert-ly.py' is not recognized as an internal or external command, > > operable program or batch file. > > Etc etc for each .ly file in the folder > > > > I have cd’d to the Lilypond usr\bin folder so I don’t think the three “s are > needed here, but who knows > > Where did I go wrong? > > > > For no particular reason I then uninstalled anaconda and python 3.8 the > result (after reboot) was that the same command string produced a response > for each .ly file in Bouffil. > > The response was a pop up box saying that no app was available for that file. > The Command Prompt then froze and I needed Task Manager to close it. > > > > Clearly these other pythons have interfered with Lily somewhere and may have > a bearing on my other recent issues. > > > > Does anyone else play around with Python outside of Lily who might know how > to keep then separate. > > > > Regards Peter > >
Re: How to avoid dynamic clashes?
Thanks Phil. I was looking in the 'spacing issues' section. Just what I need for this particular score. Best regards, Peter mailto:lilyp...@ptoye.com www.ptoye.com - Friday, December 20, 2019, 4:26:46 PM, Phil Holmes wrote: If you read about dynamics in the NR, it says: "Vertical positioning of dynamics is handled by Section ?DynamicLineSpanner? in InternalsReference." Looking in the IR we see reference to Y-offset. So this does as you wish, I think: \score { << \new Staff { \clef "bass" c16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 } \new Dynamics { \once \override DynamicTextSpanner.style = #'none \once \override DynamicLineSpanner.Y-offset = #2 s16\cresc s16\dim s4\! } >> } -- Phil Holmes
Re: How to avoid dynamic clashes?
Hello Kieren, Yes it does. So does Phil's solution. I now have to work out which I prefer in this particular situation. Best regards, Peter mailto:lilyp...@ptoye.com www.ptoye.com - Friday, December 20, 2019, 4:14:06 PM, Kieren MacMillan wrote: > Hi Peter, >> I'm trying to set a score where dynamic words are too close together for >> beautiful typesetting. I've tried using offsets to move one of them >> vertically, but they don't seem to work. What's the best way of setting this >> to produce a good-looking result? > I’d force the notes themselves apart: > \temporary \override > NoteHead.extra-spacing-width = #'(0 . 5) c16 16 > 16 16 \revert NoteHead.extra-spacing-width > c16 16 16 16 16 16 16 16 16 16 16 16 16 > 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 > Hope that helps! > Kieren. > > Kieren MacMillan, composer (he/him/his) > ‣ website: www.kierenmacmillan.info > ‣ email: i...@kierenmacmillan.info
Naming multiple midi files
Hello, I would like to specify the name (or extensions) of the .midi files exported by the \midi{} command. I have multiple \scores{} in one .ly file producing one .pdf file and multiple .midi files. Thanks
Re: LSR contribution
Hi Harm et al., attached is my updated version. I decided to split up the validity checks from the actual engraver, because otherwise in case of invalid parameters the engraver would only be instantiated to do nothing and nevertheless have its acknowledger called every time. The code is much more verbose now, which makes the flow of information and control clearer I hope. Please let me know what you think about it. Cheers, Michael Am 16.12.2019 um 01:50 schrieb Thomas Morley: Am So., 15. Dez. 2019 um 21:47 Uhr schrieb Thomas Morley : Am So., 15. Dez. 2019 um 21:17 Uhr schrieb Michael Käppler : Hi all, a few days ago I submitted a snippet to the LSR (title "Coloring successive intervals"). I can see it in the snippet database, but not in the webpage. The "Contributing" section of LSR states, that: "Once the snippet is in, it has to be reviewed and approved by one of the LSR editors, and then it must be digested by the search engine. Within a few days, you should be able to see your snippet online." Is this still valid in principle? Or maybe did I something wrong? Cheers, Michael In principle ... yes. Though, I seem to be the only remaining regular active LSR editor, and my time is limited. Thus it may take some more time than the LSR "Contributing" section says. Announcing it on the list helps, ofcourse. I'll take a look soon. As promised I had a look. Many thanks for your snippet! For now: First I changed the LSR button "Large snippet" to "Standalone snippet". It's a very rare case "Large snippet" is apppropriate, usualy for snippets outputting multipe pages. In almost every other case it's better to uncheck the buttons or to go for "Standalone snippet". Otherwise compressed and (imho) ugly images are output by the LSR. Please always observe a 80-characters line-width limit for your code. Your snippet contains some advanced code. In such cases I often want to discuss things a bit deeper. So: What bugged me right from the first glance over it, is your need to define several engravers, one for each case. I think one engraver should do the work for _all_ those cases. Attached you'll find my suggestion for this, along with better indentation, 80-chars-line-width along with some minor adjustments. Please have a look. Nevertheless that can't be the final state, imho. May I ask you to add inline code-comments what's done and why? There are not so many examples of scheme-engravers around. One thoroughly commented would be great. Additionally, I'd go for more self-explaining variable-names. P.e. "dt-st": for me it's an arbitrary collection of characters, with a hyphen somewhere ;) Thanks, Harm \version "2.18.2" % Interval definitions alist % Key: % number determines the interval type, 1=prime, 2=second, 3=third ... % plus and minus signs determine variant, no sign=perfect interval, +=major, % ++=augmented, -=minor, --=diminished % Value: % the car represents the diatonic, the cdr the semitonic steps. % Only positive values are specified, negative values for % intervals downwards are generated in the engraver. % This list may be extended or completely overwritten % Usage: #(display (assoc-get "4--" intervaldefs)) #(define intervaldefs '(("1++" . (0 . 1)) ("1" . (0 . 0)) ("2-" . (1 . 1)) ("2--" . (1 . 0)) ("2+" . (1 . 2)) ("2++" . (1 . 3)) ("3-" . (2 . 3)) ("3--" . (2 . 2)) ("3+" . (2 . 4)) ("3++" . (2 . 5)) ("4--" . (3 . 4)) ("4++" . (3 . 6)) ("4" . (3 . 5)) ("5--" . (4 . 6)) ("5++" . (4 . 8)) ("5" . (4 . 7)) ("6-" . (5 . 8)) ("6--" . (5 . 7)) ("6+" . (5 . 9)) ("6++" . (5 . 10)) ("7-" . (6 . 10)) ("7--" . (6 . 9)) ("7+" . (6 . 11)) ("7++" . (6 . 12)) ("8--" . (7 . 11)) ("8++" . (7 . 13)) ("8" . (7 . 12)) ("9-" . (8 . 13)) ("9--" . (8 . 12)) ("9+" . (8 . 14)) ("9++" . (8 . 15)) ("10-" . (9 . 15)) ("10--" . (9 . 14)) ("10+" . (9 . 16)) ("10++" . (9 . 17)) ("11--" . (10 . 16)) ("11++" . (10 . 18)) ("11" . (10 . 17)) ("12--" . (11 . 18)) ("12" . (11 . 19 % Create an engraver that compares the intervals between sequential pitches % of a voice with a given list of intervals. % If a specified interval is found, the heads of both notes encompassing % the interval are colored. % % Mode of operation: % Intervals are defined by two integers representing the diatonic % resp. semitonic distance between two pitches. % It is necessary to take both distances into account to distinguish % between enharmonically identical intervals, e.g. a major third % and a diminished fourth. % Example: % d -> f# : diatonic distance = 2 steps (f# is derived from f natural), % semitonic distance = 4 steps % d -> gb: diatonic distance = 3 steps (gb is derived from g natural), % semitonic distance = 4 steps % % The engraver consists of two parts: % % color_interval_engraver: checks, whether the given parameters are valid,
Re: LSR contribution
Btw. what I do not understand is why (process-acknowledged) is called multiple times after one grob has been acknowledged, it is even called >before< any grob has been acknowledged. You can notice this clearly in input/regression/scheme-engraver.ly Cheers, Michael Am 16.12.2019 um 01:50 schrieb Thomas Morley: Am So., 15. Dez. 2019 um 21:47 Uhr schrieb Thomas Morley : Am So., 15. Dez. 2019 um 21:17 Uhr schrieb Michael Käppler : Hi all, a few days ago I submitted a snippet to the LSR (title "Coloring successive intervals"). I can see it in the snippet database, but not in the webpage. The "Contributing" section of LSR states, that: "Once the snippet is in, it has to be reviewed and approved by one of the LSR editors, and then it must be digested by the search engine. Within a few days, you should be able to see your snippet online." Is this still valid in principle? Or maybe did I something wrong? Cheers, Michael In principle ... yes. Though, I seem to be the only remaining regular active LSR editor, and my time is limited. Thus it may take some more time than the LSR "Contributing" section says. Announcing it on the list helps, ofcourse. I'll take a look soon. As promised I had a look. Many thanks for your snippet! For now: First I changed the LSR button "Large snippet" to "Standalone snippet". It's a very rare case "Large snippet" is apppropriate, usualy for snippets outputting multipe pages. In almost every other case it's better to uncheck the buttons or to go for "Standalone snippet". Otherwise compressed and (imho) ugly images are output by the LSR. Please always observe a 80-characters line-width limit for your code. Your snippet contains some advanced code. In such cases I often want to discuss things a bit deeper. So: What bugged me right from the first glance over it, is your need to define several engravers, one for each case. I think one engraver should do the work for _all_ those cases. Attached you'll find my suggestion for this, along with better indentation, 80-chars-line-width along with some minor adjustments. Please have a look. Nevertheless that can't be the final state, imho. May I ask you to add inline code-comments what's done and why? There are not so many examples of scheme-engravers around. One thoroughly commented would be great. Additionally, I'd go for more self-explaining variable-names. P.e. "dt-st": for me it's an arbitrary collection of characters, with a hyphen somewhere ;) Thanks, Harm
harmonyli.ly stable release 1.2 published
Dear Friends; a few moments ago, I published the next stable release of harmonyli.ly. This lib for adding Functional Harmony Analysis symbols and/or Scale Step Theory symbols into LilyPond scores can now additionally indicate, that an expected tone of a chord does NOT appear in the notes. (see chapter 'Indicating Supressed Chord Tones' in the tutorial). In the release 1.0, I had erroneously taken over a wrong pre version of an interpretation of the Tristan chord. This mistake has also been corrected: the chapter just for fun now contains the intended version. Here are the links: repository: https://github.com/kreincke/harmonyli.ly/ homepage: https://fodina.de/en/harmonyli-ly/ tutorial: https://kreincke.github.io/harmonyli.ly/tutorial.pdf HAYM (= Happy Analyzing Your Music) Karsten -- Karsten Reincke/\/\ (+49|0) 170 / 927 78 57 Im Braungeröll 31 >oo< mailto:k.rein...@fodina.de 60431 Frankfurt a.M. \/http://www.fodina.de/kr/