Re: Rendering athenian Sagittal using microlily
> I'm having trouble getting Graham Breed's microlily to engrave > athenian Sagittal accidentals properly in *.pdf files, using the > Bravura font. > The accidentals are replaced with random Unicode symbols (such as \rho > and \xi). An example *.pdf with this issue is attached. My version of the script won't work with Bravura. It's written for the old Sagittal font. Bravura would be better but it means changing all the numbers — including the code points, as you've noticed! > I listened back to the *.midi file produced by microlily and it sounded > like it was tuned properly. So it seems like this is an issue with > Unicode codepoints, or something else to do with font rendering. > > I am using lilypond 2.22.1, but the problem persists if I switch to > lilypond 2.12.3. Right, 2.12.3 is good to keep around because there are issues with later versions and they'll need a fairly comprehensive rewrite to fix. Graham
Re: Assistance to Create a Recipe for 41-EDO and "Kite Guitar" Tablature
You already found my page about microtonal usage of LilyPond. I specifically used LilyPond with tripod notation, which is not far off a tablature for Kite guitar. You can get the PDF about it and the source code for generating it, which includes LilyPond code, from here: http://x31eq.com/magic/ I have updated some of that, but I still keep an old version of LilyPond around to avoid various regressions. I haven't been through the new method explained in this thread, which does look interesting. You have an additional problem if you want a guitar tablature, though. >From what I can see that's all based on a function for returning equal tempered semitones. Adapting that for microtonal use will be an entirely different question that I don't think anybody's looked at. But it would certainly be useful to be able to generalize the position of the frets and add accidentals — and in this case you won't need the accidentals. What you probably need is a variant of "scordablature" that will put notes on the right frets as if they were 12-equal. You'll also need to set the open string tunings accordingly. Graham
Re: Microtonal midi output
On 09/05/2021, Hans Åberg wrote: > >> On 9 May 2021, at 19:31, Lukas-Fabian Moser wrote: >> >> I looked into it a bit today, and I can gladly report that (while the code >> still needs some cleaning up), I managed to patch my LilyPond to >> automatically generate the MTS messages that Graham's Python script adds >> in post-processing. (Of course, that wouldn't have been possible without >> being able to use Graham's code as a cheat sheet!) > > Graham also wrote some C++ code for generating MTS pitches that was not > integrated into LilyPond, I think. I didn't write any C++ but I looked at the C++ code and it looks trivial to change the pitch bend messages to MTS. What would be more difficult is adding all the options so that either pitch bends or MTS would work — or remembering the current state so you only need to send a message when something changes. I tested with FluidSynth, and there's an update that I don't think I pushed. I think it was that you need to use the all devices Device ID (0x7f) instead of the channel number. Graham
Re: Microtonal midi output
On 08/05/2021, Hans Åberg wrote: > >> On 8 May 2021, at 22:18, brahim.pro wrote: >> >> Thanks for the reply. For example, I would like to play A minor scale with >> normal A(440Hz). But I would like the interval A, B to be 203 cents >> instead of 200. Or I would like the interval A, C to be 315 cents instead >> of 300 cents. >> >> If I understand your answer correctly the note is tied to the midi value. >> But I would like for that midi value generate a slightly different >> frequency. Is that possible? > > You can't do it like that. The MIDI value is tied to the note values, the > other way around. And you can't adjust the tuning frequency, it is C4 not > A4. One can do fine tunings by going up in ET, Graham Breed is doing that, > but I do not keep track of that. No, you can do fine tuning. LilyPond will do it with pitch bends by default. I have scripts to turn the pitch bends into MIDI Tuning Standard messages, which are much more solid. Details at http://x31eq.com/lilypond Some things break with newer versions of LilyPond. Graham
Re: Two or more accidentals per note.
> From: Freeman Gilmore > Subject: Two or more accidentals per note. > How do you wright two (or more) accidentals to modify the same note? > Where is this written?And is there more than one way to do this? For > example how would I write 3 #; 2 double sharps; 2 or more microtonal > accidentals; or microtonal accidentals with #'s or b's.Please keep the > explanation simple, I do not have much experience with LilyPond. It can be done with text strings and Scheme. You need to override the way the accidental is written. This is the only way I can get Extended Helmholtz-Ellis notation working in the general sense. The code is here: https://bitbucket.org/x31eq/microlily/src/master/ There's a newer font it could be using. To do that means re-writing various things. The spacing wasn't quite right on the most recent LilyPond version I tried. Going back to 2.14 might be better, but will also probably not work with that code. So it's generally an unsatisfactory approach: tricky to get right and even then doesn't work properly. But it does mean an arbitrary number of glyphs can be used with each accidental. For the simpler case of combining a sharp or flat with one other accidental, it's probably best to make a custom music font that uses a single glyph for the combined symbol. The trouble is, that isn't easy to do either, and I don't actually know how to do it. So the other way, that you found, is to write two note-heads and hide one of them. That might work but it must be an ugly implementation. Unfortunately, everything's a workaround of some kind, because LilyPond is written around a single glyph for each accidental, plus a special case with naturals, and at one point (maybe still) even second guessed what those glyphs were. Graham
Re: Writing notes in Pythagorean tuning in microlily
On 24/11/2019, Hans Åberg wrote: > >> On 24 Nov 2019, at 11:57, Graham Breed wrote: >> >> LilyPond can easily handle multiple generators with alternative pitch >> names. I've had "tripod notation" support with 3 generators for >> several years. It does mean alternative pitch names, though, rather >> than regular transformations of (any of) the standard names. Or >> Scheme code to retune pitches, like I did for Sagittal JI and Extended >> Helmholtz-Ellis. > > Whatever rational numbers assigned to the accidentals and how many, one only > gets one generator, unless there has been an extension lately. Perhaps you > expect not transposing too far? I had tripod notation working in 2009. This is a rank 3 system, so two octave-equivalent generators. Here's the lilypond-book document I made: http://x31eq.com/magic/tripod.pdf I initially had problems with transposition because there are 9 nominals to the octave, so there's a missing staff position. I fixed this using the chromatic staff support. Now it transposes fine, and I've even used LilyPond's transposition with tone rows. Eventually, the transposition will break because it runs out of symbols. It'll do that with common practice notation as well. There's no special problem with higher ranks. There does have to be a linear chain of accidentals, so it has to be quantized to an equal temperament at some level. With tripod notation, this means "inches" have to be reconciled to "semitoes" or the spellings become very restricted. Because the pitch system uses rationals, an implicit equal temperament is inevitable anyway — unless you use Scheme expressions to choose the accidentals, like with the Extended Helmholtz-Ellis support. Graham
Re: Writing notes in Pythagorean tuning in microlily
On 24/11/2019, Hans Åberg wrote: [amended] > An extended meantone temperament has two generators, which traditionally is > the octave and the the fifth, but one can change basis and take any two, > such as the minor and major second. LilyPond uses the sharp and the major > second. Two generators is necessary for correct typesetting of the staff > system. In Turkish, Arabic, and Persian music, one would need three > generators each, but LilyPond cannot handle that. LilyPond can easily handle multiple generators with alternative pitch names. I've had "tripod notation" support with 3 generators for several years. It does mean alternative pitch names, though, rather than regular transformations of (any of) the standard names. Or Scheme code to retune pitches, like I did for Sagital JI and Extended Helmholtz-Ellis. Where LilyPond has difficulty is with scales that don't repeat about the octave. It's possible to get around this with post-processing, but easier not to. So it's convenient to think of one of the generators as an octave (or equal division of the octave). In this case, common practice notation (tuned as either meantone or Pythagorean) has a single octave-equivalent generator, which could be a fourth or a fifth. LilyPond, however, goes a step beyond this by providing half-sharps and half-flats. When you do the algebra, it turns out that this gives an octave-equivalent generator of a neutral third (half a perfect fifth). Graham
Re: Writing notes in Pythagorean tuning in microlily
On 23/11/2019, kupirijo wrote: > I think I found it here > https://lists.gnu.org/archive/html/lilypond-devel/2018-10/msg00129.html > > Yes it seems to have both AEU notation and some other notation that is > new (it cannot be HE as HE is for just notation) I will try it out anyway. Lilypond has AEU or something like it. I support HE for just intonation. It's imperfect, though, because it requires an external font and Lilypond gets some of the spacing wrong. Something also tends to break with every new version of Lilypond and I'm not keeping up. The code is here: https://bitbucket.org/x31eq/microlily/src/master/ but if you don't need tuned MIDI output then I don't think it will be any use to you. > By the way, what is a generator? Is it related to meantone temperament? The generator in this case is the fourth or fifth. It generates all pitches through the spiral of fifths. > Also in the new turkish_makam.ly, why is the Holdrian comma 1/10 of a > whole 12-TET tone i.e. 200/10 = 20 cents? The HC is approx. 22.64 cents > (i.e. very close to a 1/9 of a 12-TET whole tone) If you work with "regular.ly", the "whole tone" that Lilypond calculates its accidentals relative to is not the same as the whole tone that will be tuned to 9:8 in just intonation. So it's correct that a comma will be 1/10 of a whole tone. 9:8 is a comma flat of two sharps, and so will be 9 commas wide. >>> I see. Who wrote regular.ly? And why is it called regular? >> Graham Breed (added as CC). Probably because ETs are regular tunings on >> one generator. It's called regular because it generalizes Lilypond's tuning model from equal temperament (12 equal divisions of the octave) to a more general regular temperament (the spiral of fifths, or neutral thirds if you consider half-sharps). It's something I'd like to see included in the standard distribution because it's fully compatible with common practice notation, and many not-at-all-microtonal pieces will sound acceptable (and hopefully better) in some kind of meantone temperament. A notation package like Lilypond that already distinguishes enharmonic pairs is a good tool for experimenting with this. Graham >> >>>>> Regarding makam music, the version of lilypond that I am using has >>>>> makam.ly included. >>>> Try to switch the file that Adam Good has done, which effectively >>>> deprecates the one in the current distribution. >>>> >>> Where can I find the file? Is this an alternative to AEU notation? >> It is mentioned at [1]; he is in the CC of this mail, so perhaps he >> responds. It is AEU but maybe Helmholtz-Ellis is in the works as well. >> >> 1. >> https://lists.gnu.org/archive/html/lilypond-devel/2019-11/msg00167.html >> >> >
Re: Pitch inflection
Thank you for your message. I am hoping to reproduce the arrow notation used by the composer, rather than substituting a different notational convention (which this composer has employed in other pieces). The fact that he implies a difference between a slightly lowered F & a slightly raised E makes me think that he is seeking to inflect the note rather than achieving an identifiable quartertone. Thank you also for alerting me to the resources you mentioned which I had not found. You could use the Helmholtz-Ellis notation because the arrows are a subset of it and you haven't specified what the inflection should be so a comma should be good enough. But it should be simpler than that. The arrowed glyphs are in Lilypond's standard font. All you need is to define a new language with whatever pitch inflections you want, and a list of accidentals using the right glyphs. This should have been done before, or there's not much point in having the arrowed glyphs, but I don't know where. There's some help at http://x31eq.com/lilypond/ Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: (modified) Ben Johnston tuning system script
On 28/12/17 13:16, allfifthstuning wrote: I've described my method of determining a note name (see attachment). Currently I'm reading the scheme git book (https://scheme-book.ursliska.de/) which is very helpful. Do I understand correctly that to determine the right note name with EH and Sagittal notation that a ratio is checked against a list of ratios and corresponding glyphs? The two work differently. Both factorize the ratio (relative to the base notes). Sagittal converts that into an equal temperament, and then assigns a string (not always a single glyph) to each step of the equal temperament. (This is not quite how Sagittal should work.) For Helmholtz notation, the factorized ratio maps to a set of glyphs used for notating small intervals, one for each prime number. Then it combines those glyphs to get a string for the full accidental. The same process should work for Johnston notation. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: (modified) Ben Johnston tuning system script
On 23/12/17 17:00, lilypond-user-requ...@gnu.org wrote: I would like to write music in just intonation. I would like to make a script similar to the (great!) Sagittal script of Graham Breed (http://x31eq.com/lilypond/) but for the so called Ben Johnston tuning system (BJTS) (I've noticed there was some discussion about it a while ago). It'd be easier to start with the Extended Hemholtz-Ellis JI Pitch Notation support, in the same repository: https://bitbucket.org/x31eq/microlily This isn't a script, it's code that runs inside Lilypond. There are outstanding issues, like the spacing comes out wrong, and it uses an old font anyway. There's a big matrix that ties alterations to glyphs and you should be able to go in and change it. The BJTS identifies every just interval as a discrete note, so there is not one the same. Yes, one problem would be if there are different ways of referring to the same interval and the code has to choose which to use. I use the so called Pythagorean scale as my basenotes (here I differ from the original tuning system) C - D - E - F - G - A - B. These basenotes are raised or lowered with all sorts of comma's and chroma's to represent the appropriate pitch. That makes things easier as well. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: 48 and 72 ET
I'm answering the whole thread here. You should be able to do 48 ET with the standard Lilypond font. You can, for example, start with 12 ET and add arrowed accidentals to get 12*3=36. Then add 12 quartertones to get 48 ET. All you need is to define new note names. I found the font wasn't good enough for 72 ET, and I don't think that's changed. Which is a shame, because it should be easy for somebody familiar with Lilypond's font workflow to add the arrows to quartertone symbols and that's all you need to get 72 (24*3). I did find enough symbols for 60-ET and I use 60 and 72 as output formats for tripod notation as it happens. From what I remember, there are a lot of flat symbols that can be interpreted in different ways, but not so many sharps. It would be nice for regular.ly to be included in the standard distribution, but that's irrelevant here. What regular.ly does is retune the note names for a different size of fifth. 48 and 72 ET keep the same fifth as 12 ET. What you need is a new "language" for the note names and appropriate glyphs. I have files to support arbitrary fonts but there are issues with the spacing. I have an experimental branch for Extended Helmholtz-Ellis JI Pitch Notation with Bravura but it doesn't solve any problems with the dedicated HE font. (This is the "eheji" branch in the microlily repository.) This particular notation always needs "text" fonts because it builds glyphs into strings to make the accidentals. The standard accidental code only uses one glyph at a time which is good enough for 72 but not Helmholtz-Ellis. Still, having Bravura blessed as a Lilypond font would be both a good thing and quite a bit of work. It's unfortunate that my library is out of date. It's good that convert-ly fixes it. One issue with this is that libraries (at least the way I use them, which may also be out of date) don't declare the Lilypond version. It's in the including score file and if the included file also declares a version there is (or was) an error. Anybody can fork the repository and keep it up do date. I can add the license of your choice if you care about such things. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: lilypond-user Digest, Vol 168, Issue 174
On 21/11/16 13:51, lilypond-user-requ...@gnu.org wrote: Message: 5 Date: Mon, 21 Nov 2016 09:42:33 +0100 From: Urs LiskaTo: lilypond-user Subject: Pitch bend output in MIDI Message-ID: Content-Type: text/plain; charset=utf-8 Hi, I want to use Pitch Bend to detune the output in MIDI files. The NR states that pitch bend is supported but doesn't give any information how it is applied. Apart from that I've only found this LSR snippet http://lsr.di.unimi.it/LSR/Snippet?id=785 but I must admit I don't really understand where and how the pitch bend is actually produced. What I need is to apply it within a music function that returns a note, and this should apply the detuning. Any hints appreciated. The pitch bend bends a pitch from equal temperament to the pitch specified in Lilypond. It adds a pitch bend before the note on, and resets to zero pitch bend after the note off. There's a script here that convert's the pitch bends into MIDI Tuning Standard messages that work polyphonically with Timidity: http://x31eq.com/lilypond/addmts.py3 If you want to detune a note, you need to set a pitch that's different to equal temperament. You probably know the Lilypond pitch system, but anyway, it's explained here: http://x31eq.com/lilypond/ The latest code for just intonation is at https://bitbucket.org/x31eq/microlily Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Extended Helmholtz-Ellis JI PItch Notationn
I now have my Lilypond JI code working with the Extended Helmholtz-Ellis Pitch Notation. This is something I've been putting off for some time because it means the function that determines the original accidental has to know the original ratio that it refers to. After the more recent discussion here, I decided to use a global list to keep lookups of alterations to ratios, and all is well so long as you don't transpose anything. You can get the code from the git repository: https://bitbucket.org/x31eq/microlily I have a "don't care" attitude to licensing, which is made explicit in the README. So, if you want to copy any ideas for your code for other JI notations, feel free. The same input code should work for different notation systems, as it currently does for different kinds of Sagittal and the new Helmholtz-Ellis. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Microtonal notation - arrows up and down
On 13/01/16 16:53, Luca Danieli wrote: I tried to find information on how to do it on internet, but I am unable to find anything. I am sorry to continuously asking, but can you give me any hint on how to do it? I think this is what you want: arrowGlyphs = #`( (,DOUBLE-SHARP . "accidentals.doublesharp") (,SHARP-RAISE . "accidentals.sharp.arrowup") (,SHARP. "accidentals.sharp") (,SHARP-LOWER . "accidentals.sharp.arrowdown") (,NATURAL-RAISE . "accidentals.natural.arrowup") ( 0. "accidentals.natural") (,NATURAL-LOWER . "accidentals.natural.arrowdown") (,FLAT-RAISE . "accidentals.flat.arrowup") (,FLAT . "accidentals.flat") (,FLAT-LOWER . "accidentals.flat.arrowdown") (,DOUBLE-FLAT . "accidentals.flatflat") (,(/ SHARP 2) . "accidentals.sharp.slashslash.stem") (,(/ FLAT 2) . "accidentals.mirroredflat") (,(* SHARP 3/2) . "accidentals.sharp.slashslash.stemstemstem") (,(* FLAT 3/2) . "accidentals.mirroredflat.flat")) ) (I tried to update all the software in Ubuntu, but I am already the newest version) Kind regards, Luca Subject: RE: Microtonal notation - arrows up and down To: lilypond-user@gnu.org From: gbr...@gmail.com Date: Tue, 12 Jan 2016 20:01:53 + Date: Mon, 11 Jan 2016 19:39:06 +0100 From: Luca DanieliIt works perfectly! I understand that I need to rename ALL pitches, otherwise the building fails.The only problem now is that I have lost the default microtonal symbols. So for example, how do I re-write the default symbol ceh (to have the symbol "d")? In your example it is: (ceh . ,(ly:make-pitch -1 0 (/ FLAT 2))), but this doesn't show any accidental. (I can't find information on internet) The accidentals are listed in the "arrowGlyphs" object. You need to update that to match the names. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
RE: Microtonal notation - arrows up and down
Date: Mon, 11 Jan 2016 19:39:06 +0100 From: Luca DanieliIt works perfectly! I understand that I need to rename ALL pitches, otherwise the building fails.The only problem now is that I have lost the default microtonal symbols. So for example, how do I re-write the default symbol ceh (to have the symbol "d")? In your example it is: (ceh . ,(ly:make-pitch -1 0 (/ FLAT 2))), but this doesn't show any accidental. (I can't find information on internet) The accidentals are listed in the "arrowGlyphs" object. You need to update that to match the names. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Microtonal notation - arrows up and down
Date: Fri, 8 Jan 2016 18:35:49 +0100 From: Luca DanieliI don't understand very much what is written within the page you sent me. But from the "quick start" I have understood the basic and was able to implement this code: http://lsr.di.unimi.it/LSR/Snippet?id=786 It works. Unfortunately I can only re-name the existing standard notation.What about adding arrow-"ed" accidentals to the already existing ones? I can read on the "accidental" paragraph of the web-page you have provided: "Whether or not you want new accidentals, you need a new associative array for microtonal tunings." That example looks correct, and I ran it with 2.18.2. Did you fix it since you asked the question? Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
RE: Microtonal notation - arrows up and down
Date: Sat, 9 Jan 2016 20:39:15 +0100 From: Luca DanieliYes, it works perfectly. But I am only able to replace for example the standard symbol for fih (quarter-tone) with an arrow-up symbol. I was wondering if it was possible to use both symbols instead of replacing one type with the other. I would like to use arrows to indicate tone-colour and standard notation to indicate quarter-tones. You choose some new names for the arrowed pitches, and add them to the list, along with the original quartertones. Something like arrowedPitchNames = #`( (ceses . ,(ly:make-pitch -1 0 DOUBLE-FLAT)) (ceseh . ,(ly:make-pitch -1 0 (* FLAT 3/2))) (cesel . ,(ly:make-pitch -1 0 FLAT-LOWER)) (ces . ,(ly:make-pitch -1 0 FLAT)) (cesir . ,(ly:make-pitch -1 0 FLAT-RAISE)) (cesih . ,(ly:make-pitch -1 0 (/ FLAT 2))) (ceh . ,(ly:make-pitch -1 0 (/ FLAT 2))) (cel . ,(ly:make-pitch -1 0 NATURAL-LOWER)) (c . ,(ly:make-pitch -1 0 NATURAL)) (cir . ,(ly:make-pitch -1 0 NATURAL-RAISE)) (cih . ,(ly:make-pitch -1 0 (/ SHARP 2))) (ciseh . ,(ly:make-pitch -1 0 (/ SHARP 2))) (cisel . ,(ly:make-pitch -1 0 SHARP-LOWER)) (cis . ,(ly:make-pitch -1 0 SHARP)) (cisir . ,(ly:make-pitch -1 0 SHARP-RAISE)) (cisih . ,(ly:make-pitch -1 0 (* SHARP 3/2))) (cisis . ,(ly:make-pitch -1 0 DOUBLE-SHARP)) ... Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
JI notation (was: converting svg glyph to path data for use in scheme)
From: "N. Andrew Walsh"Converting cents to ratios only makes even a bit of sense if you have some preexisting music in some temperament, which you then want to approximate in just intonation. But even that isn't really something that would be served by calculation from cents and not simply determining yourself what ratios you want (because, at base, deciding which ratio you want to have is entirely arbitrary). Now, if you have some closed scale, it's simply a matter of figuring out the cents values for the notes in the scale, and then rounding your preexisting notes to the nearest one. It makes sense because at the point you choose the accidental, the deviation from the unaltered pitch is the only information you have — unless you have some other mechanism for passing it along. But what some of the discussion implies is that you could keep a global hash table of the alteration (which happens to be rational and so unique and hashable) chosen for a given ratio input. That would work as long as the input is always JI, and that's a perfectly reasonable assumption. Transposition would still have some wrinkles, though. Using an equal temperament to set the accidentals is problematic even if you allow Sagittal-style wraparound. Sometimes errors will accumulate so that the correct spelling doesn't match the nearest approximation of a complex ratio to the equal temperament. The simple solution is to convert each ratio to the temperament before they get combined, but that would mean the MIDI ended up equally tempered. The next stage is to use a different equal temperament for the score and MIDI rendering. To guarantee the correct spelling you would need to do factorization. That can be done in Scheme but so far I haven't done it. But if you are using any kind of temperament at all, you're dealing at base with irrational numbers, and no computation is going to provide meaningful results unless you specify beforehand what your limits are (in which case you're specifying a closed scale, and it's thus much simpler to do the calculations in the other direction). For example, here are all the ratios in a very basic scale that fall within a quartertone of 600 cents: 11/8, 18/13, 7/5, 17/12, 10/7, 23/16, 13/9, and 16/11. Which one of those counts as a "tritone" for your scale depends almost entirely on how simple you want to keep the ratios (and if simplicity isn't necessarily your goal, there's also 352/256, 89/64, 179/128, 359/256, 181/128, 367/256, and 373/256; all of those are pure overtones). It's a lot more complicated than that. While you could write an adaptive tuning engine in Lilypond, that isn't what we're discussing here, so let's drop it. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: converting svg glyph to path data for use in scheme (was: accidentals for just intonation)
From: "N. Andrew Walsh"Actually, coverting between the ratios and semitones has alread been done, as there's a simple set of log and mround functions that do it. Have a look in the OLL repository under notation-tools and you should find the .ily files. What's the OLL repository? Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: converting svg glyph to path data for use in scheme (was: accidentals for just intonation)
From: Urs Liska>Maybe so, but the result is less portable because (if I understand >correctly) you'd have to have a custom font and have it installed >correctly, etc. for anyone to be able to use the glyph... as opposed >to just having the custom glyphs in an include file that you?re going >to be including anyway. > >-Paul I think the font idea*may* be an approach worth considering. Our stuff will reside in a library anyway, and I think it should be possible to have that library call a font reliably when it is in the same directory IIRC. I can get fonts from the current directory no problem on Linux. But there's a problem with Windows that I still haven't looked into. There's surely a way around it, though. We could then have a font with glyphs for each constituent of your accidentals and construct the actual accidental as a markup using \combine, which should be pretty straightforward. If the glyphs are pre-built, a font file is the obvious place to store them. If they have to be combined, it's a bit harder because it has to be a text font, but this problem is also solved. There's a problem with more recent Lilyponds where the accidentals can collide with barlines, but if you can pin it down and report it I'm sure that can be fixed. I think the rules for combining symbols into glyphs can all be written into the font files but that may not be the easiest way to do it. The nice thing about fonts, though, is that some already exist. The problems with generating large lookup tables, or multiplying ratios, or factorizing this or that, can all be solved with the Extended Helmholtz-Ellis JI system, and when everything's working you can drop the new glyphs or start drawing them some other way. It's nice that you think keeping the primes distinct is straightforward. I thought it was difficult, especially if you want MIDI playback and transpositions to be correct, but not impossible. A large lookup table, corresponding to a sensible equal temperament for wraparound, is probably the best way to get started. The system is potentially infinite, but you can set limits on how far you expect modulation to go. People keep being pessimistic about Lilypond or Scheme's performance with large tables but so far nobody's produced a huge table and demonstrated it to be unacceptably slow. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: converting svg glyph to path data for use in scheme
On 13/12/15 12:48, N. Andrew Walsh wrote: Take a look at conversions.ly (sorry; mround is the equivalend function in the spreadsheet I use to do the same thing). Those functions will convert the input (given as a fraction comprising two integers) into Lily's semitone values. That should allow you to convert between just-intonation ratios an the nearest note name. Urs has some comments in there explaining a bit how it works. Converting from ratios to cents is easy. Converting between ratios and cents requires a function from cents to ratios. That's a lot more difficult because information is lost. You got us excited by suggesting that had been solved. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Microtonal notation - arrows up and down
Date: Wed, 9 Dec 2015 01:05:11 +0100 From: Luca DanieliHello everybody, I found out very few about arrows down and up for microtonal notation.Neither a quick research on the mailing-list has shown many results. I found the best example of it in the following page but I hoped to find some more information on how to set up arrows down and up. http://lsr.di.unimi.it/LSR/Search?q=microtonal Can someone lead me to the right tutorial, if there is any? http://x31eq.com/lilypond You have to decide what they mean. Then, set new note names, define the accidentals, and set a base scale, if you need it. Probably the default or a regular retuning of it will do. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: accidentals for just intonation
On 03/12/15 12:11, N. Andrew Walsh wrote: If your system requires only a range in cents to determine which accidental to use, that should be easy to calculate and apply. If it requires only the prime factors of the ratios, that should be easy, too. If it's some mixture of them, that works as well. And for all of them, it should be possible to output something different to different instrumental parts, as needed. Prime factorization to control the accidentals wasn't easy when I looked at it. The only information available when the accidental was chosen is the pitch-difference, so that's what I used. There are ways communicating, though, like choosing different accidental sets according to the factors or building the accidental string recursively. Maybe it's easier with new versions of Lilypond and improved documentation. I did this a while ago and learned the internals as I went along. I welcome assistance from more experienced Lilypond-Schemers, and if it's going to be re-implemented from scratch, at least my code's there as an example of what can work. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: accidentals for just intonation
From: "N. Andrew Walsh"To: lilypond-user If you've been watching the OpenLilyLib repository, you'll see that Urs has been working on a set of tools for rendering music in just intonation. He (quite modestly) says that it isn't ready for production, but there are already some impressive things it can do: for one, the interface allows to input a fraction and get back a nearest-semitone pitch with a deviation in cents*automatically*, which is something the commercial programs don't offer in any way (every composer I know who works with JI just inputs text entries manually for every note, with no change in, for example, MIDI output for ability to handle transpositions). I haven't been watching that ... I don't know what it is. But it sounds similar to my Sagittal support. Latest code here, works for me but something broken on Windows: https://bitbucket.org/x31eq/microlily It's possible to turn off the Sagittal accidentals to get output using standard accidentals, given essentially the AFMM output. I don't remember if I ever got that working though. You have to specify the staff position as well as the ratio. I'd like to be able to put these into Lily, and Urs tells me it can be done by calling a draw function to draw a path. I can relatively easily make up some paths with Inkscape and save them as SVGs, but is there a better way to do this? The NR describes (here: http://lilypond.org/doc/v2.19/Documentation/notation/formatting-text#graphic-notation-inside-markup) the means to include eps files into a markup, which presumably could be used to replace the accidental. There are some potential complicating factors here. First, the accidentals I use change depending on the prime factorization of the ratio involved: for example, the ratio 9/8 (a type of whole tone) would comprise two of the symbol for 3 (because "9/8" is really "(3*3)/8" ), which means that Urs' interface for JI ratios would need an add-on to do prime factorization of the ratios (which is also computationally intensive, even for relatively simple numbers) or a means to encode ratios as lists of primes that are then calculated to return the value in cents (that is, do the process in reverse, starting from "(3*3)/8" and getting 9/8, which might be easier to do). I've thought about this with respect to the Extended Helmholtz-JI notation, for which there are already fonts that would work with my system. Generating accidentals from pitches is problematic, and would really mean generating your gamut in advance, with some implied equal temperament that doesn't give any ambiguity, and the accidentals would disappear if you exceed that gamut. Another idea is for commands to add the accidental glyphs, and also do the correct pitch shift. I think this was prototyped without the pitch shifting (so ignoring MIDI output) before I implemented my Sagittal approach. Where it's problematic to get tuning and display working together, you can define separate functions for the "midi" and "score" blocks. Another idea I had, though, is to shove annotations into the list describing each note. (I think the new parser makes this easier than it used to be, because each note in a chord is a list.) You can then run a function over the whole music block to strip out the annotations, set the pitch, and override the accidental. You can also apply different functions to the same music block in the midi and score blocks to make that approach easier. I did a proof of concept of this, which I can't find now, but I haven't followed it up. The advantage here, though, would be this: one of the interesting things about just intonation is that there is no theoretical limit to what kinds of ratios you use. You could theoretically have unique signs for all the primes you want, and then the draw function could build them on the fly. The accidentals become modular, scaling to whatever level of complexity the composer wants. Harry Partch writes music that tops out at the 13th overtone, but La Monte Young has pieces with primes in the upper 300s. You can also make a font with a fixed level of complexity, and it will be easier to get working for now. An issue with drawing the glyphs in is that you have to be sure to inform LilyPond of the correct amount of space to allow for them. You could also look at the Extended Helmholtz-Ellis JI set, where the advantage is that the font already exists. It's on this page, along with some PDFs explaining it: http://www.marcsabat.com/ So, List: this is, as I said, a somewhat long-term project, but would any of you be willing to help me learn/do the programming necessary to develop a system like this? I also have in mind a more general add-on to the OLL just-intonation library: I'd like to see a set of different .ily files, each with different sets of accidentals, which a composer could \include into the score as needed. For example, I could
Re: Git/Lilypond workflow
I use Git and Lilypond. I know Git quite well, but haven't been using Lilypond much lately. I can see from this thread that I'm not using the two together efficiently, so I'll describe what I should be doing. 1) Keep a tools repository with the include files I depend on, and really should keep in one place. 2) Clone tools to a music repository in a different folder. 3) For a new composition, clone tools to a new folder, and make a branch. 4) Push this branch to the music repository, so that it becomes a single place with all my music that I can back up, share between devices, and so on. (You can link master in the composition repository to a branch in music if you like. I'll make the branch.) 5) Publish tools as a public repository on Bitbucket or wherever. 6) Clone music I don't want to be public to private repositories (you get a few free with Bitbucket). 7) If I change the include files and want them updated for a composition, pull from tools and merge in. This way, the tools can be tracked independently of the music that uses them, but pieces that depend on a specific version of the tools won't magically break. It's both one and may repositories, which reflects the fluid nature of repositories in Git. In practice, I think tools and music would be the same. I think I can publish only the branches I want without other changesets leaking out. If you worry about this, keep them distinct and pull only in one direction as I describe. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Where to Download the New Music Fonts?
On 29/07/14 15:18, Hans Aberg wrote: Graham Breed wrote a file for equal temperaments for an earlier version of LilyPond, which I was able to tweak for the latest version (discussed on the devel list). When using the currently available microtonal symbols, then also key signatures seemed to work fine - a problem in the past. The latest code is here: https://bitbucket.org/x31eq/microlily I thought it was up to date. I can take patches if it isn't. So it seems that all one has to do in order to get decent microtonality into LilyPond is to include this version of Graham’s file in the distribution and add microtonal symbols so that they can be called like the ones currently available. Sagittal works for accidentals as a text font. It should work for key signatures as well, but I don't test that. I didn't use a music font because it was too much trouble to create a music font with Sagittal. Also, it's possible to use strings for chained accidentals with a text font. This would be important for Extended Helmholtz if anybody wired it up. With 2.16.0, everything works except the accidentals sometimes crash the barlines. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re:Lilypond help - arbitrary accidental glyphs
I have been studying 31 equal temperament and wish to implement Adriaan Fokker's notation in Lilypond. I would very much appreciate it if you could give me some help. In search for a solution, I found a 2008 thread between you and Graham Breed: http://lilypond.1069038.n5.nabble.com/Arbitrary-accidental-glyphs-td110936.html. This seems to correspond to my problem, but unfortunately it is way beyond my technical ability. I have even tried to study his codes for using Sagittal in Lilypond (http://x31eq.com/lilypond/), but it was again too technical for me. Editing the Metafont source also seems too difficult. The latest code is at https://bitbucket.org/x31eq/microlily and fixes some problems with Lilypond upgrades but what's on the website is probably fine for you. Anyway, what you want looks simpler than either the Sagittal JI or tripod code. Maybe the best thing's to send me the font and I'll sort it out. It can then be the example for the next person to want to do this kind of thing. Which of the Fokker symbols is missing from the standard Lilypond set? There seems to be a problem: Graham originally retuned pitchnamesEnglish, but that is no longer used in english.ly, which merely invokes \language ?english. There's no need for pitchnamesEnglish any more. Also, there LilyPond has a separate system for key signatures, so if one wants working microtonal such, one is essentially stuck with equal temperaments a multiple of 12. I'm not sure if this is a problem or not. But at least conventional key signatures will be retuned by regular.ly. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Just Intonation MIDI file
dadadharma @dslextreme.com dadadha...@dslextreme.com wrote: This YouTube by Hajo (dl1sdz) claims to have generated a just intonation MIDI file from a LilyPond file. BWV-988-Var-12-Just.AVI http://www.youtube.com/watch?v=-rkaueIngyY How does one do this? Well, disappointingly they didn't do the tuning in Lilypond. But they could have. I can find just intonation in the glossary but not in the rest of the documentation. I am interested in generating sound files for singing practice using the simple Pythagorean ratios. http://x31eq.com/lilypond/ Use regular.ly with tuning=#53 or some other equal temperament that gets close enough for you. Normally notated notes will then be Pythagorean. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: lilypond-book download
Pablo Zumarán pab...@ymail.com wrote: I'm having trouble understanding something. In Item 4 of GNU Lilypond – Application Usage, under the heading Integrating Text and Music, it explicitly says this lilypond-book provides a way to automate this process: This program extracts snippets of music from your document, runs lilypond on them, and outputs the document with pictures substituted for the music. According to this, LilypondBook is a program. I'm new to command-line usage, so that might be why this confuses me. Is it not a stadalone program? Yes, lilypond-book is a program. If you have it, it will be in /usr/bin/lilypond-book I wish the Lilypond site had complete examples to study from, rather than just specific examples meant to be understood only by experienced command-line users who would know where to apply them. I have TeXMaker, TeXWorks, TeXLive, eMacs, GNUTeXmacs, have tried to get a pdf file with text and music from all of them without success. I've no idea, for instance, how to make TeXMaker understand a Lilypond command; or what program to use TexXInfo on, or even whether TeXInfo is itself a program. If you're working with LaTeX, you need to run pdflatex on the file that lilypond-book produces. In Ubuntu, pdflatex should come with TeXLive and be in /usr/bin/pdflatex For Lilypond 2.12 (the one that comes with Ubuntu LTS) full instructions are in the documentation. The first example, under Application Usage is in 4.1 An example of a musicological document. If you don't have xpdf, replace it with evince to view the resulting file. If you don't have lilypond-book or pdflatex, Ubuntu will tell you how to install them. If you aren't familiar with the command line, you'll need a tutorial on that. This is the first one that comes up with Google: http://www.ee.surrey.ac.uk/Teaching/Unix/ By the end of Tutorial Three, you should know what you need to follow the Lilypond documentation. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Score.midiInstrument = harp
Craig craigbakal...@verizon.net wrote: Bracing for the storm here in the mid-Atlantic section of the US. What else to do but typeset. I have a score with a harp. The lilypond MIDI Instrument table is mission the MIDI timbre called harp. Why? It's called orchestral harp. Is there a resource file with the MIDI timbres in it that I can edit somewhere in the lilypond application folder? Can I mess with it? Will it have an effect? The list of instrument names is in a file called midi.scm. Changes should take effect. But that's moderately evil because anybody you share the music with will have to make the same changes. Graham B ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Pitch-bent note's release-phase
Richard Sabey richardsa...@hotmail.co.uk wrote: Since sending my initial enquiry to this list I have indeed written an app which confirmed to me what you say. Right. I also have a file that shows Timidity will share the tuning of a note even between channels, so that F and F# come out the same in meantones. I've updated my script to work around this by setting each channel to a different tuning table. The result is at least as good as pitch bends now. Thanks also for that Python app. I plumped for your Python v.3.2 version and installed Python v.3.2 accordingly. There is a problem, in that if two notes are assigned to the same MIDI key (even in different voices) they'll have the same tuning. That makes it possible for C and C# to become confused. That's a pity. I was hoping to use temperaments with many (31? 34? 41? 53?) pitches per octave, and create chords with pretty small intervals, perhaps smaller than a 12et semitone... Until they get smaller than a semitone, there won't be a problem because (touch wood) no plausible function is going to assign two pitches more than 100 cents apart to the same key number. When the intervals get narrower than that, you have to start thinking about assigning the pitches to different channels, or transposing so that the rounding comes out right. When it becomes a real problem is when we can suggest Lilypond be made more complex to work around it. One thing that does work is to transpose pitches into a tuning table with more than 12 notes. That restricts the range of each voice but you still get 4 octaves of 31 notes, for example. It would make sense if the pitch were rounded to the *nearest* equally tempered value instead. That'd only move this problem elsewhere. Yes, but it's easier to predict that F# and Gb are going to round to the same pitch, and so avoid them in the same chord, than that F and F# will be a problem. I've seen Lilypond apply downward pitch bend even if this means using a MIDI note whose name is different from the name in the .ly. It does? I don't know what's going on then. Graham ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Pitch-bent note's release-phase
Richard Sabey richardsa...@hotmail.co.uk wrote: But you don't need this problem when a note allocated to a channel is followed by a rest in that channel. Is Lilypond writing a MIDI pitch wheel change message to take effect at the same instant as the MIDI note off message? If I'm right (I don't know of any app which converts a .mid file into a form I could understand - perhaps I'll have to write a C program myself!) then I think that Lilypond could produce better MIDI if it sent pitch wheel change messages only on demand, i.e. together with note on messages, but not also with note off messages. Yes, it does what you say. It makes the implementation simpler, on the assumption that pitch bends are going to be rare. What I have, hot of the presses, is a script that can take a MIDI file produced by Lilypond and convert the pitch bends into MIDI Tuning Standard messages. It's a widely ignored standard, but it works with Timidity at least. Then there's no problem with the tails, and no need to split chords into independent polyphonic lines. You can get it for your favorite version of Python. Python 2.6+: http://x31eq.com/addmts.py Python 3: http://x31eq.com/addmts.py3 It's a hack, but it works with what I've thrown at it. There is a problem, in that if two notes are assigned to the same MIDI key (even in different voices) they'll have the same tuning. That makes it possible for C and C# to become confused. This highlights an interesting feature of Lilypond's pitch bend support. The pitch is always rounded *down* to the next lowest equally tempered value, and then the pitch bend applied *upwards*. That means, for meantone temperaments where C-C# is less than 100 cents, C and C# will, indeed, end up with the same key number. It would make sense if the pitch were rounded to the *nearest* equally tempered value instead. I don't know if this is in the issue tracker. If you want to keep pitch bends, it would be fairly easy to hack my script to write one before every note-on instead of the MTS message. Graham (not that one) ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: LaTeX font as Lyric font in LilyPond?
On 17 April 2011 11:53, Dominic Neumann m...@dominicneumann.de wrote: is it possible to use the LaTeX font Computer Modern SansSerif (selected by \sffamily in LaTeX) as Lyrics font in LilyPond? Probably it is possible, but how (under Debian Linux). I don't believe it's possible to use it as a TeX font. You may be able to get it in some other form (preferably OTF) that LilyPond can recognize. Here's what Google brought up: http://canopus.iacp.dvo.ru/~panov/cm-unicode/download.html If that doesn't work MetaPost can do it. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Editing notes in a separate file
Xavier Scheuer x.sche...@gmail.com wrote: Look into \tag. Which is documented there: Notation Reference (NR) 3.2.2 Different editions from one source http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Different-editions-from-one-source ;-) That's 3.3.2, not 3.2.2 Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: vim vagaries
J. wrote: I looked at the directions on the lilypond site for setting it up but, because of my noviciate I got confused with all the places and symbols. I found a page here: http://lilypond.org/doc/v2.12/Documentation/user/lilypond-program/Vim-mode It isn't clear which of those things you have to do. As I hadn't done any of this before, I gave it a try. The answer is: both. You need to create this filetype.vim in a suitable place so that vim knows to go looking for .ly files. (And should that be modified for the extension we're supposed to be using for include files?) You also need to tell vim about your Lilypond installation or move some files into a standard vim folder. i.e. can you add all the lilpond things into the place where vim is (/user/bin/share/vim) or have to make a ~/.vim and how does one modify the files when the're found. [Whew!] You can add the Lilypond things to your vim folders, but this might confuse you when you move computers or reinstall or something like that. If you add things to ~/.vim you can move that to any new computer you want things to work on. Note that these instructions are for UNIX but your headers show that you're using Windows. Identifying those folders for a Windows installation of vim (outside of Cygwin) may well confuse you. Inside vim, you can do :set runtimepath to find places where vim will look for things. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Microtonal Helmholtz-Ellis notation in Lilypond: fine-tuning
Stefan Thomas wrote: 1. The new accidentals are also played via midi, which is great. But not, when different accidentals are in a chord. Is there a possibilitie to change this? Yeah, you have to split it into separate contrapuntal lines. I've used a contraption of include files so that I can run Lilypond differently to get MIDI and score output. For MIDI you need each line on a different channel (it's in the documentation, a snippet I think). For the score you need to bring the different lines into the same voice so that chords look like chords. I don't remember the details, but it's all in my Tripod code. It would be nice to use MIDI Tuning Standard messages instead of pitch bends. Maybe I could sort that out with a post processor but I haven't because I'm lazy. 2. How can I define the accidental-style neo-modern for the whole score? Dunno about that. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Microtonal Helmholtz-Ellis notation in Lilypond: fine-tuning
Hans Aberg wrote: Isn't the lookup dynamic, so one only gets a warning when it actually needs a glyph for an alteration? - But it is a good idea to define a glyph for each alteration. Yes, but we've overridden the glyph lookup to use strings from external fonts. There's no need to define glyphs at all except to suppress this warning. It's there because some redundant code is still being executed. If we knew the right plumbing we wouldn't need them at all, and should be able to leave the X- and Y-extents implicit. But this is the current state of the art. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Microtonal Helmholtz-Ellis notation in Lilypond: fine-tuning
Hans Aberg wrote: Thanks for the explanation. I recall that: LilyPond has more than one glyph-finding model. That was a problem with the key signatures, I think, which could not use those from external fonts. Lilypond has one glyph-finding model for accidentals, and the hooks to allow us to override it. All kinds of things are cumbersome or don't work when we do so. Grace notes are another one I noticed. But at least it's now fairly straightforward to get accidentals from arbitrary fonts -- with alternative tunings -- where it was basically impossible before the pitch model was changed. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Microtonal Helmholtz-Ellis notation in Lilypond: fine-tuning
Stefan Thomas wrote: Dear Graham, in the meantime I found out, where I have to install the font on my kubuntu machine. That's good. I was able to try out the example. There is one not convincing for me: The default accidental is an natural. But I would like to use fis and ges as before. Aren't these two different problems? You can use a different glyph for naturals by changing one of the tables. Wouldnt it a possibilitie to define new pitch-names, like it has been done in the makam.ly? But how can this be done? Yes, absolutely. There should be a list of pitch names in the code you're using. All you so is change them. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Microtonal Helmholtz-Ellis notation in Lilypond: fine-tuning
Stefan Thomas wrote: Dear Graham, absolutely, I would like to define a list of notenames, for e.g. pitches that are about 15cents lower, But I have no idea how to do it, when I use the HE-font for the accidentals. For the code I have, pitch names are defined as: HEPitchNames = #`( (c . ,(ly:make-pitch -1 0 0)) (g . ,(ly:make-pitch -1 4 10/1023)) (edown . ,(ly:make-pitch -1 2 -75/1096)) (bflatseven . ,(ly:make-pitch -1 6 -162/247)) (d . ,(ly:make-pitch -1 1 20/1023)) and so on. If you want more pitches, you add them. The parameters are documented for ly:make-pitch under Scheme Functions. Off course, I had a look in makam.ly and I found there makamGlyphs = #`((1 . accidentals.doublesharp) (8/9 . accidentals.sharp.slashslashslash.stemstem) ) But how could I define a Helmholtz-Glyph? This table is different when you use an external font. The relevant table, as I have it, starts like this: HEStrings = #`( (0 \x6e (0 . 1) (-0.5 . 0.5)) (10/1023 \x6e (0 . 0.6) (-0.5 . 0.5)) (-75/1096 \x6d (0 . 0.6) (-1.1 . 0.5)) (-162/247 \x3c\x65 (-2 . 2) (-0.5 . 0.5)) (20/1023 \x6e (0 . 0.6) (-1.1 . 0.5)) In each of those lists, the first entry is the alteration in whole tones (1/1 = 200 cents). The second entry is the UTF-8 encoded string to display. The other two pairs are the X- and Y-extents that determine how much space LilyPond allows for the accidentals. We currently don't know how to make sensible guesses for these so they have to be hard coded. The alteration for very accidental in the first table has to match a row in the second one. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Microtonal Helmholtz-Ellis notation in Lilypond: fine-tuning
Stefan Thomas wrote: what I don't understand: How many cents are an alteration of 10/1023? It's a fraction of 200 cents. So 200 * 10/1023 = 2000/1023 = 1.955... cents, which looks like a schisma. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Microtonal Helmholtz-Ellis notation in Lilypond: fine-tuning
Stefan Thomas wrote: Ok, I've understood this now. In the meantime, I tried to make my own microtone-uitchtable. But, unfortunately, it doesn't work. I always get the error message: stefansMikrotoene.ly:32:6: warning: Could not find glyph-name for alteration -162/247 That says it's a warning, not an error, so it shouldn't stop anything working. To get rid of it you have to define a valid glyph for each alteration even when you don't use them. I don't understand how to make use of the HE-font, when defining the alteration signs. Here is my short snippet: snip It's too short. You've taken out the support code for the arbitrary accidentals. Also, this part: \paper{ #(define fonts (make-pango-font-tree Century Schoolbook L HE Bitstream Vera Sans Mono 1)) } looks out of date. I used to do it that way, but there's a better way to set the font. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Microtonal Helmholtz-Ellis notation in Lilypond: fine-tuning
Stefan Thomas wrote: Dear Community, I know that I am a little late in this discussion. I wanted to try out theexample of Thorsten, I found at http://lists.gnu.org/archive/html/lilypond-user/2009-09/msg00205.html What I don't understand is: where do I have to have the files of the HE-font? You install them wherever fonts go on your system. That may sound vague but, of course, it depends on your system. I think there's a special folder LilyPond looks in as well but I'd have to check the documentation to find it, same as you. And, is there a final version of the example code somewhere? I wasn't able to find it! Don't know, sorry. Probably somewhere in this thread. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Quarter-tone notation with arrows
Joseph Wakeling wrote: Another reason could be that if your quarter-tones are _approximate_ rather than precise, it can be helpful to know which of the 12 standard notes you are bending. If there's some intuitive reason for choosing different logical equivalents, perhaps that should be reflected in different pitch alterations anyway. Graham Breed wrote me a nice note suggesting defining some kind of override or tweak to redefine the symbol on the fly, but considering it I think I'll probably go with 'cheaty' definitions of pitch alterations, like +/- 101/400 (or 1001/4000 or whatever seems most appropriate:-) Yes, sorry that went privately. I forgot the shift-ctrl to reply. The idea is you can only have one set of quartertone symbols at a time, but you can use a \tweak or \override to switch between sets. I have proof of concept examples for pure/mixed Sagittal. The cheating looks fine until you want to do transpositions. Transposing C up-a-quartertone up by the same quartertone won't give C sharp, for example. If you think it should that's an indication you're treating quartertones equally, of course. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Persian musical koron and sori
Kees van den Doel wrote: Then in \context add \override Accidental #'stencil = #ly:text-interface::print \override Accidental #'font-name = #??? \override Accidental #'font-size = #? \override Accidental #'text = #(lambda (grob) (cdr (assoc (ly:grob-property grob 'alteration) persianStrings))) \override Accidental #'X-extent = #'(0 . 1) \override Accidental #'Y-extent = #'(-1 . 1) Works great with the typo's fixed. Is there a way to do this only for koron and sori and render the normal accidentals as usual? There surely is, but it won't be pretty. You can try: -- Scheme functions for all these properties, that check if the alteration requires the new font, and default to the original values if it doesn't. -- Putting all the \override commands in a variable, and calling it with \once when you need it. -- Writing all the normal accidentals as \markup blocks that load the correct glyphs. Note that if you want two glyphs at the same time for the same note they have to be strings or markup. and so on for KeySignature If I do the same for KeySignature \override KeySignature #'text = #(lambda (grob) (cdr (assoc (ly:grob-property grob 'alteration) persianStrings))) gives me an error. It's been almost 20 years since I've used Scheme and I don't remember enough to be able to guess what the problem is... Ah, yes. That's not going to work. The key signatures are drawn differently to accidentals. They have to place all the glyphs, not only one glyph for a given accidental. Maybe somebody on the list can suggest a way to override them... Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Persian musical koron and sori
Kees van den Doel wrote: Hi Folks, I made an init file persian.ly with support for Persian accidentals and scale signatures. The only thing missing is correct glyphs for koron and sori. I include it below. You don't want glyphs. You want strings, because we're not expecting a music font, so the mechanism for glyphs won't work. This can stay here: % Define accidental symbols. % Really need to have accidentals.koron and accidentals.sori persianGlyphs = #`((-3/10 . accidentals.mirroredflat) (1/5 . accidentals.sharp.slashslash.stem) (0 . accidentals.natural) (1/2 . accidentals.sharp) (-1/2 . accidentals.flat) (-1/10 . ) (-3/5 . ) (-1 . accidentals.flatflat) ( 1 . accidentals.doublesharp) ) Then add: persianStrings = #`((-3/10 . ???) (1/5 . ???) ... ) where the ??? are replaced with the UTF-8 strings of the symbols you want. Then in \context add \override Accidental #'stencil = #ly:text-interface::print \override Accidental #'text = #accidental-text \override Accidental #'font-name = #??? \override Accidental #'font-size = #? \override Accidental #'text = #(lambda (grob) (cdr (assoc (ly:grob-property grob 'alteration) persianStrings))) \override Accidental #'X-extent = #(0 . 1) \override Accidental #'Y-extent = #(-1 . 1) and so on for KeySignature and whatever else you want to use the new symbols. The font name is what Pango uses to find the new font and you may need to adjust the font size. For the best results use lookups for the X- and Y-extents as well. Something I'm doing is causing a bug on another system, but this works for me. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Persian musical koron and sori
Behnam Rassi wrote: Yes Kees I downloaded the font and saw the glyphs. This is as far as I can go with my current work too. Except that I will add additional Persian music notations (and perhaps somewhat better looking glyphs!). But I can only produce a font in ttf format, another one perhaps in otf format. I can also extract the glyphs in EPS format individually. I wouldn't know how to put them in LilyPond. You need to say what interval (as a fraction of a 200 cent whole tone) you want each symbol to correspond to. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Frescobaldi 0.7.5 released
Herbert Liechti wrote: works only in vim/gvim ! o point cursor to the first line which should be commented out o enter visual mode (key v) o move cursor down to the end of the block (i.e. enter % sign for quick jumping to the closing bracket) o enter command mode with : (you see something like this: :',' when entering the : ) then enter the substitution command s/^/%/ and hit enter you substitute the beginning of the line with the %-sign in the visual block Or: - go to the start of the first line to comment out - enter visual block mode (ctrl-v) - move the cursor down - type shift-i to insert at the start of the line - type % - escape out of insert mode commenting out is done the same way expect the substitution command is :s/^%// ctrl-v, select the comment characters, press d Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: songbook from Lily scores
Zoltan Kota wrote: I have been using Lily for a year now, and I have several music scores as separate lily files. I would like to make a songbook including them, with cover page, table of contents, correct page numbering, etc. How should I start? What sectiones should I learn in documentation? Lilypond-book? Any useful info and tips are welcome! I've written one thing with Lilypond-book and I'm very happy with it. It just works. It is, for now and for me, the killer application for LilyPond over ABC. You put your LilyPond code in there with your LaTeX markup and there's the LilyPond in the output. I don't have any amazing anecdotes to report because all it does is exactly what you expect. The main bug is that it doesn't recompile the music if an external dependency changes, so you need to delete the working files. Of course, LaTeX has its own learning curve but the stuff you're talking about isn't that difficult. Lilypond-book itself is very simple. If you want my example, here it is: http://x31eq.com/magic/tripod.pdf And the source code, if you want that: http://x31eq.com/magic/tripod-code.zip Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Persian musical koron and sori
Hans Aberg wrote: Graham, Do you what types of fonts that LilyPond can use? - Behnam Rassi he says he only knows how to make music fonts. There are two ways Lilypond loads its fonts: music fonts and Pango fonts. The music fonts start out as Metafont and get converted to OTF along with some special tables that I never sorted out. Music fonts are what Lilypond uses by default for accidentals so that's the best way to go. And once somebody's drawn them they're likely to get added to the standard fonts I'd have thought if we're only talking two new glyphs. The Pango route is a bit of a hack. The accidental engraver is a bit picky about what fonts it can work with. You can't load a font by name but you can load one of the system fonts and use it in a markup block. But as it's very useful, and can be used with a variety of third-party fonts (whatever Pango supports, to answer you question) I'll explain how it works. The first step, then is to load you font into the system. I get Sagittal like this: \paper{ newStaffSize = #20 #(define fonts (make-pango-font-tree Century Schoolbook L Sagittal Bitstream Vera Sans Mono (/ newStaffSize 20))) } Sagittal is the one I use for the accidentals. The other two have to be on your system. I've discovered that the sans font is used by default for chord symbols so overriding the typewriter font may be safer. Then you need to set glyphs from the music font the way you always did because some redundant code is still active. For this example the alist is called tripodGlyphs. After that, something like this: tripodStrings = #'( (3/5 . \xe2\x88\x86) ;rightscrolltripleup, 15:14 (-11/100 . \xc3\xba) ;rightarcup, 7-comma (1/10 . \xc3\xb6) ;leftbarbup, 25:24 ( 0 . \xc3\xaa) ;natural (-1/10 . \xc3\x9c) ;leftbarbdown, 25:24 (-11/100 . \xc3\x91) ;rightarcdown, 7-comma (-1/5 . \xc3\x87) ;rightbarbdown, 2/60 (-2/5 . \x68) ;rightarcdoubledown (-3/5 . \x5a) ;rightscrolltripledown, 14:15 ) The strings are the accidentals you want to show in UTF-8 format (there is a function to convert to UTF-8). Then add this code: #(define (accidental-text grob) (cdr (assoc (ly:grob-property grob 'alteration) tripodStrings))) And wire everything up: \layout { \context { \Score \override Accidental #'stencil = #ly:text-interface::print \override Accidental #'text = #accidental-text \override Accidental #'font-family = #'sans \override Accidental #'font-size = #4 \override Accidental #'glyph-name-alist = \tripodGlyphs \override Accidental #'Y-extent = #'(-1 . 1) } } The font-size is because they come out too small by default. The Y-extend is because Lilypond allows way too much vertical space by default. If you're conscientious you'll make the X- and Y-extents into functions so that you can specify the size of each glyph. These examples are taken from the code to my tripod notation exposition: http://x31eq.com/magic/tripod-code.zip Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Persian musical koron and sori
Behnam Rassi wrote: What I'm not clear about is that you don't need just a font containing two glyphs for Sori and Koron right? You need a font containing all necessary glyphs for music writing, including Sori and Koron. So I have to add them to an existing font. Did I understand it correctly? I don't think I will be able to design ALL of them. I'll be able to design Sori and Koron (and Tahrir and whatever else I found consistently used) in visual harmony with other existing notations. No. You should be able to set the font for a given glyph. I forget if that works, but you can certainly set the font for the Accidental object and whatever other objects you want to draw the symbols. In that case you'll need all the glyphs you want as accidentals (including naturals and maybe parentheses) in your font. Which is generally a good thing because you can distribute it as a Persian music font that can work with different applications. If you add your glyphs to Lilypond's fonts, OTOH, you'll naturally have all the other glyphs in there as well. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Persian accidentals
2009/2/1 Hans Aberg hab...@math.su.se: On 30 Jan 2009, at 03:34, Kees van den Doel wrote: Is there any way to print the koron (60cents flat) and sori (40 cent sharp)? Check with Graham Breed - it might be possible now. You can use any glyph, or string of glyphs, you have in a font. I haven't seen a mention here of such a font being available. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Persian accidentals
Hans Aberg wrote: On 1 Feb 2009, at 13:07, Graham Breed wrote: You can use any glyph, or string of glyphs, you have in a font. I haven't seen a mention here of such a font being available. Didn't you work with MicroABC? A quick search gave this page http://anamnese.online.fr/site2/index.php?page=abc_perse (Click on the English version button to see the text.) I've done a bit with it. That link isn't MicroABC, it's a different tool for use with abcm2ps. But it'll likely be compatible with Lilypond as both use PostScript. I think that koron and sori may not be in Unicode, which LilyPond uses for fonts. So some special implementation might be needed. There'll be a code point in the font file. You can get it using FontForge (which I had to use for Sagittal because the Unicode mapping is wrong for some reason I may have been told about but forgot). Another thing Hudson Lacerda (the author of MicroABC) told me is that you can get PostScript code for a glyph from FontForge. That might be useful as some of the hacks in this thread have involved coding PostScript directly. If you're designing a Unicode font there's a private use area for characters without an official code point. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Ubuntu can't find lilypond executable
Bertalan Fodor (LilyPondTool) wrote: I'm not sure this says that the given file wasn't found. I think it says that the given file was executed and returned the error not found. Hm. That can be true - as there is a problem with running lilypond-book: /usr/local/lilypond/usr/bin/lilypond-book bash: /usr/local/lilypond/usr/bin/lilypond-book: */home/lilydev/vc/gub/target/*tools/root/usr/bin/python: bad interpreter: No such file or directory It perhaps is related. What's this lilydev? Is that you? It looks like you're getting the version you installed mixed up with a development copy you have. Note: the executable file you run is a shell script. Look at it and it'll tell you the library path it's using. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Ubuntu can't find lilypond executable
Bertalan Fodor (LilyPondTool) wrote: No, it's not me. The lilypond-book script contains this as the first line: #!/home/lilydev/vc/gub/target/tools/root/usr/bin/python That's weird. I see this in ~/lilypond/usr/bin/lilypond-book as well. But lilypond-book works for me. The binary is ~/bin/lilypond-book and that overrides the Python version. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Ubuntu can't find lilypond executable
Bertalan Fodor (LilyPondTool) wrote: I tried to install LilyPond 2.12 on an Ubuntu machine. I found a very strange thing I couldn't explain, and couldn't solve. I used the script to install: sudo /sh lilypond-X.Y.Z.linux-x86.sh I did a local install, and it works fine as ~/bin/lilypond and so on for the other applications. This seems to be the way to go so that I can keep the stable version from the repository. Maybe it'll still work for you. (Actually, it seems to be the default now, but never mind.) /Then I try to run lilypond: lilypond test.ly and I get: exec: 4: /usr/local//lilypond/usr/bin/lilypond: not found I'm not sure this says that the given file wasn't found. I think it says that the given file was executed and returned the error not found. But the file is actually there: stat /usr/local//lilypond/usr/bin/lilypond File: `/usr/local//lilypond/usr/bin/lilypond' Size: 3586224 Blocks: 7016 IO Block: 4096 regular file Device: fd01h/64769dInode: 755771 Links: 1 Access: (0755/-rwxr-xr-x) Uid: (0/root) Gid: (0/root) Access: 2009-01-19 10:24:01.0 +0100 Modify: 2008-12-31 19:13:22.0 +0100 Change: 2009-01-19 10:23:10.0 +0100 That's the right file. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Accidentals problem
2009/1/5 Trevor Daniels t.dani...@treda.co.uk: You could place the es in a separate temporary voice and ignore the clashing note column warning: ees! \\ \voiceOne \once \override Accidental #'stencil = #ly:text-interface::print \once \override Accidental #'text = #AuflB \once \override Score.AccidentalPlacement #'right-padding = #1.5 a d' bes'! b'! e'' Hello all! Here's a complete script that uses the letter b as a flat symbol: \version 2.12.1 AuflB = \markup {b} \relative c' { \voiceOne \once \override Accidental #'stencil = #ly:text-interface::print \once \override Accidental #'text = #AuflB \once \override Score.AccidentalPlacement #'right-padding = #0.5 a d' bes'! b'! e'' } The vertical alignment's wrong, but never mind that for now. I'm sure there's a fix. The big problem is when I choose an OS-installed font: \version 2.12.1 AuflB = \markup {b} \relative c' { \voiceOne \override Accidental #'font-name = #URW Palladio L \once \override Accidental #'stencil = #ly:text-interface::print \once \override Accidental #'text = #AuflB \once \override Score.AccidentalPlacement #'right-padding = #5 a d' bes'! b'! e'' } You can try with any font that Lilypond doesn't know about. The right-padding specification is then ignored. See I chose a really big value so that you can't miss it. Does anybody know how to fix this? At least I know how to get strings as accidentals, which will be useful at some point, but I really do want to get accidental symbols from third party fonts. Also, where does the original b come from? Latin characters aren't listed in the Feta font. Is the standard text font blessed as a music font? If not, how do I override it? Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Accidentals problem
Following my last message, this is how to get a letter from an arbitrary font as an accidental: \version 2.12.1 \paper{ #(define fonts (make-pango-font-tree Century Schoolbook L URW Palladio L DejaVu Sans Mono 1)) } AuflB = \markup { \override #'(font-family . sans) b} \relative c' { \voiceOne \once \override Accidental #'stencil = #ly:text-interface::print \once \override Accidental #'text = #AuflB \once \override Score.AccidentalPlacement #'right-padding = #0.5 a d' bes'! b'! e'' } It works as long as you didn't want a sans font anywhere. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Diatonic/modal transposition function
2008/12/29 John Mandereau john.mander...@gmail.com: This work is not synced at all with Graham's work, but it tries not to naively assume any temperament; in current state it only works with 7-notes scales, but the arithmetics on alteration works with any kind alteration, semi-tones or microtonal alterations. Right, that's how it looked to me. If it doesn't assume equal temperament it should work generally. But I haven't tested it. Note that I discovered it is possible to get more than 7 scale steps to the octave (see the development list). So this would probably generalize accordingly. But I don't know if anybody's ever going to make the (AFAIK global) change of scale size and then want to do modal transpositions. If they do they can hack your code. BTW I'm sure it is feasible to extend these transposition functions to scales with other lengths assuming equal semi-tones temperament (E12) (e.g. for Messiaen's modes), but I'm not knowledgeable enough about scales and modes definitions you discussed with Graham on -devel to tell how the functions I wrote should be extended to support these scales. I know there's a snippet in the documentation for chromatic transposition -- and maybe that's where you started from. 7 note scales are the next most important application, anyway. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user