Re: Tuplet brackets too short?
> Shouldn't both tuplet brackets span every notecolumn within the > purview of the last note's duration? Yes, at least according to Gould. Using `tupletFullLength` helps, but now tuplet brackets are too long: ``` \new Staff { \set Staff.tupletFullLength = ##t \time 2/4 << \tuplet 3/2 { c''4 d'' c'' } \\ \tuplet 3/2 { g'4 a'2 } >> } ``` It looks like a tricky problem, and it seems not to be covered in the tracker, so please file an issue. Werner
Re: Tuplet brackets too short?
At 16:10 19/10/2023 +0200, David Kastrup wrote: ... the results look awful: Shouldn't both tuplet brackets span every notecolumn within the purview of the last note's duration? For what it's worth (I know, I know!), Elaine Gould [Behind Bars, pp. 195/6] seems to distinguish between old and newer practice: *Tuplets ending with the longest duration* Traditionally, the bracket extends only as far as the last written duration. Thus a numeral centred in a bracket occurs before the central duration, making the rhythm unnecessarily difficult to read. It is now usual to extend the bracket to the position of the hypothetical final division of the tuplet, so that the numeral occurs at the rhythmic centre of the group. This makes complex rhythms quicker to read. *Aligning brackets between parts* When the final division of a tuplet is subdivided in some parts but not in others, the bracket ends need to extend only as far as the last duration in each group. This means that brackets may finish at different points. If preferred, all brackets may be extended to the position of the longest bracket. There is a visual logic to this, especially as uniform bracket length will allow the centred tuplet numerals to align vertically. Her subsequent examples seem to follow her "now usual" and "if preferred" style that you espouse. Brian Barker
Tuplet brackets too short?
If I write \new Staff { \time 2/4 << \tuplet 3/2 { c''4 d'' c'' } \\ \tuplet 3/2 { g'4 a'2 } >> } the results look awful: Shouldn't both tuplet brackets span every notecolumn within the purview of the last note's duration? I think this might also apply if the upper voice contained 4 eighths instead of the three triplets: -- David Kastrup
Re: Still failing to operate lilypond 2.20.0 64-bit version.
> On Oct 19, 2023, at 12:47, Ian West wrote: > > From the attached photo you will see that I created in 'home' a folder > called 'LilyPondArea', and in that a folder called 'lilypond-2.24.2'. In the > former I placed the downloaded tar, and in the latter the unpacked files of > lilypond-2.24.2 (i.e. 'bin', etc) There is a problem if downloaded with a browser, because MacOS marks all executables (unix programs) as unknown, and to fix them all one by one is a chore. So it is better to use the Terminal: Open a new Terminal window, type "pwd", it should show your home directory path. Then (only type what is after "% ": % cd LilyPondArea % curl -L "https://gitlab.com/lilypond/lilypond/-/releases/v2.24.2/downloads/lilypond-2.24.2-darwin-x86_64.tar.gz; --output lilypond-2.24.2.tar.gz % tar -xf lilypond-2.24.2-darwin-x86_64.tar.gz You don't have to type the full name "lilypond……": after a few letter, just type and the shell will complete. The link given to "curl" is what is listed on the page https://lilypond.org/download.html. The option -L means to redirect to the real link, and --output … is a name that you chose. It is simpler to use wget, but the one I have is from MacPorts. Then, for the LilyPond files, you might create a directory in the Documents folder, as if you have iCloud, it gets saved there. To use the LilyPond program from Terminal, use: % ~/LilyPondArea/lilypond-2.24.2/bin/lilypond file.ly or with other options such as --version or --help. To simplify, you might write a script in Terminal: % touch lilypond % open -t lilypond First command creates a file; the second opens in the text editor chosen for .txt files. One can also write: % open -a TextEdit lilypond Paste, save and close: export LC_CTYPE=en_US.UTF-8 export LANG=en_US.UTF-8 exec HOME/LilyPondArea/bin/lilypond "$@" Here, HOME is the "pwd" path you got above. Then change permissions, so that any can run it: % chmod a+x lilypond Then install it on your system: % sudo cp lilypond /usr/local/bin This requires your password to be written. But now when you want to run lilypond, instead type % lilypond file.ly
Re: Still failing to operate lilypond 2.20.0 64-bit version.
> From the attached photo you will see that I created in 'home' a > folder called 'LilyPondArea', and in that a folder called > 'lilypond-2.24.2'. In the former I placed the downloaded tar, and in > the latter the unpacked files of lilypond-2.24.2 (i.e. 'bin', etc) Looks good. > I use Textedit to create and save a 'file.ly' as directed and I saved > it in lilypond-2.24.2, i.e. with bin, etc. I strongly recommend that you do *not* do that. You should rather use a separate directory to store your `.ly` files. It's far too easy to accidentally delete the whole 'lilypond-2.24.2' directory if you upgrade to, say 'lilypond-2.24.3'. > Now (moment of truth). I open Terminal, go to 'home', create the > path to bin, as:- ~/LilyPondArea/lilypond-2.24.2/bin What do you mean with 'create a path'? Assuming you have created file `foo.ly` in directory `~/MyLilyPondDocs/`, and you are currently in this directory (which you can check in the terminal by calling the `pwd` command) it is sufficient to call the LilyPond binary with the whole path: ``` ~/LilyPondArea/lilypond-2.24.2/bin/lilypond foo.ly ``` > By listing ('ls'), I note that file.ly is in there with bin, but as > file.ly.txt . This is strange. It looks like an artifact of your editor. LilyPond doesn't care how the file is actually called (it's a Windows thing to rely on file extensions), but normally it has extension `.ly` – maybe you have to change the preferences of your editor to not automatically add `.txt` to the file name. Assuming that you can't change that for whatever reason, running LilyPond on a file `foo.ly.txt` works just fine, too. However, the resulting PDF file is then called `foo.ly.pdf`. > (I believe a genuine lilypond file is just a text file with suffix > '.ly'.) Correct. > The manual instructions say "you can run" > /.../lilypond-x.y.z/bin/lilypond file.ly > But what do you/they mean by "run"? 'Run' means to type a command into the terminal and execute it by pressing the Enter key. > Do I still have to change permissions, as indicated by Hans Åberg? Theoretically, everything should be fine. Maybe there are some special precautions due to MacOS restrictions (which I don't know, sorry), but I guess you have to take care of them only the first time. > Do I still have to use 'sudo' as indicated by Hans Åberg? No. You have unpacked the LilyPond tar bundle in your home directory, to which you have full access. Werner
Re: compiling irrational time signatures with \scaleDurations
Thank you for the clarification, Jean! If I now use denominators <= 9, the output works (from 10 no longer). I think a function \ratio could be helpful to improve the accuracy of the output a little bit more, Vaughan. Thanks for the help so far! Best regards, Adrian On Thu, Oct 19, 2023 at 2:10 AM Vaughan McAlley wrote: > > > On Thu, 19 Oct 2023, 03:49 Jean Abou Samra, wrote: > >> Hi, >> >> Here is a more minimal example illustrating your problem: >> >> \version "2.24.2" >> >> { >> \scaleDurations 1/2 c'1 >> \scaleDurations 1/3 d'1 >> \scaleDurations 1/5 e'1 >> \scaleDurations 1/7 f'1 >> \scaleDurations 1/11 g'1 >> \scaleDurations 1/13 a'1 >> \scaleDurations 1/17 b'1 >> \scaleDurations 1/19 c''1 >> \scaleDurations 1/23 d''1 >> \scaleDurations 1/29 e''1 >> \scaleDurations 1/31 f''1 >> \scaleDurations 1/37 g''1 >> } >> >> The underlying issue here is that you use lots of "complicated" >> multipliers, with high denominators. LilyPond needs to represent each point >> in time in an exact way, which it does using fractions. However, because >> the denominators you use are sufficiently large and have sufficiently few >> common prime factors, the denominator of the fraction needed to represent a >> moment in your score gets huge. In my example above, the product of primes >> up to 37 has the order of magnitude of ten thousand billions, or two at the >> power 43. Programs often use a fixed number of digits to represent >> integers, for efficiency reasons. At some point, the computations overflow >> the number of digits that is being used, and everything goes wrong. >> >> You might call it a bug, but I'd rather speak of a limitation. All >> programs that are written in languages such as C++ (internally used in >> LilyPond) exhibit overflow issues when you feed them with such huge >> integers. >> >> So, unfortunately, I don't have a workaround to suggest other than to use >> fractions with smaller denominators. >> >> Jean >> > Would a function that turns a fraction into whatever number/100 work? > > \scaleDurations \ratio 1/29 % or 1 29 > > Cheers, > Vaughan > > >