input/regression/repeat-tremolo-one-note-articulation.ly
input/regression/repeat-tremolo-three-notes.ly
input/regression/repeat-unfold-all.ly
+input/regression/repeat-unfold-partial.ly
input/regression/repeat-unfold-tremolo.ly
input/regression/repeat-unfold.ly
input/regression/repeat-volta-segno.ly
@end ignore
+@item
+The music function @code{\\unfoldRepeats} can now take an
+optional argument-list specifying which type(s) of repeated music
+should be unfolded. Possible entries are @code{percent}, @code{tremolo},
+@code{volta}.
+If the optional argument-list is unspecified, @code{repeated-music} will be
+used, unfolding all.
+
@item
A new @code{output-attributes} grob property is now used for svg output
instead of the @code{id} grob property. It allows multiple attributes
@section Introduction to website work
The website is @emph{not} written directly in HTML;
-instead, the source is Texinfo, which is then generated into HTML,
-PDF, and Info formats. The sources are
+instead it is autogenerated along with the documentation through a
+sophisticated setup, using Texinfo source files. Texinfo is the
+standard for documentation of GNU software and allows generating
+output in HTML, PDF, and Info formats, which drastically reduces
+maintenance effort and ensures that the website content is
+consistent with the rest of the documentation. This makes the
+environment for improving the website rather different from common
+web development.
+
+If you have not contributed to LilyPond before, a good starting
+point might be incremental changes to the CSS file, to be found at
+@uref{http://lilypond.org/css/lilypond-website.css} or in the
+LilyPond source code at @file{./Documentation/css/lilypond-website.css}.
+
+Large scale structural changes tend to require familiarity with
+the project in general, a track record in working on LilyPond
+documentation as well as a prospect of long-term commitment.
+
+The Texinfo source file for generating HTML are to be found in
@example
Documentation/web.texi
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 137af1bb9546d8845cbd7f9ecc0936fb4a0914e3
+ Translation of GIT committish: 6b8cabe379e8b4b945797a4e55759c56117223d4
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
L'algorithme de calcul des sauts de page à utiliser. Vous avez le choix
entre @code{ly:minimal-breaking}, @code{ly:page-turn-breaking},
-@code{ly:one-line-breaking}, @code{ly:one-line-auto-height-breaking} et
-@code{ly:optimal-breaking} (activé par défaut).
+@code{ly:one-page-breaking}, @code{ly:one-line-breaking},
+@code{ly:one-line-auto-height-breaking}, et @code{ly:optimal-breaking}
+(activé par défaut).
@item page-breaking-system-system-spacing
@funindex page-breaking-system-system-spacing
@ref{Minimisation des sauts de page},
@ref{Optimisation des sauts de page},
@ref{Optimisation des tournes},
+@ref{Présentation en ligne continue},
+@ref{Présentation en page continue},
@ref{Présentation en rouleau},
@ref{Sauts de page}.
* Saut de page manuel::
* Optimisation des sauts de page::
* Minimisation des sauts de page::
+* Présentation en page continue::
* Présentation en ligne continue::
* Présentation en rouleau::
* Optimisation des tournes::
@rlsrnamed{Spacing,Espacements}.
+@node Présentation en page continue
+@unnumberedsubsubsec Présentation en page continue
+@translationof One-page page breaking
+
+@funindex ly:one-page-breaking
+
+La fonction @code{ly:one-page-breaking} constitue un algorithme de
+calcul des sauts de page particulier en ceci que la hauteur de page sera
+automatiquement ajustée à la longueur de la partition, de telle sorte
+que toute la musique tienne sur une seule page. La variable
+@code{paper-height} du bloc @code{\paper} est ignorée, mais les autres
+réglages restent disponibles. En particulier, l'espacement entre le
+dernier système (ou un @emph{markup} de premier niveau) et le pied de
+page est réglable à l'aide de la variable @code{last-bottom-spacing}
+du bloc @code{\paper}. La largeur de page n'est, par défaut, pas
+modifiée ; ceci peut s'ajuster à l'aide de la variable
+@code{paper-width} du bloc @code{\paper}.
+
+@knownissues
+@code{ly:one-page-breaking} est à ce jour incompatible avec
+l'utilisation de @code{\bookpart}.
+
+
@node Présentation en ligne continue
@unnumberedsubsubsec Présentation en ligne continue
@translationof One-line page breaking
@funindex ly:one-line-breaking
La fonction @code{ly:one-line-breaking} constitue un algorithme de
-calcul des sauts de pages particulier en ceci que chaque partition fait
+calcul des sauts de page particulier en ceci que chaque partition fait
l'objet d'une page unique, d'une seule ligne. Cette fonctionnalité
s'affranchit de l'impression des titres et marges ; seule la partition
est affichée.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 2034ca4fcbed9253b5a85e9360e47d3fe3ff1d09
+ Translation of GIT committish: 6b8cabe379e8b4b945797a4e55759c56117223d4
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
@tab Décale le bord gauche du typon EPS d'une valeur donnée en
millimètres.
+@item @code{font-export-dir}
+@tab @code{#f [répertoire]}
+@tab Répertoire dans lequel exporter les fontes en tant que fichiers
+PostScript.
+
@item @code{gs-load-fonts}
@tab @code{#f}
@tab Charge les fontes grâce à Ghostscript.
@tab Limite les fontes chargées par Ghostscript aux seules fontes
LilyPond.
+@item @code{gs-never-embed-fonts}
+@tab @code{#f}
+@tab Intime à Ghostscript d'embarquer les fontes uniquement au format
+TrueType, sans exception.
+
@item @code{gui}
@tab @code{#f}
@tab Travaille silencieusement, et redirige tout le verbiage dans un
@c -*- coding: utf-8; mode: texinfo; documentlanguage : fr -*-
@c This file is part of web.texi
@ignore
- Translation of GIT committish: 0628cc44250b21d422b21890a7f266cd4b5ca584
+ Translation of GIT committish: 6b8cabe379e8b4b945797a4e55759c56117223d4
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Développeurs intéressés :
@table @asis
-@item @email{dak@@gnu.org, David Kastrup (le contacter en anglais)}
-Vos contributions me permettront de continuer mon activité à temps plein
-sur LilyPond. Je me concentre sur la modélisation des interfaces entre
-l'utilisateur et le programme -- cohérence, implémentation,
-simplification, documentation et débogage.
+@item @email{lilypond-devel@@gnu.org, Liste des développeurs de LilyPond}
+Dans la mesure où aucun développeur ne s'est actuellement déclaré,
+veuillez vous adresser directement à la liste de diffusion des développeurs.
@c Format
@c @item @email{name@@adress.domain, Name}
participe à ce programme sous l'égide du
@uref{http://www.gnu.org/, projet GNU}.
-Nous avons eu des participants aux sessions de 2012 et 2015, et
+Nous avons eu des participants aux sessions de 2012, 2015 et 2016, et
encourageons les étudiants à candidater pour les sessions à venir.
Si vous avez des questions à ce sujet ou avez envie d'y participer,
Voici une liste de projets que nous avons proposés aux étudiants du GSoC
et à quiconque aurait envie d'améliorer LilyPond.@*
-Dernière mise à jour : février 2016.
+Dernière mise à jour : novembre 2016.
La disponibilité de tuteurs diffère selon les projets et les années.
Contactez-nous sur la liste des développeurs -- voir @ref{Contact} -- et
@divEnd
-@divClass{column-center-middle-color3}
-@subheading ScholarLY
-
-ScholarLY est une bibliothèque hébergée sur
-@uref{https://openlilylib.org, openLilyLib} et qui fournit des
-fonctionnalités permettant, grâce à des annotations, de gérer
-directement dans le contexte de la partition le flux de travail d'une
-« édition savante ». Il est à ce jour possible de saisir différents
-types d'annotations, produire des messages cliquables en console et
-exporter du texte dans des fichiers @LaTeX{}.
-
-Un certain nombre de demandes d'extension permettraient de transformer
-cette bibliothèque en un outil encore plus puissant et complet, par
-exemple par l'insertion d'exemples musicaux, la production de notes de
-bas de page ou l'application de styles particuliers -- mise en pointillé
-d'une liaison, mise entre parenthèses d'un altération, etc. -- ou la
-création de rapports avec des liens inter-documents. Pour une
-description complète des suggestions autour de ce projet, visitez
-@uref{https://github.com/openlilylib/scholarly/wiki/GSoC, ce Wiki}.
-
-@strong{Difficulté :} moyenne
-@strong{Préalables :} Scheme, peut-être @LaTeX{}, (Python optionnel)
-@strong{Connaissances appréciées :} Expérience ou intérêt dans l'édition
-critique et les flux collaboratifs.
-@strong{Mentor :} Urs Liska
-@divEnd
-
-
@divClass{column-center-middle-color3}
@subheading Ajout de variantes pour certains glyphes
@c VO Adding variants of font glyphs
@divEnd
-@divClass{column-center-middle-color3}
-@subheading Permettre aux bandeaux ou extensions de naviguer entre les voix
-@c VO Allow spanners to cross voices
-
-Jusqu'à présent, les différents bandeaux ou extenseurs, qu'il s'agisse de
-liaison de tenue ou non, de nuances, de prolongateurs de texte, de
-trilles, etc. doivent se terminer dans le contexte même où ils ont été
-entamés. Ceci néanmoins ne reflète pas la réalité de la notation dans
-la plupart des situations polyphoniques. La seule échappatoire, pour
-l'instant, consiste à recourir à des voix masquées.
-
-De nouveaux moyens de faire face à cette situation pourraient être
-envisagés, comme
-
-@divClass{keep-bullets}
-@itemize
-
-@item la spécification du « contexte cible » où la terminaison de
-l'extension est attendue,
-
-@item l'affectation d'un ID à l'objet où intervient la terminaison.
-
-@end itemize
-@divEnd
-
-Cette fonctionnalité permettrait de résoudre nombre de problèmes
-courants en matière de partition pianistique ou lors de combinaisons de
-parties.
-
-@strong{Difficulté :} moyenne (?)
-@strong{Préalables :} C++, Scheme
-@strong{Mentor potentiel :} Urs Liska
-@divEnd
-
-
@divClass{column-center-middle-color3}
@subheading Aide à l'amélioration du comportement lors de la compilation
@c VO Help improve compilation behavior
@c -*- coding: utf-8; mode: texinfo; documentlanguage: it -*-
@ignore
- Translation of GIT committish: 136e94ea422fc94ef2587c588d516a03e01275e1
+ Translation of GIT committish: 6b8cabe379e8b4b945797a4e55759c56117223d4
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Sviluppatori interessati:
@table @asis
-@item @email{dak@@gnu.org, David Kastrup}
-Le donazioni mi permettono di continuare il mio lavoro a tempo
-pieno su LilyPond. Mi occupo in particolare di progettazione, coerenza,
-implementazione, semplificazione, documentazione e debug dell'interfaccia
-utente e programmatore.
+@item @email{lilypond-devel@@gnu.org, mailing list degli sviluppatori di LilyPond}
+In questo momento nessuno programmatore si è proposto per fornire miglioramenti
+di LilyPond a pagamento, ma è comunque possibile provare a chiedere nella
+mailing list degli sviluppatori.
@c Format
@c @item @email{name@@adress.domain, Name}
partecipano allo sviluppo di LilyPond ad impegnarsi di più in esso. LilyPond
partecipa a GSoC sotto l'egida del @uref{http://www.gnu.org/, progetto GNU}.
-Abbiamo avuto partecipanti al GSoC nel 2012 e nel 2015 e invitiamo gli studenti
-a fare domanda per le prossime estati.
+Abbiamo avuto partecipanti al GSoC nel 2012, 2015 e 2016 e invitiamo gli
+studenti a fare domanda per le prossime estati.
Se hai dubbi o desideri presentare domanda, invia un'email alla nostra
mailing list degli sviluppatori (vedi @ref{Contact}).
@subheading Elenco di idee di progetti
Ecco un elenco di progetti suggeriti per il GSoC o per chiunque sia interessato
-a aiutare a migliorare LilyPond. (Ultimo aggiornamento: Febbraio 2016)
+a aiutare a migliorare LilyPond. (Ultimo aggiornamento: Novembre 2016)
La disponibilità di mentori varia da progetto a progetto e di anno in anno.
Invia un'email alla nostra mailing list degli sviluppatori (vedi @ref{Contact})
@divEnd
-@divClass{column-center-middle-color3}
-@subheading ScholarLY
-
-ScholarLY è una libreria di
-@uref{https://openlilylib.org, openLilyLib} che fornisce delle funzionalità
-per aggiungere annotazioni alle partiture, rendendo possibile la gestione
-dei flussi di lavoro accademici nel contesto del documento della partitura.
-Finora è possibile inserire delle annotazioni di diverso tipo, produrre
-messaggi cliccabili nell'output della console e esportare su file di testo
-o LaTeX.
-
-Ci sono numerose richieste di nuove funzionalità per trasformare questa
-libreria in uno strumento ancora più potente e completo. Alcuni esempi:
-inserimento di esempi musicali, creazione di note a piè di pagina, applicazione
-automatica di stili all'elemento annotato (per esempio, usare il trattino per
-la legatura di portamento, mettere un'alterazione tra parentesi), creazione
-di resoconti con voci punta-e-clicca. Una descrizione completa di questo
-progetto si trova in
-@uref{https://github.com/openlilylib/scholarly/wiki/GSoC, questa pagina Wiki}.
-
-@strong{Difficoltà:} media
-@strong{Requisiti:} Scheme, possibilmente LaTeX, (opzionalmente Python)
-@strong{Consigliato:} Esperienza o interesse nelle edizioni accademiche e
-nei progetti collaborativi.
-@strong{Mentore:} Urs Liska
-
-@divEnd
-
@divClass{column-center-middle-color3}
@subheading Aggiungere varianti dei glifi dei tipi di carattere
@divEnd
-@divClass{column-center-middle-color3}
-@subheading Permettere agli estensori di attraversare le voci
-
-Attualmente gli estensori di ogni tipo (legature di valore e di portamento,
-dinamiche, estensori del testo, trilli, etc.) devono essere terminati nel
-contesto in cui sono iniziati. Tuttavia, questo limite non riflette la
-realtà della notazione nella maggior parte delle impostazioni polifoniche.
-Attualmente sono necessari degli scomodi espedienti che fanno uso di voci
-nascoste per ottenere degli estensori che attraversino le voci.
-
-Dovrebbero essere esplorati nuovi modi di affrontare questo problema, per
-esempio
-
-@divClass{keep-bullets}
-@itemize
-
-@item specificando un @qq{contesto obiettivo} dove è prevista la terminazione
-dell'estensore
-
-@item specificando esplicitamente l'oggetto su cui terminare l'estensore
-tramite un ID
-
-@end itemize
-@divEnd
-
-Questa funzionalità risolverebbe molti problemi che si riscontrano comunemente
-nella musica per pianoforte e nelle parti combinate.
-
-@strong{Difficoltà:} media (?)
-@strong{Requisiti:} C++, Scheme
-@strong{Mentore potenziale:} Urs Liska
-@divEnd
-
-
@divClass{column-center-middle-color3}
@subheading Migliorare il comportamento durante la compilazione
@c This file is used in the web.texi file.
@ignore
- Translation of GIT committish: 36e230cf09bf2755528d2252ee256f88f330e66d
+ Translation of GIT committish: 2c6f3ccb58859c257744730e8cf91c62a2005632
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
@ifclear web_version
@c no anchor links, just link to News page
-@ref{News, Rilasciato LilyPond 2.19.48 - @emph{13 Settembre 2016}}
+@ref{News, Rilasciato LilyPond 2.19.52 - @emph{4 Dicembre 2016}}
@ref{News, Due progetti LilyPond nel Google Summer of Code 2016 - @emph{23 Aprile 2016}}
@ifset web_version
@c anchor links, link to individual news items by their <a> tag
-@uref{news.it.html#LilyPond-2_002e19_002e48-released-September-13_002c-2016,
- Rilasciato LilyPond 2.19.48 - @emph{13 Settembre 2016}}
+@uref{news.html#LilyPond-2_002e19_002e51-released-December-4_002c-2016,
+ Rilasciato LilyPond 2.19.52 - @emph{4 Dicembre 2016}}
-@uref{news.it.html#Two-LilyPond-projects-in-Google-Summer-of-Code-2016-April-23_002c-2016,
- Two LilyPond projects in Google Summer of Code 2016 - @emph{23 Aprile 2016}}
+@uref{news.html#Two-LilyPond-projects-in-Google-Summer-of-Code-2016-April-23_002c-2016,
+ Due progetti LilyPond nel Google Summer of Code 2016 - @emph{23 Aprile 2016}}
-@uref{news.it.html#LilyPond-2_002e18_002e2-released_0021-March-23_002c-2014,
+@uref{news.html#LilyPond-2_002e18_002e2-released_0021-March-23_002c-2014,
Rilasciato LilyPond 2.18.2 - @emph{23 Marzo 2014}}
-@uref{news.it.html#LilyPond-2_002e18_002e0-released_0021-December-29_002c-2013,
+@uref{news.html#LilyPond-2_002e18_002e0-released_0021-December-29_002c-2013,
Rilasciato LilyPond 2.18.0 - @emph{29 Dicembre 2013}}
@end ifset
}
@end lilypond
-If an @code{\unfoldRepeat} command in a music expression is required to
+If an @code{\unfoldRepeats} command in a music expression is required to
be printed when using @code{\quoteDuring}, then it too must also contain
-its own @code{\unfoldRepeat} command;
+its own @code{\unfoldRepeats} command;
@lilypond[verbatim,quote]
fluteNotes = \relative {
Interested developers:
@table @asis
-@item @email{dak@@gnu.org, David Kastrup}
-Donations are required to let me continue my current fulltime work on
-LilyPond. I focus on user and programmer interface design, coherence,
-implementation, simplification, documentation, and debugging.
+@item @email{lilypond-devel@@gnu.org, LilyPond developer list}
+Since no developer currently is listed for commercial development,
+your best bet is asking on the developer list.
@c Format
@c @item @email{name@@adress.domain, Name}
@c used for news about the upcoming release; see CG on Release Work
@newsItem
-@subheading LilyPond 2.19.52 released @emph{December 4, 2016}
+@subheading LilyPond 2.19.53 released @emph{December 17, 2016}
We are happy to announce the release of LilyPond
-2.19.52. This release includes a number of enhancements, and contains some
+2.19.53. This release includes a number of enhancements, and contains some
work in progress. You will have access to the very latest features, but
some may be incomplete, and you may encounter bugs and crashes. If you
require a stable version of LilyPond, we recommend using the 2.18
@ifclear web_version
@c no anchor links, just link to News page
-@ref{News, LilyPond 2.19.52 released - @emph{December 4, 2016}}
+@ref{News, LilyPond 2.19.53 released - @emph{December 17, 2016}}
@ref{News, Two LilyPond projects in Google Summer of Code 2016 - @emph{April 23, 2016}}
@ifset web_version
@c anchor links, link to individual news items by their <a> tag
-@uref{news.html#LilyPond-2_002e19_002e51-released-December-4_002c-2016,
- LilyPond 2.19.52 released - @emph{December 40, 2016}}
+@uref{news.html#LilyPond-2_002e19_002e53-released-December-17_002c-2016,
+ LilyPond 2.19.53 released - @emph{December 17, 2016}}
@uref{news.html#Two-LilyPond-projects-in-Google-Summer-of-Code-2016-April-23_002c-2016,
Two LilyPond projects in Google Summer of Code 2016 - @emph{April 23, 2016}}
* don't duplicate entries from news-front.itexi
@end ignore
+@newsItem
+@subheading LilyPond 2.19.52 released @emph{December 4, 2016}
+
+We are happy to announce the release of LilyPond
+2.19.52. This release includes a number of enhancements, and contains some
+work in progress. You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes. If you
+require a stable version of LilyPond, we recommend using the 2.18
+version.
+
+@newsEnd
+
@newsItem
@subheading LilyPond 2.19.51 released @emph{November 20, 2016}
New features in 2.20 since 2.18
*******************************
+ • The music function ‘\\unfoldRepeats’ can now take an optional
+ argument-list specifying which type(s) of repeated music should be
+ unfolded. Possible entries are ‘percent’, ‘tremolo’, ‘volta’. If
+ the optional argument-list is unspecified, ‘repeated-music’ will be
+ used, unfolding all.
+
• A new ‘output-attributes’ grob property is now used for svg output
instead of the ‘id’ grob property. It allows multiple attributes
to be defined as an association list. For example, ‘#'((id . 123)
PACKAGE_NAME=LilyPond
MAJOR_VERSION=2
MINOR_VERSION=19
-PATCH_LEVEL=52
+PATCH_LEVEL=53
MY_PATCH_LEVEL=
VERSION_STABLE=2.18.2
-VERSION_DEVEL=2.19.52
+VERSION_DEVEL=2.19.53
--- /dev/null
+\version "2.19.52"
+
+\header {
+ texidoc = "The music function @code{\\unfoldRepeats} can take an
+optional argument-list specifying which type(s) of repeated music has
+to be unfolded."
+}
+
+m =
+ \repeat volta 2 {
+ \repeat percent 2 { c'1 }
+ \repeat tremolo 4 { c'16 d' }
+ f'2
+ }
+ \alternative {
+ { d'1 }
+ { e'1 }
+ }
+
+\markup "not expanding"
+\m
+
+\markup "expanding all"
+\unfoldRepeats \m
+
+\markup "expanding percent-repeated-music"
+\unfoldRepeats percent \m
+
+\markup "expanding tremolo-repeated-music"
+\unfoldRepeats tremolo \m
+
+\markup "expanding volta-repeated-music"
+\unfoldRepeats volta \m
+
+\markup \column {
+ "combinations are possible:"
+ "expanding percent-repeated-music and tremolo-repeated-music"
+}
+\unfoldRepeats percent,tremolo \m
%}
-\version "2.19.52" % necessary for upgrading to future LilyPond versions.
+\version "2.19.53" % necessary for upgrading to future LilyPond versions.
\header{
title = "A scale in LilyPond"
%}
-\version "2.19.52" % necessary for upgrading to future LilyPond versions.
+\version "2.19.53" % necessary for upgrading to future LilyPond versions.
\header{
title = "A scale in LilyPond"
% how to do lookahead in scheme.
% * Also ignore explicit line breaks.
% * Add Mordents (reported by Patrick Karl)
-%
+% * Thomas Morley: extend unfold-repeats to reflect the possibility to
+% customize its effect to user-settable repeat-types. Here the most general
+% setting is hard-coded, resulting in unchanged behaviour.
\version "2.19.22"
(make-music 'BarCheck))))
(else
m)))
- (unfold-repeats music)))
+ (unfold-repeats '() music)))
% If there's an articulation, use it.
% If in a slur, use (1 . 1) instead (unless the note is marked staccato,
(else (make-sequential-music lst))))))
unfoldRepeats =
-#(define-music-function (music) (ly:music?)
- (_i "Force any @code{\\repeat volta}, @code{\\repeat tremolo} or
+#(define-music-function (types music)
+ ((symbol-list-or-symbol? '()) ly:music?)
+ (_i "Force @code{\\repeat volta}, @code{\\repeat tremolo} or
@code{\\repeat percent} commands in @var{music} to be interpreted
-as @code{\\repeat unfold}.")
- (unfold-repeats music))
+as @code{\\repeat unfold}, if specified in the optional symbol-list @var{types}.
+The default for @var{types} is an empty list, which will force any of those
+commands in @var{music} to be interpreted as @code{\\repeat unfold}. Possible
+entries are @code{volta}, @code{tremolo} or @code{percent}. Multiple entries
+are possible.")
+ (unfold-repeats types music))
void =
#(define-void-function (arg) (scheme?)
-See http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=log;h=refs/tags/release/2.19.52-1
+See http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=log;h=refs/tags/release/2.19.53-1
-commit 1f42b413de732a86da5ecda7f809e24c74dbdb4a
+commit ad399901bf44ddb175fe15f85566b237ad0aa3a5
Author: Phil Holmes <mail@philholmes.net>
-Date: Sat Dec 3 12:30:56 2016 +0000
+Date: Sat Dec 17 17:13:03 2016 +0000
- Release: bump Welcome versions.
+ Add version to regtest to allow GUB to build
-diff --git a/ly/Welcome-to-LilyPond-MacOS.ly b/ly/Welcome-to-LilyPond-MacOS.ly
-index ea56eb9..f18b73e 100644
---- a/ly/Welcome-to-LilyPond-MacOS.ly
-+++ b/ly/Welcome-to-LilyPond-MacOS.ly
-@@ -23,7 +23,7 @@ That's it. For more information, visit http://lilypond.org .
-
- %}
-
--\version "2.19.51" % necessary for upgrading to future LilyPond versions.
-+\version "2.19.52" % necessary for upgrading to future LilyPond versions.
-
- \header{
- title = "A scale in LilyPond"
-diff --git a/ly/Welcome_to_LilyPond.ly b/ly/Welcome_to_LilyPond.ly
-index 8bdd018..cfca7fe 100644
---- a/ly/Welcome_to_LilyPond.ly
-+++ b/ly/Welcome_to_LilyPond.ly
-@@ -32,7 +32,7 @@ Good luck with LilyPond! Happy engraving.
-
- %}
-
--\version "2.19.51" % necessary for upgrading to future LilyPond versions.
-+\version "2.19.52" % necessary for upgrading to future LilyPond versions.
-
- \header{
- title = "A scale in LilyPond"
+diff --git a/input/regression/repeat-unfold-partial.ly b/input/regression/repeat-unfold-partial.ly
+index 8023932..e32702c 100644
+--- a/input/regression/repeat-unfold-partial.ly
++++ b/input/regression/repeat-unfold-partial.ly
+@@ -1,3 +1,5 @@
++\version "2.19.52"
++
+ \header {
+ texidoc = "The music function @code{\\unfoldRepeats} can take an
+ optional argument-list specifying which type(s) of repeated music has
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: lilypond 2.19.52\n"
+"Project-Id-Version: lilypond 2.19.53\n"
"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu."
"lilypond.bugs\n"
-"POT-Creation-Date: 2016-12-03 12:27+0000\n"
+"POT-Creation-Date: 2016-12-17 13:40+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
#: abc2ly.py:1398 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231
-#: midi2ly.py:1103 musicxml2ly.py:2766 main.cc:184
+#: midi2ly.py:1103 musicxml2ly.py:2774 main.cc:184
msgid "show version number and exit"
msgstr ""
#: abc2ly.py:1401 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140
-#: midi2ly.py:1070 musicxml2ly.py:2747 main.cc:163
+#: midi2ly.py:1070 musicxml2ly.py:2755 main.cc:163
msgid "show this help and exit"
msgstr ""
#. or if there is a LilyPond users list or forum in your language
#. "Report bugs in English via %s or in YOUR_LANG via URI"
#: abc2ly.py:1416 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258
-#: midi2ly.py:1115 musicxml2ly.py:2909 main.cc:318
+#: midi2ly.py:1115 musicxml2ly.py:2917 main.cc:318
#, c-format, python-format
msgid "Report bugs via %s"
msgstr ""
msgid "edit in place"
msgstr ""
-#: convert-ly.py:109 lilypond-book.py:179 musicxml2ly.py:2803
+#: convert-ly.py:109 lilypond-book.py:179 musicxml2ly.py:2811
msgid ""
"Print log messages according to LOGLEVEL (NONE, ERROR, WARNING, PROGRESS "
"(default), DEBUG)"
msgstr ""
#: convert-ly.py:111 lilypond-book.py:163 lilypond-book.py:181
-#: musicxml2ly.py:2805 main.cc:177
+#: musicxml2ly.py:2813 main.cc:177
msgid "LOGLEVEL"
msgstr ""
"file.\n"
msgstr ""
-#: etf2ly.py:1210 midi2ly.py:1075 midi2ly.py:1080 musicxml2ly.py:2859
+#: etf2ly.py:1210 midi2ly.py:1075 midi2ly.py:1080 musicxml2ly.py:2867
#: main.cc:169 main.cc:181
msgid "FILE"
msgstr ""
msgid "write snippet output files with the same base name as their source file"
msgstr ""
-#: lilypond-book.py:223 midi2ly.py:1098 musicxml2ly.py:2772
+#: lilypond-book.py:223 midi2ly.py:1098 musicxml2ly.py:2780
msgid "be verbose"
msgstr ""
msgid "Negative skip %s (from position %s to %s)"
msgstr ""
-#: musicxml2ly.py:2237
+#: musicxml2ly.py:2245
#, python-format
msgid "Negative skip found: from %s to %s, difference is %s"
msgstr ""
-#: musicxml2ly.py:2338
+#: musicxml2ly.py:2346
#, python-format
msgid "unexpected %s; expected %s or %s or %s"
msgstr ""
-#: musicxml2ly.py:2467
+#: musicxml2ly.py:2475
msgid "Encountered closing slur, but no slur is open"
msgstr ""
-#: musicxml2ly.py:2470
+#: musicxml2ly.py:2478
msgid "Cannot have two simultaneous (closing) slurs"
msgstr ""
-#: musicxml2ly.py:2479
+#: musicxml2ly.py:2487
msgid "Cannot have a slur inside another slur"
msgstr ""
-#: musicxml2ly.py:2482
+#: musicxml2ly.py:2490
msgid "Cannot have two simultaneous slurs"
msgstr ""
-#: musicxml2ly.py:2608
+#: musicxml2ly.py:2616
#, python-format
msgid "cannot simultaneously have more than one mode: %s"
msgstr ""
-#: musicxml2ly.py:2727
+#: musicxml2ly.py:2735
msgid "Converting to LilyPond expressions..."
msgstr ""
-#: musicxml2ly.py:2739
+#: musicxml2ly.py:2747
msgid "musicxml2ly [OPTION]... FILE.xml"
msgstr ""
-#: musicxml2ly.py:2741
+#: musicxml2ly.py:2749
msgid ""
"Convert MusicXML from FILE.xml to LilyPond input.\n"
"If the given filename is -, musicxml2ly reads from the command line.\n"
msgstr ""
-#: musicxml2ly.py:2751
+#: musicxml2ly.py:2759
#, python-format
msgid ""
"Copyright (c) 2005--2016 by\n"
"information."
msgstr ""
-#: musicxml2ly.py:2778
+#: musicxml2ly.py:2786
msgid "use lxml.etree; uses less memory and cpu time"
msgstr ""
-#: musicxml2ly.py:2784
+#: musicxml2ly.py:2792
msgid "input file is a zip-compressed MusicXML file"
msgstr ""
-#: musicxml2ly.py:2790
+#: musicxml2ly.py:2798
msgid "convert pitches in relative mode (default)"
msgstr ""
-#: musicxml2ly.py:2795
+#: musicxml2ly.py:2803
msgid "convert pitches in absolute mode"
msgstr ""
-#: musicxml2ly.py:2798
+#: musicxml2ly.py:2806
msgid "LANG"
msgstr ""
-#: musicxml2ly.py:2800
+#: musicxml2ly.py:2808
msgid "use LANG for pitch names, e.g. 'deutsch' for note names in German"
msgstr ""
-#: musicxml2ly.py:2814
+#: musicxml2ly.py:2822
msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
msgstr ""
-#: musicxml2ly.py:2820
+#: musicxml2ly.py:2828
msgid "do not convert exact vertical positions of rests"
msgstr ""
-#: musicxml2ly.py:2826
+#: musicxml2ly.py:2834
msgid "ignore system breaks"
msgstr ""
-#: musicxml2ly.py:2832
+#: musicxml2ly.py:2840
msgid "ignore page breaks"
msgstr ""
-#: musicxml2ly.py:2838
+#: musicxml2ly.py:2846
msgid "ignore page margins"
msgstr ""
-#: musicxml2ly.py:2844
+#: musicxml2ly.py:2852
msgid ""
"do not convert the exact page layout and breaks (shortcut for \"--nsb --npb "
"--npm\" options)"
msgstr ""
-#: musicxml2ly.py:2850
+#: musicxml2ly.py:2858
msgid ""
"ignore stem directions from MusicXML, use lilypond's automatic stemming "
"instead"
msgstr ""
-#: musicxml2ly.py:2856
+#: musicxml2ly.py:2864
msgid ""
"do not convert beaming information, use lilypond's automatic beaming instead"
msgstr ""
-#: musicxml2ly.py:2864
+#: musicxml2ly.py:2872
msgid "set output filename to FILE, stdout if -"
msgstr ""
-#: musicxml2ly.py:2870
+#: musicxml2ly.py:2878
msgid "activate midi-block in .ly file"
msgstr ""
-#: musicxml2ly.py:2874
+#: musicxml2ly.py:2882
msgid "TOPITCH"
msgstr ""
-#: musicxml2ly.py:2877
+#: musicxml2ly.py:2885
msgid "set pitch to transpose by the interval between pitch 'c' and TOPITCH"
msgstr ""
-#: musicxml2ly.py:2881
+#: musicxml2ly.py:2889
msgid "BEATS/BEATTYPE"
msgstr ""
-#: musicxml2ly.py:2884
+#: musicxml2ly.py:2892
msgid ""
"change the length|duration of notes as a function of a given time signature "
"to make the score look faster or slower, (eg. '4/4' or '2/2')"
msgstr ""
-#: musicxml2ly.py:2888
+#: musicxml2ly.py:2896
msgid "TABCLEFNAME"
msgstr ""
-#: musicxml2ly.py:2891
+#: musicxml2ly.py:2899
msgid "switch between two versions of tab clefs (\"tab\" and \"moderntab\")"
msgstr ""
-#: musicxml2ly.py:2895
+#: musicxml2ly.py:2903
msgid "t[rue]/f[alse]"
msgstr ""
-#: musicxml2ly.py:2898
+#: musicxml2ly.py:2906
msgid ""
"deactivate string number stencil with --string-numbers f[alse]. Default is "
"t[rue]"
msgstr ""
-#: musicxml2ly.py:2905
+#: musicxml2ly.py:2913
msgid ""
"converts '<frame>' events to a separate FretBoards voice instead of markups"
msgstr ""
-#: musicxml2ly.py:2979
+#: musicxml2ly.py:2987
#, python-format
msgid "unknown part in part-list: %s"
msgstr ""
-#: musicxml2ly.py:3069
+#: musicxml2ly.py:3077
msgid "Input is compressed, extracting raw MusicXML data from stdin"
msgstr ""
-#: musicxml2ly.py:3082
+#: musicxml2ly.py:3090
#, python-format
msgid "Input file %s is compressed, extracting raw MusicXML data"
msgstr ""
-#: musicxml2ly.py:3112
+#: musicxml2ly.py:3120
msgid "Reading MusicXML from Standard input ..."
msgstr ""
-#: musicxml2ly.py:3114
+#: musicxml2ly.py:3122
#, python-format
msgid "Reading MusicXML from %s ..."
msgstr ""
-#: musicxml2ly.py:3146
+#: musicxml2ly.py:3154
#, python-format
msgid "Output to `%s'"
msgstr ""
-#: musicxml2ly.py:3172
+#: musicxml2ly.py:3180
#, python-format
msgid "Converting to current version (%s) notations ..."
msgstr ""
-#: musicxml2ly.py:3246
+#: musicxml2ly.py:3254
#, python-format
msgid "Unable to find input file %s"
msgstr ""
msgid "More alternatives than repeats. Junking excess alternatives"
msgstr ""
-#: music-functions.scm:489
+#: music-functions.scm:506
#, scheme-format
msgid "bad grob property path ~a"
msgstr ""
-#: music-functions.scm:513
+#: music-functions.scm:530
#, scheme-format
msgid "bad context property ~a"
msgstr ""
-#: music-functions.scm:536
+#: music-functions.scm:553
#, scheme-format
msgid "bad music property ~a"
msgstr ""
-#: music-functions.scm:844
+#: music-functions.scm:861
msgid "Bad chord repetition"
msgstr ""
-#: music-functions.scm:949
+#: music-functions.scm:966
#, scheme-format
msgid "music expected: ~S"
msgstr ""
-#: music-functions.scm:1299
+#: music-functions.scm:1316
#, scheme-format
msgid "cannot find quoted music: `~S'"
msgstr ""
-#: music-functions.scm:1436
+#: music-functions.scm:1453
msgid "Add @var{octave-shift} to the octave of @var{pitch}."
msgstr ""
-#: music-functions.scm:1499
+#: music-functions.scm:1516
#, scheme-format
msgid "Unknown octaveness type: ~S "
msgstr ""
-#: music-functions.scm:1500
+#: music-functions.scm:1517
msgid "Defaulting to 'any-octave."
msgstr ""
-#: music-functions.scm:1874
+#: music-functions.scm:1891
#, scheme-format
msgid "unknown accidental style: ~S"
msgstr ""
-#: music-functions.scm:2099
+#: music-functions.scm:2116
msgid "Missing duration"
msgstr ""
-#: music-functions.scm:2620
+#: music-functions.scm:2637
#, scheme-format
msgid "not a symbol list: ~a"
msgstr ""
-#: music-functions.scm:2623
+#: music-functions.scm:2640
#, scheme-format
msgid "conflicting tag group ~a"
msgstr ""
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; repeats.
-(define-public (unfold-repeats music)
- "Replace all repeats with unfolded repeats."
- (let ((es (ly:music-property music 'elements))
- (e (ly:music-property music 'element)))
- (if (music-is-of-type? music 'repeated-music)
- (set! music (make-music 'UnfoldedRepeatedMusic music)))
- (if (pair? es)
- (set! (ly:music-property music 'elements)
- (map unfold-repeats es)))
- (if (ly:music? e)
- (set! (ly:music-property music 'element)
- (unfold-repeats e)))
- music))
+(define-public (unfold-repeats types music)
+ "Replace repeats of the types given by @var{types} with unfolded repeats.
+If @var{types} is an empty list, @code{repeated-music} is taken, unfolding all."
+ (let* ((types-list
+ (if (or (null? types) (not (list? types)))
+ (list types)
+ types))
+ (repeat-types-alist
+ '((volta . volta-repeated-music)
+ (percent . percent-repeated-music)
+ (tremolo . tremolo-repeated-music)
+ (() . repeated-music)))
+ (repeat-types-hash (alist->hash-table repeat-types-alist)))
+ (for-each
+ (lambda (type)
+ (let ((repeat-type (hashq-ref repeat-types-hash type)))
+ (if repeat-type
+ (let ((es (ly:music-property music 'elements))
+ (e (ly:music-property music 'element)))
+ (if (music-is-of-type? music repeat-type)
+ (set! music (make-music 'UnfoldedRepeatedMusic music)))
+ (if (pair? es)
+ (set! (ly:music-property music 'elements)
+ (map (lambda (x) (unfold-repeats types x)) es)))
+ (if (ly:music? e)
+ (set! (ly:music-property music 'element)
+ (unfold-repeats types e))))
+ (ly:warning "unknown repeat-type ~a, ignoring." type))))
+ types-list)
+ music))
(define-public (unfold-repeats-fully music)
"Unfolds repeats and expands the resulting @code{unfolded-repeated-music}."
(and (music-is-of-type? m 'unfolded-repeated-music)
(make-sequential-music
(ly:music-deep-copy (make-unfolded-set m)))))
- (unfold-repeats music)))
+ (unfold-repeats '() music)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; property setting music objs.
def is_rest(elem):
return elem.get_typed_children(musicxml.Rest)
+ def is_chord(elem):
+ return elem.get_typed_children(musicxml.Chord)
+
def is_note_and_not_rest(elem):
return is_note(elem) and not is_rest(elem)
not note_has_lyric_belonging_to_lyric_part:
result.append('\skip1 ')
# Note does not have any lyric attached to it.
+ elif is_chord(elem):
+ # note without lyrics part of a chord. MusicXML format is
+ # unclear if a chord element could contain a lyric, lets
+ # asume that we do not want to put a skip here.
+ continue
elif is_note_and_not_rest(elem):
result.append('\skip1 ')