Greetings Graham, this looks acceptable to me, although I'm certainly not the most qualified person in this regard. Are you quite sure this really is generic enough, though? There are a few hardcoded things here, and more inconveniently this approach means you have to manually choose which events you're listening to. I do use a similar approach every now and then (without outputting it to a formatted file though) but for very specific purposes only. If we were to had a "LilyPond SDK" distribution, if would fit there quite well, but I'm just not sure about the standard, user-oriented, distribution.
http://codereview.appspot.com/4373046/diff/1/input/regression/event-listener-output.ly File input/regression/event-listener-output.ly (right): http://codereview.appspot.com/4373046/diff/1/input/regression/event-listener-output.ly#newcode17 input/regression/event-listener-output.ly:17: st = Is it really necessary to use a function for text spanners? (In which case you should seriously adding that to music-functions.ly) Oh, and you might as well want to make it postfix: http://git.savannah.gnu.org/cgit/opus-libre.git/tree/doc/snippets/postfix-text-spanners.ly#n12 http://codereview.appspot.com/4373046/diff/1/input/regression/event-listener-output.ly#newcode40 input/regression/event-listener-output.ly:40: d16(\downbow cis b a) g4 \breathe e8\p( g) fis4 I'd \upbow here (a matter of taste? :) http://codereview.appspot.com/4373046/diff/1/input/regression/event-listener-output.ly#newcode45 input/regression/event-listener-output.ly:45: b4\p\<( d8 cis) d4(-. fis8-.^"II" e-.^"II") Similarly: how about ais and eis instead of a and e? http://codereview.appspot.com/4373046/diff/1/input/regression/event-listener-output.ly#newcode56 input/regression/event-listener-output.ly:56: a16\mp e' a e' a,,32\f e' a e' r8 r4 Any slurs missing here? http://codereview.appspot.com/4373046/diff/1/input/regression/event-listener-output.ly#newcode69 input/regression/event-listener-output.ly:69: << \vlnone >> Is this considered good/sugar-ish syntax? http://codereview.appspot.com/4373046/diff/1/ly/event-listener.ly File ly/event-listener.ly (right): http://codereview.appspot.com/4373046/diff/1/ly/event-listener.ly#newcode40 ly/event-listener.ly:40: 2 ) What about .ily extensions? I'd use a regexp here, much simpler and more flexible. http://codereview.appspot.com/4373046/diff/1/ly/event-listener.ly#newcode87 ly/event-listener.ly:87: (+ 60 (ly:pitch-semitones pitch)) Do you want to hardcode that? http://codereview.appspot.com/4373046/diff/1/ly/event-listener.ly#newcode137 ly/event-listener.ly:137: (close p))) This looks like a lot of duplicated code. Perhaps a generic function could be achievable: (format-from-engraver engraver event 'text) or even as a list: (format-list-from-engraver engraver event (list 'breathe 'articulation-type 'text ... ))) in which case it could be more elegant to then cons the "formatter" to the "listeners" list. http://codereview.appspot.com/4373046/ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel