Reinhold Kainhofer [Fri, 26 Oct 2007 16:18:01 +0000 (18:18 +0200)]
Merge branch 'master' of ssh://kainhofer@git.sv.gnu.org/srv/git/lilypond into kainhofer
Reinhold Kainhofer [Fri, 26 Oct 2007 16:15:01 +0000 (18:15 +0200)]
MusicXML: Add sample file for chord names printed above staff
Reinhold Kainhofer [Fri, 26 Oct 2007 16:10:54 +0000 (18:10 +0200)]
MusicXML: Update the rest duration sample file with correct multi-measure rest
Reinhold Kainhofer [Fri, 26 Oct 2007 15:46:43 +0000 (17:46 +0200)]
MusicXML: Fix small problems with assignment <harmony> <=> voice
Oops, I didn't want to treat <direction > elements like <harmony>.
The direction elements should still be asssigned to all voices (or
all voices of the staff).
Also, at the end of the loop, assign all remaining <harmony> elements
to the voice of the previous note and don't simply discard it.
Reinhold Kainhofer [Fri, 26 Oct 2007 15:02:32 +0000 (17:02 +0200)]
MusicXML: Updates sample files for fretboards
Reinhold Kainhofer [Fri, 26 Oct 2007 15:00:18 +0000 (17:00 +0200)]
MusicXMl: Fix fretboard assignment to voices.
Instead of assigning <harmony> elements to every voice or only the very
first voice (in the frist case, we'll have duplicated frets, in the
second one the fretboards will often be inserted at the completely
wrong position), simply insert the fretboard into the next note that
we encounter in the MusicXML file.
I suppose we could also do something similar for text markup (i.e.
<direction><words>...</word></direction>), but there we need to
distinguish direction elements with words-only subelements and with
dynamics subelements.
Reinhold Kainhofer [Fri, 26 Oct 2007 14:39:06 +0000 (16:39 +0200)]
MusicXML: Sample file for fretboards on multi-staff/-voice pieces
The detection to which note a fretboard is assigned breaks down
terribly for parts with multiple staves and/or voices...
Reinhold Kainhofer [Fri, 26 Oct 2007 14:38:08 +0000 (16:38 +0200)]
MusicXML: Convert fretboards from MusicXML to Lilypond
In MusicXML, fretboards are inside <harmony> elements, assigned
to a particular staff, while in lilypond the \fret-diagram is a
text markup assigned to a particular note. So we run into the same
problems as we do with dynamics (i.e. we need to find a proper
note to assign the element to, which is not very robust). For
single-voice harmony, this works quite well so far.
Joe Neeman [Thu, 25 Oct 2007 22:29:32 +0000 (08:29 +1000)]
Fix 500.
Avoid NaN in Break_aligned_interface::calc_extent_aligned_anchor.
John Mandereau [Thu, 25 Oct 2007 05:17:11 +0000 (07:17 +0200)]
Merge branch 'master' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond
* 'master' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond:
Update thanks.
Till Paala [Wed, 24 Oct 2007 17:08:42 +0000 (20:08 +0300)]
Addition to German update
Till Paala [Wed, 24 Oct 2007 16:54:05 +0000 (19:54 +0300)]
Another update to German
Till Paala [Wed, 24 Oct 2007 15:37:36 +0000 (18:37 +0300)]
Typos and updates to German translation
Graham Percival [Wed, 24 Oct 2007 09:41:22 +0000 (02:41 -0700)]
Merge branch 'master' of git://git.sv.gnu.org/lilypond
Graham Percival [Wed, 24 Oct 2007 09:39:44 +0000 (02:39 -0700)]
Update thanks.
Reinhold Kainhofer [Tue, 23 Oct 2007 22:08:50 +0000 (00:08 +0200)]
Merge branch 'master' of ssh://kainhofer@git.sv.gnu.org/srv/git/lilypond into kainhofer
Reinhold Kainhofer [Tue, 23 Oct 2007 21:39:33 +0000 (23:39 +0200)]
MusicXMl: Add sample file for repeat without ending bar
Sample file
Reinhold Kainhofer [Tue, 23 Oct 2007 21:39:06 +0000 (23:39 +0200)]
MusicXML: Fix bug in lyrics and ties
I forgot to reset the is_tied flag, so after a tie, no lyrics would be
printed out any more (the second note of a tie is in a melisma and does
not use any lyrics syllables in lilypond - Of course only if it is
really a tied note...).
Reinhold Kainhofer [Tue, 23 Oct 2007 21:32:23 +0000 (23:32 +0200)]
MusicXML: Also finish repeats that do not have an explicit ending bar
Some musicXML examples just display the first page of a multi-page score.
Sometimes a repeat occurs on these pages with no ending bar (which would
follow on a subsequent page). Simply finish the \repeat sequence at the
very end of the page.
Reinhold Kainhofer [Tue, 23 Oct 2007 20:18:27 +0000 (22:18 +0200)]
MusicXML: Fix lyrics on chords, ignore lyrics for notes inside melismata
The lyrics detection code so far ignored chords (ie. it added a \skip for
every additional note in the chord). Now I simply ignore all subsequent
notes and the corresponding syllables for the lyrics.
By default, lilypond does not add lyrics to notes in melismata (i.e.
tied notes and notes inside slurs), so while walking through all notes,
we need to check whether we are inside a slur, a tie or a grace note
and simply ignore the lyrics on these notes.
There are some scores, which still put lyrics on notes inside slurs, so
in the future, I'll also add a way to set/unset ignoreMelismata, but
that's left for the future.
Rune Zedeler [Tue, 23 Oct 2007 04:31:24 +0000 (06:31 +0200)]
Merge branch 'master' of git://git.sv.gnu.org/lilypond
Rune Zedeler [Tue, 23 Oct 2007 04:26:35 +0000 (06:26 +0200)]
Bugfix: Rational.cc: Modulo and trunc did not work with negative numbers.
This is a library fix that did not show any bugs in lilypond - because
lilypond does not use modulus of negative rationals.
Reinhold Kainhofer [Tue, 23 Oct 2007 00:07:35 +0000 (02:07 +0200)]
MusicXML: Convert colors in text markup using \with-color #(rgb-color ...)
Now that we have the rgb-color scheme function in git, make use of it in
text markup conversion. In MusicXML, the color is given as #AARRGGBB
or #RRGGBB, we simply ignore the alpha channel, extract the r, g and b
values and scale them to the 0.0 - 1.0 range
Reinhold Kainhofer [Mon, 22 Oct 2007 23:07:32 +0000 (01:07 +0200)]
MusicXML: Add test file for text markup
Reinhold Kainhofer [Mon, 22 Oct 2007 22:46:29 +0000 (00:46 +0200)]
Merge branch 'master' of ssh://kainhofer@git.sv.gnu.org/srv/git/lilypond into kainhofer
Erlend Aasland [Mon, 22 Oct 2007 14:17:09 +0000 (16:17 +0200)]
Add rgb-color macro.
Han-Wen Nienhuys [Mon, 22 Oct 2007 03:26:45 +0000 (01:26 -0200)]
Merge branch 'master' of ssh+git://hanwen@git.sv.gnu.org/srv/git/lilypond
Han-Wen Nienhuys [Mon, 22 Oct 2007 03:21:25 +0000 (01:21 -0200)]
strip MusicXML from examples.html
Reinhold Kainhofer [Sun, 21 Oct 2007 21:08:47 +0000 (23:08 +0200)]
MusicXML: Convert some more text markup attributes
Convert italics, better font sizes. Unfortunately, I don't know
how to convert RGB colors to x-colors used by lilypond, so colors
are not converted. Similarly, font families are not converted, mainly
because I don'tknow the correct lilypond expression for this.
Underline, overline and strike-through don't seem to be supported
by lilypond at all :-(
Reinhold Kainhofer [Sun, 21 Oct 2007 17:04:02 +0000 (19:04 +0200)]
MusicXML: Convert words, assigned to staves => assign to notes in Lilypond
In MusicXML, words are represented in direction elements, in Lilypond, they
are assigned to notes....
Also try to convert as many font attributes as possible (several are still
missing, currently only text-size and text-wight are supported)
Joe Neeman [Sat, 20 Oct 2007 22:18:26 +0000 (08:18 +1000)]
Fix 449.
Ensure that a TrillPitchGroup is included in the horizontal skylines.
Reinhold Kainhofer [Fri, 19 Oct 2007 00:52:38 +0000 (02:52 +0200)]
MusicXML: Implement Barline styles and repeats in musicxml2ly
-) The <barline> element is now converted to a \bar"...." lilypond
expression. Not all bar styles from MusicXML are supported by lilypond,
though.
-) Convert repeats and alternative endings from MusicXML to lilypond.
While lilypond has a nice hierarchy (i.e. nested music) for repeating
structures, MusicXML only has markers "here starts/ends a repeat or
altern.ending", so I need to somehow build up that repeat hierarchy
from the flat data. I've imlemented this via a loop that looks for
a repeat structure, replaces that one repeat by a proper instance
of musicexp.RepeatedMusic. Since I directly modify the list of
event chords, after replacing one repeat, I have to start the
whole loop from the start (because the iterators are off after
the list is modified).
-) Add some more unit test files for barlines and repeating structures
(some even do not make sense from a musical point of view)
-) Fix typo in the coverage/regression tests make file
Graham Percival [Thu, 18 Oct 2007 22:46:53 +0000 (15:46 -0700)]
Merge branch 'master' of git://git.sv.gnu.org/lilypond
Lilypond GDP [Thu, 18 Oct 2007 20:39:28 +0000 (22:39 +0200)]
Fix build: usermanref is removed in favor of ruser
Werner Lemberg [Thu, 18 Oct 2007 19:59:36 +0000 (21:59 +0200)]
Typo.
Werner Lemberg [Thu, 18 Oct 2007 19:57:47 +0000 (21:57 +0200)]
Merge branch 'master' of ssh+git://git.sv.gnu.org/srv/git/lilypond
Werner Lemberg [Thu, 18 Oct 2007 19:57:18 +0000 (21:57 +0200)]
New glyph for `scripts.caesura'.
The old shape has been renamed to `scripts.caesura.curved'.
Based on patches from Maximilian Albert.
Werner Lemberg [Thu, 18 Oct 2007 15:44:44 +0000 (17:44 +0200)]
Add copyright.
Werner Lemberg [Thu, 18 Oct 2007 15:14:21 +0000 (17:14 +0200)]
Add copyright.
Werner Lemberg [Thu, 18 Oct 2007 15:12:55 +0000 (17:12 +0200)]
Add copyright.
Werner Lemberg [Thu, 18 Oct 2007 15:10:39 +0000 (17:10 +0200)]
Add copyright.
Werner Lemberg [Thu, 18 Oct 2007 15:08:36 +0000 (17:08 +0200)]
Add copyright.
Werner Lemberg [Thu, 18 Oct 2007 15:06:47 +0000 (17:06 +0200)]
Add copyright.
Graham Percival [Wed, 17 Oct 2007 06:46:37 +0000 (23:46 -0700)]
Merge branch 'master' of git://git.sv.gnu.org/lilypond
Graham Percival [Wed, 17 Oct 2007 06:46:17 +0000 (23:46 -0700)]
Add warning about changed syntax for text on line spanners.
Mats Bengtsson [Mon, 15 Oct 2007 14:10:45 +0000 (16:10 +0200)]
Makes it possible to get a bar line at the left end of the
stave also for single stave scores.
Mats Bengtsson [Mon, 15 Oct 2007 13:59:26 +0000 (15:59 +0200)]
Use the collapse-height mechanism also for SystemStartBar.
Makes it possible to get a bar line at the left end of the
stave also for single stave scores.
Graham Percival [Mon, 15 Oct 2007 02:03:32 +0000 (19:03 -0700)]
Merge branch 'master' of git://git.sv.gnu.org/lilypond
Graham Percival [Mon, 15 Oct 2007 02:02:42 +0000 (19:02 -0700)]
We use @ruser{} instead of @usermanref{} now.
Graham Percival [Mon, 15 Oct 2007 01:58:19 +0000 (18:58 -0700)]
We now use @ruser{} in the docs.
Graham Percival [Mon, 15 Oct 2007 01:57:30 +0000 (18:57 -0700)]
Update thanks.
John Mandereau [Fri, 12 Oct 2007 19:44:21 +0000 (21:44 +0200)]
Update German PO from FTP
Reinhold Kainhofer [Fri, 12 Oct 2007 09:18:27 +0000 (11:18 +0200)]
MusicXML: Fix wrong chord detection with mid-measure attributes
Mid-measure attributes (like clef changes) need to be inserted as
commands, not as music, because that will reset the current measure
position and mess up chord detection for the following notes.
Reinhold Kainhofer [Wed, 10 Oct 2007 13:00:03 +0000 (15:00 +0200)]
MusicXML: Add sanity check before setting a duration
Reinhold Kainhofer [Tue, 9 Oct 2007 23:43:14 +0000 (01:43 +0200)]
MusicXML: Add description header for the feature coverage test page
Reinhold Kainhofer [Tue, 9 Oct 2007 22:23:55 +0000 (00:23 +0200)]
MusicXML: Support for upbeats and partial/implicit measures
-) In the Duration class, don't write out e.g. *3/1 for the factor.
In this case, *3 is much better
-) Add support for implicit measures, i.e. measures in MusicXML that do
not count. These are typically used for upbeats and for places where
a repeat or clef/key change occurs inside a measure. In this case,
the measure is split into to <measure> elements, the second one with
the implicit attribute set to "yes". Now we don't start a measure
in lilypond for those implicit measures.
-) Implicit measures at the very beginning are now converted as \partial X
-) Don't print out | %0 at the very beginning (i.e. for the measure with
number 0)
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Sat, 6 Oct 2007 19:48:15 +0000 (21:48 +0200)]
Ignore ttf files with fontforge configure check
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Tue, 9 Oct 2007 22:50:27 +0000 (00:50 +0200)]
Revert "Allow header/footer snippets in test cases, expand lilypond-book to insert versionnumber"
This reverts commit
47c4f0bf5eb5be69826b23fd9be5bbc48765ef41.
Francisco Vila [Tue, 9 Oct 2007 09:44:10 +0000 (11:44 +0200)]
Another typo
Francisco Vila [Mon, 8 Oct 2007 17:54:15 +0000 (19:54 +0200)]
typo
John Mandereau [Mon, 8 Oct 2007 18:31:21 +0000 (20:31 +0200)]
Update Spanish PO from FTP
John Mandereau [Sun, 7 Oct 2007 08:00:34 +0000 (10:00 +0200)]
Update French and Vietnamese POs from Free Translation Project
Nitpick: also remove fuzzy mark in lilypond.pot
Han-Wen Nienhuys [Sat, 6 Oct 2007 20:54:04 +0000 (17:54 -0300)]
Merge branch 'master' of ssh+git://hanwen@git.sv.gnu.org/srv/git/lilypond
Joe Neeman [Fri, 5 Oct 2007 23:55:33 +0000 (09:55 +1000)]
Fix 411, 412 and 445.
Exclude VerticalAxisGroup 'minimum-Y-extent from the skyline, but include it in
align-interface calculations. Reinstate minimum-Y-extent in Staff.
John Mandereau [Thu, 4 Oct 2007 15:13:55 +0000 (17:13 +0200)]
Update lilypond.pot
Jean-Charles Malahieude [Thu, 4 Oct 2007 15:06:14 +0000 (17:06 +0200)]
Update French PO from Free Translation Project
Reinhold Kainhofer [Thu, 4 Oct 2007 08:54:52 +0000 (10:54 +0200)]
Allow header/footer snippets in test cases, expand lilypond-book to insert versionnumber
-) Add --introduction=.. and --footer=.. options to lys-to-tely.py so that we
can insert custom text form a texi file at the beginning and end of a
regression test page. So far, one had to add a .ly file with a proper name
(so that it gets sorted to the begin/end), which resulted in an ugly empty
image and a link to a dummy .ly file at the top. The header for the
lys-to-tely script must not be called *.texi, because make WWW tries to
run makeinfo on all *.texi files.
-) Change the buildsystem to use these additional parameters. The make variables
HEADER_FILE and FOOTER_FILE are used for this.
-) Change the regression tests to make use of the texi file rather than the
AAA-intro-regression.ly file
-) Since that header contained the lilypond version number, I also expanded
lilypond-book to replace @lilypondversion (or the \lilypondversion and
<lilypondversion> counterparts for latex and html) by the version. The
build must then use the lilypond-book script from scripts/out/ rather
than scripts/lilypond-book.py (which does not have the @VERSION_NUMBER@
replaced by the version by the build system).
Werner Lemberg [Wed, 3 Oct 2007 19:58:39 +0000 (21:58 +0200)]
Formatting.
Nicolas Sceaux [Wed, 3 Oct 2007 19:24:31 +0000 (21:24 +0200)]
\smallCaps: use \concat internally, iso \hspace #-1.
Reinhold Kainhofer [Sun, 23 Sep 2007 18:57:18 +0000 (20:57 +0200)]
MusicXML: Rework the way articulations are handled
Workover of the articulation translation. Use one dict instead
of two and condition on the dict value. Also implement accidental-mark.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Sun, 23 Sep 2007 12:08:21 +0000 (14:08 +0200)]
MusicXML: Better support for drums
-) Add the bass drum instrument
-) Ignore notes with the attribute print-object="no". These are
typically notes that indicate midi output for tremolos and should
not be printed.
-) Use the Musix_xml_node.message method to print out the warning about
missing note types. This also prints out where the problem occurs.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Sun, 23 Sep 2007 12:03:03 +0000 (14:03 +0200)]
MusicXML: Fix indentation of the Output_printer
a < increases indentation by one. However, \< or -< should not and <<
should only increase by one, too. The same goes for \>, -> and >>.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Sun, 23 Sep 2007 10:22:02 +0000 (12:22 +0200)]
MusicXML: Add some more test files
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Sun, 23 Sep 2007 08:39:49 +0000 (10:39 +0200)]
MusicXML: Correctly convert instrument names with line breaks
Convert line breaks in instrument names to
\markup \columns {\line {..} \line {..}}
Also add regression test file.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Sat, 22 Sep 2007 19:27:20 +0000 (21:27 +0200)]
MusicXML: Update sample files
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Fri, 21 Sep 2007 22:37:48 +0000 (00:37 +0200)]
MusicXML: Fix problem with dynamics inserted too late
Insert dynamics right into the EventChord, not after it. This fixes
several errors with my test files (the Recordare MusicXML samples).
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Fri, 21 Sep 2007 07:40:11 +0000 (09:40 +0200)]
MusicXML: Fix graces to allow beams, chords, etc.
Instead of keeping an array of grace elements for each chord,
rather use a full SequentialMusic object that holds EventChords
(so we can insert beams, real grace chords, etc.). For this we also
need a method in the SequentialMusic class to get the last chord.
Depending on the slash attribute of the <grace> element, we now
use acciaccatura rather than grace for slashed grace notes.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Wed, 19 Sep 2007 01:36:20 +0000 (03:36 +0200)]
MusicXML: Remove comment that no longer applies
My previous commit ("Apply Attributes and Directions...") fixed the problem
with clefs in piano staves, so this comment is now wrong.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Wed, 19 Sep 2007 01:29:56 +0000 (03:29 +0200)]
MusicXML: Fixes of my previous commit
If a score does not use any <staff> elements, fool musicxml2ly with
a dummy value of "None". Similarly, don't use dict[staff], but dict.get
to avoid crashes in that case.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Wed, 19 Sep 2007 01:02:23 +0000 (03:02 +0200)]
MusicXML: Apply Attributes and Direction only to the staves/voices they apply to
When extracting the voices of a part, first detect all different voices so that
we can assign dynamics to all voices right from the beginning.
Also, assign the dynamics and attributes only to those voices they really apply
to (in particular, if they have a <staff> element, only assign them to the voices
that use that particular staff). For this, I also need to keep a dict for
staff=>[voiceids,...] around. To be able to assign attributes only to the
correct voices, I need to copy the attributes object and erase all clefs, times
and keys that do not apply to the staff (and keep only those objects that either
have no number attribute or have the correct number attribute). This copying
(shallow copying of the relevant parts of the Attributes object) gave me some
major headache, but it should work fine now.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Tue, 18 Sep 2007 21:25:55 +0000 (23:25 +0200)]
MusicXML: A grace note at the beginning shall not set staff for the voice
The sample files from Recordare contain a piece where the voice on the
upper staff of a PianoStaff starts with a grace displayed in the second
staff. So far, this put the whole voice on the second staff. Thus, grace
notes are now ignored when determining the voice for a staff.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Tue, 18 Sep 2007 21:18:41 +0000 (23:18 +0200)]
MusicXML: Use \voiceOne up to \voiceFour in multi-voice staves
Lilypond has \voiceOne up to \voiceFour, so use them (instead of going
only up to \voiceTwo)
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Tue, 18 Sep 2007 21:12:48 +0000 (23:12 +0200)]
MusicXML: Staves with multiple voices get \voiceOne and \voiceTwo
When a staff has more than one voice, we get tons of colliding stems, so
put \voiceOne in the first voice and \voiceTwo in the remaining. This
still breaks with more than two voices, but the majority of cases works
fine now.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Tue, 18 Sep 2007 20:51:59 +0000 (22:51 +0200)]
MusicXML: Implement part-group (i.e. StaffGroup in ly) and part-name (instrumentName)
Implementing part-groups and their bracketing and span-bars turned out
harder than I imagined... I build one nested set of StaffGroup and Staff
objects from the part-list, including the instrument names and the bracket
types. However, to be able to distinguish single-staff staves and piano
staves and to assign the correct voices and lyrics to a part, I need
another loop after everything has been processed. In this additional
loop through the whole score structure I extract the voice and lyrics
ids assigned to each part and assign them the StaffGroup nested
objects.
Finally, printing everything out is quite simple.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Mon, 17 Sep 2007 14:32:21 +0000 (16:32 +0200)]
MusicXML: Fix small issues detected with Recordare sample MusicXML files
-) Open the .ly output files using utf-8 encoding so that special characters
like Umlaute, ©, » «, etc. can also be written out. Otherwise, python
will simply exit the script.
-) Fix line break issues with sys.stderr.write (line break explicitly needed
in contrast to print)
-) Fix extraction of creator from the XML. In particular, don't look only at
the very first creator tag, but loop through all of them. Now, a score
can have a composer, a lyricist, etc.
-) Extract lyrics syllables only for notes, but not for rests. In lilypond
a rest can have lyrics attached, in lilypond, the lyrics are assigned to
notes only. All lyrics assigned to rests in MusicXML will be lost!
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Mon, 17 Sep 2007 13:47:45 +0000 (15:47 +0200)]
Add myself to the list of credits, sort all contributors alphabetically (as it is said directly above)
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Sun, 16 Sep 2007 22:39:38 +0000 (00:39 +0200)]
MusicXML: Move printing out header information into its own class
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Sun, 16 Sep 2007 20:57:16 +0000 (22:57 +0200)]
MusicXML: Convert grace notes from MusicXML to Lilypond
Grace notes are normal <note> elements in XML, only with a <grace/>
child element. I append these notes to a special array of EventChord
and try to take care of the zero duration of grace notes (which
come before the real note and thus also create the EventChord with
duration zero!)
There is still one problem with things like beams or articulations on
grace notes (they are printed after the whole cord (not inside the
\grace!), but this is a general problem that musicxml2ly inserts
slurs, ties, beams, articulations, etc. as separate events not assigned
to any particular note/EventChord. The code should be changed to
assign these ornaments/settings directly to the note or the chord they
apply to. This would (1) get rid of e.g. triple [ with beamed chords,
(2) make it possible to combine multiple MusicXML articulations into
single lilypond articulations, (3) apply fingerings and ties to notes
inside chords rather than the whole chord, and (4) fix the grace notes.
The other problem is when a chord is used as a grace chord in MusicXML.
Due to the whole structure of musicxml2ly, this problem goes very deep
and I don't know of any way to fix this short of a big rewrite.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Fri, 14 Sep 2007 23:38:02 +0000 (01:38 +0200)]
MusicXML: Don't crash when no time signature is given
MusicXML allows scores without time signature given. Don't assume that a time
sig will always be present!
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Fri, 14 Sep 2007 21:58:51 +0000 (23:58 +0200)]
MusicXML: Implement pitched rests
In MusicXML, a rest can also have a pitch, given as
<display-step>A</display-step><display-octave>3</display-octave>
If given, convert these into ordinary lilypond pitches and print them
out as "a4 \rest" instead of "r4".
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Fri, 14 Sep 2007 20:59:12 +0000 (22:59 +0200)]
MusicXML: Reset measure position on backup elements, print => sys.stderr.write
-) Replace all relevant (i.e. non-testing outputs; these are still in there
in the main() functions for testing) occurrences of print by
sys.stderr.write
-) If a <backup> element is encountered (e.g. when there are two voices in
the measure), correctly reset the measure position to the desired
position after the backup.
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Reinhold Kainhofer [Fri, 14 Sep 2007 16:58:35 +0000 (18:58 +0200)]
MusicXML: Fix regression when adding expressions like octave shifts
Octave shifts in lilypond (like in MusicXML) are not associated with a
particular note but their position in the measure. So far, I simply
inserted them like a note, but unfortunately that reset the current
starting position in the measure (needed to find the correct position
for chords). So I added a method dedicated to inserting such commands
without resetting the position (of course, pending multi-bar rests
still need to be inserted before the music command).
Signed-off-by: Reinhold Kainhofer <reinhold@kainhofer.com>
Werner Lemberg [Tue, 2 Oct 2007 13:01:12 +0000 (15:01 +0200)]
Merge branch 'master' of ssh+git://git.sv.gnu.org/srv/git/lilypond
Werner Lemberg [Tue, 2 Oct 2007 13:00:12 +0000 (15:00 +0200)]
Document glyph name conventions and stem attachments.
This is a slightly modified patch from Maximilian Albert.
Han-Wen Nienhuys [Mon, 1 Oct 2007 13:29:48 +0000 (10:29 -0300)]
bump version.
Joe Neeman [Mon, 1 Oct 2007 08:26:44 +0000 (18:26 +1000)]
Fix 482.
Han-Wen Nienhuys [Mon, 1 Oct 2007 03:32:35 +0000 (00:32 -0300)]
Codingstyle nits.
Han-Wen Nienhuys [Mon, 1 Oct 2007 02:48:47 +0000 (23:48 -0300)]
Fix #483.
lilypond-book: put preamble_string in cut&paste section.
Han-Wen Nienhuys [Mon, 1 Oct 2007 02:44:11 +0000 (23:44 -0300)]
Fix #484.
Don't overwrite user setting of eksikMirroredSlashedFlat
Han-Wen Nienhuys [Sun, 30 Sep 2007 18:56:47 +0000 (15:56 -0300)]
junk dist-changelog hack.