Adam Spiers <lilypond-user <at> adamspiers.org> writes:
> I've noticed that MIDI generation doesn't honour transparent notes,
> e.g. in
>
> f8( \hideNotes \grace { c16 \glissando } \unHideNotes f8)
>
> a NoteOn event is generated for the c16. Hopefully I should be able
> to address this if someone gives me a few pointers. My first guess
> was to tweak Note_performer::process_music() by adding something like:
>
> if (to_boolean(n->get_property ("transparent")))
> break;
It won't be that simple I'm afraid. "transparent" is not an event property that
you can read here, but a grob property. \hideNotes presets it for various
graphical objects (Dots, NoteHead, Stem, Beam, Accidental, Rest, TabNoteHead),
using override commands like this:
\override NoteHead.transparent = ##t
But during MIDI generation, no such objects are ever created.
>From a note event, Note_performer creates an AudioNote object, a type of
AudioElement, and those are formally analogue to grobs. It would be nice if you
could override a property again, like this:
\override AudioNote.mute = ##t
Unfortunately, the AudioElement class, which is rather primitive compared to
Grob, does not currently provide any scheme property interface. (Changing this
is an item on my imaginary LilyPond project list, but I am still learning
myself.)
For now, working around the problem with tags might be more productive?
Best regards,
Johannes
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user