2002-12-24 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ * scm/chord-name.scm: don't export anything from chord module.
+
+ * input/test/american-chords.ly: idem
+
+ * input/test/banter-chords.ly (texidoc): idem
+
+ * input/test/Cc-chords.ly: add breakage notes.
+
* Documentation/user/refman.itely (Text markup): rewrite manual section.
* lily/parser.yy (scalar): allow \markup { } as property value.
@end html
This document describes GNU LilyPond and its input format. The last
-revision of this document was made for LilyPond 1.6.2. It assumes
+revision of this document was made for LilyPond 1.7.10. It assumes
that you already know a little bit about LilyPond input (how to
make an input file, how to create sheet music from that input file,
etc). New users are encouraged to study the tutorial before reading
New features in 1.7 since 1.6
-* Deeper integration of the input language and Scheme. You can now use
+* INPUT
+
+** Text entry is now done in a separate mode, and is more ergonomic
+than the previous Scheme texts.
+
+** Deeper integration of the input language and Scheme. You can now use
LilyPond identifiers in Scheme, and use Scheme expressions instead of
LilyPond identifiers.
-* Music types cleaned up and Schemified.
+** Music types cleaned up and Schemified.
-* New syntax for chords:
+** New syntax for chords:
<< PITCHES >>
-This is in addition to the < MUSICS > syntax for simultaneous music. Combined with this: uniform postfix syntax for articulations:
+This is in addition to the < MUSICS > syntax for simultaneous
+music. Combined with this: uniform postfix syntax for articulations:
c8-[-( d8-]-)
for a beamed slurred pair of eighth notes.
-* Texts on multimeasure rests can be set by the user.
+** User code evaluation during interpreting. Syntax
+
+ \applycontext #SCHEME-FUNCTION
+
+** XML music output.
+
+
+
+* OUTPUT
+
+** Preliminary Sodipodi/SVG output
-* Zigzagged glissandi
-* XML music output.
-* Preliminary Sodipodi/SVG output
+* NOTATION
-* Cluster support. Syntax:
+* Completely rewritten text formatting support. It is implemented in a
+completely modular way.
+
+** Texts on multimeasure rests can be set by the user.
+
+** Zigzagged glissandi
+
+** Cluster support. Syntax:
NOTE-\openCluster
..
NOTE-\closeCluster
-* Beat grouping indications. Syntax:
+** Beat grouping indications. Syntax:
#(set-time-signature 7 8 '(3 2 2))
-* User code evaluation during interpreting. Syntax
-
- \applycontext #SCHEME-FUNCTION
-
-* Nested horizontal brackets for music analysis.
+** Nested horizontal brackets for music analysis.
NOTE-\groupOpen
..
NOTE-\groupClose
+
+
+
New features in 1.6 since 1.4
* Support for figured bass and tablature.
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=7
-PATCH_LEVEL=9
+PATCH_LEVEL=10
MY_PATCH_LEVEL=
# Use the above to send patches: MY_PATCH_LEVEL is always empty for a
\version "1.7.6"
\header {
- texidoc="Jazz chord names, but with lower case names for minor chords"
+ texidoc="Jazz chord names, but with lower case names for minor chords
+
+BROKEN. FIXME.
+"
}
-#(assoc-set! chord::names-alist-jazz
- '((0 . 0) (2 . -1)) '(""))
-#(assoc-set! chord::names-alist-jazz
- '((0 . 0) (2 . -1) (4 . 0) (6 . -1)) '("7"))
+%%%
+%% UGH UH GUG UHGUHGHGH GHG
+% -- this is fucking up global name space.
+%
+% imagine doing
+%
+% lilypond Cc-chords.ly ..other-files-testing-chords...
+%
+% then the other files will get messed up.
+%%
+
+%{
+
+FIXME:
+
+%#(assoc-set! chord::names-alist-jazz
+% '((0 . 0) (2 . -1)) '(""))
+
+%#(assoc-set! chord::names-alist-jazz
+% '((0 . 0) (2 . -1) (4 . 0) (6 . -1)) '("7"))
#(define (pitch->chord-name-text-banter pitch additions)
(let ((name (pitch->text-banter pitch)))
(substring (car name) 1))
(cdr name))
name)))
+%}
+
\score {
<
\version "1.7.6"
\header {
- texidoc = "Chord names in american styles, according to one of our users."
+ texidoc = "Chord names in american styles, according to one of our users.
+
+
+FIXME
+
+"
}
\include "english.ly"
-#(set! chord::names-alist-american
- (append
- '(
- ;; any changes here, see scm/chord-name.scm
- )
- chord::names-alist-american))
+
+
+%%FIXME:
+
+% DON'T do this in the test file, it messes up all other files in the directory.
+
+% #(set! chord::names-alist-american
+% (append
+% '(
+% ;; any changes here, see scm/chord-name.scm
+% )
+% chord::names-alist-american))
scheme = \chords {
c % Major triad
\header{
-enteredby = "jcn"
-copyright = "public domain"
-TestedFeatures = "Banter named chords"
+texidoc = "banter chords
+
+
+FIXME
+
+"
}
% test German (Banter) naming
% eachother. These guile lists are fixed in the guile environment
% when this file has been parsed...
-% {
+%{
+
+
+%% FIXME:
#;(define chord::names-alist-banter '())
#(set! chord::names-alist-banter
(number->string (caddr pitch)))
'(font . "feta")))))))
-% }
+%}
chord = \notes\transpose c' c''\chords{
% dim modifier means: lower all implicit additions
"
-
TODO:
- Use lilypond Pitch objects -- SCM pitch objects lead to
duplication. LilyPond pitch objects force meaningful names
(i.e. (ly:pitch-octave PITCH) )
-
- Pitches are musical objects. The pitches -> markup step should
happen earlier (during interpreting), brew-molecule () should only
-dump reinterpret the markup as a molecule.
-
-
-"
+dump reinterpret the markup as a molecule. " ; "
;; pitch = (octave notename alteration)
;;
;; * doc strings
-(define-public chord::names-alist-banter '())
-(set! chord::names-alist-banter
- (append
+(define chord::names-alist-banter
`(
; C iso C.no3.no5
(((0 . 0)) . ,empty-markup)
. (,line-markup ((,simple-markup "dim")
(,super-markup (,simple-markup "11 ")))))
- )
- chord::names-alist-banter))
+ ))
;;;;;;;;;;
(list (ly:pitch-octave p) (ly:pitch-notename p) (ly:pitch-alteration p))
#f))
-(define-public (chord::name-banter tonic exception-part unmatched-steps
+(define (chord::name-banter tonic exception-part unmatched-steps
bass-and-inversion steps)
(let ((additions (chord::additions unmatched-steps))
(subtractions (chord::subtractions unmatched-steps)))
bass-and-inversion steps)))
+(define chord-module (current-module))
(define (chord::restyle name style)
- (primitive-eval ;; "UGGHGUGHUGHG"
-
+ ;; "UGGHGUGHUGHG"
+ (eval
(string->symbol
(string-append (symbol->string name)
- (symbol->string style)))))
+ (symbol->string style)))
+ chord-module
+ ))
;; this is unintelligible.
;; DONT use non-ascii characters, even if ``it works'' in Windows
-(define-public chord::names-alist-american '())
-(set! chord::names-alist-american
- (append
+(define chord::names-alist-american
+
`(
(((0 . 0)) . ,empty-markup)
(((0 . 0) (2 . 0)) . ,empty-markup)
(((0 . 0) (2 . 0) (4 . 0) (6 . -1) (1 . 0)) . (,simple-markup "9"))
(((0 . 0) (2 . -1) (4 . 0) (6 . -1) (1 . 0)) . (,simple-markup "m9"))
- )
- chord::names-alist-american))
+ ))
;; American style chordnames use no "no",
;; but otherwise very similar to banter for now
`(line-markup ,(map do-one arg-list)))
-(define-public chord::names-alist-jazz '())
-(set! chord::names-alist-jazz
- (append
+(define chord::names-alist-jazz
+ (append
'(
;; major chords
; major sixth chord = 6
(Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
(direction . 1)
(font-family . number)
+ (font-magnification . 0.6)
(font-relative-size . -3)
(padding . 0.1)
(kern . 0.2)
(define (define-origin a b c ) "")
(define (no-origin) "")
-(define my-eval-in-module eval)
-
-(if (or (equal? (minor-version) "4.1")
- (equal? (minor-version) "4")
- (equal? (minor-version) "3.4"))
- (set! my-eval-in-module eval-in-module))
-
(define-public (pdf-output-expression expr port)
- (display (my-eval-in-module expr this-module) port) )
+ (display (eval expr this-module) port) )
; Local Variables:
-(define my-eval-in-module eval)
-
-(if (or (equal? (minor-version) "4.1")
- (equal? (minor-version) "4")
- (equal? (minor-version) "3.4"))
- (set! my-eval-in-module eval-in-module))
(define-public (pdftex-output-expression expr port)
- (display (my-eval-in-module expr this-module) port) )
+ (display (eval expr this-module) port) )
;; no-origin not yet supported by Xdvi
(define (no-origin) "")
-(define my-eval-in-module eval)
-
-(if (or (equal? (minor-version) "4.1")
- (equal? (minor-version) "4")
- (equal? (minor-version) "3.4"))
- (set! my-eval-in-module eval-in-module))
-
(define-public (tex-output-expression expr port)
- (display (my-eval-in-module expr this-module) port )
+ (display (eval expr this-module) port )
)