Re: tablature.ly - please test and comment
David Stocker wrote: I've got some things typed out, but I still need to write explanations for the placement and display of objects, and suggestions for the program behavior. As soon as I have those written out, I'll post the first batch. I'll try to get it done today or tomorrow. David Maybe this weekend? ;) Regards, \r ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
David Stocker wrote: Thanks, Marc and Carl for making this happen. I'll post some editorial suggestions here for how bends should look soon (next week, really! I've had occasion to work on it this week) David Hi, Some progress here? Regards, \r ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
I've got some things typed out, but I still need to write explanations for the placement and display of objects, and suggestions for the program behavior. As soon as I have those written out, I'll post the first batch. I'll try to get it done today or tomorrow. David Grammostola Rosea wrote: David Stocker wrote: Thanks, Marc and Carl for making this happen. I'll post some editorial suggestions here for how bends should look soon (next week, really! I've had occasion to work on it this week) David Hi, Some progress here? Regards, \r ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
David Stocker schrieb: If I may chime in... This may just be a matter of editorial taste, but would it be possible to make it so the 'X' on in the Tab staff is not the musical glyph from Feta, but rather the character 'capital X' from the same font set being used for tab numbers? For example, instead of #'glyph-name #2cross, use whatever command would call the capital X from whichever font tab numbers are set to? I believe that this looks better on the page than mixing music glyphs and text glyphs in the tab staff, particularly where tab numbers and muted strings are part of the same chord. Hm, in my opinion, this looks not very convincing. I defined #(define (xx-tab-format str context event) (make-whiteout-markup (make-vcenter-markup (markup X so the X matches the font and font-size of the numbers. I have attached an example. Marc inline: xtest.png___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Carl D. Sorensen schrieb: [...] Here's one way to do it: deadNote = #(define-music-function (parser location note) (ly:music?) (set! (ly:music-property note 'tweaks) (acons 'stencil ly:note-head::print (acons 'glyph-name 2cross (acons 'style 'special (ly:music-property note 'tweaks) note) { f\4 \deadNote f'\1 } There is some drawback/difference: the crosses are drawn without whiteout, so they look different. Is there a way to change this? Marc, feel free to add this to tablature.ly if you want to. How should we call this? It should be clear that \deadNotes works as expected, and the new function is meant to be used inside chord constructs only. \chordNoteDeadNote sounds a bit strange ... The matching case for \palmMute, namely \chordNotePalmMute seems to be ok for me. Or just simply use \chordDeadNote / \chordPalmMute ? Marc inline: deadnotes.png___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Thanks, Marc and Carl for making this happen. I'll post some editorial suggestions here for how bends should look soon (next week, really! I've had occasion to work on it this week) Great! Next week, nice. Take it easy ;) \r ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
On 5/29/09 2:05 AM, Marc Hohl m...@hohlart.de wrote: Carl D. Sorensen schrieb: [...] Here's one way to do it: deadNote = #(define-music-function (parser location note) (ly:music?) (set! (ly:music-property note 'tweaks) (acons 'stencil ly:note-head::print (acons 'glyph-name 2cross (acons 'style 'special (ly:music-property note 'tweaks) note) { f\4 \deadNote f'\1 } There is some drawback/difference: the crosses are drawn without whiteout, so they look different. Is there a way to change this? Yes. Change the stencil so that it is a composite stencil. Marc, feel free to add this to tablature.ly if you want to. How should we call this? It should be clear that \deadNotes works as expected, and the new function is meant to be used inside chord constructs only. \chordNoteDeadNote sounds a bit strange ... I would recommend \deadNote, since it only applies to the next note. The matching case for \palmMute, namely \chordNotePalmMute seems to be ok for me. I haven't reviewed the code carefully, but I think that \palmMute should apply only to the next note, and \palmMuteOn should change all notes to palm mute notes, or \palmMuteNotes could apply to a whole music expression. Or just simply use \chordDeadNote / \chordPalmMute ? I don't like the \chord* notation because they aren't limited to use in chords. They will work for any single note, won't they? Thanks, Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
On 5/29/09 1:56 AM, Marc Hohl m...@hohlart.de wrote: David Stocker schrieb: If I may chime in... This may just be a matter of editorial taste, but would it be possible to make it so the 'X' on in the Tab staff is not the musical glyph from Feta, but rather the character 'capital X' from the same font set being used for tab numbers? For example, instead of #'glyph-name #2cross, use whatever command would call the capital X from whichever font tab numbers are set to? I believe that this looks better on the page than mixing music glyphs and text glyphs in the tab staff, particularly where tab numbers and muted strings are part of the same chord. Hm, in my opinion, this looks not very convincing. I defined #(define (xx-tab-format str context event) (make-whiteout-markup (make-vcenter-markup (markup X so the X matches the font and font-size of the numbers. I have attached an example. Have you tried a sans-serif font for both the numbers and the X? Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Carl D. Sorensen schrieb: On 5/29/09 1:56 AM, Marc Hohl m...@hohlart.de wrote: David Stocker schrieb: If I may chime in... This may just be a matter of editorial taste, but would it be possible to make it so the 'X' on in the Tab staff is not the musical glyph from Feta, but rather the character 'capital X' from the same font set being used for tab numbers? For example, instead of #'glyph-name #2cross, use whatever command would call the capital X from whichever font tab numbers are set to? I believe that this looks better on the page than mixing music glyphs and text glyphs in the tab staff, particularly where tab numbers and muted strings are part of the same chord. Hm, in my opinion, this looks not very convincing. I defined #(define (xx-tab-format str context event) (make-whiteout-markup (make-vcenter-markup (markup X so the X matches the font and font-size of the numbers. I have attached an example. Have you tried a sans-serif font for both the numbers and the X? Not yet. Personally, I don't like the idea of using a letter instead of a cross, but I can give it a try. Marc Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Carl D. Sorensen schrieb: On 5/29/09 2:05 AM, Marc Hohl m...@hohlart.de wrote: Carl D. Sorensen schrieb: [...] Here's one way to do it: deadNote = #(define-music-function (parser location note) (ly:music?) (set! (ly:music-property note 'tweaks) (acons 'stencil ly:note-head::print (acons 'glyph-name 2cross (acons 'style 'special (ly:music-property note 'tweaks) note) { f\4 \deadNote f'\1 } There is some drawback/difference: the crosses are drawn without whiteout, so they look different. Is there a way to change this? Yes. Change the stencil so that it is a composite stencil. But how can I find out whether the tweak is called within a normal or a tab staff? Within a normal staff, a whiteout should surely be avoided ... Marc, feel free to add this to tablature.ly if you want to. How should we call this? It should be clear that \deadNotes works as expected, and the new function is meant to be used inside chord constructs only. \chordNoteDeadNote sounds a bit strange ... I would recommend \deadNote, since it only applies to the next note. The matching case for \palmMute, namely \chordNotePalmMute seems to be ok for me. I haven't reviewed the code carefully, but I think that \palmMute should apply only to the next note, and \palmMuteOn should change all notes to palm mute notes, or \palmMuteNotes could apply to a whole music expression. Yes, that's how it works now (you can use \palmMute { ... } to treat several notes at once, or \palmMuteOn ... \palmMuteOff). Or just simply use \chordDeadNote / \chordPalmMute ? I don't like the \chord* notation because they aren't limited to use in chords. They will work for any single note, won't they? No, the tweaks will work only in chord constructs as far as I know, so I should have a pair of functions for each feature, i.e. c4 d \palmMute e f c \chordPalmMute e g 4 c4 d \deadNotes e f c \chordDeadNotes e g 4 Marc ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
On 5/29/09 9:20 AM, Marc Hohl m...@hohlart.de wrote: Carl D. Sorensen schrieb: On 5/29/09 2:05 AM, Marc Hohl m...@hohlart.de wrote: Carl D. Sorensen schrieb: [...] There is some drawback/difference: the crosses are drawn without whiteout, so they look different. Is there a way to change this? Yes. Change the stencil so that it is a composite stencil. But how can I find out whether the tweak is called within a normal or a tab staff? Within a normal staff, a whiteout should surely be avoided ... I think you have to do this within the callback, where the context is available. Once you have a context, you can see if it's a Voice context or a TabVoice context. I'm sure Neil can help with this better than I can. But if you do a git grep for context, you'll see lots of examples of how to get information about contexts Marc, feel free to add this to tablature.ly if you want to. How should we call this? It should be clear that \deadNotes works as expected, and the new function is meant to be used inside chord constructs only. \chordNoteDeadNote sounds a bit strange ... I would recommend \deadNote, since it only applies to the next note. The matching case for \palmMute, namely \chordNotePalmMute seems to be ok for me. I haven't reviewed the code carefully, but I think that \palmMute should apply only to the next note, and \palmMuteOn should change all notes to palm mute notes, or \palmMuteNotes could apply to a whole music expression. Yes, that's how it works now (you can use \palmMute { ... } to treat several notes at once, or \palmMuteOn ... \palmMuteOff). Or just simply use \chordDeadNote / \chordPalmMute ? I don't like the \chord* notation because they aren't limited to use in chords. They will work for any single note, won't they? No, the tweaks will work only in chord constructs as far as I know, so I should have a pair of functions for each feature, i.e. c4 d \palmMute e f c \chordPalmMute e g 4 c4 d \deadNotes e f c \chordDeadNotes e g 4 Oh, I wasn't expecting that the new function wouldn't work outside of chord constructs. How about using the same function both inside and outside of the chord constructs, and just including a check to see if the argument is a NoteEvent. If it is, use the \tweak method, and if it's not, use the existing method? I haven't tried this out, but I think it could be made to work, and if it could, then it would greatly simplify things for the users. HTH, Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Carl D. Sorensen schrieb: [...] I think it's better to have the duplication and the ability to switch between \tabNumbersOnly and \tabFullNotation, than to avoid the duplication, and have \tabFullNotation be a non-undoable setting. As you can see, \tabFullNotation works only locally when included in a score: \version 2.13.0 \include tablature.ly test = \relative c { c4 d e f g a b c } \score { \new TabStaff { \clef tab \test } } \score { \new TabStaff { \clef tab \tabFullNotation \test } } \score { \new TabStaff { \clef tab \test } } So according to Neil's proposals, I got rid of the \tabNumbersOnly for sake of clarity. Marc Thanks, Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
On 5/28/09 1:21 AM, Marc Hohl m...@hohlart.de wrote: Carl D. Sorensen schrieb: [...] I think it's better to have the duplication and the ability to switch between \tabNumbersOnly and \tabFullNotation, than to avoid the duplication, and have \tabFullNotation be a non-undoable setting. As you can see, \tabFullNotation works only locally when included in a score: \version 2.13.0 \include tablature.ly test = \relative c { c4 d e f g a b c } \score { \new TabStaff { \clef tab \test } } \score { \new TabStaff { \clef tab \tabFullNotation \test } } \score { \new TabStaff { \clef tab \test } } So according to Neil's proposals, I got rid of the \tabNumbersOnly for sake of clarity. OK, I guess. I still don't like having a command that is not undoable. I can't think of a reasonable application where this would cause a problem, but LilyPond users regularly try things that I don't consider reasonable. I guess that we can deal with the problem later if it ever shows up. I'll publish the patch to rietveld and obtain comments. Thanks, Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
But still not within the tablature staff At the moment, I don't know how to manage this. I found it, % Dead Note \tweak #'stencil #ly:note-head::print \tweak #'glyph-name #2cross \tweak #'style #'special f'\1 % End of Dead Note f\4 4 Dead note is applied only to f'\1 as we expect, and X is displayed on both, staff and tabStaff. Now i don't have idea how to make it in a lilypond function :) to use \chordNoteDead instead of add all tweaks lines... however it don't matters, now we know that it is possible to show X in tab too by notes instead of chord. Thanks for your patience. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Julian schrieb: But still not within the tablature staff At the moment, I don't know how to manage this. I found it, % Dead Note \tweak #'stencil #ly:note-head::print \tweak #'glyph-name #2cross \tweak #'style #'special f'\1 % End of Dead Note f\4 4 Wow, great! Dead note is applied only to f'\1 as we expect, and X is displayed on both, staff and tabStaff. Now i don't have idea how to make it in a lilypond function :) to use \chordNoteDead instead of add all tweaks lines... Try chordNoteDeadNote = #(define-music-function (parser location note) (ly:music?) (set! (ly:music-property note 'tweaks) (acons 'stencil ly:note-head::print (acons 'glyph-name 2cross (acons 'style 'special (ly:music-property note 'tweaks) note) it works exactly as your tweaks, within normal and tab staff. test = \relative c { a-0 e'-2 a-3 c-1 e-0 8 a \chordNoteDeadNote e' \chordNoteDeadNote a \chordNoteDeadNote c e a e' a c e a \chordNoteDeadNote e' \chordNoteDeadNote a \chordNoteDeadNote c e a e' a c e a \chordNoteDeadNote e' \chordNoteDeadNote a \chordNoteDeadNote c e a e' a c e a \chordNoteDeadNote e' \chordNoteDeadNote a \chordNoteDeadNote c e a e' a c e 1 } \score { \new Staff{ \clef G_8 \test } \new TabStaff {\clef moderntab \test } } I am not sure about the name - I think it should represent the fact that these functions are to be used inside a chord construct ... . Greetings Marc however it don't matters, now we know that it is possible to show X in tab too by notes instead of chord. Thanks for your patience. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Great man! Thanks for your help ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
On 5/28/09 7:22 AM, Julian jul...@casadesus.com.ar wrote: But still not within the tablature staff At the moment, I don't know how to manage this. I found it, % Dead Note \tweak #'stencil #ly:note-head::print \tweak #'glyph-name #2cross \tweak #'style #'special f'\1 % End of Dead Note f\4 4 Dead note is applied only to f'\1 as we expect, and X is displayed on both, staff and tabStaff. Now i don't have idea how to make it in a lilypond function :) to use \chordNoteDead instead of add all tweaks lines... however it don't matters, now we know that it is possible to show X in tab too by notes instead of chord. Here's one way to do it: deadNote = #(define-music-function (parser location note) (ly:music?) (set! (ly:music-property note 'tweaks) (acons 'stencil ly:note-head::print (acons 'glyph-name 2cross (acons 'style 'special (ly:music-property note 'tweaks) note) { f\4 \deadNote f'\1 } Marc, feel free to add this to tablature.ly if you want to. HTH, Carl Thanks for your patience. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
If I may chime in... This may just be a matter of editorial taste, but would it be possible to make it so the 'X' on in the Tab staff is not the musical glyph from Feta, but rather the character 'capital X' from the same font set being used for tab numbers? For example, instead of #'glyph-name #2cross, use whatever command would call the capital X from whichever font tab numbers are set to? I believe that this looks better on the page than mixing music glyphs and text glyphs in the tab staff, particularly where tab numbers and muted strings are part of the same chord. In the industry, most houses are currently using Helvetica Condensed Bold or some derivative (which, incidentally, matches better with the 'modern' tab clef) for tab numbers, but I've seen older copy done with a Roman font in the tab staff (and a fancier, more rustic looking tab clef). Thanks, Marc and Carl for making this happen. I'll post some editorial suggestions here for how bends should look soon (next week, really! I've had occasion to work on it this week) David Carl D. Sorensen wrote: On 5/28/09 7:22 AM, Julian jul...@casadesus.com.ar wrote: But still not within the tablature staff At the moment, I don't know how to manage this. I found it, % Dead Note \tweak #'stencil #ly:note-head::print \tweak #'glyph-name #2cross \tweak #'style #'special f'\1 % End of Dead Note f\4 4 Dead note is applied only to f'\1 as we expect, and X is displayed on both, staff and tabStaff. Now i don't have idea how to make it in a lilypond function :) to use \chordNoteDead instead of add all tweaks lines... however it don't matters, now we know that it is possible to show X in tab too by notes instead of chord. Here's one way to do it: deadNote = #(define-music-function (parser location note) (ly:music?) (set! (ly:music-property note 'tweaks) (acons 'stencil ly:note-head::print (acons 'glyph-name 2cross (acons 'style 'special (ly:music-property note 'tweaks) note) { f\4 \deadNote f'\1 } Marc, feel free to add this to tablature.ly if you want to. HTH, Carl Thanks for your patience. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Here's one way to do it: deadNote = #(define-music-function (parser location note) (ly:music?) (set! (ly:music-property note 'tweaks) (acons 'stencil ly:note-head::print (acons 'glyph-name 2cross (acons 'style 'special (ly:music-property note 'tweaks) note) Yes, Marc already replied me ( with exactly same function ) some hours ago Thanks anyway Julian ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
On 5/28/09 6:28 PM, David Stocker dstoc...@thenotesetter.com wrote: If I may chime in... This may just be a matter of editorial taste, but would it be possible to make it so the 'X' on in the Tab staff is not the musical glyph from Feta, but rather the character 'capital X' from the same font set being used for tab numbers? For example, instead of #'glyph-name #2cross, use whatever command would call the capital X from whichever font tab numbers are set to? Getting an X from the number font is not hard. The only challenge would come in setting the cross notehead for the Staff context, and the number notehead for the TabStaff context. But this shouldn't be too hard to do, I think. Marc is certainly good enough at programming to make it happen now, I'm sure. Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Julian schrieb: I think you can make this work with parallel music, instead of chords. c, \deadNotes{ c ] HTH, Carl I was looking about this. at first it seems to be a good solution but then i could see that it give some problems managing voices. it also displays some warning messages: ignoring too many clashing note columns if we could tell lilypond that all notes inside are from \voiceOne or \voiceTwo it could be definitly a perfect solution.. because we could manage beats by string something like: -- % measure 1 \voiceOne %string 1 beats { e'4\1 e'4\1 e'4\1 e'4\1 } %string 2 beats { b4\2 b4\2 b4\2 b4\2 } %string 3 beats { g4\3 g4\3 g4\3 g4\3 } %string 4 beats { d4\4 d4\4 d4\4 d4\4 } %string 5 beats { a,4\5 a,4\5 a,4\5 a,4\5 } %string 6 beats { e,4\6 e,4\6 e,4\6 e,4\6 } -- It solves the slide, palm mute, and dead problem. No, I'm afraid it doesn't. I can call \override NoteColumn #'ignore-collision = ##t %string 1 beats {\voiceOne e'4\1 e4\1 e4\1 \glissando f4\1 } %string 2 beats { \voiceOne b,4\2 b4\2 b4\2 \glissando c4\2 } %string 3 beats { \voiceOne g4\3 g4\3 g4\3 \glissando as4\3 } %string 4 beats { \voiceOne d,4\4 d4\4 d4\4 \deadNotes { d4\4 } } %string 5 beats { \voiceOne a4\5 a4\5 a4\5 \deadNotes { a4\5 } } %string 6 beats { \voiceOne e4\6 e4\6 e4\6 \palmMute { f4\6 } } then I don't get any error messages, but the glissando is misplaced, all notes on the last beat are palm mute style and dead note style in tablature. Weird. Marc ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Here, it would be possible to define versions for deadNotes and palmMute that works inside ... constructs, i.e. Yes they works fine, i think it is the best way to use now.. Thanks ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Julian schrieb: Here, it would be possible to define versions for deadNotes and palmMute that works inside ... constructs, i.e. Yes they works fine, i think it is the best way to use now.. But still not within the tablature staff :-( At the moment, I don't know how to manage this. Marc Thanks ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
2009/5/23 Marc Hohl m...@hohlart.de: Neil Puttock schrieb: Since none of this works properly (I suspect it will require more than Scheme hacking to get everything working), I don't think it's suitable for inclusion. Hm, I guess you're right - but as a compromise, how about letting the \clearTabTieBreaks as a default, because it is working most of the time, and when someone needs a more sophisticated tab staff, he has to write a separate score for the tablature? I would propose to rename it as #(define (tie::handle-tied-fret-numbers grob) (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT))) (ly:grob-set-property! tied-fret-nr 'transparent #t))) make it default by \override Tie #'after-line-breaking = #tie::handle-tied-fret-numbers and use this as a kind of starting point for future improvements? Oh go on then. As long as you promise to leave out \markTabTieBreaks. :) I'm concerned about the amount of duplication here; this basically repeats all the code in \tabNumbersOnly, which is really something we should try to avoid in included files. But how to avoid this? One possibility would be to just get rid of the \tabNumbersOnly, because I don't think that tablatures with and without stems will ever be mixed together in a file, and when someone wants to do so, he can \override everything manually. I think that's the only option available, since there's no way of inserting identifiers into a context definition. Regards, Neil ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
On 5/27/09 2:50 PM, Neil Puttock n.putt...@gmail.com wrote: 2009/5/23 Marc Hohl m...@hohlart.de: Neil Puttock schrieb: Since none of this works properly (I suspect it will require more than Scheme hacking to get everything working), I don't think it's suitable for inclusion. Hm, I guess you're right - but as a compromise, how about letting the \clearTabTieBreaks as a default, because it is working most of the time, and when someone needs a more sophisticated tab staff, he has to write a separate score for the tablature? I would propose to rename it as #(define (tie::handle-tied-fret-numbers grob) (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT))) (ly:grob-set-property! tied-fret-nr 'transparent #t))) make it default by \override Tie #'after-line-breaking = #tie::handle-tied-fret-numbers and use this as a kind of starting point for future improvements? Oh go on then. As long as you promise to leave out \markTabTieBreaks. :) I'm concerned about the amount of duplication here; this basically repeats all the code in \tabNumbersOnly, which is really something we should try to avoid in included files. But how to avoid this? One possibility would be to just get rid of the \tabNumbersOnly, because I don't think that tablatures with and without stems will ever be mixed together in a file, and when someone wants to do so, he can \override everything manually. I think that's the only option available, since there's no way of inserting identifiers into a context definition. I think it's better to have the duplication and the ability to switch between \tabNumbersOnly and \tabFullNotation, than to avoid the duplication, and have \tabFullNotation be a non-undoable setting. Thanks, Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
I think you can make this work with parallel music, instead of chords. c, \deadNotes{ c ] HTH, Carl I was looking about this. at first it seems to be a good solution but then i could see that it give some problems managing voices. it also displays some warning messages: ignoring too many clashing note columns if we could tell lilypond that all notes inside are from \voiceOne or \voiceTwo it could be definitly a perfect solution.. because we could manage beats by string something like: -- % measure 1 \voiceOne %string 1 beats { e'4\1 e'4\1 e'4\1 e'4\1 } %string 2 beats { b4\2 b4\2 b4\2 b4\2 } %string 3 beats { g4\3 g4\3 g4\3 g4\3 } %string 4 beats { d4\4 d4\4 d4\4 d4\4 } %string 5 beats { a,4\5 a,4\5 a,4\5 a,4\5 } %string 6 beats { e,4\6 e,4\6 e,4\6 e,4\6 } -- It solves the slide, palm mute, and dead problem. Other problem here is that we need convinate features.. i could see things like: c4\harmonic = not work c\harmonic4 = works fine but then other features don't work if they are inside a ... so it's very hard to export a note when it have some of these features convined. this is why i'm trying to find a generic way that can be used to manage beats i found the \tweak #'style #'cross works indide e.g: f, \tweak #'style #'cross b e4 d it only affect the score.. not sure if is there any way to change X instead of number by style. Cheers, Julian ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Marc Hohl marc at hohlart.de writes: [ok, the mail was too big, I removed the attached pdf output] I attach the latest version of tablature.ly together with a test file. Please have a look at it and reply any corrections/improvements/changes /etc. before I will send patches to Carl. Remember that you have to add (define-public (add-new-clef clef-name clef-glyph clef-position octavation c0-position) Append the entries for a clef symbol to supported clefs and c0-pitch-alist (set! supported-clefs (acons clef-name (list clef-glyph clef-position octavation) supported-clefs)) (set! c0-pitch-alist (acons clef-glyph c0-position c0-pitch-alist))) into scm/parser-clef.scm (for now, I think it will be part of the next release). tablature.ly provides: 1) two commands to switch between tablature notation with and without stems 2) a sans serif tab clef 3) a double stemmed half note (of course only when stems are enabled) 4) fret numbers that are 'tied to' are now (mostly) invisible. 5) commands for palm mute and dead notes are available 6) glissando lines in tablature have now the right slope when sliding from higher to lower frets. Greetings Marc Hello Marc, Well at first, english is no my native lang, so sorry for don't speak it well. I'm the admin of tuxguitar (a tablature editor) project and now i'm trying to implement some of these features to the lilypond exporter plugin. But i'm having some problems, when i try to apply them on only 1 note of a beat that have more notes. I'll try to explain them with some examples: * Dead Notes I was able to build examples like: c4 \deadNotes{ c, c4 } c4 c4 But if i try to set the dead to only 1 note of the beat: c4 c, \deadNotes{ c } 4 c4 c4 lilypond throw me: --- test.ly:324:20: error: syntax error, unexpected '{', expecting DRUM_PITCH or MUSIC_FUNCTION or NOTENAME_PITCH c4 c, \deadNotes { c } 4 c4 c4 test.ly:324:26: error: syntax error, unexpected c4 c, \deadNotes{ c } 4 c4 c4 test.ly:330:3: error: errors found, ignoring music expression --- So, am i doing something wrong with my sintax, or it is just a non supported feature ? ( Same thing is happening with palmMute ) * Slides I'm trying to use glissando to represent the slide. but is there any way to tell lilypond to what note of next beat it should apply the line ? I mean when there are 2 beats, and one note of the first beat has an slide, to one of some notes of the second beat, i need to set what note of the second beat is slided with the note of the first. I'm not sure if i'm clear, i'll add a simple tab here: ||---7 ||---5-/-7 || || || || On this example, there is a slide on the second string beetween frets 5 and 7. When i try to write this on the .ly file, i don't have idea how to tell lilypond that it should be applied to the note F# ( string 2 | fret 7 ) as default it is applying it to the last note added on the beat. Is there any way to set this ? Thanks for all, I hope you could understand my english.. Cheers, Julian ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
On 5/25/09 12:13 PM, Julian jul...@casadesus.com.ar wrote: Hello Marc, Well at first, english is no my native lang, so sorry for don't speak it well. I'm the admin of tuxguitar (a tablature editor) project and now i'm trying to implement some of these features to the lilypond exporter plugin. But i'm having some problems, when i try to apply them on only 1 note of a beat that have more notes. I'll try to explain them with some examples: * Dead Notes I was able to build examples like: c4 \deadNotes{ c, c4 } c4 c4 But if i try to set the dead to only 1 note of the beat: c4 c, \deadNotes{ c } 4 c4 c4 lilypond throw me: --- test.ly:324:20: error: syntax error, unexpected '{', expecting DRUM_PITCH or MUSIC_FUNCTION or NOTENAME_PITCH c4 c, \deadNotes { c } 4 c4 c4 test.ly:324:26: error: syntax error, unexpected c4 c, \deadNotes{ c } 4 c4 c4 test.ly:330:3: error: errors found, ignoring music expression --- So, am i doing something wrong with my sintax, or it is just a non supported feature ? ( Same thing is happening with palmMute ) I think you can make this work with parallel music, instead of chords. c, \deadNotes{ c ] HTH, Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Neil Puttock schrieb: 2009/5/22 Marc Hohl m...@hohlart.de: Please have a look at it and reply any corrections/improvements/changes /etc. before I will send patches to Carl. Well done Marc, this is very promising. Thank you! I still have a few reservations concerning some details (mostly minor), which I'll comment on below. [...] I will rework the file and adapt the formatting according to your proposals. % for ties in tablature, fret numbers that are tied to should be invisible % or -after a line break - put in parentheses. Since this is not (easily?) % possible in lilypond, we offer three commands: % % \clearTabTieBreaks simply makes all tied numbers invisible, % \drawTabTieBreaks draws numbers that follow a line break % \markTabTieBreaks draws a red fret number and gives a % warning message on the terminal, so the user can put the % parentheses manually and finally changes \mark... with \draw... #(define (tie::tab-clear-tied-fret-numbers grob) (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT))) (ly:grob-set-property! tied-fret-nr 'transparent #t))) #(define (tie::tab-draw-tied-fret-numbers grob) (let* ((original (ly:grob-original grob)) (tied-fret-nr (ly:spanner-bound grob RIGHT)) (siblings (if (ly:grob? original) (ly:spanner-broken-into original) '() ))) (if (and (= (length siblings) 2) (eq? (car (last-pair siblings)) grob)) ;; tie is split - make fret number visible (ly:grob-set-property! tied-fret-nr 'transparent #f) ;; tie is not split - make fret number invisible (ly:grob-set-property! tied-fret-nr 'transparent #t #(define (tie::tab-mark-tied-fret-numbers grob) (let* ((original (ly:grob-original grob)) (tied-fret-nr (ly:spanner-bound grob RIGHT)) (siblings (if (ly:grob? original) (ly:spanner-broken-into original) '() ))) (if (and (= (length siblings) 2) (eq? (car (last-pair siblings)) grob)) ;; tie is split - change fret number color to red and print a message (begin (display \nSplit tie appears in tablature.) (display \nAffected fret number is marked red.\n) (ly:grob-set-property! tied-fret-nr 'color red)) ;; tie is not split - make fret number invisible (ly:grob-set-property! tied-fret-nr 'transparent #t clearTabTieBreaks = { \override Tie #'after-line-breaking = #tie::tab-clear-tied-fret-numbers } drawTabTieBreaks = { \override Tie #'after-line-breaking = #tie::tab-draw-tied-fret-numbers } markTabTieBreaks = { \override Tie #'after-line-breaking = #tie::tab-mark-tied-fret-numbers } Since none of this works properly (I suspect it will require more than Scheme hacking to get everything working), I don't think it's suitable for inclusion. Hm, I guess you're right - but as a compromise, how about letting the \clearTabTieBreaks as a default, because it is working most of the time, and when someone needs a more sophisticated tab staff, he has to write a separate score for the tablature? I would propose to rename it as #(define (tie::handle-tied-fret-numbers grob) (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT))) (ly:grob-set-property! tied-fret-nr 'transparent #t))) make it default by \override Tie #'after-line-breaking = #tie::handle-tied-fret-numbers and use this as a kind of starting point for future improvements? [...] % the defaults for tablature: % the clef handler will be included and the tablature % is displayed \tabNumbersOnly-style: \layout { \context { \TabStaff % the clef handler \override Clef #'stencil = #clef::print-modern-tab-if-set % no time signature \override TimeSignature #'stencil = ##f % behaviour of split ties \override Tie #'after-line-breaking = #tie::tab-clear-tied-fret-numbers } \context { \TabVoice \override Stem #'stencil = ##f \override Beam #'stencil = ##f \override Dots #'stencil = ##f \override Tie #'stencil = ##f \override Slur #'stencil = ##f % the direction for glissando lines will be automatically corrected \override Glissando #'extra-dy = #glissando::calc-tab-extra-dy \override TupletBracket #'stencil = ##f \override TupletNumber #'stencil = ##f \override DynamicText #'transparent = ##t \override DynamicTextSpanner #'stencil = ##f \override TextSpanner #'stencil = ##f \override Hairpin #'transparent = ##t \override Rest #'stencil = ##f \override MultiMeasureRest #'stencil = ##f \override Script #'stencil = ##f \override TextScript #'stencil = ##f } } I'm concerned about the amount of duplication here; this
Re: tablature.ly - please test and comment
On 5/23/09 1:09 AM, Marc Hohl m...@hohlart.de wrote: Neil Puttock schrieb: 2009/5/22 Marc Hohl m...@hohlart.de: % for ties in tablature, fret numbers that are tied to should be invisible % or -after a line break - put in parentheses. Since this is not (easily?) % possible in lilypond, we offer three commands: #(define (tie::tab-mark-tied-fret-numbers grob) (let* ((original (ly:grob-original grob)) (tied-fret-nr (ly:spanner-bound grob RIGHT)) (siblings (if (ly:grob? original) (ly:spanner-broken-into original) '() ))) (if (and (= (length siblings) 2) (eq? (car (last-pair siblings)) grob)) ;; tie is split - change fret number color to red and print a message (begin (display \nSplit tie appears in tablature.) (display \nAffected fret number is marked red.\n) (ly:grob-set-property! tied-fret-nr 'color red)) ;; tie is not split - make fret number invisible Since none of this works properly (I suspect it will require more than Scheme hacking to get everything working), I don't think it's suitable for inclusion. Hm, I guess you're right - but as a compromise, how about letting the \clearTabTieBreaks as a default, because it is working most of the time, and when someone needs a more sophisticated tab staff, he has to write a separate score for the tablature? I would propose to rename it as #(define (tie::handle-tied-fret-numbers grob) (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT))) (ly:grob-set-property! tied-fret-nr 'transparent #t))) make it default by \override Tie #'after-line-breaking = #tie::handle-tied-fret-numbers and use this as a kind of starting point for future improvements? Marc, Have you explored the possibility of calling parentheses-item::print on your tied fret number? I don't know if it will work, but it appears it may be possible. It may need to be defined public in order to call it. It's found in scm/output-lib.scm. I haven't tried it, but it looks to me like it takes a grob and adds parentheses around it. Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
Carl D. Sorensen schrieb: On 5/23/09 1:09 AM, Marc Hohl m...@hohlart.de wrote: Neil Puttock schrieb: 2009/5/22 Marc Hohl m...@hohlart.de: % for ties in tablature, fret numbers that are tied to should be invisible % or -after a line break - put in parentheses. Since this is not (easily?) % possible in lilypond, we offer three commands: #(define (tie::tab-mark-tied-fret-numbers grob) (let* ((original (ly:grob-original grob)) (tied-fret-nr (ly:spanner-bound grob RIGHT)) (siblings (if (ly:grob? original) (ly:spanner-broken-into original) '() ))) (if (and (= (length siblings) 2) (eq? (car (last-pair siblings)) grob)) ;; tie is split - change fret number color to red and print a message (begin (display \nSplit tie appears in tablature.) (display \nAffected fret number is marked red.\n) (ly:grob-set-property! tied-fret-nr 'color red)) ;; tie is not split - make fret number invisible Since none of this works properly (I suspect it will require more than Scheme hacking to get everything working), I don't think it's suitable for inclusion. Hm, I guess you're right - but as a compromise, how about letting the \clearTabTieBreaks as a default, because it is working most of the time, and when someone needs a more sophisticated tab staff, he has to write a separate score for the tablature? I would propose to rename it as #(define (tie::handle-tied-fret-numbers grob) (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT))) (ly:grob-set-property! tied-fret-nr 'transparent #t))) make it default by \override Tie #'after-line-breaking = #tie::handle-tied-fret-numbers and use this as a kind of starting point for future improvements? Marc, Have you explored the possibility of calling parentheses-item::print on your tied fret number? I don't know if it will work, but it appears it may be possible. It may need to be defined public in order to call it. It's found in scm/output-lib.scm. Carl, thank you for your proposal. I made it public, but I came up with an error message. Apparently (ly:grob-object tied-fret-nr 'elements) returns an empty list,so ly:grob-common-refpoint-of-array complains about an empty second argument. I didn't understand completely how parentheses-item::print works, so I can't figure out if there is a workaround to use this or a similar constructed function. Marc I haven't tried it, but it looks to me like it takes a grob and adds parentheses around it. Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: tablature.ly - please test and comment
2009/5/22 Marc Hohl m...@hohlart.de: Please have a look at it and reply any corrections/improvements/changes /etc. before I will send patches to Carl. Well done Marc, this is very promising. I still have a few reservations concerning some details (mostly minor), which I'll comment on below. tablature.ly source file of the GNU LilyPond music typesetter (c) 2009 Marc Hohl m...@hohlart.de % some publications use the triangled note head % for palm mute, so here we go: palmMuteOn = { \set shapeNoteStyles = #(make-vector 7 'do) } palmMuteOff = { \unset shapeNoteStyles } % for single notes (or groups of notes within { ...} : palmMute = #(define-music-function (parser location notes) (ly:music?) #(define-music-function ... on a new line (see the formatting style for music functions in music-functions-init.ly). #{ \palmMuteOn $notes \palmMuteOff #}) Fix indentation (two spaces). % x-tab-format uses a x instead of the fret number: #(define (x-tab-format str context event) (make-whiteout-markup (make-vcenter-markup (markup #:musicglyph noteheads.s2cross % dead notes are marked with a cross-shape note head, % both in normal notation and in tablature: deadNotesOn = { \override NoteHead #'style = #'cross \set tablatureFormat = #x-tab-format Indent two spaces only. } deadNotesOff = { \unset tablatureFormat \revert NoteHead #'style Fix indentation. } % for single notes or groups of notes within {...}: deadNotes = #(define-music-function (parser location notes) (ly:music?) #{ \deadNotesOn $notes \deadNotesOff #}) Music function formatting as above. % definitions for the moderntab clef: % the moderntab clef will be added to the list of known clefs, % so it can be used as any other clef: % % \clef moderntab % #(add-new-clef moderntab markup.moderntab 0 0 0) % this function decides which clef to take #(define (clef::print-modern-tab-if-set grob) (let* ((glyph (ly:grob-property grob 'glyph))) Use let here. % if the stems are drawn, it is nice to have a double stem for % (dotted) half notes to distinguish them from quarter notes: #(define-public (tabvoice::draw-double-stem-for-half-notes grob) ;; is the note a (dotted) half note? (if (= 1 (ly:grob-property grob 'duration-log)) ;; yes - draw double stem (ly:stencil-combine-at-edge (ly:stem::print grob) 0 1 (ly:stem::print grob) 0.5 0 ) ;; no - draw simple stem (ly:stem::print grob))) Too many (ly:stem::print grob) forms here; better to use let to define the stencil. % as default, the glissando line between fret numbers goes % upwards, here we have a function to correct this behavior: #(define-public (glissando::calc-tab-extra-dy grob) (let* ((original (ly:grob-original grob)) (left-bound (ly:spanner-bound original LEFT)) (right-bound (ly:spanner-bound original RIGHT)) (left-pitch (ly:event-property (event-cause left-bound) 'pitch)) (right-pitch (ly:event-property (event-cause right-bound) 'pitch)) (left-staff-position (ly:grob-property left-bound 'staff-position)) (right-staff-position (ly:grob-property right-bound 'staff-position))) (if (and (= left-staff-position right-staff-position) ( (ly:pitch-semitones right-pitch) (ly:pitch-semitones left-pitch))) -0.75 0.75 ))) I think it looks better if you leave out the staff-position comparison, otherwise all glissandos (up or down) between noteheads on different strings get the same positive 'extra-dy. % for ties in tablature, fret numbers that are tied to should be invisible % or -after a line break - put in parentheses. Since this is not (easily?) % possible in lilypond, we offer three commands: % % \clearTabTieBreaks simply makes all tied numbers invisible, % \drawTabTieBreaks draws numbers that follow a line break % \markTabTieBreaks draws a red fret number and gives a % warning message on the terminal, so the user can put the % parentheses manually and finally changes \mark... with \draw... #(define (tie::tab-clear-tied-fret-numbers grob) (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT))) (ly:grob-set-property! tied-fret-nr 'transparent #t))) #(define (tie::tab-draw-tied-fret-numbers grob) (let* ((original (ly:grob-original grob)) (tied-fret-nr (ly:spanner-bound grob RIGHT)) (siblings (if (ly:grob? original) (ly:spanner-broken-into original) '() ))) (if (and (= (length siblings) 2) (eq? (car (last-pair siblings)) grob)) ;; tie is split - make fret number visible (ly:grob-set-property! tied-fret-nr 'transparent #f) ;; tie is not split - make fret number invisible