content versus presentation in music and Lilypond (was Re: forcing TimeSignature visibility)

2015-04-13 Thread Kieren MacMillan
[n.b. None of the referenced images are attached to this post, since the 
moderator has told me that 186KB is “huge”. Anyone interested in seeing the 
images can contact me directly, or perhaps recommend a website which will allow 
me to upload such images for public viewing/linking.]

Hi Andrew,

I hope you don’t mind me posting this to the list at large — I think it’s an 
important discussion for everyone to have/see.

 What exactly is the objection to inserting \time when you need it? It does 
 exactly what you ask for.

It mixes content (i.e., the music code) with presentation (i.e., the 
engraving/edition).

 What do you mean by ‘presentation layer’ precisely? That’s a term from the 
 OSI model of computer networking, where it is Layer 6, the data translation 
 layer. Speaking as a software architect myself, I have a feeling you don’t 
 mean this.

I do mean “presentation layer in the sense of some software, like the 
content-presentation separation of XML/XSLT, etc.
I work in IT as well (n.b. I’ve run my own database/programming/instruction 
consultancy for nearly 20 years)… though fortunately I’m in at the tail end of 
my exit strategy into full-time composition!  ;)

 As far as I can see, as an engraving program, lilypond is _all_ presentation, 
 i.e. entirely visual presentation (barring considerations of MIDI). If you 
 could elaborate, it may help find alternatives to your problem.

Consider the first page of the song I’m currently engraving (from my musical 
“Fairy Tale Ending”). Notably, the singer is in 2/2 or 3/2 throughout, whereas 
the piano shifts between matching the singer (i.e., 2/2 or 3/2) or playing in a 
co-rhythmic triple meter (i.e., 12/8 or 18/8). And before you ask, yes, I did 
consider the many, many other options that I could think of — and asked a 
half-dozen other musicians (composers, performers, and MDs) — and found no 
superior way of laying it out.  =)

The “content layer” (here, and indeed in all music) comprises, in part, the 
notes and the time signature in each measure — these things (and others, of 
course) remain constant, regardless of how the piece is ultimately engraved.

The “presentation layer” comprises, in part, choices that must be made to 
physically represent the content on the page, given the page geometry, clarity 
considerations, etc. In this Piano/Conductor engraving/presentation, m. 4 
immediately follows a line break; since the voice staff appears here for the 
first time (because of “frenching” the score), the time signature (2/2) must be 
included at the beginning of the system; however, to make it clear that the 
piano music is still in 12/8, its time signature must be re-displayed, even 
though it hasn’t changed since the last visible time signature (in m. 1); 
finally, to make it crystal clear that this is not a change but simply a 
reminder, the piano time signature should be enclosed in parentheses (like a 
“cautionary accidental”). All of these choices were forced not by the content, 
but by the presentation requirements.

In the Vocal Score for this same piece, there is no need for such acrobatics, 
since the piano part doesn’t appear at all. But [only because I haven’t tweaked 
it yet], you will see in m.4 the extra (and, in this edition, spurious) time 
signature which results from the \time 2/2 that I was forced to add to the 
music (a.k.a. content layer) simply in order to retrigger the time signature in 
the Piano/Conductor score (a.k.a. presentation layer). Now I will either have 
to use some sort of elaborate tagging mechanism in the content layer — further 
mixing presentation layer information into the content layer — or [thank you, 
Jan-Peter!!] use the \editionEngraver to add a manual tweak to the [Vocal 
Score] presentation layer, explicitly hiding the time signature in m.4.

Does that make it more clear what the presentation layer is when talking about 
music engraving?

 Is your pun intentional - ‘from time to time…’?

No! Nice catch. =)

Thanks,
Kieren.
___

Kieren MacMillan, composer
www:  http://www.kierenmacmillan.info
email:  i...@kierenmacmillan.info

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: content versus presentation in music and Lilypond (was Re: forcing TimeSignature visibility)

2015-04-13 Thread Mark Knoop
At 13:59 on 13 Apr 2015, Kieren MacMillan wrote:
The “presentation layer” comprises, in part, choices that must be made
to physically represent the content on the page, given the page
geometry, clarity considerations, etc. In this Piano/Conductor
engraving/presentation, m. 4 immediately follows a line break; since
the voice staff appears here for the first time (because of
“frenching” the score), the time signature (2/2) must be included at
the beginning of the system; however, to make it clear that the piano
music is still in 12/8, its time signature must be re-displayed, even
though it hasn’t changed since the last visible time signature (in m.
1); finally, to make it crystal clear that this is not a change but
simply a reminder, the piano time signature should be enclosed in
parentheses (like a “cautionary accidental”). All of these choices
were forced not by the content, but by the presentation requirements.

\set Staff.timeSignatureFraction = 3/2

seems to work when used as an editionMod (see attached). Yes, it would
be nice to not have to know the actual numbers to use, but there's
probably a way extract that from the context. See
http://lilypond.1069038.n5.nabble.com/How-to-extract-the-current-time-signature-td170857.html

-- 
Mark Knoop
\version 2.18.2
\include openlilylib
\include editorial-tools/edition-engraver/definitions.ily

\editionMod score 5 0/8 score.Staff.A \set Staff.timeSignatureFraction = 3/2

uppermusic = \relative c' {
  \time 3/2
  \repeat unfold 8 { c2 c c }
}

lowermusic = \relative c' {
  \time 3/2
  \set Staff.timeSignatureFraction = 18/8
  \scaleDurations 12/18 {
\repeat unfold 8 { \repeat unfold 18 c8 }
  }
}

\addEdition score

\layout {
  \context {
\Voice
\consists \editionEngraver ##f
  }
  \context {
\Staff
\consists \editionEngraver score
  }
  \context {
\Score
\consists \editionEngraver score
  }
}
% score
\score {
  {

  \new Staff = upper { \uppermusic }
  \new Staff = lower { \lowermusic }

  }
}
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: content versus presentation in music and Lilypond (was Re: forcing TimeSignature visibility)

2015-04-13 Thread Mark Knoop
At 19:58 on 13 Apr 2015, Mark Knoop wrote:
At 13:59 on 13 Apr 2015, Kieren MacMillan wrote:
The “presentation layer” comprises, in part, choices that must be made
to physically represent the content on the page, given the page
geometry, clarity considerations, etc. In this Piano/Conductor
engraving/presentation, m. 4 immediately follows a line break; since
the voice staff appears here for the first time (because of
“frenching” the score), the time signature (2/2) must be included at
the beginning of the system; however, to make it clear that the piano
music is still in 12/8, its time signature must be re-displayed, even
though it hasn’t changed since the last visible time signature (in m.
1); finally, to make it crystal clear that this is not a change but
simply a reminder, the piano time signature should be enclosed in
parentheses (like a “cautionary accidental”). All of these choices
were forced not by the content, but by the presentation requirements.

\set Staff.timeSignatureFraction = 3/2

Ah, sorry, just saw the other thread where you've already discovered
that...

-- 
Mark Knoop

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user