2003-07-17 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ * input/test/clef-manual-control.ly: from manual-clef
+
+ * input/test/repeat-shorter-bracket.ly: move from coda-kludge
+
+ * input/test/different-time-signatures.ly: move to poly-metric.ly
+
+ * input/test/hara-kiri*,scales.ly: remove
+
+ * input/test/chord-names-dpnj.ly (efullmusic): remove file (merged
+ with chord-names-jazz.ly)
+
* make/mutopia-rules.make ($(outdir)/%.pdf): use +lilypond.map to
get scalable cm fonts too.
\header {
texidoc = "@cindex Bars Always
-By setting barAlways and defaultBarType, you can
-automatically insert barlines everywhere.
-" }
+
+By setting @code{barAlways} and @code{defaultBarType,} you can automatically insert barlines everywhere."
+
+}
\score {
\header {
texidoc = "@cindex Bar Line Lyric Only
-You can move around Bar_engraver and
-Span_bar_engraver if you want bar lines on lyrics.
+
+You can move around @code{Bar_engraver} and
+@code{Span_bar_engraver} if you want bar lines on lyrics.
" }
\header {
texidoc = "@cindex Auto Beaming Override
-Show how auto-beaming settings can be overridden.
- The auto-beamer will only engrave beams that end when:
+This shows how auto-beaming settings can be overridden.
+
+The auto-beamer will only engrave beams that end when:
@itemize @bullet
@item a rest is encountered
@item
}
+%% TODO: check doc string. -hw
\score{
\notes \relative c''{
\version "1.7.18"
-% similiar to beam-position, but keep this one.
\header{
texidoc="@cindex Beam Position Control
-Controlling beam positions.
+
+Beam positions may be controlled manually, by setting @code{positions} in the @code{Beam} grob.
+
" }
\score {
\context Voice \notes\relative c {
\version "1.7.18"
\header{
texidoc="@cindex Beam Count
+
You can alter the number of stems in a beam. Here we see
two sets of four 32nds joined as if they were 8th notes.
+
" }
fragment = \notes {
- f'32 g a b b a g f
-
\property Voice.autoBeamSettings
\set #'(end * * * *) = #(ly:make-moment 1 4)
f32 g a b b a g f
- f32 g a
- \property Voice.stemRightBeamCount = #1 b
- \property Voice.stemLeftBeamCount = #1 b
- a g f
+ f32 g a b
+ \property Voice.stemRightBeamCount = #1 b
+ \property Voice.stemLeftBeamCount = #1 a
+ g f
}
-\paper { raggedright = ##t}
\score {
\notes\relative c \fragment
\paper { raggedright = ##t}
\score {
- \notes\relative c'' {
+ \notes\relative c'' {\time 3/4
\property Voice.Beam \set #'dir-function = #beam-dir-majority
[c8 g]
\property Voice.Beam \set #'dir-function = #beam-dir-mean
\version "1.7.18"
\header {
texidoc="@cindex Blank Paper
-Blank music paper with clefs.
+
+Blank music paper with clefs. Change the repeat count to get more staves.
+
" }
\score {
\notes {
% \clef violin
\clef bass
- \repeat unfold 9 { c1 \break }
+ \repeat unfold 3 { c1 \break }
}
\paper {
\translator {
You can override the molecule callback to draw a box around
arbitrary grobs.
-TODO: circled molecules.
" }
+++ /dev/null
-\version "1.7.23"
-
-
-\header {
-
-texidoc = " Chord names are generated from a list pitches. The
-functions constructing the names are customisable. This file shows
-Jazz chords. Compare with @file{chords-ignatzek.ly}."
-
-}
-
-chs = \notes \transpose c c'
-{
- <<c e g>>1-"dpn"
- <<c es g>> % m = minor triad
- <<c e gis>>
- <<c es ges>> \break
- <<c e g bes>>
- <<c es g bes>>
- <<c e g b>> % triangle = maj
- <<c es ges beses>>
- <<c es ges b>> \break
- <<c e gis bes>>
- <<c es g b>>
- <<c e gis b>>
- <<c es ges bes>>\break
- <<c e g a>> % 6 = major triad with added sixth
- <<c es g a>> % m6 = minor triad with added sixth
- <<c e g bes d'>>
- <<c es g bes d'>> \break
- <<c es g bes d' f' a' >>
- <<c es g bes d' f' >>
- <<c es ges bes d' >>
- <<c e g bes des' >> \break
- <<c e g bes dis'>>
- <<c e g bes d' f'>>
- <<c e g bes d' fis'>>
- <<c e g bes d' f' a'>>\break
- <<c e g bes d' fis' as'>>
- <<c e gis bes dis'>>
- <<c e g bes dis' fis'>>
- <<c e g bes d' f' as'>>\break
- <<c e g bes des' f' as'>>
- <<c e g bes d' fis'>>
- <<c e g b d'>>
- <<c e g bes d' f' as'>>\break
- <<c e g bes des' f' as'>>
- <<c e g bes des' f' a'>>
- <<c e g b d'>>
- <<c e g b d' f' a'>>\break
- <<c e g b d' fis'>>
- <<c e g bes des' f ' a'>>
- <<c f g>>
- <<c f g bes>>\break
- <<c f g bes d'>>
- <<c e g d'>> % add9
- <<c es g f'>>
-}
-
-efullmusic = \notes
-{
- <<c e gis>>1-\markup { "+" }
- <<c e g b>>-\markup { \normal-size-super
- % \override #'(font-family . math) "N" }
- \override #'(font-family . math) "M" }
- %%c:3.5.7 = \markup { \override #'(font-family . math) "M" }
- %%c:3.5.7 = \markup { \normal-size-super "maj7" }
-
- <<c es ges>>-\markup { \super "o" } % should be $\circ$ ?
- <<c es ges bes>>-\markup { \super \combine "o" "/" }
- <<c es ges beses>>-\markup { \super "o7" }
-}
-
-efull = #(sequential-music-to-chord-exceptions efullmusic #f)
-
-epartialmusic = \notes{
- <<c d>>1-\markup { \normal-size-super "2" }
- <<c es>>-\markup { "m" }
- <<c f>>-\markup { \normal-size-super "sus4" }
- <<c g>>-\markup { \normal-size-super "5" }
-
- %% TODO, partial exceptions
- <<c es f>>-\markup { "m" }-\markup { \normal-size-super "sus4" }
- <<c d es>>-\markup { "m" }-\markup { \normal-size-super "sus2" }
-}
-
-epartial = #(sequential-music-to-chord-exceptions epartialmusic #f)
-
-
-\score{
- <
- \context ChordNames {
-
-%{
- \property ChordNames.chordNameFunction = #double-plus-new-chord->markup
- \property ChordNames.chordNameStyle = #'jazz
-%}
-
- \property ChordNames.majorSevenSymbol = #whiteTriangleMarkup
- \property ChordNames.chordNameSeparator = #(make-simple-markup "/")
- \property ChordNames.chordNameExceptionsFull = #efull
- \property ChordNames.chordNameExceptionsPartial = #epartial
-
- %% FIXME
- %%\property ChordNames.chordNoteNamer = #'step->markup-ignatzek
- %%chordRootNamer = #note-name->markup
- \property ChordNames.chordNameFunction = #jazz-chord-names
-
- \chs
- }
- \context Staff \notes \transpose c c { \chs }
- >
- \paper{
- \translator {
- \ChordNamesContext
- ChordName \override #'word-space = #1
- }
- }
-}
-
texidoc = "@cindex Chord Names German
By setting @code{ChordNames.chordRootNamer}, the root
of the chord may be named with a different function.
+
+@code{\germanChords} gives true german chord-names
+@code{\semiGermanChords} gives semi-german chord-names - - with Bb and
+below keeping the english names
+
+
" }
-scm = \chords { c1/c cis/cis cisis/cisis ces/ces ceses/ceses b/b bis/bis bes/bes beses/beses \bar "||" }
+scm = \chords {
+ c1/c cis/cis
+ % yeah, we get the idea. -hwn
+
+ % cisis/cisis ces/ces ceses/ceses
+ b/b bis/bis bes/bes
+ % beses/beses
+}
\score {
\notes <
- % \germanChords gives true german chord-names
- % \semiGermanChords gives semi-german chord-names -
- % - with Bb and below keeping the english names
- \context ChordNames { \scm \germanChords \scm \semiGermanChords \scm }
- \context Voice { \scm s1*0^"germanChords" \scm s1*0^"semiGermanChords" \scm } >
+ \context ChordNames { \scm }
+ \context ChordNames = CA {
+ \property ChordNames.instrument = #"german"
+ \germanChords \scm }
+ \context ChordNames = CB {
+ \property ChordNames.instrument =#"semi-german"
+ \semiGermanChords \scm }
+ \context Voice { \scm } >
+\paper {
+ raggedright = ##t
+ \translator {\ChordNamesContext \consists Instrument_name_engraver }}
+
}
\context ChordNames \chords{
\repeat volta 2 {
- f1:maj f:maj f:7 bes:7
- c:maj c:maj es es
-
-
+ f1:maj f:7 bes:7
+ c:maj es
}
}
\paper{
--- /dev/null
+\version "1.7.18"
+\header{ texidoc = "
+
+@cindex Clef Manual Control
+
+You can use the clef engraver by using @code{\property} directly.
+@code{\clef} is merely a front-end to this. All the notes in this
+example are central C."
+
+}
+
+\score { \notes {
+ \property Staff.clefGlyph = #"clefs-F"
+ \property Staff.clefPosition = #2
+ c'4
+ \property Staff.clefGlyph = #"clefs-G"
+ c'4
+ \property Staff.clefGlyph = #"clefs-C"
+
+ c'4
+ \property Staff.clefOctavation = #7
+ c'4
+ \property Staff.clefOctavation = #0
+ \property Staff.clefPosition = #0
+ c'4
+ \clef "bass"
+ c'4
+
+}
+ \paper{ raggedright = ##t }
+}
+
+++ /dev/null
-\version "1.7.18"
-% TODO: rethink name and whole file -- possible delete or major
-% changes. See repeat-manual.ly -gp
-\header{
- texidoc="@cindex Coda Kludge"
-}
-%{
-Hi,
- I want to write some music that has the structure:
-
- Intro
- \repeat 4 { Chorus [first-ending] verse }
- fifth-ending final
-
- The obvious:
-
- \repeat 4 { Chorus \alternative{{first-ending}{}} verse}
- \alternative{{}{fifth-ending}}
- final
-
- doesn't work.
-
- And the (logically correct but ugly)
-
- \repeat 4 {Chorus}
- \alternative {{first-ending verse}{fifth ending}}
- final
-
- is very ugly, because the volta bracket keeps going for so
- long.
-
- Peter C
-%}
-
-\score{
- <
- \context Staff \notes\relative c''{
- c c c c
- % coda-klugde: let volta span only one bar
- \property Staff.voltaSpannerDuration = #(ly:make-moment 1 1)
- \repeat "volta" 5 { d d d d }
- \alternative { { e e e e f f f f }
- { g g g g } }
- }
- \context Lyrics \lyrics{
- intro1
- \repeat fold 5 { }
- \alternative {
- { chorus1 one verse1 }
- { chorus1 two verse1 }
- { chorus1 three verse }
- { chorus1 four verse }
- }
- five1
- }
- >
-\paper{raggedright = ##t}
-}
-
-
-%
-
\notes\relative c''{
a1\fff\> \!a-\pp
a\< \!a
-\property Voice.crescendoText = "cresc."
+\property Voice.crescendoText = \markup { \italic \bold "cresc." }
\property Voice.crescendoSpanner = #'dashed-line
a-\mf\< a \!a
a\< \!a
\header {
texidoc = "@cindex Cue Notes
+
Cue notes should be set in smaller type. Cue clefs are
usually not restored explicitly.
" }
#(lambda (beam mult) (* 0.8 (Beam::space_function beam mult)))
r8^"Bsn." c'8 f'8-[ f'8]
-% FIXME: check to see if clef should be cancelled from the cue. IIRC
-% it should be, but I could be wrong. -gp
+% note: the clef should be cancelled from the cue.
+
+% if you want to cancel it in the main part, uncomment the following:
% \property Staff.fontSize\unset
% \property Staff . Clef = \turnOff
+
\clef treble
} >
c'8^"Horn" cis'
+++ /dev/null
-\version "1.7.18"
-% possibly rename to time-signature-multiple ?
-
-% barline spacing disrupts visual rhythm.
-
-%%FIXME
-
-%% #(define nbal (acons '("Staff_bar" "begin-of-note") '(minimum_space 0.0) default-break-align-space-alist)) %% FIXME
-
-\header{ texidoc="@cindex Time Signature Multiple
-You can have multiple time signatures occuring at the same time.
-" }
-
-\score{
- \notes \relative c' <
- \context Staff= AS {
- \property Staff.timeSignatureFraction = #'(3 . 4)
- c4 c c | c c c |
- }
- \context Staff=BS {
- \property Staff.timeSignatureFraction = #'(2 . 4)
- c4 c | c c | c c
- }
- % TODO: make c4. here align with c4 there.
- \context Staff =CS {
- \property Staff.timeSignatureFraction = #'(3 . 8)
- c4. c8 c c c4. c8 c c
- }
- >
-
- \paper{
- raggedright = ##t
- \translator{
- \ScoreContext
-%%FIXME BreakAlignment \override #'space-alist = #nbal
- \remove Timing_engraver
- }
- \translator{
- \StaffContext
- \consists Timing_engraver
- }
- }
-}
-
By inserting the @TeX{} command \embeddedps, you can
insert postscript directly into the output.
-TODO: make molecule-callback to do this.
"
}
+
+%
+%TODO: make molecule-callback to do this.
+%
+
\score {
\notes \relative c'' {
a-#"\\embeddedps{3 4 moveto 5 3 rlineto stroke}"
--- /dev/null
+\version "1.7.18"
+\header { texidoc = "@cindex Scheme Move Notehead
+You can move objects around with scheme. This example shows how to
+move noteheads around. " }
+
+fragment = \notes {
+ \outputproperty #(make-type-checker 'note-head-interface)
+ #'extra-offset = #'(2 . 3)
+ c''2 c
+}
+
+\paper { raggedright = ##t}
+
+\score {
+ \notes\relative c \fragment
+ \paper { }
+}
+
+++ /dev/null
-\version "1.7.19"
-% TODO: check if we really need both hara-kiri-switch.ly and
-% hara-kiri.ly. -gp
-\header { texidoc = "@cindex Hara Kiri Switch
-Some instruments (notably cello and double bass) are alternatively
-written on one and two staves. This is the way to do it: " }
-
-voiceOne = \notes \relative c'' {
- a1 a a
- a2 a2
- a2 a8 a a a
-}
-
-staffOne = \context Staff = one <
- \notes \context Voice=one <
- \voiceOne
- >
->
-
-voiceTwo = \notes \relative c' {
- % we must have a Thread context before we can switch staves
- % in this case, the notes before the switching will do that
- % implicitely
- \context Thread
-
- R1*3
- c2 c2
- \translator Staff=one
- \translator Voice=one
- c2
- c8 c c c
-}
-
-staffTwo = \context Staff = two <
- % notes must go to Staff context: we want to switch Staff translators
- %\notes \context Voice=one <
- \voiceTwo
- %>
->
-
-grandstaff = \context GrandStaff = one <
- \staffOne
- \staffTwo
->
-
-\score{
- \grandstaff
- \paper{
- linewidth=80.0\mm
- raggedright=##t
-
- \translator { \VoiceContext autoBeaming = ##f }
- \translator { \RemoveEmptyStaffContext }
- \translator { \OrchestralScoreContext skipBars = ##t }
- }
-}
-
-
-
+++ /dev/null
-\version "1.7.19"
-% TODO: check if we really need both hara-kiri-switch.ly and
-% hara-kiri.ly. -gp
-\header { texidoc = "@cindex Hara Kiri
-Hara kiri staves disappear when empty. " }
-
-% todo: use partcombine?, junk?
-
-toeterI = \notes\relative c <{
- \property Staff.instrument = #"Toeters"
- \property Staff.instr = #"Ttr." }
- \context Voice = lower { \stemDown s1*6 }
- \context Voice = upper { \stemUp s1*6 }
- \context Voice = together {
-
- c'''4^"toet I" c c c
- d d d d \break
- R1
- \context Voice = upper {
- e4 e e e \break }
- f f f f
- g g g g
-}>
-
-toeterIi = \notes \relative c \context Voice = together {
- c''4^"toet II" c c c
- d d d d
- R1
- \context Voice = lower {
- \stemDown
- e4 e e e
- }
- f f f f
- g g g g
-}
-
-toeters = \context Staff = toeters <
- \toeterI
- \toeterIi
->
-
-zager = \context Staff = zager \notes \relative c'' {
- \clef treble
- \property Staff.instrument = #"Zager"
- \property Staff.instr = #"Zag."
- c4^"zag" d e f
- \property Staff.instr = #"Zag. \\& Zog."
- f e d c
- c d e f
- \property Staff.instr = #"Zag."
- \stemUp
- f e d c
- c d e f
- f e d c
-}
-
-zoger = \context Staff = zoger \notes \relative c'' {
- % Hmm
- \property Staff.HaraKiriVerticalGroup \override
- #'items-worth-living = #'(#t #t)
-
-
- \clef treble
- \property Staff.instrument = #"Zoger"
- \property Staff.instr = #"Zog."
- c4^"zog" d e f
- \skip 1*2
- \translator Staff=zager
- \stemDown
- c2 g2
-
- a4 b c d
- \skip 1*1
-}
-
-zagers = \context GrandStaff <
- \zager
- \zoger
->
-
-\score{
- <
- \context StaffGroup = toeters <
- \toeters
- >
- \context StaffGroup = zagers <
- \zagers
- >
- >
- \paper{
- linewidth = 100.0\mm
- \translator { \RemoveEmptyStaffContext }
-%uh?
- \translator { \OrchestralScoreContext }
-% \translator { \OrchestralPartStaffContext }
- }
-}
-
-
-
-% #(define pieceTagLine "Copyright 2002 (C) Mutopia")
\version "1.7.20"
-% FIXME: since tagline isn't used in creating the webpage, this example
-% doesn't output anything unusual.
+
#(define (my-ly-version)
- (let ((version (ly:version)))
- (list (car version) (cadr version) (caddr version))))
+ (list-head (ly:version) 3))
#(if (not (defined? 'pieceTagLine))
(define pieceTagLine (string-append "Jeremie " (numbers->string (my-ly-version)) " was here")))
-pieceTagLine = #pieceTagLine
\header{
tagline = \pieceTagLine
-texidoc = "@cindex Header If Else
-High level functionality can be accomplished with GUILE. Semantics aren't nice though."
+texidoc = "
+
+High level functionality (eg. conditional defines),
+can be accomplished with GUILE.
+
+This example puts the current version in the tagline via Scheme.
+Since the tagline isn't used in creating the webpage, this example
+doesn't output anything unusual in the collated snippets.
+
+"
}
-\score{ \notes{ c4 }
+\score{ \notes{ c'4 }
\paper {raggedright=##t}
}
+++ /dev/null
-\version "1.7.18"
-% possible rename to clef-manual-control
-\header{ texidoc = "@cindex Clef Manual Control
-You can use the clef engraver by setting \property directly. \clef
-is merely a front-end to this. " }
-
-\score { \notes {
- \property Staff.clefGlyph = #"clefs-F"
- \property Staff.clefPosition = #2
- c'4
- \property Staff.clefGlyph = #"clefs-G"
- c'4
- \property Staff.clefGlyph = #"clefs-C"
-
- c'4
- \property Staff.clefOctavation = #7
- c'4
- \property Staff.clefOctavation = #0
- \property Staff.clefPosition = #0
- c'4
- \clef "bass"
- c'4
-
-}
- \paper{ raggedright = ##t }
-}
-
+++ /dev/null
-\version "1.7.18"
-% possible rename to scheme- or something like that. -gp
-\header { texidoc = "@cindex Scheme Move Mark
-You can move objects around with scheme. This example shows how to
-move marks around. " }
-
-\score{
-\context Staff \notes\relative c''{
- c1
- \context Score {
- \outputproperty #(make-type-checker 'Mark)
- #'extra-offset = #'(-1 . 4)
- }
- \mark A
- d
- \mark \default
- e
-}
-\paper{
- raggedright = ##t
- \translator {
- \ScoreContext
- \consists "Mark_engraver"
- }
-}
-}
-
+++ /dev/null
-\version "1.7.18"
-% possible rename to scheme- or something like that. -gp
-\header { texidoc = "@cindex Scheme Move Notehead
-You can move objects around with scheme. This example shows how to
-move noteheads around. " }
-
-fragment = \notes {
- \outputproperty #(make-type-checker 'note-head-interface)
- #'extra-offset = #'(2 . 3)
- c''2 c
-}
-
-\paper { raggedright = ##t}
-
-\score {
- \notes\relative c \fragment
- \paper { }
-}
-
\version "1.7.18"
-\header { texidoc = "@cindex Poly Metric
-Polymetric music with aligned note values can be written
-by moving the timing engraver to staff context. "
-}
-\score {
+\header{ texidoc="@cindex Time Signature Multiple
+You can have multiple time signatures occuring at the same time.
- \notes\relative c'
- <
- \context Staff = SA
- {
- \time 4/4
- c1 c1 c1
- \bar "|."
- }
- \context Staff= SB {
- \time 3/4
- c2. c2. c2. c2.
- \bar "|."
- }
+This is done by moving the timing engraver to staff context. Also,
+Staff should be given the alias @code{Timing} to make @code{\time}
+command work correctly.
+
+Barlines distort the regular spacing, though.
+
+" }
- >
+\score{
+ \notes \relative c' <
+ \context Staff= AS {
+ \time 3/4
+ c4 c c | c c c |
+ }
+ \context Staff=BS {
+ \time 2/4
+ c4 c | c c | c c
+ }
+ \context Staff =CS {
+ \time 3/8
+ c4. c8 c c c4. c8 c c
+ }
+ >
\paper{
- \translator{ \ScoreContext
- \remove "Timing_engraver" }
- \translator{ \StaffContext
+ raggedright = ##t
+ \translator{
+ \ScoreContext
+ \remove "Timing_engraver"
+ }
+ \translator{
+ \StaffContext
\consists "Timing_engraver"
- \alias Timing }
- raggedright= ##t
+ \alias "Timing"
}
+ }
}
\version "1.7.18"
-\header { texidoc = "@cindex Preset Extent
+\header { texidoc = "
+
+@cindex Preset Extent
+
+
Grob extents may be hard coded using grob properties. This
-requires Grob::preset_extent () function. "
+requires Grob::preset_extent () function.
+
+The lyrics in this example have extent (-10,10) which is why they are
+spaced so widely,
+
+"
+
}
\score {
\context Lyrics \lyrics {
- \property Lyrics . LyricHyphen \set #'extra-offset = #'(0.0 . -5.0)
foo --
\property Lyrics . LyricText \set #'X-extent-callback = #Grob::preset_extent
\property Lyrics . LyricText \set #'X-extent = #'(-10.0 . 10.0)
--- /dev/null
+\version "1.7.18"
+\header{
+ texidoc="
+
+@cindex shorter volta bracket
+
+by setting @code{voltaSpannerDuration}, the length of a volta bracket
+can be shortened.
+
+"
+
+}
+
+
+\score {
+ <
+ \context Staff \notes\relative c''{
+ c c c c
+ % coda-klugde: let volta span only one bar
+ \property Staff.voltaSpannerDuration = #(ly:make-moment 1 1)
+ \repeat "volta" 5 { d d d d }
+ \alternative { { e e e e f f f f }
+ { g g g g } }
+ }
+ \context Lyrics \lyrics{
+ intro1
+ \repeat fold 5 { }
+ \alternative {
+ { chorus1 one verse1 }
+ { chorus1 two verse1 }
+ { chorus1 three verse }
+ { chorus1 four verse }
+ }
+ five1
+ }
+ >
+\paper{raggedright = ##t}
+}
+
+
+%
+
Lilypond (e.g. no staff but retaining the barlines. "
}
-\score { \notes { c4 c4 [ c8 c8 ] }
+\score { \notes { c4 c4 [ c8 c8 ] c2 c2 }
\paper {
\translator { \StaffContext
- \remove Staff_symbol_engraver
+ StaffSymbol \set #'transparent = ##t
\consists Pitch_squash_engraver
\remove Clef_engraver
}
+ raggedright= ##t
}
- \paper{raggedright= ##t}
}
+++ /dev/null
-\version "1.7.18"
-% is this really useful? candidate for long-term delete
-\header {texidoc = "@cindex Scales
-Prints scales. "
-}
-\score {
- \context Voice \notes\relative c {
- % sharp-major
- % c g d a e b fis cis
-
- \key c \major
- c' d e f g a b c
-
- \key g\major
- g a b c d e fis g
-
- \key d\major
- d, e fis g a b cis d
-
- \key a\major
- a b cis d e fis gis a
-
- \key e\major
- e, fis gis a b cis dis e
-
- \key b\major
- b cis dis e fis gis ais b
-
- \key fis\major
- fis, gis ais b cis dis eis fis
-
- \key cis\major
- cis, dis eis fis gis ais bis cis
-
- % sharp-minor
- % a e b fis cis gis dis ais
-
- \key a\minor
- a b c d e f gis a
-
- \key e\minor
- e, fis g a b c dis e
-
- \key b\minor
- b cis d e fis g ais b
-
- \key fis\minor
- fis, gis a b cis d eis fis
-
- \key cis\minor
- cis, dis e fis gis a bis cis
-
- \key gis\minor
- gis ais b cis dis e fisis gis
-
- \key dis\minor
- dis, eis fis gis ais b cisis dis
-
- \key ais\minor
- ais bis cis dis eis fis gisis ais
-
- % flat-major
- % c f bes es as des ges ces
-
- \key f\major
- f, g a bes c d e f
-
- \key bes\major
- bes, c d es f g a bes
-
- \key es\major
- es,, f g as bes c d es
-
- \key as\major
- as, bes c des es f g as
-
- \key des\major
- des,, es f ges as bes c des
-
- \key ges\major
- ges, as bes ces des es f ges
-
- \key ces\major
- ces,, des es fes ges as bes ces
-
- % flat-minor
- % a d g c f bes es as
-
- \key d\minor
- d, e f g a bes cis d
-
- \key g\minor
- g, a bes c d es fis g
-
- \key c\minor
- c,, d es f g as b c
-
- \key f\minor
- f, g as bes c des e f
-
- \key bes\minor
- bes, c des es f ges a bes
-
- \key es\minor
- es,, f ges as bes ces d es
-
- \key as\minor
- as, bes ces des es fes g as
-}
-
- \paper { }
-}
-
\header { texidoc = "@cindex Scheme Interactions
With @code{ly:export}, you can pass of the result of
Scheme expressions as lilypond input. Within a Scheme expression,
-you can use, define or change lilypond variables. "
-}
+you can use, define or change lilypond variables.
+
+In this example, the E-s and D-s are generated using scheme functions,
+and woven together with manually entered C-s
+
+" }
foo = \notes \transpose c c { d''4-. }
bra = \notes \transpose c c { e'4-. }
+
\score {
\context Voice \notes\relative c' {
c4