* Trucos con Scheme::
@end menu
-@node Trucos con Scheme
-@c @section Trucos con Scheme
+@c @nod e Trucos con Scheme
+@c @sectio n Trucos con Scheme
@translationof Tweaking with Scheme
Hemos visto cómo la salida de LilyPond se puede modificar
@end lilypond
Se pueden encontrar ejemplos adicionales que muestran la utilización
-de estos interfaces programables, en @ref{Trucos con Scheme}.
+de estos interfaces programables, en @rextendnamed{Callback
+functions,Funciones de callback}.
@imageFloat{lilypond-book,png,right}
Inserte fragmentos de música dentro de textos sin cortar y pegar
-imágenes. Integre música dentro de @LaTeX o HTML de manera fácil, o
+imágenes. Integre música dentro de @LaTeX{} o HTML de manera fácil, o
añada música a los documentos de OpenOffice.org con OOoLilyPond.
@divClass{keep-bullets}
@itemize
-@ref{Top,Web}
+@ref{Arriba,Web}
@end itemize
@divEnd
@subsubheading Manual web en @versionDevel
@docLinksBare{Web, web,
- @ref{Top,Web},
+ @ref{Arriba,Web},
@manualDevelWebSplit,
@manualDevelWebBig, 1 MB,
@manualDevelWebPdf, 2 MB}
-
@ignore
@menu
* Tweaking with Scheme::
@end menu
-@c @node Tweaking with Scheme
-@c @section Tweaking with Scheme
+@c @nod e Tweaking with Scheme
+@c @sectio n Tweaking with Scheme
We have seen how LilyPond output can be heavily modified using
commands like
"five" "six" "seven" "eight" "nine"))
(define default-noteheads
- '("noteheads.uM2" "noteheads.dM2"
- "noteheads.sM1" "noteheads.sM1double"
- "noteheads.s0"
- "noteheads.s1"
- "noteheads.s2"))
+ '("noteheads.uM2" "noteheads.dM2" "noteheads.sM1"
+ "noteheads.s0" "noteheads.s1" "noteheads.s2"))
(define dynamics
'("space" "f" "m" "p" "r" "s" "z"))
;;;;;;;;;
;; get special noteheads
- (define cross (get-group glyph-list "cross"))
- (define diamond (get-group glyph-list "diamond"))
- (define harmonic (get-group glyph-list "harmonic"))
- (define slash (get-group glyph-list "slash"))
- (define triangle (get-group glyph-list "triangle"))
- (define xcircle (get-group glyph-list "xcircle"))
+ ;; (same order as in NR appendix "Note head styles")
+ (define altdefault '("noteheads.sM1double"))
+ (define harmonic (get-group glyph-list "harmonic"))
+ (define diamond (get-group glyph-list "diamond"))
+ (define cross (get-group glyph-list "cross"))
+ (define xcircle (get-group glyph-list "xcircle"))
+ (define triangle (get-group glyph-list "triangle"))
+ (define slash (get-group glyph-list "slash"))
(define special-noteheads
- (append cross
- diamond
+ (append altdefault
harmonic
- slash
+ diamond
+ cross
+ xcircle
triangle
- xcircle))
+ slash))
;; remove special noteheads from the glyph-list
(set! glyph-list
@end lilypond
Further examples showing the use of these programmable interfaces
-can be found in @rextend{Tweaking with Scheme}.
+can be found in @rextend{Callback functions}.
my ($docu_dir, $docu_name) = split_texi_filename ($Texi2HTML::THISDOC{'input_file_name'});
my $map_filename = main::locate_include_file ("${docu_name}.$Texi2HTML::THISDOC{current_lang}.xref-map")
|| main::locate_include_file ("${docu_name}.xref-map");
- print STDERR "Map filename is: $map_filename\nDocu name is $docu_name\n";
+ #print STDERR "Map filename is: $map_filename\nDocu name is $docu_name\n";
if ($docu_name eq 'web') {
$web_manual = 1;
web_settings();
@subheading Wat is LilyPond?
LilyPond is een Open Source muziek-graveer programma, gewijd aan het
-produceren van de hoogst mogelijke kwaliteit bladmuziek. Deze Vrije
+produceren van bladmuziek van de hoogst mogelijke kwaliteit. Deze Vrije
Software brengt de esthetiek van traditioneel gegraveerde muziek in
computer afdrukken.
@subheading Ons Doel
@imageFloat{flat-design,png,right}
-De inspiratie voor LilyPond ontstond toen twee muzikanten meer wilden
-dan de ontzielde aanblik van met de computer geprinte bladmuziek.
-Muzikanten lezen het liefst mooie muziek dus waarom zouden programmeurs
-geen software kunnen schrijven waarmee je elegante partijen uit kunt
-printen?
-
-Het resultaat is een systeem dat muzikanten bevrijdt van details
-betreffende layout zodat ze zich kunnen concentreren op het maken van
-muziek. LilyPond werkt met hen samen om partijen te maken van
-publicatiekwalteit, volgens de beste tratities van klassieke
-muziekgravure.
+De inspiratie voor LilyPond ontstond toen twee muzikanten
+meer wilden dan de ontzielde aanblik van met de computer
+geprinte bladmuziek. Muzikanten lezen het liefst mooie
+muziek dus waarom zouden programmeurs geen software kunnen
+schrijven waarmee je elegante partijen af kunt drukken?
+
+Het resultaat is een systeem dat muzikanten bevrijdt van
+layout-details zodat ze zich kunnen concentreren op het
+maken van muziek. LilyPond werkt met hen samen om partijen
+te maken van publicatiekwalteit, volgens de beste tratities
+van klassieke muziekgravure.
@divEnd
@divClass{column-left-top}
-@subheading Why use LilyPond?
+@subheading Waarom LilyPond gebruiken?
@itemize
@item
@ref{Achtergrond}: Onze berekende esthetiek.
+@end itemize
@divEnd
@itemize
@item
-@ref{Tekstinvoer}: Jullie schrijven muziek als @emph{tekst}?!
+@ref{Tekst invoer}: Jullie schrijven muziek als @emph{tekst}?!
+
+@item
+@ref{Eenvoudiger bewerken}: Andere manieren van werken met LilyPond.
@end itemize
@divEnd
* Achtergrond:: Computational aesthetics.
* Producties:: Real-life use of LilyPond.
* Gebruikerservaringen:: What do people say about it?
-* Tekstinvoer:: You write music as text?!
+* Tekst invoer:: You write music as text?!
* Eenvoudiger bewerken:: Other ways of working with LilyPond.
@end menu
@divEnd
@unnumberedsec Functies
@translationof Features
-@untranslated
-
-@subheading Why switch to LilyPond?
+@subheading Waarom overstappen op LilyPond?
-@subsubheading Excellent classical engraving
+@subsubheading Uitmuntende klassieke muziekgravure
@imageFloat{flat-design,png,right}
Met LilyPond produceren muzikanten elegante bladmuziek die
-goed te lezen is. De community van ontwikkelaars heeft
+gemakkelijk leest. De community van ontwikkelaars heeft
duizenden uren geïnvesteerd in het ontwikkelen van krachtige
muziek-graveer software die in prachtig gegraveerde muziek
-resulteert. Alle stylistische instellingen in LilyPond,
-font designs en algoritmes zijn geïnspireerd door de beste
-hand gegraveerde muziek.
-LilyPond uitvoer heeft detzelfde krachtige, uitgebalanceerde
-en elegante aanblik als de best gegraveerde klassieke
-partituren. Dit wordt verder uitgewerkt in ons @ref{Essay}.
-
-@subsubheading Less fiddling
-
-Spendeer minder tijd aan het prutsen met het resultaat; LilyPond heeft
-de formattering direct al goed. Het bepaalt de spatiëring zelf, en
-breekt regels en pagina's af voor een dichte en gelijkmatige layout.
-Botsingen tussen liedteksten, noten, en akkoorden worden opelost en
-hellingen van boogjes en waardestrepen zijn automatisch!
-
-
-@subsubheading Text-based input
-@subsubheading Accessibility
-@subsubheading Mix music and text
-@subsubheading Free software
-@subsubheading Extensible design
-@subsubheading Excellent support
-@subheading Where now?
+resulteert. Alle stijlinstellingen, het speciaal ontworpen
+muziekfont en algoritmes zijn geïnspireerd op de mooiste
+handgegraveerde bladmuziek. De LilyPond uitvoer ziet er net
+zo krachtig en harmonisch uit als de best gegraveerde
+klassieke partituren. Dit wordt verder uitgewerkt in ons
+@ref{Essay}.
+
+@subsubheading Minder gepriegel
+
+Spendeer minder tijd aan het prutsen met het resultaat;
+LilyPond verzint zelf de beste layout. Het bepaalt de
+spatiëring en het afbreken van regels en pagina's, zodat een
+strakke en regelmatige layout ontstaat. Het voorkomt
+botsingen tussen liedteksten, noten en akkoorden en plaatst
+legatobogen en waardestrepen automatisch!
+
+@subsubheading Tekstgebaseerde invoer
+
+LilyPond werkt met ASCII invoer die je kunt aanleveren met
+jouw favoriete tekst editor, snel en comfortabel. De invoer
+bevat alle informatie, dus het onthouden van ingewikkelde
+reeksen commando's is niet nodig: bewaar eenvoudigweg je
+invoer bestand op en je kunt alles later raadplegen.
+
+@subsubheading Toegangkelijkheid
+
+Tekst-gebaseerde invoer maakt het schrijven van partituren
+ook mogelijk voor gebruikers met ernstige lichamelijke
+beperkingen. Gebruikers met motorische beperkingen die niet
+kunnen typen of een muis kunnen besturen, kunnen
+spraakherkennings software gebruiken om LilyPond bestanden
+te bewerken. Zelfs blinde gebruikers kunnen voorlees
+software gebruiken voor het schrijven van LilyPond bestanden
+-- een onmogelijke taak in grafisch-gebaseerde
+muziekprogramma's.
+
+
+@subsubheading Combineer muziek en tekst
+
+@imageFloat{lilypond-book,png,right}
+
+Voeg muziekfragmenten aan teksten toe zonder het knippen en
+plakken van plaatjes. Je kunt naadloos bladmuziek in
+@LaTeX{} of HTML integreren, of muziek aan OpenOffice.org
+toevoegen met OOoLilyPond.
+
+
+
+@subsubheading Vrije software
+
+LilyPond kan kostenloos worden gedownload! Ja hoor - het is
+gratis. Je kunt het downloaden van de downloadpagina.
+
+Bovendien is het ook vrije software. Wat betekent dat je de
+broncode erbij krijgt, plus toestemming om deze te
+veranderen en te kopiëren. Dus als je je ergert aan een
+fout, of als er iets in het programma ontbreekt, kun je het
+zelf oplossen of iemand anders inhuren om het voor je te
+doen.
+
+@subsubheading Uitbreidbaar ontwerp
+
+Alle instellingen kunnen worden aangepast aan je eigen
+persoonlijke typografische voorkeuren. Als dat niet
+voldoende is, bestaat er nog altijd de ingebouwde
+scriptingtaal, een dialect van de krachtige programmeertaal
+LISP, waarmee je desnoods elk detail kunt
+veranderen. Instellingen, variabelen en functies zijn
+allemaal beschreven in de uitvoerige referentiehandleiding
+van het programma.
+
+
+@subsubheading Uitstekende ondersteuning
+
+LilyPond werkt op alle bekende besturingssystemen:
+GNU/Linux, MacOS X, en Windows. Er is een zeer uitgebreide
+handleiding met honderden voorbeeldbestandjes. Er is een
+actieve gebruikersgroep die antwoorden geeft op de
+lilypond-user mailing list, terwijl het ontwikkelingsteam
+ervoor zorgt dat problemen snel worden opgelost.
+
+
+
+@divClass{column-center-bottom}
+@subheading En nu?
+
+Nog steeds niet overtuigd? Bekijk dan maar eens enkele
+specifieke @ref{Voorbeelden}. Heb je al besloten LilyPond
+te gaan proberen, lees dan eerst over onze
+@ref{Tekst invoer}.
+@divEnd
+
@node Voorbeelden
@unnumberedsec Voorbeelden
@translationof Examples
-@untranslated
-@subsubheading Classical Music
-@subsubheading Complex Notation
-@subsubheading Early Music
-@subsubheading Modern Music
-@subsubheading Efficient, flexible creation of performance materials
-@subsubheading Tablature
-@subsubheading Schenker Graphs
-@subsubheading Vocal Music
-@subsubheading Educational Applications
-@subsubheading Popular Music
-@subsubheading Large Projects
-@subheading Where now?
+LilyPond is een krachtig en flexibel gereedschap voor
+uiteenlopende muziekgraveertaken. Loop ter inspiratie door
+onze gallerij met voorbeelden!
+
+@newsItem
+@subsubheading Klassieke Muziek
+
+Dit orgelwerk van J.S. Bach is een typisch LilyPond project.
+
+@exampleImage{bach-bwv610}
+@newsEnd
+
+@newsItem
+@subsubheading Ingewikkelde Muzieknotatie
+
+Dit voorbeeld uit @emph{Goyescas} van Enrique Granados laat
+voortgezette typesetting functies zien, zoals waardestrepen
+met knie, stokken tussen notenbalken en
+melodie-volglijntjes.
+
+@exampleImage{granados}
+@newsEnd
+
+@newsItem
+@subsubheading Vroege Muziek
+
+LilyPond heeft ook ondersteuning voor verscheidene
+verouderde notatievormen zoals dit Gregoriaans liedfragment.
+
+@exampleImage{ancient-headword}
+@newsEnd
+
+@newsItem
+@subsubheading Moderne Muziek
+
+Hedendaagse componisten vinden dat LilyPond zich goed leent
+voor het tonen van ongebruikelijke notatie. Hier is een
+fragment uit Trevor Bača's @emph{Čáry}, voor solo bas fluit.
+
+@exampleImage{cary}
+@newsEnd
+
+
+@newsItem
+@subsubheading Efficiënte, flexibele creatie partijen voor uitvoerenden
+
+Vanuit één en dezelfde broncode kunnen allerlei soorten
+partijen worden gemaakt. Dit is een fragment uit
+@uref{http://nicolas.sceaux.free.fr/, Nicolas Sceaux's}
+gravure van Handels @emph{Giulio Cesare}, als volledige
+partituur, piano-zang reductie, en een vioolpartij.
+
+@exampleImage{sesto-full}
+
+@exampleImage{sesto-piano}
+
+@exampleImage{sesto-violin}
+
+@newsEnd
+
+@newsItem
+@subsubheading Tablatuur
+
+LilyPond ondersteunt tablatuur notatie die aangepast kan
+worden voor elk intrument dat van tablatuur kan spelen.
+De tablatuurbalk wordt automatisch gegenereerd uit de
+noten die voor de vijf-lijns notenbalk zijn ingevoerd.
+
+@exampleImage{tab-example}
+@newsEnd
+
+@newsItem
+@subsubheading Schenker Diagrammen
+
+De standaard uitvoer kan ingrijpend worden veranderd. Hier
+heeft iemand een indrukwekkende Schenker analyse gemaakt.
+
+@exampleImage{bach-schenker}
+@newsEnd
+
+@newsItem
+@subsubheading Vocale Muziek
+
+LilyPond blinkt uit in alle soorten vocale muziek, van
+psalmen en gezangen tot opera. Hier is een middeleeuws
+motet met enigszins ongebruikelijke voorwaarden. De tenor
+stem is in een andere maatsoort genoteerd dan de anderen,
+maar moet uitgelijnd zijn als ware het dezelfde maatsoort.
+LilyPond doet dit bijzonder elegant. Let ook op de incipits
+met sleutels in de Vaticana stijl, de doorgestreepte stokken
+die gepliceerde noten aangeven en de ligatuur haken boven
+bepaalde groepen noten.
+
+@exampleImage{aucun-snippet}
+@newsEnd
+
+@newsItem
+@subsubheading Educatieve Toepassingen
+
+LilyPond is ook perfect geschikt voor educatieve doeleinden.
+Hier is een voorbeeld van een eenvoudige contrapunt oefening.
+
+@exampleImage{theory}
+@newsEnd
+
+@newsItem
+@subsubheading Populaire Muziek
+
+Het is eenvoudig om pop lead sheets met melodie, songtekst,
+accoordnamen, en fretdiagrammen te maken. In dit voorbeeld
+zie je enkele van de voorgedefiniëerde fretdiagrammen, maar
+ze kunnen ook ingrijpend aangepast worden voor vrijwel elke
+andere situatie.
+
+@exampleImage{chart}
+@newsEnd
+
+@newsItem
+@subsubheading Grote Projecten
+
+LilyPond is uitstekend voor grote projecten zoals opera's of
+werken voor groot symfonie orkest. Daarnaast levert de
+tekst-gebaseerde invoer een grotere toegankelijkheid -- dit
+voorbeeld is een bijdrage van Hu Haipeng, een blinde
+componist.
+
+@exampleImage{orchestra}
+@newsEnd
+
+
+@divClass{column-center-bottom}
+@subheading En nu?
+
+Nog steeds niet overtuigd? LilyPond is Vrije Software, die
+jou @ref{Vrijheid} geeft. Heb je al besloten LilyPond te
+gaan proberen, lees dan eerst over onze @ref{Tekst invoer}.
+@divEnd
@node Vrijheid
@unnumberedsec Vrijheid
@subsubheading Paul Davis, developer of @uref{http://jackaudio.org/, JACK} and @uref{http://www.ardour.org/, Ardour}
@subheading Where now?
-@node Tekstinvoer
-@unnumberedsec Tekstinvoer
+@node Tekst invoer
+@unnumberedsec Tekst invoer
@translationof Text input
@untranslated
LilyPond runs on all popular platforms: GNU/Linux, MacOS X, and
Windows. LilyPond comes with extensive documentation and hundreds
of example files. There is an active user community answering
-questions on the Lilypond user mailing list, while the development
+questions on the lilypond-user mailing list, while the development
team makes sure that problems are solved quickly.
@node Examples
@unnumberedsec Examples
-Lilypond is a powerful and flexible tool for engraving tasks of
+LilyPond is a powerful and flexible tool for engraving tasks of
all kinds. Please browse our gallery of examples and be inspired!
@ignore
Here is a passage from Franz Liszt's solo piano transcription
of the Overture to Wagner's @emph{Tannhäuser}. The spacing
-in this example was all performed by Lilypond's formatting
+in this example was all performed by LilyPond's formatting
algorithms, without tweaks of any kind. It
handles cross-staff beaming gracefully and puts the system brace
perfectly around all three staves.
@subsubheading Classical Music
This organ work by J.S. Bach is a fairly typical engraving project
-in Lilypond.
+in LilyPond.
@exampleImage{bach-bwv610}
@newsEnd
@newsItem
@subsubheading Early Music
-Lilypond also supports various types of ancient notation, such
+LilyPond also supports various types of ancient notation, such
as this passage of Gregorian chant.
@exampleImage{ancient-headword}
@newsItem
@subsubheading Modern Music
-Contemporary composers find Lilypond well-suited to displaying
+Contemporary composers find LilyPond well-suited to displaying
unusual notation. Here is an excerpt from Trevor Bača's
@emph{Čáry}, for unaccompanied bass flute.
@newsItem
@subsubheading Tablature
-Lilypond supports tablature notation, which can be customized to
+LilyPond supports tablature notation, which can be customized to
suit any instrument that reads from tablature. The tablature
staff is generated automatically from notes entered for the 5-line
staff.
@newsItem
@subsubheading Vocal Music
-Lilypond is excellent for vocal music of all kinds, from sacred
+LilyPond is excellent for vocal music of all kinds, from sacred
hymns to opera. Here is a medieval motet with slightly unusual
requirements. The tenor voice is written in a different meter
than the others, but must line up as if it were in the same meter.
-Lilypond handles this most elegantly. Note also the incipits with
+LilyPond handles this most elegantly. Note also the incipits with
Vaticana style clefs, the slashed stems indicating plicated notes,
and the ligature braces above certain groups of notes.
@newsItem
@subsubheading Educational Applications
-Lilypond is perfectly suited for educational purposes as well.
+LilyPond is perfectly suited for educational purposes as well.
Here is an example of a simple counterpoint exercise.
@exampleImage{theory}
@newsItem
@subsubheading Large Projects
-Lilypond is excellent for large projects like operas or works for
+LilyPond is excellent for large projects like operas or works for
full symphony orchestra, as well. In addition, the text-based
input provides greater accessibility -- this example was
contributed by Hu Haipeng, a blind composer.
@divClass{column-left-top}
@subheading Concerts
-Lilypond engravings have been used for performances around the world.
+LilyPond engravings have been used for performances around the world.
Some highlights:
@divClass{keep-bullets}
@qq{[..after the first orchestra rehearsal] I got numerous
compliments about the quality of the scores. Even more
-importantly, while Lilypond provides numerous hacks to improve the
+importantly, while LilyPond provides numerous hacks to improve the
way its scores look, what the orchestra got from me is basically
the raw, untouched output.}
@divEnd
@qq{thanks and kudos to the development team for their incredible
work. I've never seen anything approaching the output that I get
-from Lilypond -- I'm totally confident that my music publishing
+from LilyPond -- I'm totally confident that my music publishing
needs will be fulfilled beyond my expectations using this great
-application. [..] basically untweaked Lilypond output [..] looks
+application. [..] basically untweaked LilyPond output [..] looks
better than most recent @q{professional} publications I've compared
it to (q.v., just about any Warner Bros. score, and even many of
the most recent by @q{the old houses}). [..]}
@divClass{testimonial-item}
@subsubheading Chris Cannam, lead programmer of the @uref{http://www.rosegardenmusic.com/, RoseGarden} project
-@qq{Lilypond is obviously the zillion-ton gorilla [of great music
+@qq{LilyPond is obviously the zillion-ton gorilla [of great music
typesetting].}
@divEnd
@divClass{testimonial-item}
@subsubheading David Bobroff, Bass Trombone, Iceland Symphony Orchestra
-@qq{I think Lilypond is great [..] The more I learn about LilyPond
+@qq{I think LilyPond is great [..] The more I learn about LilyPond
the more I like it!}
@divEnd
many different computer languages. Emacs is a highly extensible
editor and can be used as an Integrated Development Environment.
There is a @q{lilypond mode} which supplies the language
-definitions for working with Lilypond source files.
+definitions for working with LilyPond source files.
@uref{http://www.vim.org}
@newsItem
@subsubheading lilypond.org日本語訳 (lilypond.org Japanese translation). @emph{2008年4月8日 (April 4, 2008)}
-Lilypond.orgのいくつかのページの日本語訳が出来ました。
+lilypond.orgのいくつかのページの日本語訳が出来ました。
@newsEnd
graphics.
@*
Author Kris Shaffer remarks
-“GNU Lilypond generates beautiful graphics that make commercial
+“GNU LilyPond generates beautiful graphics that make commercial
alternatives seem second-rate.”
This article is now available @uref{http://www.linuxjournal.com/article/8583,on-line}.
@newsEnd
@newsItem
@subsubheading February 26, 2005
-The @uref{http://lsr.dsi.unimi.it/,Lilypond Snippet
-Repository (LSR)} is a searchable database of Lilypond code
+The @uref{http://lsr.dsi.unimi.it/,LilyPond Snippet
+Repository (LSR)} is a searchable database of LilyPond code
snippets. You can add snippets too, so join the LSR project, and
-contribute creative ideas for using Lilypond.
+contribute creative ideas for using LilyPond.
@newsEnd
@newsItem
@subsubheading October 29, 2004
-2.3.25 is the final release candidate for Lilypond 2.4.
+2.3.25 is the final release candidate for LilyPond 2.4.
Werner has been overhauling the TeX macros and
lilypond-book. In addition, this release contains an
important fix for raggedbottom page-layout.
@newsItem
@subsubheading July 23, 2004
-Lilypond 2.3.8 fixes a few minor bugs in the new slur code,
+LilyPond 2.3.8 fixes a few minor bugs in the new slur code,
and has rewritten support for ledger lines. Now, in tight
situations, ledger lines will be shortened so they stay
separate. This also required a cleanup of the Ambitus
if (!note_events_.size ())
return ;
+ // Ugh -- copied from tab-note-heads-engraver; need to resolve
+ vsize j = 0;
+
+ vector<Stream_event *> string_events;
+
+ for (vsize i = 0; i < note_events_.size (); i++)
+ {
+
+ Stream_event *event = note_events_[i];
+
+ Stream_event *tabstring_event = 0;
+
+ /*
+ For notes inside a chord construct, string indications are
+ stored as articulations on the note, so we check through
+ the notes
+ */
+ for (SCM s = event->get_property ("articulations");
+ !tabstring_event && scm_is_pair (s); s = scm_cdr (s))
+ {
+ Stream_event *art = unsmob_stream_event (scm_car (s));
+
+ if (art->in_event_class ("string-number-event"))
+ tabstring_event = art;
+ }
+
+ /*
+ For string indications listed outside a chord construct,
+ a string_number_event is generated, so if there was no string
+ in the articulations, we check for string events outside
+ the chord construct
+ */
+ if (!tabstring_event && j < tabstring_events_.size ())
+ {
+ tabstring_event = tabstring_events_[j];
+ if (j + 1 < tabstring_events_.size ())
+ j++;
+ }
+ if (tabstring_event)
+ string_events.push_back (tabstring_event);
+ }
+ // end of copied code
+
fret_board_ = make_item ("FretBoard", note_events_[0]->self_scm ());
SCM fret_notes = ly_cxx_vector_to_list (note_events_);
SCM proc = get_property ("noteToFretFunction");
scm_call_4 (proc,
context ()->self_scm (),
fret_notes,
- ly_cxx_vector_to_list (tabstring_events_),
+ ly_cxx_vector_to_list (string_events),
fret_board_->self_scm ());
SCM changes = get_property ("chordChanges");
if (to_boolean (changes) && scm_is_pair (last_fret_notes_)
(if (memq (ly:get-option 'backend) music-string-to-path-backends)
(ly:set-option 'music-strings-to-paths #t))
-;; gettext wrapper for guile < 1.7.2
-(if (defined? 'gettext)
- (define-public _ gettext)
- (define-public _ ly:gettext))
+(define-public _ gettext)
(define-public (ly:load x)
(let* ((file-name (%search-load-path x)))
(lily)
)
-;; gettext wrapper for guile < 1.7.2
-(if (defined? 'gettext)
- (define-public _ gettext)
- (define-public (_ x) x))
+(define-public _ gettext)
(define PLATFORM
(string->symbol
'': 'Other languages: '
}
-exclude_pages = [
- 'music-glossary',
- 'snippets',
- 'internals',
- 'contributor'
+exclude_manuals = [
+ '/music-glossary',
+ '/snippets',
+ '/internals',
+ '/contributor'
]
###### Actual program
### helper functions
def addLangExt(filename, lang, ext):
text = filename
- if (not (lang=="")):
+ exclude = 0
+ for dir in exclude_manuals:
+ if (text.find(dir) >= 0):
+ exclude = 1
+ if (not (exclude or (lang==""))):
text += "." + lang
text += "." + ext
return text
### alter links as appropriate
link = getLocalHref(line)
if (link != ""):
- link_base = link.split('.')[0]
+ # quesitonable
if (link.endswith(".html")):
- langlink = addLangExt(link_base, lang, "html")
+ langlink = addLangExt(link[:-5], lang, "html")
line = line.replace(link, langlink)
if (link.endswith(".pdf")):
- langlink = addLangExt(link_base, lang, "pdf")
+ langlink = addLangExt(link[:-4], lang, "pdf")
line = line.replace(link, langlink)
### add language selection footer
if (line.find("<!-- FOOTER -->") >= 0):
(format #f "~a/share/lilypond/~a"
prefix TOPLEVEL-VERSION))))
-
-
-;; gettext wrapper for guile < 1.7.2
-(if (defined? 'gettext)
- (define-public _ gettext)
- (define-public (_ x) x))
+(define-public _ gettext)
(define (show-version port)
(format port "~a (GNU LilyPond) ~a\n" PROGRAM-NAME TOPLEVEL-VERSION))