On 01/09/17 15:17, Kieren MacMillan wrote:
Hi Wol,
While it may sound weird. the reality is you probably didn't find it too hard
to learn Scheme, because you're a composer not a programmer.
Actually, I am a programmer: started with BASIC (and a little assembler
language) in the early 1980s, then FORTRAN (including WATFIV) and APL in the
late 1980s, then Java in the late 1990s, and a bunch of lesser languages
(scripting, etc.) along the way.
Because I'm a procedural (that is. C and Fortran) programmer, it's a lot harder
for me to learn Scheme because it's a completely different *sort* of language.
I agree that it's very difficult for some procedural programmers to learn. I
found the same thing when I taught XSL(T), which I find extremely intuitive,
but many of my students (and programmer friends) find it impossible to get
their mind around.
I find the same thing with databases. So many people have their minds
stuck in the 2-D relational world, and just cannot grasp the concept of
a multi-dimensional database like Pick. Given that Pick is very much
list-based (unlike SQL which is set-based), why can't I grasp a
list-based language like Scheme? And Pick is very XML-like!
I want the rehearsal mark sitting above the stave. That's easy (or should be,
just adjust outside-staff-priority).
Push the music to the right so it doesn't collide with the rehearsal mark
So you literally want a gap under the mark?
Not really. It just feels the easy way to achieve roughly what I'm
aiming for. As I understand it, the rehearsal mark sits above the bar
line, while the tempo and melody-name sit above the note? So the easiest
way (not necessarily the best or neatest) to prevent a collision is to
push the note sideways out of the way?
The big problem I can see is if sometimes it occurs at the start of a
line, in which case the rehearsal mark will naturally move left out of
the way, and letting lily move stuff around may move it to the middle of
the line where I get a collision. Saying "move this grob a fixed
distance" is going to completely mess up if this happens. So I need
something that stops a collision, not something that moves text/marks
out of the way.
Then use one of the text-alignment functions to place the melody above the tempo
I hope the following helps, or at least points you in the right direction.
Thanks - I'll look up and understand what it does. The only snag is that
I've got 2.18.2, which doesn't like your code. That's the latest on
SuSE, and my gentoo system (which I daren't upgrade at the moment) is
even older - 2.15.12
Cutting and pasting to get a small demo of what lily does by default and
what I've tried is looking to be a very good idea ... I know the list
always wants minimal examples and I'm bad at doing it, but I think I'll
have to. I'll hack at it for a day or so and see where I get ...
Best,
Kieren.
Cheers,
Wol
%%%% SNIPPET BEGINS
\version "2.19.40"
markplusmel =
#(define-music-function
(marktext melodyname)
(markup? markup?)
#{
\once \override Score.RehearsalMark.break-align-symbols =
#'(time-signature)
\once \override Score.RehearsalMark.self-alignment-X = #LEFT
\mark \markup \override #'(baseline-skip . 2.5) \column { $marktext
\fontsize #-2 $melodyname }
#})
testing = {
\markplusmel "AAA" "All Killer, No Filler"
\tempo 4=100
c''1
}
{ \testing }
%%%% SNIPPET ENDS
________________________________
Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user