lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: prall with accidental


From: David Kastrup
Subject: Re: prall with accidental
Date: Fri, 18 Jan 2013 15:48:13 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Kieren MacMillan <address@hidden> writes:

> Hi all,
>
>> Here is my solution.
>
> In general, I prefer to avoid using a markup, and override the stencil of the 
> grob instead, i.e.,
>
> prallSharp = {
>   \once \override Script #'stencil = #ly:text-interface::print
>   \once \override Script #'text = \markup {
>     \override #'(baseline-skip . 1.2) \center-column {
>       \fontsize #-4 \sharp
>       \musicglyph #"scripts.prall"
>     }
>   }
> }
>
> prallFlat = {
>   \once \override Script #'stencil = #ly:text-interface::print
>   \once \override Script #'text = \markup {
>     \override #'(baseline-skip . 1.2) \center-column {
>       \fontsize #-4 \flat
>       \musicglyph #"scripts.prall"
>     }
>   }
> }
>
> \relative c' {
>   \prallSharp f4^\prall \prallFlat f4^\prall
> }
>
> This means that I end up using the correct grob (in this case, Script), as 
> opposed to faking it with a markup (TextScript). However, I don't like the 
> extra effort of writing
>
>      \prallSharp f4^\prall
>
> Can this be done with a simple
>
>      f4^\prallSharp
>
> and still use Script (as I've done)?

prallSharp =
  \single \override Script #'stencil = #ly:text-interface::print
  \single \override Script #'text = \markup {
    \override #'(baseline-skip . 1.2) \center-column {
      \fontsize #-4 \sharp
      \musicglyph #"scripts.prall"
    }
  } \prall

\relative c' { f4\prallSharp }


Except that for inexplicable reasons, this complains about \prall unless
you write it as #prall instead or use

prallSharp =
  \single {
    \override Script #'stencil = #ly:text-interface::print
    \override Script #'text = \markup {
    \override #'(baseline-skip . 1.2) \center-column {
      \fontsize #-4 \sharp
      \musicglyph #"scripts.prall"
    } }
  } \prall

\relative c' { f4\prallSharp }

I have no idea currently what the syntax error for the first is about
(raise a bug, someone).

Of course, you can easily write the tweak version instead:

prallSharp =
-\tweak Script.text \markup {
  \override #'(baseline-skip . 1.2) \center-column {
    \fontsize #-4 \sharp
    \musicglyph #"scripts.prall"
  } }
-\tweak Script.stencil #ly:text-interface::print \prall

And you probably don't even need the Script. here, so it should be easy
to make this work pre-2.17.

-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]