From: fred Date: Wed, 29 Jul 1998 21:22:41 +0000 (+0000) Subject: lilypond-1.0.1 X-Git-Tag: release/1.5.59~5864 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=b480518dbc099d6217f65267159b0b92b491e2e8;p=lilypond.git lilypond-1.0.1 --- diff --git a/lily/local-key-engraver.cc b/lily/local-key-engraver.cc new file mode 100644 index 0000000000..222d25beb8 --- /dev/null +++ b/lily/local-key-engraver.cc @@ -0,0 +1,136 @@ +/* + local-key-reg.cc -- implement Local_key_engraver + + (c) 1997--1998 Han-Wen Nienhuys +*/ + +#include "musical-request.hh" +#include "command-request.hh" +#include "local-key-engraver.hh" +#include "local-key-item.hh" +#include "key-engraver.hh" +#include "debug.hh" +#include "key-item.hh" +#include "tie.hh" +#include "note-head.hh" +#include "time-description.hh" +#include "engraver-group.hh" + + +Local_key_engraver::Local_key_engraver() +{ + key_C_ = 0; + key_item_p_ =0; +} + +void +Local_key_engraver::do_creation_processing () +{ + /* + UGHGUHGUH. + + Breaks if Key_engraver is removed from under us. + */ + Translator * result = + daddy_grav_l()->get_simple_translator (Key_engraver::static_name()); + + if (!result) + { + warning (_ ("out of tune") + "! " + _ ("can't find") + " Key_engraver"); + } + else + { + key_C_ = &((Key_engraver*)result->engraver_l ())->key_; + local_key_ = *key_C_; + } +} + +void +Local_key_engraver::process_acknowledged () +{ + if (!key_item_p_ && mel_l_arr_.size()) + { + for (int i=0; i < mel_l_arr_.size(); i++) + { + Item * support_l = support_l_arr_[i]; + Note_req * note_l = mel_l_arr_[i]; + + if (tied_l_arr_.find_l (support_l) && + !note_l->forceacc_b_) + continue; + + if (!note_l->forceacc_b_ + && local_key_.different_acc (note_l->pitch_)) + continue; + if (!key_item_p_) + { + key_item_p_ = new Local_key_item; + announce_element (Score_element_info (key_item_p_, 0)); + } + key_item_p_->add (note_l->pitch_); + key_item_p_->add_support (support_l); + local_key_.set (note_l->pitch_); + } + + } +} + +void +Local_key_engraver::do_pre_move_processing() +{ + if (key_item_p_) + { + for (int i=0; i < support_l_arr_.size(); i++) + key_item_p_->add_support (support_l_arr_[i]); + + typeset_element (key_item_p_); + key_item_p_ =0; + } + + mel_l_arr_.clear(); + tied_l_arr_.clear(); + support_l_arr_.clear(); + forced_l_arr_.clear(); +} + +void +Local_key_engraver::acknowledge_element (Score_element_info info) +{ + Score_element * elem_l = info.elem_l_; + Item * item_l = elem_l->access_Item(); + + Note_req * note_l = (info.req_l_->access_Musical_req ()) + ? info.req_l_->access_Musical_req ()->access_Note_req () : 0; + + if (note_l && item_l && item_l->is_type_b (Note_head::static_name ())) + { + mel_l_arr_.push (note_l); + support_l_arr_.push (item_l); + } + else if (info.req_l_->access_Command_req () + && info.req_l_->access_Command_req ()->access_Key_change_req () && key_C_) + { + local_key_ = *key_C_; + } + else if (elem_l->is_type_b (Tie::static_name ())) + { + Tie * tie_l = (Tie*)elem_l->access_Spanner (); + if (tie_l->same_pitch_b_) + tied_l_arr_.push (tie_l-> head_l_drul_[RIGHT]); + } +} + +void +Local_key_engraver::do_process_requests() +{ + Time_description const * time_C_ = get_staff_info().time_C_; + if (time_C_ && !time_C_->whole_in_measure_) + { + if (key_C_) + local_key_= *key_C_; + } +} + + +IMPLEMENT_IS_TYPE_B1(Local_key_engraver,Engraver); +ADD_THIS_TRANSLATOR(Local_key_engraver); diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly new file mode 100644 index 0000000000..0b9c0fb9bb --- /dev/null +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly @@ -0,0 +1,100 @@ +% allemande-urtext.ly +% belongs together with -cello.ly and -alto.ly +% (who is going to make a -violin.ly?) + +%{ +Well, there are still some scripts in this "urtext". +But merging melodic and scripts doen't work too well yet (see alto_scripts). +%} + +n = { \slurnormal } +d = { \slurdotted } +comma = "\\sethuge\\ \\ ,"; + +allemande_a = \melodic \relative c { + \voiceone a'16 | + [a8 bes16()a] \onevoice + [g()f e()d][d()cis d()e][a,8 \d bes16()g] | + [f( a )d f,] [e8 cis']\voiceone[d8. e16]\onevoice[f g a bes!] | + %3 + \voiceone[c8 \n d16()es]\onevoice[d()c bes()a][c()bes a()g][d'8. f,16] | + [e( g )bes d][c()bes a()g]\n[bes()a g()f] + <[f8. a> | + % urg fix + [b \n f( e )d][e \d cis'( d )cis]\voiceone[d8.( )e16]\onevoice + \n[f( e d)e] | + %6 + [d( c b )c][b( a gis)a][gis8-\prall fis16()e][e' c( a )g] | + \voiceone [e' a, f d] [d f d b]\onevoice + [gis( b e )gis] \d [b( d c )b] | + %8 + \n[c( a f )e][d( f e )d][gis8.-\trill()a16]\d[b d e,()d] | + % urg + [c( e a)d]\voiceone [b8.-\trill a16] a8 s4 s8 \onevoice | + %10 + [d,!16 gis( a b a gis fis )e] \voiceone [e8 f16()e]\onevoice + [d()c b()a] | + \voiceone[d8 e16()f]\onevoice\d[e()d c()b] + \voiceone[d'16()b c()a] \onevoice [e8 gis] | + [a,8. cis16][e g!( f! )e][f( a )d gis,] a8. + %13 + e16 \voiceone [e8. f16] \onevoice + \n[g!()e f()a]\n[cis,( d )e bes][a8.-\trill()g16] | + [f a'(f)d][g \n b,()cis a'][g(f e)d][fis d()es c(] | + %15 + [)bes g'(a, )g][fis a d c'][bes(fis)g bes][d()a bes()g] | + [es(d)es g][c()a bes()g]\d[d(c)d g]\n[bes()fis g()es] | + %17 + \n[c(bes)c bes'][a(c)es g,]\voiceone[fis8-\trill\d g16()a]\onevoice + [d,8 es16()c] | + [bes(d )g bes,][d,8 fis']\voiceone[g8. a16]\onevoice[bes d g, f] | + %19 + \voiceone[e8.-\trill()f16]\onevoice [g()e c()bes] + \n[a()f' g,()f][e g'( a )bes] | + % :-( + % [bes( a g )f^\comma] + [bes( a g )f^"\\sethuge{\\ \\ '}"] + [a()e f()d][bes d(f)a][d()a bes()g] | + %21 + [a,(\n)g'(\n cis())d][e()g, a()e][f()d bes()d]\d[gis, f'(e)d] | + % \n[d( cis b )a^\comma][c(a)fis d'][c a( b )d] + \n[d( cis b )a^"\\sethuge\\ \\ ,"] + [c(a)fis d'][c a( b )d] + [f!(d )gis, d'] | + %23 + [cis(e g!)bes][e()a, bes()g][f()cis d()gis,][a8 cis!] | + % knee + \stemup [d,16 \stemboth d''(c!)a][bes!(g)e cis'][d a f d] d,8. +} + +allemande_b = \melodic \relative c { + \voicetwo + s16 | + % s8 s2. | + s8 s2. | + s2 s16 s4 | + s8 s2. | + s1 | + %5 + s2 d8. s16 s4 | + s1 | + f!16 s16*3 b, s16*3 s2 | + s1 | + s4 e [dis8 ~ dis32 e( fis gis][a b c d! c b c )a] | + %10 + s2 s8 s4 | + s8 s4 s8 s4 | + s1 | + s8 s2. | + %15 + s1*3 | + s2 c,8 s8 s4 | + s2 g8. s16 s4 | + bes8. +} + +allemande = \type Staff \melodic< + \$allemande_a + \$allemande_b +> + diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly new file mode 100644 index 0000000000..67e2f44128 --- /dev/null +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly @@ -0,0 +1,151 @@ +% menuetto-urtext.ly +% belongs together with -cello.ly and -alto.ly +% (who is going to make a -violin.ly?) + +%{ +Well, there are still some scripts in this "urtext". +But merging melodic and scripts doen't work too well yet (see alto_scripts). +%} + +menuetto_i_a = \melodic \relative c { + bes'4 | + [bes8 a bes g] a4 | + g [f8 e] | + [f8( e )d cis b a] | + bes'!4 | + [bes8 a bes g] c!4 | + %7 + | + | + [d8( e16 )f] | + \slurdotted + [e8( d cis )e a,()g] | + a4 ~ d cis | + [g'8( f e )f d() c] | + %13 + bes2 c4 | + [a8 g a f] | + [bes8 a g a] | + [f8( e )f a g bes] | + bes4 | + [c8 bes c a] fis4^\trill | + %19 +% dispute +% <[d,8 bes'(> )a] | + [bes8()a] | + [c8( bes a )bes g()bes] | + d4 ~ cis d | + [g,8 f g e] f4 | + [g,8 g'] <{e4.^\trill ~ d8 } a4.> | + | +} + +menuetto_i_b = \melodic \relative c { + \slurdotted + \skip 2.*1; | + \skip 8*5; | + \skip 2.*1; | + a,8 \skip 8*5; | + \skip 2.*1; | + e'8 \skip 8*5; | + \onevoice + \skip 2.*3; | + g8 \skip 8*5; | + f2 e4 + d8 \skip 8*5; | + g4 ~ f e + f8 \skip 8*5; | + \skip 2.*3; | + es8 \skip 8*3; d4 | + \skip 4*2; d4 | + \skip 8*5; | +% dispute +% g2 f4 | + g4 \skip 4*1; f4 | + cis8 \skip 8*3; d4 | +} + +% UGH, fix this like in sarabande +menuetto_i_a_voice_urg = \melodic{ + \skip 2.*1; \voiceone + \skip 2.*1; \onevoice + \skip 2.*1; \voiceone + \skip 2.*1; \onevoice + \skip 2.*1; \voiceone + \skip 2.*1; \onevoice + \skip 2.*3; \voiceone + \skip 2.*1; \voiceone + \skip 2.*3; + \skip 4*2; \onevoice + \skip 4*2; \voiceone + \skip2.*1; \voiceone + \skip 4*2; \onevoice + \skip2.*1; \voiceone + \skip 2.*1; \onevoice + \skip 2*1; \voiceone + \skip 4*1; + \skip 2.*4; \onevoice + \skip 2.*1; +% \bar "|."; +} + +menuetto_i_a_voice_urg_urg = \melodic< + \$menuetto_i_a_voice_urg + \$menuetto_i_a +> + +menuetto_i_b_voice_urg = \melodic{ + \voicetwo + % urg urg, huh? + \skip 2.*8; \voicetwo +} + +menuetto_i_b_voice_urg_urg = \melodic< + \$menuetto_i_b_voice_urg + \$menuetto_i_b +> + +menuetto_i = \type Staff \melodic< + { \$menuetto_i_a_voice_urg_urg } + { \$menuetto_i_b_voice_urg_urg } +> + +menuetto_ii = \melodic \relative c { + \slurdotted + fis4^\trill [d8( e fis )g] | + a4 fis, a' | + [g,8()b] e4 g | + \slurnormal + [d8( cis )b cis a g] | + % ugh, forcing knee + % Lily's not yet smart enough to decide for herself. + \stemup [fis \stemboth d''( cis b a )g] | + [b( a g fis e )d] | + %7 + [cis d] g4 [fis8( g16 )a] | + <\stemdown a,2. \stemup e'> | + \stemboth + cis4^\prall [e8( d cis )b] | + cis4 g, cis' | + [fis,8()a] d4 fis | + [b,8()a g()fis \slurdotted g()b] | + \slurnormal + %13 + [e, d'( cis )b cis()ais] | + % check slur! [d, b' a! g fis )e] | + [d,( b' a! g fis )e] | + [g( fis e d cis )d] | + [b( cis d e fis )g] | + [a( g fis g a )b] | + c4 dis,, c'' | + %19 + [b8()a c( b a )g] | + [fis() g a()fis g()e] | + \slurdotted + cis4^\trill [a8( b cis )d] | + \slurnormal + [e( fis g )b] a4 | + [g8()fis e()d e()cis] | + d2. +} +