]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 0.0.75.jcn6: pats
authorJan Nieuwenhuizen <janneke@gnu.org>
Fri, 25 Jul 1997 08:22:40 +0000 (10:22 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Fri, 25 Jul 1997 08:22:40 +0000 (10:22 +0200)
pl 75.jcn6
- {lyric,meter,key}-performer
- span-brace-*

pl 75.jcn5
- doze compile

25 files changed:
.version
NEWS
init/engraver.ini
init/performer.ini
init/table16.ini
lily/.version
lily/elem-group.cc
lily/include/elem-group.hh
lily/include/key-performer.hh [new file with mode: 0644]
lily/include/lyric-performer.hh
lily/include/meter-performer.hh [new file with mode: 0644]
lily/include/music-list.hh
lily/include/span-brace-engraver.hh [new file with mode: 0644]
lily/include/span-brace-item.hh [new file with mode: 0644]
lily/key-performer.cc [new file with mode: 0644]
lily/lookup.cc
lily/lyric-performer.cc
lily/meter-performer.cc [new file with mode: 0644]
lily/span-brace-engraver.cc [new file with mode: 0644]
lily/span-brace-item.cc [new file with mode: 0644]
lily/template7.cc
lily/template8.cc
mi2mu/midi-event.cc
tex/dimen.tex
tex/lilyponddefs.tex

index 0d744cf4c454aff29dc1da2c2c390f2fc4098801..4733fbb512c0514dfde6de71b29019b3d224c7a9 100644 (file)
--- a/.version
+++ b/.version
@@ -4,4 +4,4 @@ TOPLEVEL_PATCH_LEVEL = 75
 # use to send patches, always empty for released version:
 # include separator: ".postfix", "-pl" makes rpm barf
 
-TOPLEVEL_MY_PATCH_LEVEL = .jcn4
+TOPLEVEL_MY_PATCH_LEVEL = .jcn6
diff --git a/NEWS b/NEWS
index d2f72f88303c2c990e7a0158efa18afde78f8501..e68557764c6132884d187be65f61b1556b48e5c1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,10 @@
+pl 75.jcn6
+       - {lyric,meter,key}-performer
+       - span-brace-*
+
+pl 75.jcn5
+       - doze compile
+
 pl 75.jcn4
        - midi output, notes only
 
index fac0e15c060cdb717c2ed758f2c3b4b81a0e18c9..f78fa772b40ad7b27c8149698f0fa7d444eff93f 100644 (file)
@@ -14,6 +14,7 @@
 
        \consists "Vertical_align_engraver";
        \consists "Span_bar_engraver";
+       \consists "Span_brace_engraver";
 
        \contains\requesttranslator {
                Engraver "Staff_engravers"
index 093ac59b5fb629f5ef452d9ff2cab80ee6e12b6b..174da6fb0bd60df243a0b694572c14e487b33248 100644 (file)
@@ -21,7 +21,9 @@
                        \contains\requesttranslator{
                                Performer "Performer_group_performer"
                                \consists "Lyric_performer";
+                               \consists "Key_performer";
                                \consists "Note_performer";
+                               \consists "Meter_performer";
                                \consists "Silent_performer";
                        }
                }
index d09a275b7231dd962c19067b6f926539ac5264fc..d18731c84590256100de03599d708cc29cbdd20f 100644 (file)
@@ -129,6 +129,7 @@ table_sixteen=
 
      % dims ignored for this table
      "param" = \table {
+            "brace"    "\brace{%}"             0.0\pt  0.0\pt  -3.0\pt 3.0\pt
             "meter"    "\generalmeter{%}{%}"   0.0\pt  10.0\pt -5.0\pt 5.0\pt
             "linestaf" "\linestafsym{%}{%}"
             "stem"     "\stem{%}{%}"
index 85229439ead8a14e1148f409509978a1ae2fc295..c535523065559dc8d8ff098fc5b00060b175906f 100644 (file)
@@ -4,4 +4,4 @@ PATCH_LEVEL = 75
 # use to send patches, always empty for released version:
 # include separator: ".postfix", "-pl" makes rpm barf
 
-MY_PATCH_LEVEL = .jcn2
+MY_PATCH_LEVEL = .jcn5
index e104187fc24c85cbb21dc9a3a49f78a5a75ab9f4..1bf661a27140846c11cd1d2c3eb325258b67adf2 100644 (file)
@@ -150,6 +150,10 @@ Elbement_group::Elbement_group()
 IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group, Horizontal_group, Vertical_group);
 IMPLEMENT_STATIC_NAME(Horizontal_vertical_group);
 
+Horizontal_vertical_group::Horizontal_vertical_group()
+{
+}
+
 void
 Horizontal_vertical_group::do_substitute_dependency(Score_elem*o,Score_elem*n)
 {
index c49c425a45e3493cfdbb2ff47c9f5d8f08861c32..245b2dfcf15646a60b6caef7f5232080b3627664 100644 (file)
@@ -60,7 +60,7 @@ class Horizontal_vertical_group : public Vertical_group,
 protected:
     virtual Horizontal_vertical_group* elem_group() { return this; }
 public:
-    Element_group();
+    Horizontal_vertical_group();
     bool contains_b(Score_elem const *)const;
     NAME_MEMBERS();
     virtual void do_substitute_dependency(Score_elem*,Score_elem*);
diff --git a/lily/include/key-performer.hh b/lily/include/key-performer.hh
new file mode 100644 (file)
index 0000000..b261214
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+  key-performer.hh -- declare Key_performer
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+*/
+
+#ifndef KEY_PERFOMER_HH
+#define KEY_PERFOMER_HH
+
+#include "lily-proto.hh"
+#include "performer.hh"
+
+class Key_performer : public Performer {
+public:
+    NAME_MEMBERS();
+    Key_performer();
+    ~Key_performer();
+
+protected:
+    void do_print() const;
+    virtual bool try_request( Request* req_l );
+    virtual void process_requests();
+
+private:
+    Key_change_req* key_req_l_;
+};
+
+#endif // KEY_PERFOMER_HH
index 3abb55b0baafbb0ddd3c1ab9b06e400aad3de589..e9bd22a2ee278e862f841eb01ee40cc75c23781a 100644 (file)
@@ -3,8 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-           Jan Nieuwenhuizen <jan@digicash.com>
+  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 
@@ -21,11 +20,13 @@ public:
     Lyric_performer();
     ~Lyric_performer();
 
+protected:
+    void do_print() const;
+    virtual bool try_request( Request* req_l );
+    virtual void process_requests();
+
 private:
     Array<Lyric_req*> lreq_arr_;
-    virtual bool do_try_request(Request*);
-    virtual void do_process_requests();
-    virtual void do_post_move_processing();
 };
 
 #endif // LYRIC_PERFOMER_HH
diff --git a/lily/include/meter-performer.hh b/lily/include/meter-performer.hh
new file mode 100644 (file)
index 0000000..13cbec5
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+  meter-performer.hh -- declare Meter_performer
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+*/
+
+#ifndef METER_PERFOMER_HH
+#define METER_PERFOMER_HH
+
+#include "lily-proto.hh"
+#include "performer.hh"
+
+class Meter_performer : public Performer {
+public:
+    NAME_MEMBERS();
+    Meter_performer();
+    ~Meter_performer();
+
+protected:
+    void do_print() const;
+    virtual bool try_request( Request* req_l );
+    virtual void process_requests();
+
+private:
+    Meter_change_req* meter_req_l_;
+};
+
+#endif // METER_PERFOMER_HH
index 30d5793253970fc3271c9ef179e1edb717ba1959..6ea2ae0f478907d4d587a40f53fb37cd35f62112 100644 (file)
@@ -56,6 +56,7 @@ public:
 class Voice_element : public Chord {
 public:
     NAME_MEMBERS();
+    Voice_element();
     VIRTUAL_COPY_CONS(Voice_element,Music);
 };
 
diff --git a/lily/include/span-brace-engraver.hh b/lily/include/span-brace-engraver.hh
new file mode 100644 (file)
index 0000000..a915569
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+  span-brace-engraver.hh -- declare Span_brace_engraver
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef SPAN_BRACE_GRAV_HH
+#define SPAN_BRACE_GRAV_HH
+
+#include "engraver.hh"
+
+class Span_brace_engraver : public Engraver
+{
+public:
+    NAME_MEMBERS();
+    Span_brace_engraver();
+    ~Span_brace_engraver();
+
+    virtual void acknowledge_element( Score_elem_info i );
+    virtual void do_pre_move_processing();
+
+private:
+    Span_brace_item* span_brace_p_;
+    Array<Bar*> bar_l_arr_;
+    Vertical_align_element* valign_l_;
+};
+
+#endif // SPAN_BRACE_GRAV_HH
diff --git a/lily/include/span-brace-item.hh b/lily/include/span-brace-item.hh
new file mode 100644 (file)
index 0000000..88c8c2a
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+  span-brace-item.hh -- declare Span_brace_item
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+          Jan Nieuwenhuizen <jan@digicash.com>
+*/
+
+
+#ifndef SPAN_BRACE_ITEM_HH
+#define SPAN_BRACE_ITEM_HH
+
+#include "bar.hh"
+
+class Span_brace_item : public Item
+{
+public:
+    NAME_MEMBERS();
+    SCORE_ELEM_CLONE(Span_brace_item);
+
+    void add( Bar* bar_l );
+    void set( Vertical_align_element* vae_l );
+    void do_pre_processing();
+    void do_substitute_dependency( Score_elem*, Score_elem* );
+    Molecule* brew_molecule_p() const;
+
+private:
+    Link_array<Bar> spanning_l_arr_;
+};
+
+#endif // SPAN_BRACE_ITEM_HH
diff --git a/lily/key-performer.cc b/lily/key-performer.cc
new file mode 100644 (file)
index 0000000..0ed1f33
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+  key-performer.cc -- implement Key_performer
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+*/
+
+#include "key-performer.hh"
+#include "command-request.hh"
+#include "midi-item.hh"
+
+
+IMPLEMENT_STATIC_NAME(Key_performer);
+IMPLEMENT_IS_TYPE_B1(Key_performer,Performer);
+ADD_THIS_PERFORMER(Key_performer);
+
+Key_performer::Key_performer()
+{
+    key_req_l_ = 0;
+}
+
+Key_performer::~Key_performer()
+{
+}
+
+void 
+Key_performer::do_print() const
+{
+#ifndef NPRINT
+    if ( key_req_l_ )
+       key_req_l_->print();
+#endif
+}
+
+void
+Key_performer::process_requests()
+{
+    if ( key_req_l_ ) {
+       int sharps_i = key_req_l_->sharps_i();
+       int flats_i = key_req_l_->flats_i();
+       // midi cannot handle non-conventional keys
+       if ( !( flats_i && sharps_i ) ) {
+           Midi_key k( sharps_i - flats_i, key_req_l_->minor_b() );
+           play_event( &k );
+       }
+       key_req_l_ = 0;
+    }
+}
+
+bool
+Key_performer::try_request( Request* req_l )
+{
+    if ( key_req_l_ )
+       return false;
+
+    if ( req_l->command() )
+       key_req_l_ = req_l->command()->keychange();
+
+    if ( key_req_l_ )
+       return true;
+
+    return false;
+}
+
index e4a92693db53492c47d81ff48c5e70fe820e1564..790ab2d34adf285e1464b4b1e6d601bacc864ab5 100644 (file)
@@ -240,18 +240,18 @@ Lookup::stem(Real y1,Real y2) const
 }
 
 Symbol
-Lookup::vbrace(Real &y) const
+Lookup::vbrace( Real &y ) const
 {
-    if (y < 2* 20 PT) {
-       warning ( "piano brace too small (" + print_dimen(y)+ ")");
-       y = 2*20 PT;
+    if ( y < 2 * 20 PT ) {
+       warning( "staff brace too small (" + print_dimen( y ) + ")" );
+       y = 2 * 20 PT;
     }
-    if (y > 67 * 2 PT) {
-       warning ( "piano brace too big (" + print_dimen(y)+ ")");       
-       y = 67 *2 PT;
+    if ( y > 2 * 67 PT ) {
+       warning( "staff brace too big (" + print_dimen( y ) + ")" );
+       y = 2 * 67 PT;
     }
     
-    int idx = int(rint((y/2.0 - 20 ) + 148));
+    int idx = int( rint( y/2.0 - 20 ) );
     
     Symbol s = (*symtables_)("param")->lookup("brace");
     
index aa24dcac2501e7a34c7a57a32952ae7371a8d7ee..81014b9d5df526522d8042636c1eb4669c320ac6 100644 (file)
@@ -3,15 +3,13 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-           Jan Nieuwenhuizen <jan@digicash.com>
+  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
 */
 
 #include "lyric-performer.hh"
+#include "text-def.hh"
 #include "musical-request.hh"
-//#include "text-item.hh"
-//#include "paper-def.hh"
-//#include "lookup.hh"
+#include "midi-item.hh"
 
 
 IMPLEMENT_STATIC_NAME(Lyric_performer);
@@ -26,37 +24,34 @@ Lyric_performer::~Lyric_performer()
 {
 }
 
-bool
-Lyric_performer::do_try_request( Request* req_l )
+void 
+Lyric_performer::do_print() const
 {
-    Musical_req* m_l = req_l->musical();
-    if ( !m_l || ! m_l->lreq_l() ) 
-       return false;
-    lreq_arr_.push( m_l->lreq_l() );
-
-    return true;
+#ifndef NPRINT
+    if ( lreq_arr_.size() )
+       lreq_arr_[ 0 ]->print();
+#endif
 }
 
 void
-Lyric_performer::do_process_requests()
+Lyric_performer::process_requests()
 {
-#if 0
-    Text_item * last_item_l =0;
-    for (int i=0; i < lreq_arr_.size(); i++) {
-       Text_item *lp = new Text_item(lreq_arr_[i]->tdef_p_ );
-       lp->dir_i_ = -1;
-       lp->fat_b_ = true;
-       if (last_item_l)
-           lp->add_support(last_item_l);
-       last_item_l = lp;
-       typeset_element(lp);
+    if ( lreq_arr_.size() ) {
+       Midi_text t( Midi_text::LYRIC, lreq_arr_[ 0 ]->tdef_p_->text_str_ );
+       play_event( &t );
     }
-#endif
+
+    lreq_arr_.clear();
 }
 
-void
-Lyric_performer::do_post_move_processing()
+bool
+Lyric_performer::try_request( Request* req_l )
 {
-    lreq_arr_.set_size(0);
+    Musical_req* m_l = req_l->musical();
+    if ( !m_l || ! m_l->lreq_l() ) 
+       return false;
+    lreq_arr_.push( m_l->lreq_l() );
+
+    return true;
 }
 
diff --git a/lily/meter-performer.cc b/lily/meter-performer.cc
new file mode 100644 (file)
index 0000000..c04bf3b
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+  meter-performer.cc -- implement Meter_performer
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+*/
+
+#include "meter-performer.hh"
+#include "command-request.hh"
+#include "midi-item.hh"
+
+
+IMPLEMENT_STATIC_NAME(Meter_performer);
+IMPLEMENT_IS_TYPE_B1(Meter_performer,Performer);
+ADD_THIS_PERFORMER(Meter_performer);
+
+Meter_performer::Meter_performer()
+{
+    meter_req_l_ = 0;
+}
+
+Meter_performer::~Meter_performer()
+{
+}
+
+void 
+Meter_performer::do_print() const
+{
+#ifndef NPRINT
+    if ( meter_req_l_ )
+       meter_req_l_->print();
+#endif
+}
+
+void
+Meter_performer::process_requests()
+{
+    if ( meter_req_l_ ) {
+       Midi_time m( meter_req_l_->beats_i_, meter_req_l_->one_beat_i_, 18 );
+       play_event( &m );
+       meter_req_l_ = 0;
+    }
+}
+
+bool
+Meter_performer::try_request( Request* req_l )
+{
+    if ( meter_req_l_ )
+       return false;
+
+    if ( req_l->command() )
+       meter_req_l_ = req_l->command()->meterchange();
+
+    if ( meter_req_l_ )
+       return true;
+
+    return false;
+}
+
diff --git a/lily/span-brace-engraver.cc b/lily/span-brace-engraver.cc
new file mode 100644 (file)
index 0000000..d1f7314
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+  span-brace-engraver.cc -- implement Span_brace_engraver
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+          Jan Nieuwenhuizen <jan@digicash.com>
+*/
+
+#include "span-brace-item.hh"
+#include "span-brace-engraver.hh"
+#include "vertical-align-spanner.hh"
+
+IMPLEMENT_STATIC_NAME(Span_brace_engraver);
+IMPLEMENT_IS_TYPE_B1(Span_brace_engraver,Engraver);
+ADD_THIS_ENGRAVER(Span_brace_engraver);
+
+Span_brace_engraver::Span_brace_engraver()
+{
+    span_brace_p_ = 0;
+    valign_l_ = 0;
+}
+
+Span_brace_engraver::~Span_brace_engraver()
+{
+}
+
+void
+Span_brace_engraver::acknowledge_element( Score_elem_info i )
+{
+    if ( i.elem_l_->is_type_b( Bar::static_name() ) ) {
+       bar_l_arr_.push( (Bar*)i.elem_l_->item() );
+       
+       if ( bar_l_arr_.size() >= 2 && !span_brace_p_ ) {
+           span_brace_p_ = new Span_brace_item;
+           announce_element( Score_elem_info( span_brace_p_, 0 ) );
+       }
+    } 
+    else if ( i.elem_l_->is_type_b( Vertical_align_spanner::static_name() ) 
+       && i.origin_grav_l_arr_.size() <= 2 )
+       valign_l_ = (Vertical_align_spanner*)i.elem_l_->spanner();
+}
+
+void
+Span_brace_engraver::do_pre_move_processing()
+{
+    if ( span_brace_p_ ) {
+       for ( int i=0; i < bar_l_arr_.size() ; i++ )
+           span_brace_p_->add( bar_l_arr_[ i ] );
+       span_brace_p_->set( valign_l_ );
+       typeset_breakable_item( span_brace_p_ );
+       span_brace_p_ = 0;
+    }
+
+    bar_l_arr_.clear();
+}
+
diff --git a/lily/span-brace-item.cc b/lily/span-brace-item.cc
new file mode 100644 (file)
index 0000000..877914e
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+  span-brace-item.cc -- implement Span_brace_item
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+          Jan Nieuwenhuizen <jan@digicash.com>
+*/
+
+#include "span-brace-item.hh"
+#include "lookup.hh"
+#include "symbol.hh"
+#include "paper-def.hh"
+#include "molecule.hh"
+#include "vertical-align-elem.hh"
+
+IMPLEMENT_STATIC_NAME(Span_brace_item);
+IMPLEMENT_IS_TYPE_B1( Span_brace_item, Item );
+
+void
+Span_brace_item::add( Bar* b )
+{
+    b->spanned_i_++;
+    spanning_l_arr_.push( b );
+    add_dependency( b );
+}
+
+void
+Span_brace_item::do_substitute_dependency( Score_elem* o, Score_elem* n )
+{
+    Bar* bold = 0;
+    if ( o->is_type_b( Bar::static_name() ) ) 
+       bold = (Bar*)o->item();
+    else
+       return;
+
+    bold->spanned_i_--;
+    Bar* b = 0;
+    if ( n && n->is_type_b( Bar::static_name() ) ) {
+       b = (Bar*)n->item();
+       b->spanned_i_++;
+    }
+    
+    spanning_l_arr_.substitute( bold, b );
+}
+
+void
+Span_brace_item::set( Vertical_align_element* a )
+{
+    add_dependency( a );
+}
+    
+
+void
+Span_brace_item::do_pre_processing()
+{
+    if ( spanning_l_arr_.size () < 1 ) {
+       transparent_b_ = true;
+       empty_b_ = true;
+    } 
+    else { // 0: nobreak, 1: pre, 2: post
+       empty_b_ = ( break_status_i() != 2 );
+       transparent_b_ = ( break_status_i() != 1 );
+    }
+}
+
+Molecule*
+Span_brace_item::brew_molecule_p() const
+{
+    Interval y;
+    for ( int i = 0; i < spanning_l_arr_.size(); i++ )
+       y.unite( spanning_l_arr_[ i ]->height() );
+    // ugh, one extra staff @ 16pt
+//    Real length_f = y.length() + spanning_l_arr_[ 0 ]->height().length();
+//    Real length_f = y.length() + 16;
+    Real length_f = y.length() - 6;
+    Symbol s = paper()->lookup_l()->vbrace( length_f );
+    Molecule* mol_p = new Molecule( Atom ( s ) );
+//    mol_p->translate_y( - ( length_f + 16 ) / 2 );
+    // urgh, what's wrong here?
+    mol_p->translate_y( - length_f / 2 - 6 );
+
+    return mol_p;
+}
+
index 602fdeb2b62326e7f3890620fbbc1ce9c74ac1ee..6a5bb7d83f7f7c1dee7d232b35771fd6682bfb90 100644 (file)
@@ -6,6 +6,8 @@
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
+#include "proto.hh"
+#include "plist.hh"
 #include "plist.tcc"
 #include "pcursor.tcc"
 
index db1531f0a9750e5fb0d5aec0d49174963682ff3b..bd33a49eb311d64c380d93cbfa5c0a87ac1f3437 100644 (file)
@@ -1,3 +1,5 @@
 
+#include "proto.hh"
+#include "plist.hh"
 #include "plist.tcc"
 #include "pcursor.tcc"
index d96c6f7f1bbca3a7394937836cc349f850d0d306..4f16fe3c36248c4c4e4c7d2e342634a95990a0ce 100644 (file)
@@ -34,12 +34,12 @@ Midi_key::Midi_key( int accidentals_i, int minor_i )
 String
 Midi_key::mudela_str( bool command_mode_bo )
 {
-       String str = "\\key\\";
+       String str = "\\key";
        if ( !minor_i_ ) 
                str += String( (char)( ( key_i_ + 2 ) % 7 + 'A'  ) );
        else // heu, -2: should be - 1 1/2: A -> fis
                str += String( (char)( ( key_i_ + 2 - 2 ) % 7 + 'a'  ) );
-       str = String( "%" ) + str + ";\n"; // "\key\F" not supported yet...
+       str = String( "% " ) + '"' str + '"' + "; % not supported yet\n"; 
        return str;
 }
 
index c67dee6551d12b58178a83f3bc1d13152f2fd82a..4bfc7218652a770e48263af6d504919410887812 100644 (file)
@@ -4,7 +4,9 @@
 
 \font\musicfont=musix16
 \font\slurfont=xslu16
-\def\thefont{\musicfont}
+\font\specfont=musixspx
+% \def\thefont{\musicfont}
+\def\thefont{\specfont}
 
 \def\mb#1{{\thefont\char#1}}
 
@@ -18,7 +20,7 @@
         \divide\wid by 2
         \here=-\wid
         \loop\ifdim\here<\wid\advance\here by\inc
-                \hbox to0pt{\kern\here\vrule width0.05pt height 2pt\hss}%
+                \hbox to0pt{\kern\here\vrule width0.05pt height 4pt\hss}%
         \repeat%
 }
 
index bbfef12dfca9788d0ee971201cfff4ce7910dcf4..d003f860b7b2959d01f750f95654db96b3670de9 100644 (file)
 
 
 \def\beamslope#1#2{{\count0=#2\advance\count0 by#1\musicfnt\char\count0}}
-\def\rulesym#1#2{\vrule height #1 width #2}
+\def\brace#1{\count0=148\advance\count0 by #1\musicdraw\char\count0}
 \def\crescendosym#1{\count0=84\advance\count0 by #1\musicdraw\char\count0}
 \def\decrescendosym#1{\count0=116\advance\count0 by #1\musicdraw\char\count0}
+\def\rulesym#1#2{\vrule height #1 width #2}
 \def\settext#1{\textfont #1}
 \def\setitalic#1{\italicfont #1}
 \def\setdynamic#1{\dynfont #1}