(prep: 2 hours. discuss: 10 hours)
-@item @strong{Future release policy}:
-(how) should we change any policies pertaining to releases? Should
-an undocumented new feature count as release-blocking?
-
-(prep: 1 hour. discuss: 15 hours)
-
-@item @strong{lilypond-hackers mailing list}:
-Should we have a private mailing list for senior developers? If
-so, who should be on it?
-
-(prep: 2 hours+3 weeks. discuss: 10 hours)
-
-@item @strong{Hackers B}:
-
-
-@item @strong{Git repository(s)}:
-We currently have a web/ branch in our main repo; this seems
-misleading to new developers. More generally, should we have
-branches that aren't related to the master? i.e. should we
-restrict a git branch to code which is an actual "branch" of
-development? Also, some of our code (notably the windows and osx
-lilypad) isn't in a git repository at all.
-We can add new repositories very easily; should make repositories
-like
-@example
-git://git.sv.gnu.org/lilypond/gub.git
-git://git.sv.gnu.org/lilypond/lilypad.git
-git://git.sv.gnu.org/lilypond/misc.git
-@end example
-? More information here:
-@uref{http://code.google.com/p/lilypond/issues/detail?id=980}
-
-(prep: 2 hours. discuss: 10 hours)
-
-@item @strong{Roadmap of future development}:
-Many projects have a roadmap of planned (or desired) future work.
-Should we use one? If so, what should go on it, bearing in mind
-our volunteer status? Is there any way of having a roadmap that
-isn't vaporware?
-
-(prep: 1 hour. discuss: 5 hours)
-
@item @strong{Official links to other organizations?}:
There's something called the "software freedom conservancy", and
in general, there's a bunch of "umbrella organizations". Joining
(prep: 2 hours. discuss: 5 hours)
-@item @strong{Mailing lists}:
-We currently have a mix of official GNU mailing lists and lilynet
-lists. Is there a strong rationale for having separate mailing
-list servers? Why not pick one place, and put all our lists there?
-(or at least, all "permanent" lists?)
-
-(prep: 1 hour. discuss: 5 hours)
-
@item @strong{Issue tracking with google code}:
We use the google issue tracker, but this means that we are
relying on a commercial entity for a large part of our
(prep: 1 hours+2 weeks. discuss: 5 hours)
-@item @strong{Authorship in source files}:
-Our documentation currently does not attempt to track individual
-authors of each file, while our source code makes a confused and
-jumbled attempt to track this. A number of guidelines for F/OSS
-projects explicitly recommends _not_ tracking this in individual
-files, since the code repository will track that for you.
-
-(prep: 2 hours. discuss: 15 hours)
-
@item @strong{Clarity for sponsorships}:
We currently do not advertize bounties and sponsorships on the
webpage. How much advertising do we want, and what type?
* Adding a new font section::
* Adding a new glyph::
* Building the changed font::
+* METAFONT formatting rules::
@end menu
@node Overview of the feta font
rm mf/out/*
make
@end example
+
+@node METAFONT formatting rules
+@section METAFONT formatting rules
+
+There are special formatting rules for METAFONT files.
+
+Tabs are used for indentation.
+
+When a path contains more than two points, put each point on a
+separate line, with the operator at the beginning of the line:
+
+@example
+fill z1
+ -- z2
+ -- z3
+ .. cycle;
+@end example
+
Install @command{git-cl} by entering:
@example
-git clone git://neugierig.org/git-cl.git
+git clone https://github.com/martine/git-cl
@end example
@item
}
@end lilypond
-@cindex Transposing guitar chords for capo
-
-If the @code{capoPitch} property is set, then the chords will additionally be printed
-transposed for a guitar with the capo set appropriately. By default the chords are
-printed on one line, but if the @code{capoVertical} property is set, the chords will be
-printed one above the other.
-
-In make-pitch, leave the first argument at 0, the second argument is the
-interval (-2 is a third), and the third argument adjusts it up or down a
-semitone.
-
-@lilypond[verbatim,quote,ragged-right]
-<<
- \new ChordNames \chordmode {
- c1
- r1
- g1
- c1
- \break
- c1
- r1
- g1
- c1
- \break
- c1
- r1
- g1
- c1
- }
- \chordmode {
- c1
- r1
- g1
- c1
- \break
- \set ChordNames.capoPitch = #(ly:make-pitch 0 -2 -1/2)
- c1
- r1
- g1
- c1
- \break
- \set ChordNames.capoVertical = ##t
- c1
- r1
- g1
- c1
- }
->>
-@end lilypond
-
@snippets
@c Keep index entries with following snippet
@lilypond[quote,ragged-right,verbatim]
\drums {
- \clef treble
- hh4 hh hh hh
- \break
\clef percussion
bd4 bd bd bd
+ \clef treble
+ hh4 hh hh hh
}
@end lilypond
eighth notes are shown with two slashes (the beam being the
third), and drum rolls shorter than eighths have one stem slash to
supplement the beams. This is achieved with the tremolo notation,
-@code{:32}, as described in @ref{Tremolo repeats}. Here is an
-example of some snare rolls:
+as described in @ref{Tremolo repeats}.
@lilypond[quote,verbatim]
\drums {
}
@end lilypond
-Sticking can be indicated by placing @code{^"R"} or @code{^"L"}
-after the note. The @code{staff-padding} property may be
-overridden to achieve a pleasing baseline.
+Sticking can be indicated by placing placing markup for @code{"R"}
+or @code{"L"} above or below notes, as discussed in
+@ref{Direction and placement}. The @code{staff-padding} property
+may be overridden to achieve a pleasing baseline.
@lilypond[quote,verbatim]
\drums {
\repeat unfold 2 {
- sn16 ^"L" sn^"R" sn^"L" sn^"L" sn^"R" sn^"L" sn^"R" sn^"R"
+ sn16^"L" sn^"R" sn^"L" sn^"L" sn^"R" sn^"L" sn^"R" sn^"R"
+ \stemUp
+ sn16_"L" sn_"R" sn_"L" sn_"L" sn_"R" sn_"L" sn_"R" sn_"R"
}
}
@end lilypond
@seealso
+
+Notation Reference:
+@ref{Tremolo repeats}.
+
Snippets:
@rlsr{Percussion}.
+++ /dev/null
-\version "2.14.0"
-
-\header{
- texidoc="Properties capoPitch, capoVertical: display chordnames, suitably
-transposed for a guitar capo, either in a line or one above the other.
-"
-}
-
-<<
- \new ChordNames \chordmode {
- c1
- g1
- c1
- g1
- c1
- g1
- }
- \chordmode {
- c1
- g1
- \set ChordNames.capoPitch = #(ly:make-pitch 0 -2 -1/2)
- c1
- g1
- \set ChordNames.capoVertical = ##t
- c1
- g1
- }
->>
\header {
texidoc = "The brackets of a piano pedal should start and end at
- the left side of the note. If a note is shared between two brackets,
- these ends are flared.
+ the left side of the main note-column. If a note is shared between
+ two brackets, these ends are flared.
At a line-break, there are no vertical endings. " }
\relative c'' {
\set Staff.pedalSustainStyle = #'bracket
- c4 d e \sustainOn b c c, \sustainOff \sustainOn d8[ c] e8[
- e \sustainOff \sustainOn] f4 d
- \sustainOff g \sustainOn b b, \sustainOff c'
+ c4 d <e f b,> \sustainOn b c c, \sustainOff \sustainOn d8[ c] e8[
+ e \sustainOff \sustainOn] f4 r \sustainOff
+ g \sustainOn bes bes, \sustainOff c'
\set Staff.pedalUnaCordaStyle = #'mixed
c4 d \unaCorda e f g
- b | \break c b c \treCorde c
+ b | \break c b <c e,>\arpeggio \treCorde c
}
\layout { ragged-right = ##t }
}
Interval result;
Grob *me = unsmob_grob (smob);
if (Grob *staff = Staff_symbol_referencer::get_staff_symbol (me))
- result = staff->extent (staff, Y_AXIS);
-
+ {
+ result = staff->extent (staff, Y_AXIS);
+
+ /* Due to rounding problems, bar lines extending to the outermost edges
+ of the staff lines appear wrongly in on-screen display
+ (and, to a lesser extent, in print) - they stick out a pixel.
+ The solution is to extend bar lines only to the middle
+ of the staff line - unless they have different colors,
+ when it would be undesirable.
+ */
+ SCM bar_line_color = me->get_property ("color");
+ SCM staff_color = staff->get_property ("color");
+ if (bar_line_color == staff_color)
+ result *= (1 - 0.5 * (Staff_symbol_referencer::line_thickness (me) /
+ Staff_symbol_referencer::staff_radius (me)));
+ }
return ly_interval2scm (result);
}
pitches = scm_sort_list (pitches, Pitch::less_p_proc);
- SCM capo_proc = ly_lily_module_constant ("capo-handler");
- markup = scm_call_4 (capo_proc, pitches, bass, inversion,
+ SCM name_proc = get_property ("chordNameFunction");
+ markup = scm_call_4 (name_proc, pitches, bass, inversion,
context ()->self_scm ());
}
/*
height[d] = 0.0;
else
flare[d] = 0.0;
- }
- Interval ext = robust_relative_extent (b, common, X_AXIS);
- span_points[d] = ext [broken[d] ? RIGHT : LEFT];
+ span_points[d] = robust_relative_extent (b, common, X_AXIS)[RIGHT];
+ }
+ else
+ span_points[d] = b->relative_coordinate (common, X_AXIS);
}
while (flip (&d) != LEFT);
(alist (map chord-to-exception-entry elts)))
(filter (lambda (x) (cdr x)) alist)))
-(define-public (capo-handler pitches bass inversion context)
- (let ((chord-function
- (ly:context-property context 'chordNameFunction 'jazz-chord-names))
- (capo-pitch (ly:context-property context 'capoPitch #f)))
- (if (not capo-pitch)
- (chord-function pitches bass inversion context) ;; call the chordNameFunction as of old
- (let* ((new-pitches ;; else transpose the pitches and do the chord twice
- (map (lambda (p)
- (ly:pitch-transpose p capo-pitch))
- pitches))
- (new-bass
- (if (ly:pitch? bass)
- (ly:pitch-transpose bass capo-pitch)
- '()))
- (new-inversion
- (if (ly:pitch? inversion)
- (ly:pitch-transpose inversion capo-pitch)
- '()))
- (capo-markup
- (make-parenthesize-markup
- (chord-function new-pitches new-bass new-inversion context)))
- (name-markup (chord-function pitches bass inversion context))
- (capo-vertical (ly:context-property context 'capoVertical #f)))
- (if capo-vertical
- (make-column-markup (list name-markup capo-markup))
- (make-line-markup (list name-markup
- (make-hspace-markup 1)
- capo-markup)))))))
(beatStructure ,list? "List of @code{baseMoment}s that are combined
to make beats.")
- (capoPitch ,ly:pitch? "The pitch to transpose chords down by when using the capo.")
- (capoVertical ,boolean? "Whether to display actual and transposed pitches above each other or not.")
(chordChanges ,boolean? "Only show changes in chords scheme?")
(chordNameExceptions ,list? "An alist of chord exceptions.
Contains @code{(@var{chord} . @var{markup})} entries.")
(key-signature . (extra-space . 0.5))
(cue-clef . (extra-space . 0.5))
(right-edge . (extra-space . 0.5))
- (first-note . (semi-fixed-space . 2.5))))
+ (first-note . (fixed-space . 2.5))))
(stencil . ,ly:key-signature-interface::print)
- (extra-spacing-width . (0.0 . 0.5))
+ (extra-spacing-width . (0.0 . 1.0))
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
(interfaces . (break-aligned-interface
(staff-bar . (extra-space . 1.1))
(cue-clef . (extra-space . 0.5))
(right-edge . (extra-space . 0.5))
- (first-note . (semi-fixed-space . 2.5))))
+ (first-note . (fixed-space . 2.5))))
(stencil . ,ly:key-signature-interface::print)
- (extra-spacing-width . (0.0 . 0.5))
+ (extra-spacing-width . (0.0 . 1.0))
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Item)
(interfaces . (break-aligned-interface
(break-align-anchor-alignment . ,LEFT)
(break-visibility . ,all-visible)
(extra-spacing-height . (-1.0 . 1.0))
+ (extra-spacing-width . (0.0 . 0.8))
(non-musical . #t)
(space-alist . (
(cue-clef . (extra-space . 1.5))
- (first-note . (semi-fixed-space . 2.0))
+ (first-note . (fixed-space . 2.0))
(right-edge . (extra-space . 0.5))
(staff-bar . (minimum-space . 2.0))))
(stencil . ,ly:time-signature::print)