David Nalesnik [Wed, 26 Aug 2015 14:46:07 +0000 (09:46 -0500)]
Scheme function to draw lines based on grob layout
A number of C++ stencil callbacks use Line_interface::line to draw
lines based on line-interface properties defining a particular grob.
This allows control of aspects such as line style (based on the setting
of Grob.style) and fine-tuning of dashed lines through dash-fraction
and dash-period.
This patch gives access to Line_interface::line in Scheme through the
callback ly:line-interface::line. (The simpler name ly:line was ruled
out in an effort to distinguish it from other functions such as
ly:bracket and ly:circle which do not take a grob argument.) Users
will be able to create custom stencils with more functionality
(including rewriting certain C++ callbacks--such as Hairpin::print--to
allow for easy modifications without loss of capability.)
David Nalesnik [Mon, 24 Aug 2015 14:13:31 +0000 (09:13 -0500)]
Don't print redundant flags in chords
This patch adds a check to lily/stem-engraver.cc which ensures that only
one Flag grob appears for a given Stem grob. Previously, a flag was created
and printed for each note of a chord.
articulate.ly: update documentation, add support for portato
This changeset updates the articulate.ly script documentation on the supported
articulations with a description of ac:staccatissimoFactor, and adds
ac:portatoFactor for shortening notes marked \portato, and slurred notes marked
\staccato. The default value for ac:portatoFactor is 3/4 (to match the
current default shortening factor for notes marked \portato when not using
articulate.ly).
Dan Eble [Thu, 20 Aug 2015 23:06:03 +0000 (19:06 -0400)]
Issue 4550 (2/2) Avoid "using namespace std;" in included files
These changes are produced by a rather long shell script that is
posted in the code review for this issue. Summary:
* remove "using namespace std;" everywhere
* add "std::" in *.hh and other included files
* add "std::" to functions and lesser-used types in *.cc files
Dan Eble [Sat, 8 Aug 2015 17:11:02 +0000 (13:11 -0400)]
Issue 4550 (1/2) Avoid "using namespace std;" in included files
These are manual changes in preparation for an automated removal of
"using namespace std;".
Mostly these are additions of using-declarations for commonly used
types and containers (e.g. std::string, std::vector) to *.cc files so
that they will continue to build after the big removal.
David Kastrup [Tue, 11 Aug 2015 17:09:47 +0000 (19:09 +0200)]
Issue 680: clusters collapse when applied to repeated chords
This replaces the rather shaky calculation of rounded polygon
outlines (unchanged since 2002AD) with something grounded somewhat
firmer in vector algebra. As a result, the rather flowery
interpretation of clusters so far (previously confused by concave
corners and other things) is becoming a lot more boring.
Set the sequence name in MIDI using title information from
\header block
issue 4539
This patch adds support for setting the MIDI sequence name for MIDI output files
using the value of the "midititle" field from a relevant \header block, and
falling back to using the "title" field if "midititle"
has not been defined. (This should be analogous to how "pdftitle" and "title"
work for customizing PDF metadata.)
The purpose of the change is to improve the previous behavior where the name of
every MIDI sequence created by LilyPond used to be shown by MIDI synthesizers as
"control track" (previously, this string was hard-coded as the name of every
initial track of MIDI files created by LilyPond by Control_track_performer).
The patch
* extends every Performance instance with a reference to a \header block
associated with the performance, adds Scheme library routines for getting and
setting the associated \header (modeled after corresponding routines available
for the Score class), and updates the Book::process_score function to initialize
the header information of Performance objects attached to a score;
* adds a "name" parameter to the Performance output routines, used for
updating the track name in the performance's first Audio_staff (assumed to
represent the control track) before outputting MIDI; and
* changes the write-performances-midis function (in scm/midi.scm) to query the
MIDI sequence name for a performance from the performance's \header block
(adapted from the handle-metadata function in scm/framework-ps.scm).
* adds two regtests
Due to conf file loading order, generic font aliases
`serif', `sans-serif', 'monospace' were unavailable
in LilyPond default fonts definition.
So the glyphs that are not contained
in the list of font definition,
like Japanese glyphs were used unexpected font.
This commit changes
LilyPond default fonts definition loading order
for enabling the aliases.
Thomas Morley [Fri, 31 Jul 2015 22:19:02 +0000 (00:19 +0200)]
Fix ugly output from make-parenthesis-stencil for increased thickness
issue 4532
This was caused by the fix for issue 3930. Small and very small
object were focused by 3930 and it did the job.
Though, obviously increasing the thickness for make-bezier-sandwich-stencil
should have been limited.
Also amend documentation about the use of \layout and Layout,
and add note to make it clear that the TwoVoicesPerStaff
variables cannot be modified part-way through a score.
David Kastrup [Sat, 18 Jul 2015 15:30:26 +0000 (17:30 +0200)]
Issue 4533: Stop the generic \tweak command from working as override
The problem with letting the generic \tweak command work as an override
is that the tweaking of lyric events becomes awkward since plain lyrics
are hard to distinguish from property names.
This renames the combined tweak/override command into \propertyTweak and
changes all callers requiring the combined functionality to call
\propertyTweak (or its Scheme equivalent) rather than \tweak.
The original issue allowing \tweak to act as an override was issue 2929.
The issue allowing tweaks to function in \lyricmode is issue 2543.
James Lowe [Mon, 3 Aug 2015 15:40:24 +0000 (16:40 +0100)]
Doc: Usage - Update section on articulate.ly
Issue 4535
The section on MIDI w/articulate.ly
was out of date. This section
has been updated accordingly,
including an @ref to the
Notation Manual where
it is more fully explained.
Updated the intro para to this
section and includes some
useful @refs.
James Lowe [Sun, 2 Aug 2015 13:11:22 +0000 (14:11 +0100)]
Doc: Usage - tidy up of external.itely file
Issue 4536
In preparation for some
work done on this file
I have tried to get some
consistency with regard
to white space / line breaks
between @nodes, @cindex et al
to make the file easier to
follow. Also I have corrected
very obvious errors and excessive
line lengths.
Thomas Morley [Thu, 30 Jul 2015 18:39:22 +0000 (20:39 +0200)]
Let \autochange accept optional arguments for the turning-point and clefs
Issue 4530
With the fix for issue 4465 bassStaffProperties and trebleStaffProperties are gone.
This patch reimplements the functionality to set clefs for the staves and offers the
possibility to set another turning-point apart from middle-C.
This is done with optional arguments for \autochange.
Two regtests are added to reflect these possibilities.
Documentation/notation/keyboards.itely is extended accordingly.
Also inserting the usual remarks about license, etc in autochange.scm.
James Lowe [Sat, 25 Jul 2015 09:53:23 +0000 (10:53 +0100)]
Doc: CG - Tightening up of the Bug Squad intro
Issue 4521
Moved some of the bug squad @section to
@subsection in an effort to 'tighten' up
the information. Reworded some of the
introduction section, trying to keep
it more succint.