+1.3.103.jcn1
+============
+
+* Added tex/dynamics.tex and tex/number.tex to ensure feta fonts are fine.
+
+* Fulfilled long standing promise: fixed arpeggios in vicinity of collisions
+(removed a ';' thus re-adding rhythmic-head support :-).
+
+* Removed non-ascii characters from contributed Chord name code.
+
+* Finished rewrite of auto-beam.
+
+* Small bugfix for lilypond-mode.
+
1.3.102.jcn1
============
MAJOR_VERSION=1
MINOR_VERSION=3
PATCH_LEVEL=103
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=jcn1
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
binary-arch: build install
dh_testdir
dh_testroot
- cp -av lilypond-mode.el $(r)/usr/share/emacs/site-lisp/
+ cp -av lilypond-mode.el lilypond-font-lock.el \
+ $(r)/usr/share/emacs/site-lisp/
dh_installdocs DEDICATION NEWS ROADMAP TODO *.txt \
Documentation/pictures/out/*.png \
Documentation/out/*.txt \
--- /dev/null
+
+hairyChord = \context Staff \notes\relative c' <
+ \context Voice=one {
+ \property Voice.Stem \push #'direction = #1
+ \property Voice.NoteColumn \push #'horizontal-shift = #0
+ e4\arpeggio
+ }
+
+ \context Voice=two {
+ \property Voice.Stem \push #'direction = #1
+ \property Voice.NoteColumn \push #'horizontal-shift = #1
+ cis\arpeggio
+ }
+
+ \context Voice=three {
+ \property Voice.Stem \push #'direction = #1
+ \property Voice.NoteColumn \push #'horizontal-shift = #2
+ ais\arpeggio
+ }
+
+ \context Voice=four {
+ \property Voice.Stem \push #'direction = #-1
+ \property Voice.NoteColumn \push #'horizontal-shift = #-1
+ fis\arpeggio
+ }
+>
+
+
+\score{
+ \notes \transpose c'' {
+ \context Voice < fis''-\arpeggio g d a >
+ \context Voice < fis,-\arpeggio g d a >
+ \context Voice < fis''-\arpeggio g d a >
+ \hairyChord
+ }
+ \paper {
+ linewidth = -1.;
+ \translator{
+ \StaffContext
+ connectArpeggios = ##t
+ }
+ }
+}
%sonata-specific settings
\paper {
\translator{\VoiceContext
- beamAutoBegin=0;
- beamAutoEnd_8=#(make-moment 3 8)
- beamAutoEnd_16=#(make-moment 3 8)
- beamAutoEnd_24=#(make-moment 1 8)
- beamAutoEnd_32=#(make-moment 1 8)
+ %% huh?
+ %%beamAutoBegin=0;
+ AutoBeam \push #'(end 1 8 * *) = #(make-moment 3 8)
+ AutoBeam \push #'(end 1 16 * *) = #(make-moment 3 8)
+ AutoBeam \push #'(end 1 24 * *) = #(make-moment 1 8)
+ AutoBeam \push #'(end 1 32 * *) = #(make-moment 1 8)
}
}
sls={\property Voice.forceHorizontalShift="-0.22"}
rs={\property Voice.forceHorizontalShift="0.6"}
srs={\property Voice.forceHorizontalShift="0.22"}
-ab={\property Voice.noAutoBeaming="0"}
-xb={\property Voice.noAutoBeaming="1"}
+ab={\property Voice.noAutoBeaming=##f}
+xb={\property Voice.noAutoBeaming=##t}
%}
slurVerticalDirection = #1
verticalDirection = -1
- beamAutoEnd = #(make-moment 1 2)
+ AutoBeam \push (end * * * *) = #(make-moment 1 2)
}
}
\midi {
\time 4/8;
%{
- the default for 4/8 (see ly/auto-beam-settings.ly)
+ the default for 4/8 (see scm/auto-beam.scm)
---- --------
| | | |--|
x| x| x| x| x|
| | | |--|
x| x| x| x| x|
%}
- \property Voice.beamAutoEnd = #(make-moment 2 4)
+ %\property Voice.beamAutoEnd = #(make-moment 2 4)
+ \property Voice.AutoBeam \push #'(end * * * *) = #(make-moment 2 4)
c8 c c c16 c
}
c8 c c c
c16 c c c c c c c
% from here on consider ending beam every 1/4 note
- \property Voice.beamAutoEnd = #(make-moment 1 4)
+ \property Voice.AutoBeam \push #'(end * * * *) = #(make-moment 1 4)
c8 c c c
% manually override autobeam with weird beaming
c8 [c c] c
c8 c c4
r8 c c c
% no autobeaming
- \property Voice.beamAuto = #f
+ \property Voice.beamAuto = ##f
c8 c c c
}
\paper{
\translator{
\VoiceContext
% consider ending beam at every 1/2 note
- beamAutoEnd = "1/2";
+ AutoBeam \push #'(end * * * *) = #(make-moment 1 2)
}
}
}
\paper{
linewidth=80.0\mm;
- \translator { \VoiceContext noAutoBeaming = "1"; }
+ \translator { \VoiceContext noAutoBeaming = ##t; }
\translator { \HaraKiriStaffContext }
\translator { \OrchestralScoreContext skipBars = 1; }
}
% half diminished chords
c:m5-.7 % slashed o = m7b5
-c:9.3-.5- % ø7(pure 9)
+c:9.3-.5- % o/7(pure 9)
% diminished chords
c:m5-.7- % o = diminished seventh chord
\translator {
\VoiceContext
beamHeight = ##f
- beamAutoBegin= #(make-moment 0 1)
+ AutoBeam \push (begin * * * *) = #(make-moment 0 1)
textEmptyDimension = ##t
}
}
\translator {
\VoiceContext
beamHeight = ##f
- beamAutoBegin= #(make-moment 0 1)
+ AutoBeam \push (begin * * * *) = #(make-moment 0 1)
textEmptyDimension = ##t
}
}
stems_.push (info.elem_l_);
}
- else
-
- /*
- We can't catch local key items from Voice context, but let's leave
- it here in case someone moves this stuff around. */
- if (Rhythmic_head::has_interface (info.elem_l_)
- || Local_key_item::has_interface (info.elem_l_))
+ /*
+ We can't catch local key items (accidentals) from Voice context,
+ see Local_key_engraver
+ */
+ else if (Rhythmic_head::has_interface (info.elem_l_))
{
supports_.push (info.elem_l_);
}
arpeggio_ = new Item (get_property ("Arpeggio"));
arpeggio_->set_parent (stems_[0], Y_AXIS);
- // Staff_symbol_referencer::set_interface (arpeggio_);
-
for (int i = 0; i < stems_.size (); i++)
{
Pointer_group_interface::add_element (arpeggio_, "stems", stems_[i]);
- //Side_position::add_support (arpeggio_, stems_[i]);
}
for (int i = 0; i < supports_.size (); i++)
{
- ;//Side_position::add_support (arpeggio_, supports_[i]);
+ Side_position::add_support (arpeggio_, supports_[i]);
}
announce_element (arpeggio_, arpeggio_req_);
}
SCM type = gh_list (gh_int2scm (test_mom.num_i ()),
gh_int2scm (test_mom.den_i ()), SCM_UNDEFINED);
- // fixme
- SCM settings = scm_eval2 (ly_symbol2scm ("auto-beam-settings"), SCM_EOL);
+ SCM settings = get_property ("AutoBeam");
/*
Determine end moment for auto beaming (and begin, mostly 0==anywhere)
*/
-
- //
- //
- // FIXME: arg: why all these guesses in reverse order?
- //
- //
-
-
/*
first guess: begin beam at any position
*/
{
/*
Hmm. Which one has to be on the left?
+
+ On which left, code or paper?
+
+ (Arpeggios are engraved left of accidentals, of course.)
*/
for (int i=0; i < arpeggios_.size (); i++)
Side_position::add_support (arpeggios_[i], key_item_p_);
*/
#include "staff-symbol-referencer.hh"
#include "note-head.hh"
-#include "pitch-squash-engraver.hh"
#include "rhythmic-head.hh"
#include "engraver.hh"
;;; Inspired on auctex
-(load-file "lilypond-font-lock.el")
+(load-library "lilypond-font-lock")
(require 'easymenu)
(require 'compile)
;;;
-;;; auto-beam.scm -- Auto-beam settings
+;;; auto-beam.scm -- Auto-beam-engraver settings
;;;
;;; source file of the GNU LilyPond music typesetter
;;;
;;; (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
-;;; setup for auto-beam engraver
-;;;
-;;; specify generic beam end times
+;;; specify generic beam begin and end times
;;; format:
;;;
-;;; [time-signature]'beamAutoEnd'[duration]
+;;; function shortest-duration-in-beam time-signature
;;;
;;; where
;;;
-;;; time-signature = 'time'[numerator]'_'denominator; eg: 3_4
-;;; duration = [numerator]'_'denominator; eg: 3_8, _16
+;;; function = begin or end
+;;; shortest-duration-in-beam = numerator denominator; eg: 1 16
+;;; time-signature = numerator denominator, eg: 4 4
;;;
+;;; unspecified or wildcard entries for duration or time-signature
+;;; are given by * *
-;;; in 3/2 time:
-;;; end beams each 1/2 note
-;;; end beams with 16th notes each 1/4 note
-;;; end beams with 32th notes each 1/8 note
-
+;;; maybe do: '(end shortest-1 16 time-3 4) ?
-;;;
-;;;UGH UGH.
-;;;
-;;;Fixme: should use an alist
-;;;
-;;;autoBeamSettings = (list
-;;; (cons (list (make-moment MEASURE) TIME-SIGNATURE) (make-moment INTERVAL)
-;;; ..
-;;;
-;;; )
-;;;
-;;;
+;;; in 3 2 time:
+;;; end beams each 1 2 note
+;;; end beams with 16th notes each 1 4 note
+;;; end beams with 32th notes each 1 8 note
(define auto-beam-settings
- (list
`(
((end * * 3 2) . ,(make-moment 1 2))
((end 1 16 3 2) . ,(make-moment 1 4))
((end * * 3 8) . ,(make-moment 3 8))
;; in common time:
- ;; end beams each 1/2 note
- ;; end beams with 32th notes each 1/8 note
- ;; end beams with 1/8 triplets each 1/4 note
+ ;; end beams each 1 2 note
+ ;; end beams with 32th notes each 1 8 note
+ ;; end beams with 1 8 triplets each 1 4 note
((end * * 4 4) . ,(make-moment 1 2))
((end 1 12 4 4) . ,(make-moment 1 4))
((end * * 12 8) . ,(make-moment 3 8))
((end 1 16 12 8) . ,(make-moment 3 8))
((end 1 32 12 8) . ,(make-moment 1 8))
- )))
+ (meta . ,(element-description "AutoBeam"))
+ ))
;;; Users may override in most cases, simply by issuing
;;;
-;;; ;;; from here on consider ending beam every 1/4 note
-;;; \property Voice.beamAutoend1_1 = (make-moment 1 4)
+;;; % from here on consider ending beam every 1 4 note
+;;; \property Voice.AutoBeam \push #'(end * * * *) = #(make-moment 1 4)
;;;
-;;; ;;; no autobeaming
-;;; \property Voice.beamAuto = f
+;;; % no autobeaming
+;;; \property Voice.beamAuto = ##f
;;;
-;;;or, more globally, by doing:
+;;; or, more globally, by doing:
;;;
;;; \paper{
;;; \translator{
;;; \VoiceContext
-;;; ;;; consider ending beam at every 1/2 note
-;;; beamAutoend1_1 = (make-moment 1 2)
+;;; % consider ending beam at every 1 2 note
+;;; AutoBeam \push #'(end * * * *) = #(make-moment 1 2)
;;; }
;;; }
;;;
-;;; see also input/test/auto-beam-override.ly
+;;; see also input test auto-beam-override.ly
;; See input/test/american-chords.ly
;;
;; James Hammons, <jlhamm@pacificnet.net>
+;;
+
+;; DONT use non-ascii characters, even if ``it works'' in Windows
(define chord::names-alist-american '())
(set! chord::names-alist-american
)
chord::names-alist-american))
-;; Jazz chords, by Atte André Jensen <atte@post.com>
+;; Jazz chords, by Atte Andr'e Jensen <atte@post.com>
;; NBs: This uses the american list as a base.
;; Some defs take up more than one line,
;; be carefull when messing with ;'s!!
;;
;;
;;
+;; DONT use non-ascii characters, even if ``it works'' in Windows
+
(define chord::names-alist-jazz '())
(set! chord::names-alist-jazz
(append
;; diminished chord(s)
; diminished seventh chord = o
- ;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (((raise . 0.8)"o"))); works, but "o" is a little big
- (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("°")))
+
+
+ ;; DONT use non-ascii characters, even if ``it works'' in Windows
+
+ ;;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (((raise . 0.8)"o"))); works, but "o" is a little big
+ (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . ((raise . 0.8) (size . -2) ("o")))
;; half diminshed chords
; half diminished seventh chord = slashed o
- (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (((raise . 0.8)"ø"))); works, but "ø" is a little big
+ (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (((raise . 0.8)"/o")))
; half diminished seventh chord with major 9 = slashed o cancelation 9
(((0 . 0) (2 . -1) (4 . -1) (6 . -1) (1 . 0)) . (
- ((raise . 0.8)"ø(")
+ ((raise . 0.8)"/o(")
((raise . 0.3)(music (named ("accidentals-0"))))
- ((raise . 0.8)"9)"))); works, but "ø" is a little big
+ ((raise . 0.8)"9)")));
;; Missing jazz chord definitions go here (note new syntax: see american for hints)
(staff-position . 0.0)
(meta . ,(element-description "Arpeggio" arpeggio-interface side-position-interface font-interface))
))
-
- (BarLine . (
+
+ (AutoBeam . ,auto-beam-settings)
+
+ (BarLine . (
(break-align-symbol . Staff_bar)
(glyph . "|")
(break-glyph-function . ,default-break-barline)
if re.search ('\\\\textscript "[^"]* *"[^"]*"', str):
sys.stderr.write ('\nNot smart enough to convert to new \\textscript markup text')
- str = re.sub ('\\textscript +\("[^"]*"\)', '\\textscript #\1', str)
+ str = re.sub ('\\textscript +("[^"]*")', '\\textscript #\\1', str)
return str
conversions.append ((1,3,97), conv, 'ChordName -> ChordNames')
+if 1:
+ def conv (str):
+ str = re.sub ('beamAutoEnd_([0-9]*) *= *(#\\([^)]*\\))', 'AutoBeam \\push #\'(end 1 \\1 * *) = \\2', str)
+ str = re.sub ('beamAutoBegin_([0-9]*) *= *(#\\([^)]*\))', 'AutoBeam \\push #\'(begin 1 \\1 * *) = \\2', str)
+ str = re.sub ('beamAutoEnd *= *(#\\([^)]*\\))', 'AutoBeam \\push #\'(end * * * *) = \\1', str)
+ str = re.sub ('beamAutoBegin *= *(#\\([^)]*\\))', 'AutoBeam \\push #\'(begin * * * *) = \\1', str)
+
+
+ return str
+
+ conversions.append ((1,3,102), conv, 'beamAutoEnd -> AutoBeam \\push (end * * * *)')
+
############################
--- /dev/null
+% dyn.tex
+
+\font\fetaelevenfont=feta-din11
+\font\fetathirteenfont=feta-din13
+\font\fetasixteenfont=feta-din16
+\font\fetatwentyfont=feta-din20
+\font\fetatwentythreefont=feta-din23
+\font\fetatwentysixfont=feta-din26
+
+\def\fetafont{\fetasixteenfont}
+
+\def\test#1{%
+ \hbox {%
+ \vrule height #1pt width 5pt
+ \hbox { pp p mp mf f ff }
+ \vrule height #1pt width 5pt
+ }
+
+}
+
+\def\testa#1{%
+ \hbox{
+ \vrule height #1pt width 5pt
+ \hbox { sf sp sfz rfz }
+ \vrule height #1pt width 5pt
+ }
+
+}
+
+\parindent0mm
+\magnification \magstep 2
+\baselineskip 10mm
+
+\fetaelevenfont \test{11}
+\fetathirteenfont \test{13}
+\fetasixteenfont \test{16}
+\fetatwentyfont \test{20}
+\fetatwentythreefont \test{23}
+\fetatwentysixfont \test{26}
+
+
+\let\test\testa
+\fetaelevenfont \test{11}
+\fetathirteenfont \test{13}
+\fetasixteenfont \test{16}
+\fetatwentyfont \test{20}
+\fetatwentythreefont \test{23}
+\fetatwentysixfont \test{26}
+
+\end
--- /dev/null
+% number.tex
+
+\font\fetaelevenfont=feta-nummer11
+\font\fetathirteenfont=feta-nummer13
+\font\fetasixteenfont=feta-nummer16
+\font\fetatwentyfont=feta-nummer20
+\font\fetatwentythreefont=feta-nummer23
+\font\fetatwentysixfont=feta-nummer26
+
+\def\fetafont{\fetasixteenfont}
+
+\def\test#1{%
+ \hbox {%
+ \vrule height #1pt width 5pt
+ \vbox{44}
+ \vrule height #1pt width 5pt
+ \hfill
+ }
+
+}
+
+\parindent0mm
+\magnification \magstep 2
+\baselineskip 10mm
+
+\fetaelevenfont \test{11}
+\fetathirteenfont \test{13}
+\fetasixteenfont \test{16}
+\fetatwentyfont \test{20}
+\fetatwentythreefont \test{23}
+\fetatwentysixfont \test{26}
+
+\end