Manual gotcha: beatStructure
I just got slightly confused trying to use beatStructure, and a small edit to the manual might help. \version 2.18.2 \language english five = { \set Timing.beatStructure = #'(3 2) \time 5/8 } seven = { \set Timing.beatStructure = #'(3 2 2) \time 7/8 } \new RhythmicStaff { % \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/8) \seven b8 b b b b b b \five b8 b b b b } The 7/8 bar shows with flags, not beams. I think it must be that the variable implicitly creates a separate voice, and the beatStructure applies only within the voice. Replacing Timing with Staff fixes it. I don't see it mentioned in the manual that, if you \set Timing.beatStructure, this must be in the same context where you write the notes. The manual says Beam setting changes can be limited to specific contexts, but it doesn't say that they ARE limited to the nearest enclosing context if you follow the syntax in most of the examples (using Timing). hjh ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
RE: Manual gotcha: beatStructure
James, Look at http://lilypond.org/doc/v2.18/Documentation/notation/beams for some examples (they are down the page a bit). Mark -Original Message- From: lilypond-user-bounces+carsonmark=ca.rr@gnu.org [mailto:lilypond-user-bounces+carsonmark=ca.rr@gnu.org] On Behalf Of James Harkins Sent: Friday, March 20, 2015 11:21 PM To: lily-users Subject: Manual gotcha: beatStructure I just got slightly confused trying to use beatStructure, and a small edit to the manual might help. \version 2.18.2 \language english five = { \set Timing.beatStructure = #'(3 2) \time 5/8 } seven = { \set Timing.beatStructure = #'(3 2 2) \time 7/8 } \new RhythmicStaff { % \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/8) \seven b8 b b b b b b \five b8 b b b b } The 7/8 bar shows with flags, not beams. I think it must be that the variable implicitly creates a separate voice, and the beatStructure applies only within the voice. Replacing Timing with Staff fixes it. I don't see it mentioned in the manual that, if you \set Timing.beatStructure, this must be in the same context where you write the notes. The manual says Beam setting changes can be limited to specific contexts, but it doesn't say that they ARE limited to the nearest enclosing context if you follow the syntax in most of the examples (using Timing). hjh ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Manual gotcha: beatStructure
James Harkins wrote Saturday, March 21, 2015 6:20 AM I just got slightly confused trying to use beatStructure, and a small edit to the manual might help. \version 2.18.2 \language english five = { \set Timing.beatStructure = #'(3 2) \time 5/8 } seven = { \set Timing.beatStructure = #'(3 2 2) \time 7/8 } \new RhythmicStaff { % \set Timing.beamExceptions = #'() \set Timing.baseMoment = #(ly:make-moment 1/8) \seven b8 b b b b b b \five b8 b b b b } The 7/8 bar shows with flags, not beams. I think it must be that the variable implicitly creates a separate voice, and the beatStructure applies only within the voice. No, that's not the reason. The reason is that there is a separate beatStructure for each value of the time signature, and changes are applied to the time signature that is currently in force. So \beatStructure in \seven amends the beat structure in the default time signature of 4/4 and the one in \five amends the beat structure in the then current 7/8, which for the short example you give fools you by looking correct. So reverse the ordering of the \time and the \Timing.beatStructure commands and it will do what you expect. Replacing Timing with Staff fixes it. I think this is probably due to the way the beaming data structures are set up when they need to be created at the Staff (or Voice) level. By default they exist only at the Score (Timing) level. Best not rely on it. I don't see it mentioned in the manual that, if you \set Timing.beatStructure, this must be in the same context where you write the notes. The manual says Beam setting changes can be limited to specific contexts, but it doesn't say that they ARE limited to the nearest enclosing context if you follow the syntax in most of the examples (using Timing). That's not true. By default the beam setting changes apply to all contexts (they're at the Score level) and the change can be specified in any context (as long as you get the order right ;) However, the manual does not make it clear that the order of the \time and \Timing.beatStructure commands is important. I'll have a look at improving that. Trevor ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Manual gotcha: beatStructure
On March 22, 2015 12:00:05 AM Trevor Daniels t.dani...@treda.co.uk wrote: I think it must be that the variable implicitly creates a separate voice, and the beatStructure applies only within the voice. No, that's not the reason. The reason is that there is a separate beatStructure for each value of the time signature, and changes are applied to the time signature that is currently in force. So \beatStructure in \seven amends the beat structure in the default time signature of 4/4 and the one in \five amends the beat structure in the then current 7/8, which for the short example you give fools you by looking correct. So reverse the ordering of the \time and the \Timing.beatStructure commands and it will do what you expect. OK, I understand. Thanks for clarifying. I think it's worth mentioning in the manual. Re: Mark's comment about checking the examples -- I've found in the SuperCollider community (where much of the documentation is by example with spotty, if any, explanatory text) that users are endlessly creative in drawing the wrong conclusion about the concepts that an example is supposed to show. I've been similarly creative here. ;-p hjh Sent with AquaMail for Android http://www.aqua-mail.com ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user