\include "paper20.ly"
-\version "1.3.93";
+\version "1.3.96";
oden = \lyrics{
O |
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
-\version "1.3.93";
+\version "1.3.96";
one = \notes\relative c{
c'' d e f
indent = 0.0\mm;
linewidth = 100.0\mm;
\translator{
- \ChordNameContext
+ \ChordNamesContext
barAuto = "1";
\consists Bar_engraver;
\consists "Repeat_engraver";
}
}
-\version "1.3.93";
+\version "1.3.96";
* organ staff...
%}
-\version "1.3.93";
+\version "1.3.96";
-\version "1.3.93";
+\version "1.3.96";
ritme = \notes\transpose c'' {
\time 4/4;
-\version "1.3.93";
+\version "1.3.96";
rh=\property Thread.NoteHead \push #'style = #'default
lh=\property Thread.NoteHead \push #'style = #'diamond
http://www.Arkkra.com/doc/star.ps
%}
-\version "1.3.93";
+\version "1.3.96";
% TODO:
%
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
linewidth=-1.0;
}
\midi { }
-}
\ No newline at end of file
+}
+\version "1.3.96"
%{
See scm/chord-names.scm: chord::names-alist-american
James Hammons <jlhamm@pacificnet.net>
chord::names-alist-american))
chord = \notes\transpose c''\chords{
-\property ChordNames.chordNameStyle = "american"
+ \property ChordNames.ChordNames \push #'style = #"american"
c
cs:m
df:m5-
>
\paper
{
- \translator { \ChordNameContext chordNameWordSpace = #1 }
- \translator { \LyricsContext textScriptWordSpace = #0.3 }
+ \translator {
+ \ChordNamesContext
+ ChordNames \push #'word-space = #1
+ }
}
}
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
-\version "1.3.93";
+\version "1.3.96";
\score {
\notes \context PianoStaff <
\context Staff = "up" {
-\version "1.3.80";
+\version "1.3.96";
% bagpipe music.
\header
\translator {
\GraceContext
- basicNoteHeadProperties \push #'font-size = #-2
- basicNoteHeadProperties \push #'font-size = #-2
- basicStemProperties \push #'flag-style = ##f
+ NoteHead \push #'font-size = #-2
+ NoteHead \push #'font-size = #-2
+ Stem \push #'flag-style = ##f
% The following determines the length of stems without beams
% default is between 2.8 and 4.0 depending on the number of flags
- basicStemProperties \push #'length = #6
- basicStemProperties \push #'font-size = #-2
- basicGraceAlignItemProperties \push #'horizontal-space = #1
- basicStemProperties \push #'flag-style = #""
+ Stem \push #'length = #6
+ Stem \push #'font-size = #-2
+ GraceAlignItem \push #'horizontal-space = #1
+ Stem \push #'flag-style = #""
}
\translator { \StaffContext
- basicTimeSignatureProperties \push #'style = #"C4/4"
- basicTimeSignatureProperties \push #'visibility-function = #begin-of-line-visible
+ TimeSignature \push #'style = #"C4/4"
+ TimeSignature \push #'visibility-function = #begin-of-line-visible
}
}
\score {
\notes { \time 6/8; \partial 4;
\property Voice.tieVerticalDirection = \up
- \slurup
+ \slurUp
f4 |
\gg f4 e8 \thrd d4. |
\eg a4.()a4 d8 |
-\version "1.3.93";
+\version "1.3.96";
\header{
enteredby = "jcn";
-\version "1.3.93";
+\version "1.3.96";
onestaff = \context Staff = foo\notes {
\property Staff.instr = instr
-\version "1.3.93";
+\version "1.3.96";
\score {
\context Voice \notes\relative c {
c'1:16
-\version "1.3.93";
+\version "1.3.96";
\score{
\notes\transpose c'{
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
>
}
-\version "1.3.93";
+\version "1.3.96";
linewidth=-1.;
}
}
-\version "1.3.93";
+\version "1.3.96";
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
-\version "1.3.93";
+\version "1.3.96";
\score{
\notes\relative c''{
[g8 c c,]
}
}
-\version "1.3.93";
+\version "1.3.96";
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
linewidth=-1.0;
}
\midi { }
-}
\ No newline at end of file
+}
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
-\version "1.3.93";
+\version "1.3.96";
\score{
\notes\relative c'{
\stemUp
-\version "1.3.93";
+\version "1.3.96";
\score{
\notes\relative c'{
\stemUp
TestedFeatures = "beams and beamflags";
}
-\version "1.3.93";
+\version "1.3.96";
\score{
<
-\version "1.3.93";
+\version "1.3.96";
\score {
\notes \relative c' {
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.3.93";
+\version "1.3.96";
shortlong = \notes{
c4()c( c c |
>
}
-\version "1.3.93";
+\version "1.3.96";
+\version "1.3.96"
chord = \notes\transpose c''\chords{
c1
c:m
>
\paper{
linewidth = -1.0;
- \translator { \ChordNameContext chordNameWordSpace = #1 }
- \translator { \LyricsContext textScriptWordSpace = #0.3 }
+ \translator {
+ \ChordNamesContext
+ ChordNames \push #'word-space = #1
+ }
}
}
}
-\version "1.3.93";
+\version "1.3.96";
-\version "1.3.93";
+\version "1.3.97";
%{
Would this be acceptable/good enough/convenient for entry?
\context ChordNames \scales
\context Staff < \scales \keys >
>
+ \paper{
+ \translator {
+ \ChordNamesContext
+ ChordNames \push #'word-space = #1
+ }
+ }
}
-\version "1.3.93";
+\version "1.3.96";
\score {
\notes{
-\version "1.3.93";
+\version "1.3.96";
\score {
\context Voice \notes\relative c {
copyright = "public domain";
Tested = "test the Collision resolution ";
}
-\version "1.3.93";
+\version "1.3.96";
twovoice = \context Staff \notes <
\context Voice=i { \stemDown c4 d e f g2~ g4 a [c8 d e f] c2| }
-\version "1.3.93";
+\version "1.3.96";
\score {
-\version "1.3.93";
+\version "1.3.96";
\score {
\context Voice \notes\relative c'' {
\time 6/8;
-\version "1.3.93";
+\version "1.3.96";
%{
Would this be acceptable/good enough/convenient for entry?
\paper{
% \paper_as_nine
\translator {
- \ChordNameContext
+ \ChordNamesContext
}
}
}
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
}
-\version "1.3.93";
+\version "1.3.96";
-\version "1.3.93";
+\version "1.3.96";
FontBody= \notes\transpose c''{
\bar "|:";
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.3.93";
+\version "1.3.96";
\include "font-body.ly"
\score{
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.3.93";
+\version "1.3.96";
\include "paper16.ly"
\include "font-body.ly"
gourlay_maxmeasures =5.;
}
}
-\version "1.3.93";
+\version "1.3.96";
-\version "1.3.93";
+\version "1.3.96";
\score {
\context Voice \notes\relative c {
-\version "1.3.93";
+\version "1.3.96";
\score {
\notes \relative c'' \context Voice {
% perhaps the current modifier approach is too simplistic
-\version "1.3.93";
+\version "1.3.96";
gmsus=\notes\relative c \chords{
g1
-\version "1.3.93";
+\version "1.3.96";
%{
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
-\version "1.3.93";
+\version "1.3.96";
zager = \context Staff = zager \notes \relative c'' {
\clef treble;
c1
-\version "1.3.93";
+\version "1.3.96";
voiceOne = \notes \relative c'' {
a1 a a
-\version "1.3.93";
+\version "1.3.96";
toeter_i = \notes\relative c <{
\property Staff.instrument = #"Toeters"
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
/Mats B
%}
-\version "1.3.93";
+\version "1.3.96";
incipit = \notes\relative c'{
<b1 fis' b d>
-%
-% Make sure the correct msamxx.tfm is where lily can find it
-% (ie cwd or lily's tfm dir).
-%
-% For normal (20pt) paper, do
-%
-% cp locate `msam9.tfm` $LILYPONDPREFIX/tfm
-%
+\version "1.3.96"
+%% This should only be necessary if your kpathsea setup is broken
+%%
+%% Make sure the correct msamxx.tfm is where lily can find it
+%% (ie cwd or lily's tfm dir).
+%%
+%% For normal (20pt) paper, do
+%%
+%% cp locate `msam9.tfm` $LILYPONDPREFIX/tfm
#(set! chord::names-alist-american
(append
;; any changes here, see scm/chord-names.scm
- ;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("o7" (type . "super"))))
+ ;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (super "o7"))
;jazz: the delta, see jazz-chords.ly
- (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("N" (type . "super") (style . "msam") (size . -3))))
+ (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (super ((family . "math") "N")))
- ;(((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (("x7" (type . "super"))))
+ ;(((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (super "x7"))
; slashed o
- (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (("o" (type . "super")) ("/" (size . -2) (offset . (-0.58 . 0.5))) ("7" (type . "super"))))
-
+ (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (rows (super "o") ((kern . -0.5) ((size . "-3") "/")) "7"))
)
chord::names-alist-american))
chord = \notes\transpose c''\chords{
-\property ChordNames.chordNameStyle = "american"
-c:m5-.7-
-c:m5-.7
+ \property ChordNames.ChordNames \push #'style = #"american"
+ c:m5-.7-
+ c:m5-.7
}
\score{
-<
-\context ChordNames \chord
-\context Staff \chord
->
+ <
+ \context ChordNames \chord
+ \context Staff \chord
+ >
\paper
{
- \translator { \ChordNameContext chordNameWordSpace = #1 }
- \translator { \LyricsContext textScriptWordSpace = #0.3 }
+ \translator {
+ \ChordNamesContext
+ ChordNames \push #'word-space = #1
+ }
}
}
-\version "1.3.93";
+\version "1.3.96";
\score {
\notes \relative c''
-\version "1.3.93";
+\version "1.3.96";
blah = \notes {
}
}
-\version "1.3.93";
+\version "1.3.96";
-\version "1.3.93";
+\version "1.3.96";
\score{
\notes\relative c'{
[c16 \stemDown c'' \stemBoth c,, d]
copyright = "public domain";
}
-\version "1.3.93";
+\version "1.3.96";
m =\notes \relative c'' {
\property Staff.automaticMelismata = ##t
>
}
-\version "1.3.93";
+\version "1.3.96";
>
}
-\version "1.3.93";
+\version "1.3.96";
copyright = "public domain";
}
-\version "1.3.93";
+\version "1.3.96";
m =\notes \relative c'' {
\property Staff.automaticMelismata = ##t
\paper {
}
-}
\ No newline at end of file
+}
% * Stanza_number_engraver
% * Automatic melismata on beamed notes
-\version "1.3.93";
+\version "1.3.96";
\include "english.ly"
\header{
-\version "1.3.93";
+\version "1.3.96";
$somewhat_long = \lyrics{
\property Lyrics . textStyle = "roman"
-\version "1.3.93";
+\version "1.3.96";
global = \notes {
s1 | \mark "A";
>
\paper { Gourlay_maxmeaures = 2.; }
}
-\version "1.3.93";
+\version "1.3.96";
-\version "1.3.93";
+\version "1.3.96";
\score { \notes { \time 3/4; \key cis \major;
R2.*15 R2. R2.*7 }
-\version "1.3.93";
+\version "1.3.96";
voice_one = \notes\transpose c''{ \stemUp
R1 * 2 | f'4-. r r2 | R1 * 3 |
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
-\version "1.3.93";
+\version "1.3.96";
\score{
\notes\relative c''{
linewidth=-1.0;
}
\midi { }
-}
\ No newline at end of file
+}
}
}
-\version "1.3.93";
+\version "1.3.96";
-\version "1.3.93";
+\version "1.3.96";
\score{
\notes \transpose c''{
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
-\version "1.3.93";
+\version "1.3.96";
m = \notes \relative c''{
-\version "1.3.93";
+\version "1.3.96";
\score {
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
-\version "1.3.93";
+\version "1.3.96";
%{
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
}
}
-\version "1.3.93";
+\version "1.3.96";
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
-\version "1.3.93";
+\version "1.3.96";
blah = \notes{ \transpose c'' {
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "1.3.93";
+\version "1.3.96";
shortlong = \notes{
c4()c( c c |
>
}
-\version "1.3.93";
+\version "1.3.96";
% test damping
-\version "1.3.93";
+\version "1.3.96";
\score{
\notes\relative c'{
-\version "1.3.93";
+\version "1.3.96";
\score{
\notes{
-\version "1.3.93";
+\version "1.3.96";
\score {
\context Voice \notes\relative c {
% CASE 3
-\version "1.3.93";
+\version "1.3.96";
\score{
\notes\relative c''{
\time 3/4;
-\version "1.3.93";
+\version "1.3.96";
\score{
\notes\transpose c'{
}
}
-\version "1.3.93";
+\version "1.3.96";
TestedFeatures = "This file tests various spacings";
}
-\version "1.3.93";
+\version "1.3.96";
multipart = \notes \relative c'{
\context StaffGroup <
-\version "1.3.93";
+\version "1.3.96";
nt = \notes { c1 \break c1 c1 }
stuff = \notes \relative c'' <
\context Staff = stone { \nt }
linewidth=-1.0;
}
\midi { }
-}
\ No newline at end of file
+}
% test staff margin with partial measure.
-\version "1.3.93";
+\version "1.3.96";
\score {
\notes { \property Staff.instrument = "foo" \partial 4; c4 c1 }
-\version "1.3.93";
+\version "1.3.96";
\score {
}
-\version "1.3.93";
+\version "1.3.96";
>
\paper { linewidth = -1.; }
}
-\version "1.3.93";
+\version "1.3.96";
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
linewidth=-1.0;
}
\midi { }
-}
\ No newline at end of file
+}
-\version "1.3.93";
+\version "1.3.96";
\score{
\context Voice\notes \relative c''{
%%?
}
-\version "1.3.93";
+\version "1.3.96";
beamintervals = \notes{
\time 7/4;
instrument= "Violoncello";
}
-\version "1.3.93";
+\version "1.3.96";
% this is an example of extreme dynamics
% the thumb-script is used in cello music to indicate a note that should
% be played with your thumb.
-\version "1.3.93";
+\version "1.3.96";
\score { \notes \relative c'' {
[<a8_\thumb a'8-3(> <)b_\thumb b'-3>
linewidth=-1.0;
}
\midi { }
-}
\ No newline at end of file
+}
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
instrument= "Instrument";
}
-\version "1.3.93";
+\version "1.3.96";
\score{
\notes
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
}
-\version "1.3.93";
+\version "1.3.96";
vOne = \notes \relative c''{
\clef"violin";
}
}
-\version "1.3.93";
+\version "1.3.96";
-\version "1.3.93"
+\version "1.3.96"
\score {
\context Voice \notes\relative c'' {
copyright = "public domain";
}
-\version "1.3.93";
+\version "1.3.96";
\include "paper-as5.ly"
-\version "1.3.93";
+\version "1.3.96";
%
% We'd want to combine the stems, but have two slurs too...
% Looks like the a-due engraver
{\voiceTwo c}>
- \version "1.3.93";
+ \version "1.3.96";
}
\paper { }
\midi { }
-}
\ No newline at end of file
+}
-\version "1.3.93";
+\version "1.3.96";
\score {
\notes <
}
}
-\version "1.3.93";
+\version "1.3.96";
%}
-\version "1.3.93";
+\version "1.3.96";
praeludiumRight = \notes {
\key e \major;
\clef violin;
copyright = "public domain";
}
-\version "1.3.93";
+\version "1.3.96";
melodie = \notes\relative c'' {
\clef "violin";
auto beaming, adding lyrics to notes, hyphens
%}
-\version "1.3.93";
+\version "1.3.96";
melody = \notes \relative c'' {
\clef violin;
Chord_name_engraver::create_chord_name ()
{
assert (chord_p_);
- chord_name_p_ = new Item (get_property ("ChordName"));
+ chord_name_p_ = new Item (get_property ("ChordNames"));
/*
Hmm, why not represent complete chord as list?
((tonic third fifth) (inversion bass))
*/
class Dynamic_engraver : public Engraver
{
- Item * text_p_;
+ Item * script_p_;
Spanner * finished_cresc_p_;
Spanner * cresc_p_;
- Text_script_req* text_req_l_;
+ Dynamic_script_req* script_req_l_;
Span_req * current_cresc_req_;
Drul_array<Span_req*> accepted_spanreqs_drul_;
Dynamic_engraver::Dynamic_engraver ()
{
- text_p_ = 0;
+ script_p_ = 0;
finished_cresc_p_ = 0;
line_spanner_ = 0;
finished_line_spanner_ = 0;
current_cresc_req_ = 0;
cresc_p_ =0;
- text_req_l_ = 0;
+ script_req_l_ = 0;
accepted_spanreqs_drul_[START] = 0;
accepted_spanreqs_drul_[STOP] = 0;
}
void
Dynamic_engraver::do_post_move_processing ()
{
- text_req_l_ = 0;
+ script_req_l_ = 0;
accepted_spanreqs_drul_[START] = 0;
accepted_spanreqs_drul_[STOP] = 0;
}
bool
Dynamic_engraver::do_try_music (Music * m)
{
- if (Text_script_req* d = dynamic_cast <Text_script_req*> (m))
+ if (Dynamic_script_req* d = dynamic_cast <Dynamic_script_req*> (m))
{
- if (d->style_str_ == "dynamic")
- {
- text_req_l_ = d;
- return true;
- }
+ script_req_l_ = d;
+ return true;
}
else if (Span_req* s = dynamic_cast <Span_req*> (m))
{
void
Dynamic_engraver::do_process_music ()
{
- if (accepted_spanreqs_drul_[START] || accepted_spanreqs_drul_[STOP] || text_req_l_)
+ if (accepted_spanreqs_drul_[START] || accepted_spanreqs_drul_[STOP] || script_req_l_)
{
if (!line_spanner_)
Axis_group_interface::set_axes (line_spanner_, Y_AXIS, Y_AXIS);
Request * rq = accepted_spanreqs_drul_[START];
- if (text_req_l_) rq = text_req_l_ ;
+ if (script_req_l_) rq = script_req_l_ ;
announce_element (line_spanner_, rq);
*/
else if (accepted_spanreqs_drul_[STOP]
- && !accepted_spanreqs_drul_[START] && !text_req_l_)
+ && !accepted_spanreqs_drul_[START] && !script_req_l_)
{
finished_line_spanner_ = line_spanner_;
line_spanner_ = 0;
maybe we should leave dynamic texts to the text-engraver and
simply acknowledge them?
*/
- if (text_req_l_)
+ if (script_req_l_)
{
- String loud = text_req_l_->text_str_;
-
- text_p_ = new Item (get_property ("DynamicText"));
- text_p_->set_elt_property ("text", ly_str02scm (loud.ch_C ()));
- if (Direction d=text_req_l_->get_direction ())
+ script_p_ = new Item (get_property ("DynamicText"));
+ script_p_->set_elt_property ("text",
+ script_req_l_->get_mus_property ("text"));
+ if (Direction d = script_req_l_->get_direction ())
Directional_element_interface::set (line_spanner_, d);
- Axis_group_interface::add_element (line_spanner_, text_p_);
+ Axis_group_interface::add_element (line_spanner_, script_p_);
- announce_element (text_p_, text_req_l_);
+ announce_element (script_p_, script_req_l_);
}
if (accepted_spanreqs_drul_[STOP])
Score_element *cc = unsmob_element (get_property ("currentMusicalColumn"));
cresc_p_->set_bound (LEFT, cc);
- if (text_p_)
+ if (script_p_)
{
- Side_position::set_direction (text_p_, LEFT);
- Side_position::set_axis (text_p_, X_AXIS);
- Side_position::add_support (text_p_, cresc_p_);
+ Side_position::set_direction (script_p_, LEFT);
+ Side_position::set_axis (script_p_, X_AXIS);
+ Side_position::add_support (script_p_, cresc_p_);
}
Axis_group_interface::add_element (line_spanner_, cresc_p_);
finished_cresc_p_ =0;
}
- if (text_p_)
+ if (script_p_)
{
- typeset_element (text_p_);
- text_p_ = 0;
+ typeset_element (script_p_);
+ script_p_ = 0;
}
if (finished_line_spanner_)
{
virtual void do_pre_move_processing ();
private:
- Text_script_req* text_script_req_l_;
+ Dynamic_script_req* script_req_l_;
Audio_dynamic* audio_p_;
};
Dynamic_performer::Dynamic_performer ()
{
- text_script_req_l_ = 0;
+ script_req_l_ = 0;
audio_p_ = 0;
}
void
Dynamic_performer::do_process_music ()
{
- if (text_script_req_l_)
+ if (script_req_l_)
{
SCM proc = get_property ("dynamicAbsoluteVolumeFunction");
SCM svolume = SCM_EOL;
if (gh_procedure_p (proc))
{
- svolume = gh_call1 (proc, ly_str02scm (text_script_req_l_->text_str_.ch_C ()));
+ // urg
+ svolume = gh_call1 (proc, script_req_l_->get_mus_property ("text"));
}
Real volume = 0.5;
}
audio_p_ = new Audio_dynamic (volume);
- Audio_element_info info (audio_p_, text_script_req_l_);
+ Audio_element_info info (audio_p_, script_req_l_);
announce_element (info);
- text_script_req_l_ = 0;
+ script_req_l_ = 0;
}
}
bool
Dynamic_performer::do_try_music (Music* r)
{
- if (!text_script_req_l_)
+ if (!script_req_l_)
{
- // urg, text script, style `dynamic' is how absolute dynamics appear
- if(Text_script_req* t = dynamic_cast <Text_script_req*> (r))
+ if(Dynamic_script_req* d = dynamic_cast <Dynamic_script_req*> (r))
{
- if (t->style_str_ == "dynamic")
- {
- text_script_req_l_ = t;
- return true;
- }
+ script_req_l_ = d;
+ return true;
}
}
return false;
#include "musical-pitch.hh"
#include "array.hh"
-
/** a request with a duration.
This request is used only used as a base class.
*/
};
-/** a syllable or lyric is a string with rhythm.
+/**
+ a syllable or lyric is a string with rhythm.
*/
-class Lyric_req : public Rhythmic_req {
-public:
-
- String text_str_;
- VIRTUAL_COPY_CONS(Music);
+class Lyric_req : public Rhythmic_req
+{
+protected:
+ VIRTUAL_COPY_CONS (Music);
};
VIRTUAL_COPY_CONS(Music);
};
-class Text_script_req : public Script_req {
-public:
- String text_str_;
-
- // should be generic property of some kind..
- String style_str_;
+class Text_script_req : public Script_req
+{
protected:
- VIRTUAL_COPY_CONS(Music);
- virtual bool do_equal_b (Request const*)const;
-
+ VIRTUAL_COPY_CONS (Music);
+ virtual bool do_equal_b (Request const*) const;
};
+class Dynamic_script_req : public Script_req
+{
+protected:
+ VIRTUAL_COPY_CONS (Music);
+};
/// request which has some kind of pitch
struct Melodic_req :virtual Request
{
text_p_= new Item (get_property ("LyricText"));
- text_p_->set_elt_property ("text",
-// ly_str02scm ((req_l_->text_str_ + " ").ch_C ()));
- ly_str02scm ((req_l_->text_str_).ch_C ()));
-
+ text_p_->set_elt_property ("text", req_l_->get_mus_property ("text"));
/*
We can't reach the notehead where we're centered from here. So
void
Lyric_performer::do_process_music ()
{
- if (lreq_arr_.size () && lreq_arr_[0]->text_str_.length_i ())
+ // FIXME: won't work with fancy lyrics
+ if (lreq_arr_.size ()
+ && gh_string_p (lreq_arr_[0]->get_mus_property ("text"))
+ && ly_scm2string (lreq_arr_[0]->get_mus_property ("text")).length_i ())
{
- audio_p_ = new Audio_text (Audio_text::LYRIC, lreq_arr_[0]->text_str_);
+ audio_p_ = new Audio_text (Audio_text::LYRIC,
+ ly_scm2string (lreq_arr_[0]->get_mus_property ("text")));
Audio_element_info info (audio_p_, lreq_arr_[0]);
announce_element (info);
}
Text_script_req::do_equal_b (Request const* r) const
{
Text_script_req const* t = dynamic_cast<Text_script_req const*> (r);
- return t && t->text_str_ == text_str_ && t->style_str_ == style_str_;
+ return t && gh_equal_p (get_mus_property ("text"),
+ t->get_mus_property ("text"));
}
/* tokens which are not keywords */
%token AUTOCHANGE
%token ARPEGGIO
+%token DYNAMICSCRIPT
%token TEXTSCRIPT
%token ACCEPTS
%token ALTERNATIVE
%token CM_T
%token CONSISTS
%token SEQUENTIAL
+%token ELEMENTDESCRIPTIONS
%token SIMULTANEOUS
%token CONSISTSEND
%token DENIES
| translator_spec_body CONSISTS STRING semicolon {
unsmob_translator_def ($$)->add_element ($3);
}
+ | translator_spec_body ELEMENTDESCRIPTIONS embedded_scm {
+ for (SCM p = $3; gh_pair_p (p); p = gh_cdr (p))
+ unsmob_translator_def ($$)
+ ->add_property_assign (scm_symbol_to_string (gh_caar (p)), gh_cdar (p));
+
+ }
| translator_spec_body CONSISTSEND STRING semicolon {
unsmob_translator_def ($$)->add_last_element ( $3);
}
$$ = dynamic_cast<Request*> (unsmob_music ($1)->clone ());
$$->set_spot (THIS->here_input ());
}
- | TEXTSCRIPT STRING STRING {
- Text_script_req *ts_p = new Text_script_req;
- ts_p-> text_str_ = ly_scm2string ($2);
- ts_p-> style_str_ = ly_scm2string ($3);
- ts_p->set_spot (THIS->here_input ());
-
- $$ = ts_p;
+ | DYNAMICSCRIPT embedded_scm {
+ Dynamic_script_req *d = new Dynamic_script_req;
+ d->set_mus_property ("text", $2);
+ d->set_spot (THIS->here_input ());
+ $$ = d;
+ }
+ | TEXTSCRIPT embedded_scm {
+ Text_script_req *t = new Text_script_req;
+ t->set_mus_property ("text", $2);
+ t->set_spot (THIS->here_input ());
+ $$ = t;
}
| SPANREQUEST bare_int STRING {
Span_req * sp_p = new Span_req;
;
gen_text_def:
- string {
- Text_script_req *t = new Text_script_req;
+ embedded_scm {
+ Text_script_req *t = new Text_script_req;
+ t->set_mus_property ("text", $1);
+ t->set_spot (THIS->here_input ());
+ $$ = t;
+ }
+ | string {
+ Text_script_req *t = new Text_script_req;
+ t->set_mus_property ("text", $1);
+ t->set_spot (THIS->here_input ());
$$ = t;
- t->text_str_ = ly_scm2string ($1);
-
- $$->set_spot (THIS->here_input ());
}
| DIGIT {
- Text_script_req* t = new Text_script_req;
+ /*
+ Maybe use Finger_script_request?
+ */
+ Text_script_req* t = new Text_script_req;
+ t->set_mus_property ("text",
+ gh_cons (ly_symbol2scm ("finger"),
+ ly_str02scm (to_str ($1).ch_C ())));
+ t->set_spot (THIS->here_input ());
$$ = t;
- t->text_str_ = to_str ($1);
- t->style_str_ = "finger";
- $$->set_spot (THIS->here_input ());
}
;
else
THIS->pop_spot ();
Lyric_req* lreq_p = new Lyric_req;
- lreq_p ->text_str_ = ly_scm2string ($1);
+ lreq_p->set_mus_property ("text", $1);
lreq_p->duration_ = *$3;
lreq_p->set_spot (THIS->here_input());
Simultaneous_music* velt_p = new Request_chord (gh_list (lreq_p->self_scm (), SCM_UNDEFINED));
{
if (Text_script_req *r = dynamic_cast<Text_script_req*> (m))
{
- if (r->style_str_ == "dynamic")
- return false;
-
reqs_.push (r);
return true;
}
for (int i=0; i < reqs_.size (); i++)
{
Text_script_req * r = reqs_[i];
+
+ // URG: Text vs TextScript
+ String basic = "TextScript";
- String basic = "TextScript";
-
+#if 0
+ // maybe use some sort of TYPE for script/dynamic/finger?
+
// separate engraver?
if (r->style_str_== "finger")
{
basic = "Fingering";
}
- Item *text = new Item (get_property (basic.ch_C()));
+#endif
+ Item *text = new Item (get_property (basic.ch_C ()));
/*
FIXME -> need to use basic props.
Axis ax = to_boolean (axisprop) ? X_AXIS : Y_AXIS;
Side_position::set_axis (text, ax);
+#if 0
if (r->style_str_ == "finger" && ax == Y_AXIS)
{
/*
text->add_offset_callback (Side_position::aligned_on_self_proc, X_AXIS);
text->add_offset_callback (Side_position::centered_on_parent_proc, X_AXIS);
}
+#endif
if (r->get_direction ())
Side_position::set_direction (text, r->get_direction ());
- text->set_elt_property ("text",
- ly_str02scm ( r->text_str_.ch_C ()));
+ text->set_elt_property ("text", r->get_mus_property ("text"));
- if (r->style_str_.length_i ())
- text->set_elt_property ("style", ly_str02scm (r->style_str_.ch_C()));
-
SCM nonempty = get_property ("textNonEmpty");
if (to_boolean (nonempty))
/*
% Toplevel initialisation file.
-\version "1.3.93";
+\version "1.3.96";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.3.93";
+\version "1.3.96";
\include "declarations.ly";
-\version "1.3.93";
+\version "1.3.96";
% Toplevel initialisation file.
-\version "1.3.93";
+\version "1.3.96";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.3.93";
+\version "1.3.96";
\include "declarations.ly"
-\version "1.3.93";
+\version "1.3.96";
(bss . ( -1 6 2 ))
)
-\version "1.3.93";
+\version "1.3.96";
-\version "1.3.93"
+\version "1.3.96"
%
% setup for Request->Element conversion. Guru-only
%
TextScript \push #'font-size = #-1
Slur \push #'font-size = #-1
Accidentals \push #'font-size = #-1
- Beam \push #'beam-thickness = #0.3
- Beam \push #'beam-space-function = #(lambda (x) 0.5)
+ Beam \push #'thickness = #0.3
+ Beam \push #'space-function = #(lambda (x) 0.5)
Stem \push #'lengths = #(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0))
Stem \push #'beamed-lengths =
#'(0.0 2.5 2.0 1.5)
- Stem \push #'minimum-beamed-lengths
+ Stem \push #'beamed-minimum-lengths
= #(map (lambda (x) (* 0.8 x)) '(0.0 2.5 2.0 1.5))
weAreGraceContext = ##t
\accepts "LyricVoice";
}
-ChordNameVoiceContext = \translator {
+ChordNamesVoiceContext = \translator {
\type "Engraver_group_engraver";
- \name ChordNameVoice ;
+ \name ChordNamesVoice ;
\consists "Output_property_engraver";
\consistsend "Axis_group_engraver";
\consists "Separating_line_group_engraver";
\consists "Chord_name_engraver";
}
-ChordNameContext = \translator {
+ChordNamesContext = \translator {
\type "Engraver_group_engraver";
\name ChordNames;
Generic_property_list = #generic-chord-staff-properties
+
\consists "Property_engraver";
\consists "Output_property_engraver";
- \accepts "ChordNameVoice";
+ \accepts "ChordNamesVoice";
+
+ VerticalAxisGroup \push #'invisible-staff = ##t
\consistsend "Axis_group_engraver";
}
Time_signature
Stanza_number
)
-
+
+
+ \elementdescriptions #all-element-descriptions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% TODO: uniform naming.;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- %
- % distances are given in stafflinethickness (thicknesses) and
- % staffspace (distances)
- %
- Arpeggio = #`(
- (interfaces . (arpeggio-interface side-position-interface))
- (X-extent-callback . ,Arpeggio::width_callback)
- (molecule-callback . ,Arpeggio::brew_molecule)
- (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
- (X-offset-callbacks . (,Side_position::aligned_side))
- (direction . -1)
- (staff-position . 0.0)
- (name . "Arpeggio")
- )
- BarLine = #`(
- (interfaces . (bar-interface staff-bar-interface))
- (break-align-symbol . Staff_bar)
- (glyph . "|")
- (break-glyph-function . ,default-break-barline)
- (barsize-procedure . ,Bar::get_staff_bar_size)
- (molecule-callback . ,Bar::brew_molecule)
- (visibility-lambda . ,all-visible)
- (breakable . #t)
- (before-line-breaking-callback . ,Bar::before_line_breaking)
- ;;
- ;; Ross. page 151 lists other values, we opt for a leaner look
- ;;
- (kern . 3.0)
- (thin-kern . 3.0)
- (hair-thickness . 1.6)
- (thick-thickness . 6.0)
- (name . "BarLine")
- )
-
- BarNumber = #`(
- (molecule-callback . ,Text_item::brew_molecule)
- (breakable . #t)
- (visibility-lambda . ,begin-of-line-visible)
- (name . "BarNumber")
- (padding . 1.0)
- (direction . 1)
- )
-
- Beam = #basic-beam-properties
-
- BreakAlignment = #`(
- (breakable . #t)
- (interfaces . (break-align-interface))
- (stacking-dir . 1)
- (axes 0)
- (X-offset-callbacks . (,Break_align_interface::self_align_callback))
- (space-alist . ,default-break-align-space-alist)
- (name . "BreakAlignment")
- )
-
- BreakAlignGroup = #`(
- (interfaces . (axis-group-interface))
- (axes . (0))
- (X-offset-callbacks . (,Break_align_interface::alignment_callback))
-
- (name . "BreakAlignGroup")
- )
-
- BreathingSign = #`(
- (interfaces . (breathing-sign-interface))
- (break-align-symbol . Breathing_sign)
- (breakable . #t )
- (molecule-callback . ,Breathing_sign::brew_molecule)
- (Y-offset-callbacks . (,Breathing_sign::offset_callback))
- (visibility-lambda . ,begin-of-line-invisible)
- (name . "BreathingSign")
- )
-
- Clef = #`(
- (interfaces . (clef-interface))
- (molecule-callback . ,Score_element::brew_molecule)
- (before-line-breaking-callback . ,Clef::before_line_breaking)
- (breakable . #t)
- (break-align-symbol . Clef_item)
- (visibility-lambda . ,begin-of-line-visible)
- (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
- (name . "Clef")
- )
-
- ChordName = #`(
- (molecule-callback . ,Chord_name::brew_molecule)
- (interfaces . (chord-name-interface))
- (after-line-breaking-callback . ,Chord_name::after_line_breaking)
- (chord-name-function . ,default-chord-name-function)
- (name . "ChordName")
- )
-
- NoteCollision = #`(
- (axes 0 1)
- (interfaces . (collision-interface))
- (note-width . 1.65)
- (name . "NoteCollision")
- )
-
- Crescendo = #`(
- (molecule-callback . ,Crescendo::brew_molecule)
- (interfaces . (crescendo-interface dynamic-interface))
- (thickness . 1.0)
- (shorten-for-letter . 4.0)
- (height . 0.6666)
- (dash-thickness . 1.2)
- (dash-length . 4.0)
- (name . "Crescendo")
- (self-alignment-Y . 0)
- (Y-offset-callbacks . (,Side_position::aligned_on_self))
- )
-
- DotColumn = #`(
- (interfaces . (dot-column-interface axis-group-interface ))
- (axes 0 )
- (name . "DotColumn")
- )
-
- Dots = #`(
- (interfaces . (dot-interface))
- (molecule-callback . ,Dots::brew_molecule)
- (dot-count . 1)
- (staff-position . 0.0)
- (Y-offset-callbacks . (,Dots::quantised_position_callback ,Staff_symbol_referencer::callback))
-
- (name . "Dots")
- )
-
- DynamicText = #`(
- (style . "dynamic")
- (interfaces . (dynamic-interface))
- (Y-offset-callbacks . (,Side_position::aligned_on_self))
-
- (molecule-callback . ,Text_item::brew_molecule)
- (script-priority . 100)
- (self-alignment-Y . 0)
- (name . "DynamicText")
- )
-
- DynamicLineSpanner = #`(
- (interfaces . (dynamic-interface axis-group-interface side-position-interface))
- (axes . ( 1))
- (padding . 3)
- (minimum-space . 6)
- (name . "dynamic alignment")
- )
-
- LeftEdge = #`(
- (break-align-symbol . Left_edge_item)
- (breakable . #t)
- (name . "LeftEdge")
- )
-
- Fingering = #`(
- (interfaces . (finger-interface text-script-interface text-item-interface side-position-interface))
- (molecule-callback . ,Text_item::brew_molecule)
- (padding . 3.0)
- (self-alignment-X . 0)
- (name . "Fingering")
- )
-
- GraceAlignment = #`(
- (interfaces . (axis-group-interface align-interface))
- (axes . (0))
- (horizontal-space . 1.2)
- (padding . 1.0)
- (before-line-breaking-callback . ,Grace_align_item::before_line_breaking)
- (name . "GraceAlignment")
- )
-
- HaraKiriVerticalGroup = #`(
- (Y-offset-callbacks . (,Hara_kiri_group_spanner::force_hara_kiri_callback))
- (Y-extent-callback . ,Hara_kiri_group_spanner::y_extent)
- (interfaces . (hara-kiri-group-interface))
- (axes 1)
- (name . "HaraKiriVerticalGroup")
- )
-
- LyricHyphen = #`(
- (interfaces . (lyric-hyphen-interface))
- (thickness . 1.0)
- (height . 0.4)
- (minimum-length . 0.5)
- (molecule-callback . ,Hyphen_spanner::brew_molecule)
- (Y-extent-callback . ,Score_element::point_dimension_callback)
- (name . "LyricHyphen")
- )
-
- InstrumentName = #`(
- (interfaces . (instrument-name-interface))
- (breakable . #t)
- (Y-offset-callbacks . (,Side_position::centered_on_parent))
- (molecule-callback . ,Text_item::brew_molecule)
- (break-align-symbol . Instrument_name)
- (visibility-lambda . ,begin-of-line-visible)
- (name . "InstrumentName")
- )
-
- KeySignature = #`(
- (interfaces . (key-item-interface))
- (molecule-callback . ,Key_item::brew_molecule)
- (break-align-symbol . Key_item)
- (visibility-lambda . ,begin-of-line-visible)
- (breakable . #t)
- (name . "KeySignature")
- )
-
- Accidentals = #`(
- (molecule-callback . ,Local_key_item::brew_molecule)
- (X-offset-callbacks . (,Side_position::aligned_side))
- (direction . -1)
- (left-padding . 0.2)
- (right-padding . 0.4)
- (interfaces . (accidentals-interface))
- (name . "Accidentals")
- )
-
- LineOfScore = #`(
- (axes . (0 1))
- (interfaces . (axis-group-interface))
- (name . "LineOfScore")
- )
-
- LyricExtender = #`(
- (interfaces . (lyric-extender-interface))
- (molecule-callback . ,Lyric_extender::brew_molecule)
- (height . 0.8) ; stafflinethickness;
- (right-trim-amount . 0.5)
- (Y-extent-callback . ,Score_element::point_dimension_callback)
- (name . "LyricExtender")
- )
-
- LyricText = #`(
- (interfaces . (lyric-syllable-interface text-item-interface))
- (molecule-callback . ,Text_item::brew_molecule)
- (X-offset-callbacks . (,Side_position::aligned_on_self))
- (self-alignment-X . 0)
- (non-rhythmic . #t)
- (word-space . 0.6)
- (name . "LyricText")
- )
- RehearsalMark = #`(
- (interfaces . (mark-interface side-position-interface))
- (molecule-callback . ,Text_item::brew_molecule)
- (breakable . #t)
- (visibility-lambda . ,end-of-line-invisible)
- (padding . 4.0)
- (name . "RehearsalMark")
- )
-
- MultiMeasureRest = #`(
- (interfaces . (multi-measure-rest-interface))
- (spacing-procedure . ,Multi_measure_rest::set_spacing_rods)
- (molecule-callback . ,Multi_measure_rest::brew_molecule)
- (staff-position . 0)
- (expand-limit . 10)
- (padding . 2.0) ; staffspace
- (minimum-width . 12.5) ; staffspace
- (name . "MultiMeasureRest")
- )
-
- NoteColumn = #`(
- (interfaces . (axis-group-interface note-column-interface))
- (axes 0 1)
- (name . "NoteColumn")
- )
-
- NoteHead = #`(
- (interfaces . (note-head-interface rhythmic-head-interface))
- (style . default)
- (molecule-callback . ,Note_head::brew_molecule)
- (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
- (name . "NoteHead")
- )
-
- NoteName = #`(
- (molecule-callback . ,Text_item::brew_molecule)
- (name . "NoteName")
- )
-
- OctavateEight = #`(
- (self-alignment-X . 0)
- (text . "8")
- (visibility-lambda . ,begin-of-line-visible)
- (X-offset-callbacks . (,Side_position::centered_on_parent ,Side_position::aligned_on_self))
- (Y-offset-callbacks . (,Side_position::aligned_side))
- (molecule-callback . ,Text_item::brew_molecule)
- (style . "italic")
- (name . "OctavateEight")
- )
-
- PaperColumn = #`(
- (interfaces . (paper-column-interface axis-group-interface))
- (axes 0)
- (rank . -1)
- (name . "PaperColumn")
- )
-
- Rest = #`(
- (interfaces . (rest-interface rhythmic-head-interface))
- (after-line-breaking-callback . ,Rest::after_line_breaking)
- (molecule-callback . ,Rest::brew_molecule)
- (minimum-beam-collision-distance . 1.5)
- (name . "Rest")
- )
-
- RestCollision = #`(
- (interfaces . (rest-collision-interface))
- (minimum-distance . 0.75)
- (name . "RestCollision")
- )
-
- Script = #`(
- (molecule-callback . ,Script::brew_molecule)
- (interfaces . (script-interface side-position-interface))
- (X-offset-callbacks . (,Side_position::centered_on_parent))
- (name . "Script")
- )
-
- ScriptColumn = #`(
- (before-line-breaking-callback . ,Script_column::before_line_breaking)
- (name . "ScriptColumn")
- )
-
- Slur = #default-basic-slur-properties
-
- SpacingSpanner =#`(
- (spacing-procedure . ,Spacing_spanner::set_springs)
-
- ;; assume that notes at least this long are present.
- (maximum-duration-for-spacing . ,(make-moment 1 8))
- (name . "SpacingSpanner")
- )
- SpanBar = #`(
- (interfaces . (bar-interface span-bar-interface))
- (break-align-symbol . Staff_bar)
- (barsize-procedure . ,Span_bar::get_bar_size)
- (molecule-callback . ,Bar::brew_molecule)
- (visibility-lambda . ,begin-of-line-invisible)
- (X-extent-callback . ,Span_bar::width_callback)
- (Y-offset-callbacks . (,Span_bar::center_on_spanned_callback))
-
- (breakable . #t)
- (glyph . "|")
- (before-line-breaking-callback . ,Span_bar::before_line_breaking)
- ;; ugh duplication!
-
- ;;
- ;; Ross. page 151 lists other values, we opt for a leaner look
- ;;
- (kern . 3.0)
- (thin-kern . 3.0)
- (hair-thickness . 1.6)
- (thick-thickness . 6.0)
- (name . "SpanBar")
- )
-
- StanzaNumber = #`(
- (breakable . #t)
- (molecule-callback . ,Text_item::brew_molecule)
- (break-align-symbol . Clef_item)
- (visibility-lambda . ,begin-of-line-visible)
- (name . "StanzaNumber")
- )
-
- StaffSymbol = #`(
- (interfaces . (staff-symbol-interface ))
- (molecule-callback . ,Staff_symbol::brew_molecule)
- (staff-space . 1.0)
- (line-count . 5 )
- (name . "StaffSymbol")
- )
-
- SystemStartDelimiter = #`(
- (molecule-callback . ,System_start_delimiter::brew_molecule)
- (after-line-breaking-callback . ,System_start_delimiter::after_line_breaking)
- (collapse-height . 1.0)
- (thickness . 1.6)
- (arch-height . 1.5)
- (arch-angle . 50.0)
- (arch-thick . 0.25)
- (arch-width . 1.5)
- (bracket-thick . 0.25)
- (bracket-width . 2.0)
- (name . "SystemStartDelimiter")
- )
-
- TextScript = #`(
- (molecule-callback . ,Text_item::brew_molecule)
- (no-spacing-rods . #t)
- (interfaces . (text-script-interface text-item-interface side-position-interface))
- (padding . 0.5)
- (name . "TextScript")
- )
- TextSpanner = #`(
- (interfaces . (text-spanner-interface))
- (molecule-callback . ,Text_spanner::brew_molecule)
- (type . "line")
- (direction . 1)
- (text-style . "italic")
- (name . "TextSpanner")
- )
- Tie = #`(
- (interfaces . (tie-interface))
- (molecule-callback . ,Tie::brew_molecule)
- (spacing-procedure . ,Tie::set_spacing_rods)
- (staffline-clearance . 0.24)
- (details . ((ratio . 0.333) (height-limit . 1.0)))
- (thickness . 1.2)
- (x-gap . 0.2)
- (minimum-length . 2.5)
- (name . "Tie")
- )
-
- TieColumn = #`(
- (after-line-breaking-callback . ,Tie_column::after_line_breaking)
- (interfaces . (tie-column-interface))
- (name . "TieColumn")
- )
-
- TimeSignature = #`(
- (interfaces . (time-signature-interface))
- (molecule-callback . ,Time_signature::brew_molecule)
- (break-align-symbol . Time_signature)
- (visibility-lambda . ,all-visible)
- (breakable . #t)
- (name . "TimeSignature")
- )
-
- TupletBracket = #`(
- (number-gap . 2.0)
- (delta-y . 0)
- (thick . 1.0)
- (after-line-breaking-callback . ,Tuplet_spanner::after_line_breaking)
- (molecule-callback . ,Tuplet_spanner::brew_molecule)
- (interfaces . (tuplet-spanner-interface))
- (name "TupletBracket")
- )
-
- SostenutoPedal = #`(
- (molecule-callback . ,Text_item::brew_molecule)
- (X-offset-callbacks . (,Side_position::aligned_on_self))
- (Y-offset-callbacks .
- (,Side_position::aligned_side
- ,Side_position::centered_on_parent))
-
- (style . "italic")
- (no-spacing-rods . #t)
- (self-alignment-X . 0)
- (name . "SostenutoPedal")
-
- )
-
- Stem = #`(
- (interfaces . (stem-interface))
- (before-line-breaking-callback . ,Stem::before_line_breaking)
- (molecule-callback . ,Stem::brew_molecule)
- (thickness . 0.8)
- (beamed-lengths . (0.0 2.5 2.0 1.5))
- (beamed-minimum-lengths . (0.0 1.5 1.25 1.0))
-
-;; Stems in unnatural (forced) direction should be shortened,
-;; according to [Roush & Gourlay]. Their suggestion to knock off
-;; a whole staffspace seems a bit drastical: we'll do half.
-
- (lengths . (3.5 3.5 3.5 4.5 5.0))
- (stem-shorten . (0.5))
- ; if stem is on middle line, choose this direction.
- (default-neutral-direction . 1)
- (X-offset-callbacks . (,Stem::off_callback))
- (name . "Stem")
- )
-
- StemTremolo = #`(
- (molecule-callback . ,Stem_tremolo::brew_molecule)
- (beam-width . 2.0) ; staff-space
- (beam-thickness . 0.42) ; staff-space
- (beam-space-function . ,default-beam-space-function)
- (name . "StemTremolo")
- )
-
- SeparationItem = #`(
- (interfaces . (separation-item-interface))
- (name . "SeparationItem")
- )
-
- SeparatingGroupSpanner = #`(
- (interfaces . (separation-spanner-interface))
- (spacing-procedure . ,Separating_group_spanner::set_spacing_rods)
- (name . "SeparatingGroupSpanner")
- )
-
- SustainPedal = #`(
- (interfaces . (sustain-pedal-interface side-position-interface))
- (no-spacing-rods . #t)
- (molecule-callback . ,Sustain_pedal::brew_molecule)
- (self-alignment-X . 0)
- (X-offset-callbacks . (,Side_position::aligned_on_self))
- (Y-offset-callbacks .
- (,Side_position::aligned_side
- ,Side_position::centered_on_parent))
-
- (name . "SustainPedal")
- )
- UnaChordaPdeal = #`(
- (molecule-callback . ,Text_item::brew_molecule)
- (style . "italic")
- (no-spacing-rods . #t)
- (self-alignment-X . 0)
- (X-offset-callbacks . (,Side_position::aligned_on_self))
- (Y-offset-callbacks .
- (,Side_position::aligned_side
- ,Side_position::centered_on_parent))
-
- (name . "UnaChordaPedal")
- )
-
- VoltaBracket = #`(
- (molecule-callback . ,Volta_spanner::brew_molecule)
- (interfaces . (volta-spanner-interface side-position-interface))
- (direction . 1)
- (padding . 5)
- (thickness . 1.6) ; stafflinethickness
- (height . 2.0) ; staffspace;
- (minimum-space . 25)
- (name . "VoltaBracket")
- )
-
- VerticalAlignment = #`(
- (axes 1)
- (interfaces . (align-interface axis-group-interface))
- (Y-extent-callback . ,Axis_group_interface::group_extent_callback)
- (X-extent-callback . #f)
- (stacking-dir . -1)
- (name . "VerticalAlignment")
- )
-
- VerticalAxisGroup = #`(
- (axes 1)
- (interfaces . (axis-group-interface))
- (name . "VerticalAxisGroup")
- )
\include "auto-beam-settings.ly";
% Toplevel initialisation file.
-\version "1.3.93";
+\version "1.3.96";
\include "declarations.ly"
% Toplevel AsciiScript initialisation file.
-\version "1.3.93";
+\version "1.3.97";
\include "declarations-as.ly"
% Toplevel AsciiScript initialisation file.
-\version "1.3.93";
+\version "1.3.96";
\include "declarations-as.ly"
% Toplevel initialisation file.
-\version "1.3.93";
+\version "1.3.97";
\include "declarations.ly"
% Toplevel initialisation file.
-\version "1.3.93";
+\version "1.3.96";
\include "declarations.ly";
% Toplevel initialisation file.
-\version "1.3.93";
+\version "1.3.97";
\include "declarations.ly"
(sidd . ( -1 6 2 ))
)
-\version "1.3.93";
+\version "1.3.96";
-% $Id: norsk.ly,v 1.6 2000/10/08 14:26:55 fred Exp $
+% $Id: norsk.ly,v 1.7 2000/10/22 00:11:33 fred Exp $
%{
-\version "1.3.93";
+\version "1.3.96";
% paper-as5.ly
-\version "1.3.93";
+\version "1.3.96";
paper_as_five = \paper {
staffheight = 5.\char;
% paper-as9.ly
-\version "1.3.93";
+\version "1.3.96";
paper_as_nine = \paper {
staffheight = 9.\char;
% paper11.ly
-\version "1.3.93";
+\version "1.3.96";
paper_eleven = \paper {
staffheight = 11.0\pt;
-
-
- font_Large = 8.;
- font_large = 6.;
- font_normal = 5.;
- font_script = 4.;
-
- font_finger = 4.;
- font_volta = 4.;
- font_number = 4.;
- font_dynamic = 10.;
- font_mark = 6.;
-
- % UGH!
- magnification_dynamic = -4.0;
+ style_sheet = "paper11";
-1=\font "feta11"
-2=\font "feta11"
0=\font "feta11"
- "font_feta-2" = 11.;
- "font_feta-1" = 11.;
- "font_feta" = 11.;
-
\include "params.ly";
}
% paper13.ly
-\version "1.3.93";
+\version "1.3.96";
paper_thirteen = \paper {
staffheight = 13.0\pt;
-
-
- font_Large = 8.;
- font_large = 6.;
- font_normal = 5.;
- font_script = 4.;
-
- font_finger = 4.;
- font_volta = 4.;
- font_number = 6.;
- font_dynamic = 10.;
- font_mark = 6.;
+ style_sheet = "paper13";
0=\font "feta13"
-1=\font "feta11"
- "font_feta-2" = 11.;
- "font_feta-1" = 11.;
- "font_feta" = 13.;
-
\include "params.ly";
}
% paper16.ly
-
-
-\version "1.3.93";
+\version "1.3.96";
paper_sixteen = \paper {
staffheight = 16.0\pt;
- font_Large = 12.;
- font_large = 10.;
- font_normal = 8.;
- font_script = 7.;
-
- magnification_dynamic = 1.0;
- font_finger = 4.;
- font_volta = 5.;
- font_number = 8.;
- font_timesig = 8.;
- font_dynamic = 10.;
- font_mark = 10.;
- font_msam = 8.;
+ style_sheet = "paper16";
0 = \font "feta16"
-1 = \font "feta13"
-2 = \font "feta11"
-3 = \font "feta11"
-
- "font_feta" = 16.;
- "font_feta-1" = 13.;
- "font_feta-2" = 11.;
- "font_feta-3" = 11.;
\include "params.ly";
}
% paper20.ly
-\version "1.3.93";
+\version "1.3.96";
paper_twenty = \paper {
staffheight = 20.0\pt;
+ style_sheet = "paper20";
- font_Large = 12.;
- font_large = 12.;
- font_normal = 10.;
- font_script = 8.;
-
- font_finger = 5.;
- font_volta = 8.;
- font_number = 10.;
- font_timesig = 10.;
- font_mark = 12.;
- font_msam = 9.;
-
- % what about:
- "font_number-1" = 8.;
- %"font_number" = 10.;
- "font_number+1" = 12.;
-
- % Ugh
- magnification_dynamic = 2.;
-
0 = \font "feta20"
-1 = \font "feta16"
-2 = \font "feta13"
-3 = \font "feta11"
- "font_feta" = 20.;
- "font_feta-1" = 16.;
- "font_feta-2" = 13.;
- "font_feta-3" = 11.;
-
\include "params.ly";
}
% paper23.ly
-\version "1.3.93";
+\version "1.3.96";
paper_twentythree = \paper {
staffheight = 23.0\pt;
-
- font_Large = 12.;
- font_large = 12.;
- font_normal = 10.;
- font_script = 8.;
-
- font_finger = 5.;
- font_volta = 8.;
- font_number = 10.;
- font_mark = 12.;
-
- % Ugh
- magnification_dynamic = 3.;
+ style_sheet = "paper23";
-2 = \font "feta16"
-1 = \font "feta20"
0 = \font "feta23"
- "font_feta-2" = 16.;
- "font_feta-1" = 20.;
- "font_feta" = 23.;
-
\include "params.ly";
}
% paper26.ly
-\version "1.3.93";
+\version "1.3.96";
paper_twentysix = \paper {
staffheight = 26.0\pt;
- font_Large = 17.;
- font_large = 14.;
- font_normal = 12.;
- font_script = 10.;
-
- font_dynamic = 10.;
- % Ugh
- magnification_dynamic = 4.;
-
- font_finger = 8.;
- font_volta = 10.;
- font_number = 10.;
- magnification_number = 2.;
- font_mark = 14.;
+ style_sheet = "paper26";
0=\font "feta26"
-1 = \font "feta23"
-2 = \font "feta20"
- "font_feta-2" = 20.;
- "font_feta-1" = 23.;
- "font_feta" = 26.;
-
\include "params.ly";
}
\translator { \StaffContext }
\translator { \VoiceContext}
\translator { \StaffGroupContext }
-\translator { \ChordNameContext }
-\translator { \ChordNameVoiceContext}
+\translator { \ChordNamesContext }
+\translator { \ChordNamesVoiceContext}
\translator { \GrandStaffContext}
\translator { \LyricsContext }
\translator { \ThreadContext}
% property.ly
-\version "1.3.93";
+\version "1.3.96";
stemUp = \property Voice.Stem \push #'direction = #1
stemDown = \property Voice.Stem \push #'direction = #-1
(hiss . ( -1 6 1 ))
(hississ . ( -1 6 2 ))
)
-\version "1.3.93";
+\version "1.3.96";
(ice-9 regex)
)
-;; The regex module may not be available, or may be broken.
-(define chord-use-regex
- (let ((os (string-downcase (vector-ref (uname) 0))))
- (not (equal? "cygwin" (substring os 0 (min 6 (string-length os)))))))
-
-;; If you have trouble with regex, define #f
-(define chord-use-regex #t)
-;;(define chord-use-regex #f)
-
;;
;; (octave notename accidental)
;;
;;
-;; text: list of word
-;; word: string + optional list of property
-;; property: size, style, font, super, offset
+;; text: scm markup text -- see font.scm and input/test/markup.ly
;;
;; TODO
; Cm iso Cm.no5
(((0 . 0) (2 . -1)) . ("m"))
; C2 iso C2.no3
- (((0 . 0) (1 . 0) (4 . 0)) . (("2" (type . "super"))))
+ (((0 . 0) (1 . 0) (4 . 0)) . (super "2"))
; C4 iso C4.no3
- (((0 . 0) (3 . 0) (4 . 0)) . (("4" (type . "super"))))
+ (((0 . 0) (3 . 0) (4 . 0)) . (super "4"))
; Cdim iso Cm5-
(((0 . 0) (2 . -1) (4 . -1)) . ("dim"))
; Co iso Cm5-7-
; urg
- (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("o" (type . "super"))))
+ (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (super "o"))
; Cdim9
- (((0 . 0) (2 . -1) (4 . -1) (6 . -2) (1 . -1)) . ("dim" ("9" (type . "super"))))
- (((0 . 0) (2 . -1) (4 . -1) (6 . -2) (1 . -1) (3 . -1)) . ("dim" ("11" (type . "super"))))
+ (((0 . 0) (2 . -1) (4 . -1) (6 . -2) (1 . -1)) . ("dim" (super "9")))
+ (((0 . 0) (2 . -1) (4 . -1) (6 . -2) (1 . -1) (3 . -1)) . ("dim" (super "11")))
)
chord::names-alist-banter))
(((0 . 0) (2 . -1)) . ("m"))
(((0 . 0) (3 . 0) (4 . 0)) . ("sus"))
(((0 . 0) (2 . -1) (4 . -1)) . ("dim"))
-;Alternate: (((0 . 0) (2 . -1) (4 . -1)) . (("o" (type . "super"))))
+;Alternate: (((0 . 0) (2 . -1) (4 . -1)) . ((super "o")))
(((0 . 0) (2 . 0) (4 . 1)) . ("aug"))
;Alternate: (((0 . 0) (2 . 0) (4 . 1)) . ("+"))
(((0 . 0) (1 . 0) (4 . 0)) . ("2"))
;; Common seventh chords
- (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("o" (type . "super")) "7"))
+ (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (rows (super "o") "7"))
(((0 . 0) (2 . 0) (4 . 0) (6 . 0)) . ("maj7"))
(((0 . 0) (2 . -1) (4 . 0) (6 . -1)) . ("m7"))
(((0 . 0) (2 . 0) (4 . 0) (6 . -1)) . ("7"))
(((0 . 0) (2 . -1) (4 . 0) (6 . 0)) . ("m(maj7)"))
;jazz: the delta, see jazz-chords.ly
- ;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("N" (type . "super") (style . "msam") (size . -3))))
- (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (("o" (type . "super")) ("/" (size . -2) (offset . (-0.58 . 0.5))) "7")) ; slashed o
+ ;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (super ((family . "math") "N"))
+ (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (rows (super "o") ((kern . -0.5) ((size . "-3") "/")) "7")) ; slashed o
(((0 . 0) (2 . 0) (4 . 1) (6 . -1)) . ("aug7"))
- (((0 . 0) (2 . 0) (4 . -1) (6 . 0)) . (("maj7") ("accidentals--1" (font . "feta") (type . "super")) ("5")))
+ (((0 . 0) (2 . 0) (4 . -1) (6 . 0)) . (rows "maj7" (music (named ("accidentals--1"))) "5"))
(((0 . 0) (3 . 0) (4 . 0) (6 . -1)) . ("7sus4"))
;; Common ninth chords
(((0 . 0) (2 . 0) (4 . 0) (5 . 0) (1 . 0)) . ("6/9")) ;; we don't want the '/no7'
(make-string 1 (integer->char (+ (modulo (+ (cadr pitch) 2) 7) 65)))
(if (= (caddr pitch) 0)
'()
- (list (list (string-append "accidentals-"
- (number->string (caddr pitch)))
- ;; Keep accidentals from being too large
- '(font . "feta") '(type . "super") )))))
+ (list
+ (append '(music)
+ (list
+ (append '(named)
+ (list
+ (string-append "accidentals-"
+ (number->string (caddr pitch)))))))))))
+
(define (step->text pitch)
(string-append
;; additions, subtractions and base or inversion to chord name
;;
(define (chord::inner-name-banter tonic user-name additions subtractions base-and-inversion)
- (apply append (pitch->text-banter tonic)
- (if user-name user-name '())
- ;; why does list->string not work, format seems only hope...
- (if (and chord-use-regex
- (string-match "super" (format "~s" user-name))
- (or (pair? additions)
- (pair? subtractions)))
- '(("/" (type . "super")))
- '())
- (let loop ((from additions) (to '()))
- (if (pair? from)
+ (apply append
+ '(rows)
+ (pitch->text-banter tonic)
+ (if user-name user-name '())
+ ;; why does list->string not work, format seems only hope...
+ (if (and (string-match "super" (format "~s" user-name))
+ (or (pair? additions)
+ (pair? subtractions)))
+ '((super "/"))
+ '())
+ (let loop ((from additions) (to '()))
+ (if (pair? from)
+ (let ((p (car from)))
+ (loop (cdr from)
+ (append to
+ (cons
+ (list 'super (step->text-banter p))
+ (if (or (pair? (cdr from))
+ (pair? subtractions))
+ '((super "/"))
+ '())))))
+ to))
+ (let loop ((from subtractions) (to '()))
+ (if (pair? from)
(let ((p (car from)))
(loop (cdr from)
(append to
- (cons
- (cons (step->text-banter p) '((type . "super")))
- (if (or (pair? (cdr from))
- (pair? subtractions))
- '(("/" (type . "super")))
- '())))))
+ (cons '(super "no")
+ (cons
+ (list 'super (step->text-banter p))
+ (if (pair? (cdr from))
+ '((super "/"))
+ '()))))))
to))
- (let loop ((from subtractions) (to '()))
- (if (pair? from)
- (let ((p (car from)))
- (loop (cdr from)
- (append to
- (cons '("no" (type . "super"))
- (cons
- (cons (step->text-banter p) '((type . "super")))
- (if (pair? (cdr from))
- '(("/" (type . "super")))
- '()))))))
- to))
- (if (and (pair? base-and-inversion)
- (or (car base-and-inversion)
- (cdr base-and-inversion)))
- (cons "/" (append
- (if (car base-and-inversion)
- (pitch->text
- (car base-and-inversion))
- (pitch->text
- (cdr base-and-inversion)))
- '()))
- '())
- '()))
+ (if (and (pair? base-and-inversion)
+ (or (car base-and-inversion)
+ (cdr base-and-inversion)))
+ (cons "/" (append
+ (if (car base-and-inversion)
+ (pitch->text
+ (car base-and-inversion))
+ (pitch->text
+ (cdr base-and-inversion)))
+ '()))
+ '())
+ '()))
(define (chord::name-banter tonic user-name pitches base-and-inversion)
(let ((additions (chord::additions pitches))
transposed)))
(name-func (car pitches) user-name completed base-and-inversion))))))
+
--- /dev/null
+
+; distances are given in stafflinethickness (thicknesses) and
+; staffspace (distances)
+
+(define all-element-descriptions
+ `((Arpeggio . (
+ (X-extent-callback . ,Arpeggio::width_callback)
+ (molecule-callback . ,Arpeggio::brew_molecule)
+ (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
+ (X-offset-callbacks . (,Side_position::aligned_side))
+ (direction . -1)
+ (staff-position . 0.0)
+ (meta . ,(element-description "Arpeggio" arpeggio-interface side-position-interface))
+ ))
+
+ (BarLine . (
+ (break-align-symbol . Staff_bar)
+ (glyph . "|")
+ (break-glyph-function . ,default-break-barline)
+ (barsize-procedure . ,Bar::get_staff_bar_size)
+ (molecule-callback . ,Bar::brew_molecule)
+ (visibility-lambda . ,all-visible)
+ (breakable . #t)
+ (before-line-breaking-callback . ,Bar::before_line_breaking)
+ ;;
+ ;; Ross. page 151 lists other values, we opt for a leaner look
+ ;;
+ (kern . 3.0)
+ (thin-kern . 3.0)
+ (hair-thickness . 1.6)
+ (thick-thickness . 6.0)
+ (meta . ,(element-description "BarLine" bar-line-interface ))
+ ))
+
+ (BarNumber . (
+ (molecule-callback . ,Text_item::brew_molecule)
+ (breakable . #t)
+ (visibility-lambda . ,begin-of-line-visible)
+ (padding . 1.0)
+ (direction . 1)
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (font-family . "roman")
+ (meta . ,(element-description "BarNumber"
+ text-interface break-aligned-interface))
+ ))
+
+ (Beam . ,basic-beam-properties)
+
+ (BreakAlignment . (
+ (breakable . #t)
+ (stacking-dir . 1)
+ (axes 0)
+ (X-offset-callbacks . (,Break_align_interface::self_align_callback))
+ (space-alist . ,default-break-align-space-alist)
+ (meta . ,(element-description "BreakAlignment"
+ axis-group-interface align-interface
+ )
+ )
+ ))
+
+ (BreakAlignGroup . (
+ (axes . (0))
+ (X-offset-callbacks . (,Break_align_interface::alignment_callback))
+
+ (meta . ,(element-description "BreakAlignGroup" axis-group-interface))
+ ))
+
+ (BreathingSign . (
+ (break-align-symbol . Breathing_sign)
+ (breakable . #t )
+ (molecule-callback . ,Breathing_sign::brew_molecule)
+ (Y-offset-callbacks . (,Breathing_sign::offset_callback))
+ (visibility-lambda . ,begin-of-line-invisible)
+ (meta . ,(element-description "BreathingSign" break-aligned-interface))
+ ))
+
+ (Clef . (
+ (molecule-callback . ,Score_element::brew_molecule)
+ (before-line-breaking-callback . ,Clef::before_line_breaking)
+ (breakable . #t)
+ (break-align-symbol . Clef_item)
+ (visibility-lambda . ,begin-of-line-visible)
+ (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
+ (meta . ,(element-description "Clef" clef-interface break-aligned-interface ))
+ ))
+
+ (ChordNames . (
+ (molecule-callback . ,Chord_name::brew_molecule)
+ (after-line-breaking-callback . ,Chord_name::after_line_breaking)
+ (chord-name-function . ,default-chord-name-function)
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (font-size . "0") ;; Hmm, 0 should be the default, maybe??
+ (font-family . "roman")
+ (meta . ,(element-description "ChordNames" chord-name-interface))
+ ))
+
+ (NoteCollision . (
+ (axes 0 1)
+ (note-width . 1.65)
+ (meta . ,(element-description "NoteCollision"
+ note-collision-interface axis-group-interface
+ ))
+ ))
+
+ (Crescendo . (
+ (molecule-callback . ,Crescendo::brew_molecule)
+ (thickness . 1.0)
+ (shorten-for-letter . 4.0)
+ (height . 0.6666)
+ (dash-thickness . 1.2)
+ (dash-length . 4.0)
+ (self-alignment-Y . 0)
+ (Y-offset-callbacks . (,Side_position::aligned_on_self))
+ (meta . ,(element-description "Crescendo" hairpin-interface))
+ ))
+
+ (DotColumn . (
+ (axes 0 )
+ (meta . ,(element-description "DotColumn" dot-column-interface axis-group-interface))
+ ))
+
+ (Dots . (
+ (molecule-callback . ,Dots::brew_molecule)
+ (dot-count . 1)
+ (staff-position . 0.0)
+ (Y-offset-callbacks . (,Dots::quantised_position_callback ,Staff_symbol_referencer::callback))
+ (meta . ,(element-description "Dots" dot-interface ))
+ ))
+
+ (DynamicText . (
+ (Y-offset-callbacks . (,Side_position::aligned_on_self))
+ (molecule-callback . ,Text_item::brew_molecule)
+ (script-priority . 100)
+ (font-style . dynamic)
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (self-alignment-Y . 0)
+
+ (meta . ,(element-description "DynamicText" text-interface ))
+ ))
+
+ (DynamicLineSpanner . (
+ (axes . ( 1))
+ (padding . 3)
+ (minimum-space . 6)
+ (meta . ,(element-description "DynamicLineSpanner" dynamic-interface axis-group-interface side-position-interface))
+ ))
+
+ (LeftEdge . (
+ (break-align-symbol . Left_edge_item)
+ (breakable . #t)
+ (meta . ,(element-description "LeftEdge" break-aligned-interface))
+ ))
+
+ (Fingering . (
+ (molecule-callback . ,Text_item::brew_molecule)
+ (padding . 3.0)
+ (self-alignment-X . 0)
+ (font-style . dynamic)
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+
+ (meta . ,(element-description "Fingering" finger-interface text-script-interface text-interface side-position-interface))
+ ))
+
+ (GraceAlignment . (
+ (axes . (0))
+ (horizontal-space . 1.2)
+ (padding . 1.0)
+ (before-line-breaking-callback . ,Grace_align_item::before_line_breaking)
+ (meta . ,(element-description "GraceAlignment" axis-group-interface align-interface grace-alignment-interface))
+ ))
+
+ (HaraKiriVerticalGroup . (
+ (Y-offset-callbacks . (,Hara_kiri_group_spanner::force_hara_kiri_callback))
+ (Y-extent-callback . ,Hara_kiri_group_spanner::y_extent)
+ (axes 1)
+ (meta . ,(element-description "HaraKiriVerticalGroup" axis-group-interface hara-kiri-group-interface))
+ ))
+
+ (LyricHyphen . (
+ (thickness . 1.0)
+ (height . 0.4)
+ (minimum-length . 0.5)
+ (molecule-callback . ,Hyphen_spanner::brew_molecule)
+ (Y-extent-callback . ,Score_element::point_dimension_callback)
+ (meta . ,(element-description "LyricHyphen" lyric-hyphen-interface ))
+ ))
+
+ (InstrumentName . (
+ (breakable . #t)
+ (Y-offset-callbacks . (,Side_position::centered_on_parent))
+ (molecule-callback . ,Text_item::brew_molecule)
+ (break-align-symbol . Instrument_name)
+ (visibility-lambda . ,begin-of-line-visible)
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (font-family . "roman")
+ (meta . ,(element-description "InstrumentName" text-interface break-aligned-interface))
+ ))
+
+ (KeySignature . (
+ (molecule-callback . ,Key_item::brew_molecule)
+ (break-align-symbol . Key_item)
+ (visibility-lambda . ,begin-of-line-visible)
+ (breakable . #t)
+ (meta . ,(element-description "KeySignature" key-signature-interface break-aligned-interface))
+ ))
+
+ (Accidentals . (
+ (molecule-callback . ,Local_key_item::brew_molecule)
+ (X-offset-callbacks . (,Side_position::aligned_side))
+ (direction . -1)
+ (left-padding . 0.2)
+ (right-padding . 0.4)
+ (meta . ,(element-description "Accidentals" accidentals-interface))
+ ))
+
+ (LineOfScore . (
+ (axes . (0 1))
+ (meta . ,(element-description "LineOfScore" axis-group-interface))
+ ))
+
+ (LyricExtender . (
+ (molecule-callback . ,Lyric_extender::brew_molecule)
+ (height . 0.8) ; stafflinethickness;
+ (right-trim-amount . 0.5)
+ (Y-extent-callback . ,Score_element::point_dimension_callback)
+ (meta . ,(element-description "LyricExtender" lyric-extender-interface))
+ ))
+
+ (LyricText . (
+ (molecule-callback . ,Text_item::brew_molecule)
+ (X-offset-callbacks . (,Side_position::aligned_on_self))
+ (self-alignment-X . 0)
+ (non-rhythmic . #t)
+ (word-space . 0.6)
+
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (font-family . "roman")
+
+ (meta . ,(element-description "LyricText" lyric-syllable-interface text-interface))
+ ))
+
+ (RehearsalMark . (
+ (molecule-callback . ,Text_item::brew_molecule)
+ (breakable . #t)
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (font-style . mark)
+ (visibility-lambda . ,end-of-line-invisible)
+ (padding . 4.0)
+ (meta . ,(element-description "RehearsalMark" mark-interface side-position-interface))
+ ))
+
+ (MultiMeasureRest . (
+ (spacing-procedure . ,Multi_measure_rest::set_spacing_rods)
+ (molecule-callback . ,Multi_measure_rest::brew_molecule)
+ (staff-position . 0)
+ (expand-limit . 10)
+ (padding . 2.0) ; staffspace
+ (minimum-width . 12.5) ; staffspace
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (font-family . "number")
+ (meta . ,(element-description "MultiMeasureRest" multi-measure-rest-interface ))
+ ))
+
+ (NoteColumn . (
+ (axes . (0 1))
+ (meta . ,(element-description "NoteColumn" axis-group-interface note-column-interface))
+ ))
+
+ (NoteHead . (
+ (style . default)
+ (molecule-callback . ,Note_head::brew_molecule)
+ (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
+ (meta . ,(element-description "NoteHead"
+ rhythmic-head-interface
+ note-head-interface ))
+ ))
+
+ (NoteName . (
+ (style . default)
+ (molecule-callback . ,Text_item::brew_molecule)
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (font-family . "roman")
+ (font-size . "0")
+ (meta . ,(element-description "NoteName"
+ note-name-interface
+ general-element-interface))
+ ))
+
+ (OctavateEight . (
+ (self-alignment-X . 0)
+ (text . "8")
+ (visibility-lambda . ,begin-of-line-visible)
+ (X-offset-callbacks . (,Side_position::centered_on_parent ,Side_position::aligned_on_self))
+ (Y-offset-callbacks . (,Side_position::aligned_side))
+ (molecule-callback . ,Text_item::brew_molecule)
+ (font-shape . "italic")
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+
+ (meta . ,(element-description "OctavateEight" text-interface ))
+ ))
+
+ (PaperColumn . (
+ (axes 0)
+ (before-musical-spacing-factor . 0.4)
+ (meta . ,(element-description "PaperColumn" paper-column-interface axis-group-interface spaceable-element-interface))
+ ))
+ (NonMusicalPaperColumn . (
+ (axes 0)
+ (before-musical-spacing-factor . 1.0)
+ (meta . ,(element-description "NonMusicalPaperColumn" paper-column-interface axis-group-interface spaceable-element-interface))
+ ))
+
+ (Rest . (
+ (after-line-breaking-callback . ,Rest::after_line_breaking)
+ (molecule-callback . ,Rest::brew_molecule)
+ (minimum-beam-collision-distance . 1.5)
+ (meta . ,(element-description "Rest"
+ rhythmic-head-interface
+ rest-interface ))
+ ))
+ (RestCollision . (
+ (minimum-distance . 0.75)
+ (meta . ,(element-description "RestCollision" rest-collision-interface ))
+ ))
+
+ (Script . (
+ (molecule-callback . ,Script::brew_molecule)
+ (X-offset-callbacks . (,Side_position::centered_on_parent))
+ (meta . ,(element-description "Script" script-interface side-position-interface))
+ ))
+
+ (ScriptColumn . (
+ (before-line-breaking-callback . ,Script_column::before_line_breaking)
+ (meta . ,(element-description "ScriptColumn" script-column-interface))
+ ))
+
+ (Slur . ,default-basic-slur-properties)
+ (SpacingSpanner . (
+ (spacing-procedure . ,Spacing_spanner::set_springs)
+
+ ;; assume that notes at least this long are present.
+ (maximum-duration-for-spacing . ,(make-moment 1 8))
+ (meta . ,(element-description "SpacingSpanner" spacing-spanner-interface))
+ ))
+ (SpanBar . (
+
+ (break-align-symbol . Staff_bar)
+ (barsize-procedure . ,Span_bar::get_bar_size)
+ (molecule-callback . ,Bar::brew_molecule)
+ (visibility-lambda . ,begin-of-line-invisible)
+ (X-extent-callback . ,Span_bar::width_callback)
+ (Y-offset-callbacks . (,Span_bar::center_on_spanned_callback))
+
+ (breakable . #t)
+ (glyph . "|")
+ (before-line-breaking-callback . ,Span_bar::before_line_breaking)
+ ;; ugh duplication!
+
+ ;;
+ ;; Ross. page 151 lists other values, we opt for a leaner look
+ ;;
+ (kern . 3.0)
+ (thin-kern . 3.0)
+ (hair-thickness . 1.6)
+ (thick-thickness . 6.0)
+ (meta . ,(element-description "SpanBar" span-bar-interface bar-line-interface ))
+ ))
+
+ (StanzaNumber . (
+ (breakable . #t)
+ (molecule-callback . ,Text_item::brew_molecule)
+ (break-align-symbol . Clef_item)
+ (visibility-lambda . ,begin-of-line-visible)
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (font-family . "roman")
+(meta . ,(element-description "StanzaNumber" break-aligned-interface text-interface))
+ ))
+
+ (StaffSymbol . (
+ (molecule-callback . ,Staff_symbol::brew_molecule)
+ (staff-space . 1.0)
+ (line-count . 5 )
+ (meta . ,(element-description "StaffSymbol" staff-symbol-interface ))
+ ))
+ (SostenutoPedal . (
+ (molecule-callback . ,Text_item::brew_molecule)
+ (X-offset-callbacks . (,Side_position::aligned_on_self))
+ (Y-offset-callbacks .
+ (,Side_position::aligned_side
+ ,Side_position::centered_on_parent))
+ (no-spacing-rods . #t)
+ (font-shape . "italic")
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+
+ (self-alignment-X . 0)
+ (meta . ,(element-description "SostenutoPedal" text-interface ))
+ ))
+
+ (Stem . (
+ (before-line-breaking-callback . ,Stem::before_line_breaking)
+ (molecule-callback . ,Stem::brew_molecule)
+ (thickness . 0.8)
+ (beamed-lengths . (0.0 2.5 2.0 1.5))
+ (beamed-minimum-lengths . (0.0 1.5 1.25 1.0))
+
+;; Stems in unnatural (forced) direction should be shortened,
+;; according to [Roush & Gourlay]. Their suggestion to knock off
+;; a whole staffspace seems a bit drastical: we'll do half.
+
+ (lengths . (3.5 3.5 3.5 4.5 5.0))
+ (stem-shorten . (0.5))
+ ; if stem is on middle line, choose this direction.
+ (default-neutral-direction . 1)
+ (X-offset-callbacks . (,Stem::off_callback))
+ (meta . ,(element-description "Stem" stem-interface ))
+ ))
+
+ (StemTremolo . (
+ (molecule-callback . ,Stem_tremolo::brew_molecule)
+ (beam-width . 2.0) ; staff-space
+ (beam-thickness . 0.42) ; staff-space
+ (beam-space-function . ,default-beam-space-function)
+ (meta . ,(element-description "StemTremolo" stem-tremolo-interface ))
+ ))
+
+ (SeparationItem . (
+ (meta . ,(element-description "SeparationItem" separation-item-interface ))
+ ))
+ (SeparatingGroupSpanner . (
+ (spacing-procedure . ,Separating_group_spanner::set_spacing_rods)
+ (meta . ,(element-description "SeparatingGroupSpanner" separation-spanner-interface))
+ ))
+
+ (SustainPedal . (
+ (no-spacing-rods . #t)
+ (molecule-callback . ,Sustain_pedal::brew_molecule)
+ (self-alignment-X . 0)
+ (X-offset-callbacks . (,Side_position::aligned_on_self))
+ (Y-offset-callbacks .
+ (,Side_position::aligned_side
+ ,Side_position::centered_on_parent))
+
+ (meta . ,(element-description "SustainPedal" sustain-pedal-interface side-position-interface))
+ ))
+
+ (SystemStartDelimiter . (
+ (molecule-callback . ,System_start_delimiter::brew_molecule)
+ (after-line-breaking-callback . ,System_start_delimiter::after_line_breaking)
+ (collapse-height . 1.0)
+ (thickness . 1.6)
+ (arch-height . 1.5)
+ (arch-angle . 50.0)
+ (arch-thick . 0.25)
+ (arch-width . 1.5)
+ (bracket-thick . 0.25)
+ (bracket-width . 2.0)
+ (meta . ,(element-description "SystemStartDelimiter" system-start-delimiter ))
+ ))
+
+ (TextScript . (
+ (molecule-callback . ,Text_item::brew_molecule)
+ (no-spacing-rods . #t)
+ (padding . 0.5)
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (font-family . "roman")
+ (meta . ,(element-description "TextScript" text-script-interface text-interface side-position-interface ))
+ ))
+ (TextSpanner . (
+ (molecule-callback . ,Text_spanner::brew_molecule)
+ (font-shape . "italic")
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (type . "line")
+ (direction . 1)
+ (meta . ,(element-description "TextSpanner" text-spanner-interface ))
+ ))
+ (Tie . (
+ (molecule-callback . ,Tie::brew_molecule)
+ (spacing-procedure . ,Tie::set_spacing_rods)
+ (staffline-clearance . 0.24)
+ (details . ((ratio . 0.333) (height-limit . 1.0)))
+ (thickness . 1.2)
+ (x-gap . 0.2)
+ (minimum-length . 2.5)
+ (meta . ,(element-description "Tie" tie-interface ))
+ ))
+
+ (TieColumn . (
+ (after-line-breaking-callback . ,Tie_column::after_line_breaking)
+ (meta . ,(element-description "TieColumn" tie-column-interface ))
+ ))
+
+ (TimeSignature . (
+ (molecule-callback . ,Time_signature::brew_molecule)
+ (break-align-symbol . Time_signature)
+ (visibility-lambda . ,all-visible)
+ (breakable . #t)
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (font-style . timesig)
+
+ (meta . ,(element-description "TimeSignature" time-signature-interface ))
+ ))
+
+ (TupletBracket . (
+ (number-gap . 2.0)
+ (delta-y . 0)
+ (thick . 1.0)
+ (after-line-breaking-callback . ,Tuplet_spanner::after_line_breaking)
+ (molecule-callback . ,Tuplet_spanner::brew_molecule)
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (font-shape . "italic")
+ (meta . ,(element-description "TupletBracket"
+ tuplet-bracket-interface))
+ ))
+
+ (UnaChordaPdeal . (
+ (molecule-callback . ,Text_item::brew_molecule)
+ (font-shape . "italic")
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (no-spacing-rods . #t)
+ (self-alignment-X . 0)
+ (X-offset-callbacks . (,Side_position::aligned_on_self))
+ (Y-offset-callbacks .
+ (,Side_position::aligned_side
+ ,Side_position::centered_on_parent))
+ (meta . ,(element-description "UnaChordaPedal" text-interface ))
+ ))
+
+ (VoltaBracket . (
+ (molecule-callback . ,Volta_spanner::brew_molecule)
+ (direction . 1)
+ (padding . 5)
+ (properties-to-font-name . ,properties-to-font-name)
+ (style-to-font-name . ,style-to-font-name)
+ (markup-to-properties . ,markup-to-properties)
+ (font-style . volta)
+
+ (thickness . 1.6) ; stafflinethickness
+ (height . 2.0) ; staffspace;
+ (minimum-space . 25)
+ (meta . ,(element-description "VoltaBracket" volta-bracket-interface side-position-interface))
+ ))
+
+ (VerticalAlignment . (
+ (axes 1)
+ (Y-extent-callback . ,Axis_group_interface::group_extent_callback)
+ (X-extent-callback . #f)
+ (stacking-dir . -1)
+ (meta . ,(element-description "VerticalAlignment" align-interface axis-group-interface))
+ ))
+
+ (VerticalAxisGroup . (
+ (axes 1)
+ (meta . ,(element-description "VerticalAxisGroup" axis-group-interface))
+ ))
+))
+
+
+
+; (display (map pair? all-element-descriptions))
+
--- /dev/null
+;;;
+;;; font.scm -- implement Font stuff
+;;;
+;;; source file of the GNU LilyPond music typesetter
+;;;
+;;; (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;
+
+
+;; Corresponding properties:
+;;
+;; font-series font-shape font-family font-name font-point font-size
+;;
+
+(define style-to-font-alist
+ '(
+ (finger . "* * number * * -4")
+ (volta . "* * number * * -3")
+ (timesig . "* * number * * 0")
+ (mark . "* * number * * 2")
+ (script . "* * roman * * -1")
+ (large . "* * roman * * 1")
+ (Large . "bold * roman * * 2")
+ (dynamic . "bold * dynamic * * 0")
+ ))
+
+(define paper20-style-sheet-alist-template
+ '(
+ (("medium upright music feta 20" . 0) . "feta20")
+ (("medium upright music feta 16" . -1) . "feta16")
+ (("medium upright music feta 13" . -2) . "feta13")
+ (("medium upright music feta 23" . 1) . "feta23")
+ (("medium upright music feta 26" . 2) . "feta26")
+ (("medium upright braces feta-braces 20" . 0) . "feta-braces20")
+ (("bold italic dynamic feta 10" . 0) . "feta-din10")
+ ;; Hmm
+ (("medium upright number feta-nummer 13" . 3) . "feta-nummer13")
+ (("medium upright number feta-nummer 13" . 2) . "feta-nummer13")
+ (("medium upright number feta-nummer 12" . 1) . "feta-nummer12")
+ (("medium upright number feta-nummer 10" . 0) . "feta-nummer10")
+ (("medium upright number feta-nummer 8" . -1) . "feta-nummer8")
+ (("medium upright number feta-nummer 6" . -2) . "feta-nummer6")
+ (("medium upright number feta-nummer 5" . -3) . "feta-nummer5")
+ (("medium upright number feta-nummer 4" . -4) . "feta-nummer4")
+ (("medium upright number feta-nummer 3" . -5) . "feta-nummer3")
+ (("medium upright roman cmr 8" . -1) . "cmr8" )
+ (("medium upright roman cmr 10" . 0) . "cmr10")
+ (("medium upright roman cmr 12" . 1) . "cmr12")
+ (("bold upright roman cmbx 10" . 0) . "cmbx10")
+ (("bold upright roman cmbx 12" . 1) . "cmbx12")
+ (("medium italic roman cmbx 10" . 0) . "cmbx10")
+ (("medium italic roman cmbx 12" . 1) . "cmbx12")
+ (("medium upright math msam 10" . -2) . "msam10")
+ (("medium upright math msam 10" . -1) . "msam10")
+ (("medium upright math msam 10" . 0) . "msam10")
+ ))
+
+(define (style-sheet-template-entry-compile entry size)
+ (cons
+ (string-append (caar entry)
+ " "
+ (number->string (- (cdar entry) size))
+ " ")
+ (cdr entry)))
+
+(define style-sheet-alist
+ `(
+ (paper11 . ,(map (lambda (x) (style-sheet-template-entry-compile x -3))
+ paper20-style-sheet-alist-template))
+ (paper13 . ,(map (lambda (x) (style-sheet-template-entry-compile x -2))
+ paper20-style-sheet-alist-template))
+ (paper16 . ,(map (lambda (x) (style-sheet-template-entry-compile x -1))
+ paper20-style-sheet-alist-template))
+ (paper20 . ,(map (lambda (x) (style-sheet-template-entry-compile x 0))
+ paper20-style-sheet-alist-template))
+ (paper23 . ,(map (lambda (x) (style-sheet-template-entry-compile x 1))
+ paper20-style-sheet-alist-template))
+ (paper26 . ,(map (lambda (x) (style-sheet-template-entry-compile x 2))
+ paper20-style-sheet-alist-template))
+ ))
+
+(define (font-regexp-to-font-name paper regexp)
+ (let ((style-sheet (cdr (assoc paper style-sheet-alist))))
+ (let loop ((fonts style-sheet))
+ (if (string-match regexp (caar fonts))
+ (cdar fonts)
+ (if (pair? (cdr fonts))
+ (loop (cdr fonts))
+ '())))))
+
+(define (properties-to-font-name paper properties-alist)
+ (let ((font-regexp (apply string-append
+ (map (lambda (key)
+ (string-append
+ (let ((entry (assoc key properties-alist)))
+ (if entry (cdr entry) "[^ ]+"))
+ " "))
+ '(font-series font-shape font-family font-name font-point font-size)))))
+ (font-regexp-to-font-name paper font-regexp)))
+
+(define markup-to-properties-alist
+ '(
+ (style . font-style)
+ (series . font-series)
+ (shape . font-shape)
+ (family . font-family)
+ (name . font-name)
+ (size . font-size)
+ (point . font-point)
+ (kern . kern)
+ ))
+
+(define markup-abbrev-to-properties-alist
+ (append
+ '(
+ (rows . (align . 0))
+ (lines . (align . 1))
+ (roman . (font-family . "roman"))
+ (music . (font-family . "music"))
+ (bold . (font-series . "bold"))
+ (italic . (font-shape . "italic"))
+ (named . (lookup . name))
+ (text . (lookup . value))
+ ;; super needs some work
+ (super . (font-size . "-1")))
+ (map (lambda (x) (cons (car x) (cons 'font-style (car x))))
+ style-to-font-alist)))
+
+(define (markup-to-properties markup)
+ (if (pair? markup)
+ (cons (cdr (assoc (car markup) markup-to-properties-alist)) (cdr markup))
+ (cdr (assoc markup markup-abbrev-to-properties-alist))))
+
+(define (style-to-font-name paper style)
+ (let* ((entry (assoc style style-to-font-alist))
+ (font (if entry (cdr entry) "* * * * * *"))
+ (font-regexp
+ (regexp-substitute/global #f "\\*" font 'pre "[^ ]+" 'post)))
+ (font-regexp-to-font-name paper font-regexp)))
+
(cons 'note-head-interface
(list (list 'noteHeadStyle symbol? 'style))))
+(define generic-notename-properties
+ (cons 'note-name-interface
+ (list (list 'noteNaemStyle symbol? 'style))))
+
(define generic-rest-properties
(cons 'rest-interface
'property definiton case (eg. onevoice -> oneVoice)')
+if 1:
+ def conv (str):
+ str = re.sub ('ChordNames*', 'ChordNames', str)
+ return str
+
+ conversions.append ((1,3,97), conv, 'ChordName -> ChordNames')
############################