From 73f4a028169cb04fff860289b85c20acbf483640 Mon Sep 17 00:00:00 2001 From: Rune Zedeler Date: Sun, 11 Mar 2001 23:47:49 +0100 Subject: [PATCH] patch::: 1.3.137.rz1 1.3.137.rz1 =========== * Added nested staffgroups/choirstaffs support * Finished german-chords.ly and moved it to ly/ --- CHANGES | 7 +++++ VERSION | 2 +- input/test/test-german-chords.ly | 14 +++++++++ input/tricks/german-chords.ly | 37 ----------------------- lily/system-start-delimiter-engraver.cc | 8 +++++ ly/engraver.ly | 4 +++ ly/german-chords.ly | 39 +++++++++++++++++++++++++ scm/chord-name.scm | 18 ++++++++---- 8 files changed, 85 insertions(+), 44 deletions(-) create mode 100644 input/test/test-german-chords.ly create mode 100644 ly/german-chords.ly diff --git a/CHANGES b/CHANGES index 17be7833a8..b0e5f71b8b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,10 @@ +1.3.137.rz1 +=========== + +* Added nested staffgroups/choirstaffs support + +* Finished german-chords.ly and moved it to ly/ + 1.3.136.hwn2 ============ diff --git a/VERSION b/VERSION index 5d3452114e..53621fde10 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 PATCH_LEVEL=137 -MY_PATCH_LEVEL= +MY_PATCH_LEVEL=rz1 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/input/test/test-german-chords.ly b/input/test/test-german-chords.ly new file mode 100644 index 0000000000..0df2a1a39d --- /dev/null +++ b/input/test/test-german-chords.ly @@ -0,0 +1,14 @@ +\include "german-chords.ly" +% #(set! german-Bb #t) + +ch = \chords { beses1/+beses bes/+bes b/+b bis/+bis ases/+ases as/+as a/+a ais/+ais fisis/+fisis} + + +\score { + < + \context ChordNames=ch {\ch} + \context Staff=st \chords {\ch} + > + \paper {} +} + diff --git a/input/tricks/german-chords.ly b/input/tricks/german-chords.ly index b04aa71cb8..e69de29bb2 100644 --- a/input/tricks/german-chords.ly +++ b/input/tricks/german-chords.ly @@ -1,37 +0,0 @@ - -% german-chords.ly: -% german/norwegian/danish? - - -#(define (pitch->chord-name-text-banter pitch) - (if (equal? (cdr pitch) '(6 0)) - '("H") - (if (equal? (cdr pitch) '(6 -1)) '("B") - (pitch->text pitch)))) - -#(define (pitch->note-name-text-banter pitch) - (if (equal? (cdr pitch) '(6 -1)) '("b") - (cons - (string-append - (if (equal? (cadr pitch) 6) "h" - (make-string 1 (integer->char (+ (modulo (+ (cadr pitch) 2) 7) 97)))) - (case (caddr pitch) - ((-1) "eses") - ((-1) "es") - ((0) "") - ((1) "is") - ((2) "isis"))) - '()))) - - - -\score { - < - \context ChordNames \chords { b1/+b bes/+bes bis/+bis } - \notes\transpose c'' \chords { b1/+b bes/+bes bis/+bis } - > - \paper { - linewidth = -1; - } -} - diff --git a/lily/system-start-delimiter-engraver.cc b/lily/system-start-delimiter-engraver.cc index 1f4504a733..27ee99dc86 100644 --- a/lily/system-start-delimiter-engraver.cc +++ b/lily/system-start-delimiter-engraver.cc @@ -53,6 +53,14 @@ System_start_delimiter_engraver::acknowledge_grob (Grob_info inf) if (gh_symbol_p (gl) && gl == ly_symbol2scm ("brace") && gh_symbol_p (my_gl) && my_gl == ly_symbol2scm ("bracket")) inf.elem_l_->translate_axis (-1.0, X_AXIS); // ugh + else if (gh_symbol_p (gl) && gl == ly_symbol2scm ("bracket") + && gh_symbol_p (my_gl) && my_gl == ly_symbol2scm ("bracket")) + { + inf.elem_l_->translate_axis ( -0.8, X_AXIS); // ugh + inf.elem_l_->set_grob_property ("arch-height", + gh_double2scm(gh_scm2double(inf.elem_l_->get_grob_property + ("arch-height"))+0.5)); + } } } diff --git a/ly/engraver.ly b/ly/engraver.ly index 91cba44360..2f266e3bef 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -68,6 +68,8 @@ ChoirStaffContext = \translator { \accepts "RhythmicStaff"; \accepts "GrandStaff"; \accepts "PianoStaff"; + \accepts "StaffGroup"; + \accepts "ChoirStaff"; \accepts "Lyrics"; \accepts "ChordNames"; } @@ -245,6 +247,8 @@ StaffGroupContext= \translator { \accepts "RhythmicStaff"; \accepts "GrandStaff"; \accepts "PianoStaff"; + \accepts "StaffGroup"; + \accepts "ChoirStaff"; \accepts "Lyrics"; \accepts "ChordNames"; diff --git a/ly/german-chords.ly b/ly/german-chords.ly new file mode 100644 index 0000000000..e158592b34 --- /dev/null +++ b/ly/german-chords.ly @@ -0,0 +1,39 @@ + +% german-chords.ly: +% german/norwegian/danish? + +% To get Bb instead of B, use +% \include "german-chords.ly" +% #(set! german-Bb #t) + +#(define german-Bb #f) + +#(define (pitch->chord-name-text-banter pitch) + (if (equal? (cdr pitch) '(6 -1)) + (if german-Bb + (cons "B" (accidental->text -1)) + '("B") + ) + (cons + (list-ref '("C" "D" "E" "F" "G" "A" "H") (cadr pitch)) + (accidental->text (caddr pitch)) + ) + ) + ) + + +#(define (pitch->note-name-text-banter pitch) + (if (equal? (cdr pitch) '(6 -1)) + '("b") + (cons + (string-append + (list-ref '("c" "d" "e" "f" "g" "a" "h") (cadr pitch)) + (if (or (equal? (cadr pitch) 2) (equal? (cadr pitch) 5)) + (list-ref '( "ses" "s" "" "is" "isis") (+ 2 (caddr pitch))) + (list-ref '("eses" "es" "" "is" "isis") (+ 2 (caddr pitch))) + ) + ) + '() + ) + ) + ) diff --git a/scm/chord-name.scm b/scm/chord-name.scm index bcdf7aaa1f..5bbb2017e4 100644 --- a/scm/chord-name.scm +++ b/scm/chord-name.scm @@ -253,11 +253,9 @@ (define (pitch->note-name pitch) (cons (cadr pitch) (caddr pitch))) - -(define (pitch->text pitch) - (cons - (make-string 1 (integer->char (+ (modulo (+ (cadr pitch) 2) 7) 65))) - (if (= (caddr pitch) 0) + +(define (accidental->text acc) + (if (= acc 0) '() (list (append '(music) @@ -268,7 +266,15 @@ (list (append '((raise . 0.6)) (list (string-append "accidentals-" - (number->string (caddr pitch))))))))))))))) + (number->string acc)))))))))))) +) + +(define (pitch->text pitch) + (cons + (make-string 1 (integer->char (+ (modulo (+ (cadr pitch) 2) 7) 65))) + (accidental->text (caddr pitch)) + ) +) ;;; Hooks to override chord names and note names, ;;; see input/tricks/german-chords.ly -- 2.39.5