]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lily/include/midi-stream.hh: use stdio.h iso. iostream.h
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 5 Oct 2002 00:08:14 +0000 (00:08 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 5 Oct 2002 00:08:14 +0000 (00:08 +0000)
* lily/parser.yy: remove \dynamicscript.

* ly/dynamic-scripts-init.ly: redo the dynamic scripts
definitions.

13 files changed:
ChangeLog
lily/dynamic-engraver.cc
lily/dynamic-performer.cc
lily/event-chord-iterator.cc
lily/include/midi-stream.hh
lily/include/music.hh
lily/midi-stream.cc
lily/music.cc
lily/my-lily-lexer.cc
lily/parser.yy
lily/span-dynamic-performer.cc
ly/dynamic-scripts-init.ly
scm/music-types.scm

index 71699b26c60b67bf1d38449931937a550a6cb319..f8268e65eb1ecb08dd944c5eff356e1c082c75f5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2002-10-05  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
 
+       * lily/include/midi-stream.hh: use stdio.h iso. iostream.h
+
+       * lily/parser.yy: remove \dynamicscript.
+
+       * ly/dynamic-scripts-init.ly: redo the dynamic scripts
+       definitions. 
+
        * python/midi.c (midi_error): take two arguments.
 
        * Merge 1.6.5 changes:
index 1bad82b1f69657be1361da392c9498fe1968dc03..660efc49210fabad7fbe886ce8f856b76308dcbc 100644 (file)
@@ -95,11 +95,11 @@ Dynamic_engraver::start_translation_timestep ()
 bool
 Dynamic_engraver::try_music (Music * m)
 {
-  if (m->is_mus_type ("dynamic-event"))
+  if (m->is_mus_type ("absolute-dynamic-event"))
     {
-  /*
-    TODO: probably broken.
-   */
+      /*
+       TODO: probably broken.
+      */
       script_req_ = m;
       return true;
     }
@@ -440,7 +440,7 @@ which takes care of vertical positioning.
 ",
                  
 /* creats*/       "DynamicLineSpanner DynamicText Hairpin TextSpanner",
-/* accepts */     "text-script-event crescendo-event decrescendo-event",
+/* accepts */     "absolute-dynamic-event crescendo-event decrescendo-event",
 /* acks  */      "note-column-interface script-interface",
 /* reads */       "",
 /* write */       "");
index cb405a599a238f652d3634154836c51617bfb9e6..a8940aa2888575f6dfebf8529b8521a848a10f9a 100644 (file)
 
 /*
   TODO:
+  
     handle multiple events
- */
 
-/**
-   perform absolute (text) dynamics
+    perform absolute (text) dynamics
  */
 class Dynamic_performer : public Performer
 {
@@ -33,8 +32,6 @@ private:
   Audio_dynamic* audio_;
 };
 
-
-
 Dynamic_performer::Dynamic_performer ()
 {
   script_req_ = 0;
@@ -124,7 +121,7 @@ Dynamic_performer::try_music (Music* r)
 {
   if (!script_req_)
     {
-      if (r->is_mus_type ("dynamic-event")) // fixme.
+      if (r->is_mus_type ("absolute-dynamic-event")) // fixme.
        {
          script_req_ = r;
          return true;
@@ -136,7 +133,7 @@ Dynamic_performer::try_music (Music* r)
 ENTER_DESCRIPTION(Dynamic_performer,
                  /*descr*/               "",
                  /* creats*/ "",
-                 /* accepts */     "note-column-interface script-interface",
+                 /* accepts */     "absolute-dynamic-event",
                  /* acks */ "",
                  /*reads */"dynamicAbsoluteVolumeFunction midiMaximumVolume midiMinimumVolume midiInstrument instrumentEqualizer",
                  /*writes*/"");
index ea9636d3b9b4e9006bff81fad63ff21b7198b5c3..7216d2aa38fe3e1adc499d0fc1f9bf708b3ea1ce 100644 (file)
@@ -73,7 +73,7 @@ Event_chord_iterator::process (Moment m)
 
          bool gotcha = try_music (mus);
          if (!gotcha)
-           mus->origin ()->warning (_f ("Junking event: `%s'", classname (mus)));
+           mus->origin ()->warning (_f ("Junking event: `%s'", mus->name()));
        }
     }
   skip (m);
index 67a5bac7a1c208e71f1421790e9a9c40fd0edcb3..879f74474009eaace0f880d128f6f37ee0876b2b 100644 (file)
@@ -7,7 +7,7 @@
 #ifndef MIDI_STREAM_HH
 #define MIDI_STREAM_HH
 
-#include <iostream>
+#include <stdio.h>
 #include "string.hh"
 
 /// Midi outputfile
@@ -21,7 +21,7 @@ struct Midi_stream {
 
   void open ();
 
-  std::ostream* os_;
+  FILE *out_file_;
   String filename_string_;
 };
 
index ac462525eecd659fff8d9ffaac34fc2a12380478..d804cfa6856175df8941504007ebb200f1266666 100644 (file)
@@ -47,7 +47,7 @@ public:
   bool internal_is_music_type (SCM) const;
   
   virtual Pitch to_relative_octave (Pitch);
-
+  String name ()const;
   /// The duration of this piece of music
   virtual Moment get_length () const;
   virtual Moment start_mom () const;
index 95f956dea51ce5bb9a7367f07d41a7d6772b3eb9..a89622fa009e185b7a9e3bf8ad6a626f55db254c 100644 (file)
 Midi_stream::Midi_stream (String filename)
 {
   filename_string_ = filename;
-  os_ = open_file_stream (filename, std::ios::out|std::ios::binary);
+  out_file_ = fopen (filename.to_str0(), "wb");
 }
 
 Midi_stream::~Midi_stream ()
 {
-  close_file_stream (os_);
+  fclose (out_file_);
 }
 
 Midi_stream&
@@ -33,7 +33,10 @@ Midi_stream::operator << (String str)
 {
   Byte * b = str.get_bytes ();
   for (int sz = str.length (); sz--;)
-    *os_ << *b ++;
+    {
+      fputc (*b, out_file_);
+      b++;
+    }
   return *this;
 }
 
@@ -59,7 +62,10 @@ Midi_stream::operator << (Midi_item const& midi_c_r)
     {
       Byte * b = str.get_bytes ();
       for (int sz = str.length (); sz--;)
-       *os_ << *b++;
+       {
+         fputc (*b, out_file_);
+         b++;
+       }
     }
   
   return *this;
index 2b85a4f423d5bb08a1fb762a66b0abc631f08762..4dcaee74a29514d3db5e6cff13d86d397e1faf1a 100644 (file)
@@ -39,6 +39,20 @@ Music::internal_is_music_type (SCM k)const
   return scm_memq (k, ifs) != SCM_BOOL_F;
 }
 
+String
+Music::name ()const
+{
+  SCM nm = get_mus_property ("name");
+  if (gh_string_p (nm))
+    {
+      return ly_scm2string (nm);
+    }
+  else
+    {
+      return classname (this);
+    }
+}
+
 void
 Music::transpose (Pitch)
 {
index 925cc607d8ff917f765c86e3e2e38ece97e6b9e7..39ffb03042fda8de5ba7fbeed004f372245c5ef2 100644 (file)
@@ -7,7 +7,6 @@
 */
 
 #include <ctype.h>
-
 #include <sstream>
 
 #include "lily-proto.hh"
@@ -50,7 +49,6 @@ static Keyword_ent the_key_tab[]={
   {"default", DEFAULT},
   {"denies", DENIES},
   {"duration", DURATION},
-  {"dynamicscript", DYNAMICSCRIPT},
   {"grobdescriptions", GROBDESCRIPTIONS},
   {"figures",FIGURES},
   {"grace", GRACE},
index ed572e7182d2764a8e96db1298ae7ae345c1f94b..981c22100590ebe7a3aae17bd0a0761a74902df1 100644 (file)
@@ -159,7 +159,6 @@ yylex (YYSTYPE *s,  void * v)
 %token ALIAS
 %token APPLY
 %token ARPEGGIO
-%token DYNAMICSCRIPT
 %token ACCEPTS
 %token ALTERNATIVE
 %token BAR
@@ -1399,17 +1398,6 @@ verbose_event:
                $$ = unsmob_music ($1)->clone ();
                $$->set_spot (THIS->here_input ());
        }
-       | DYNAMICSCRIPT embedded_scm {
-               /*
-                       TODO: junkme, use text-type == dynamic
-               */
-               Music *d = MY_MAKE_MUSIC("TextScriptEvent");
-               SCM dyn = ly_symbol2scm ("dynamic");
-               d->set_mus_property ("text-type" , dyn);
-               d->set_mus_property ("text", $2);
-               d->set_spot (THIS->here_input ());
-               $$ = d;
-       }
        | SPANREQUEST bare_int STRING {
 
                Music * sp = make_span_req ($3);
index db2523d289fea07b0c3316b86a0b2b7cd169d6d6..89f236ade30df0a8ba63d21554ab1270f9ca68a8 100644 (file)
@@ -173,7 +173,8 @@ Span_dynamic_performer::start_translation_timestep ()
 bool
 Span_dynamic_performer::try_music (Music* r)
 {
-  if (r->is_mus_type ("dynamic-event"))        // fixme.
+  if (r->is_mus_type ("crescendo-event")
+      || r->is_mus_type ("decrescendo-event"))
     {
       Direction d = to_dir (r->get_mus_property ("span-direction"));
       span_req_l_drul_[d] = r;
@@ -183,5 +184,5 @@ Span_dynamic_performer::try_music (Music* r)
 }
 ENTER_DESCRIPTION (Span_dynamic_performer,
                   "", "",
-                  "dynamic-event", 
+                  "crescendo-event decrescendo-event", 
                   "", "", "");
index 42cfe4964177a038f4f4724e0ffd449b49714004..7e1b3e35dc690d6abc53afad3ff9c6b200de5b7e 100644 (file)
@@ -3,25 +3,30 @@
 %
 % declare the standard dynamic identifiers.
 %
-ppppp = \dynamicscript #"ppppp"
-pppp = \dynamicscript #"pppp"
-ppp = \dynamicscript #"ppp"
-pp = \dynamicscript #"pp"
-p = \dynamicscript #"p"
-mp = \dynamicscript #"mp"
-mf = \dynamicscript #"mf"
-f = \dynamicscript #"f"
-ff = \dynamicscript #"ff"
-fff = \dynamicscript #"fff"
-ffff = \dynamicscript #"ffff"
-fp = \dynamicscript #"fp"
 
-sf = \dynamicscript #"sf"
-sfp = \dynamicscript #"sfp"
-sff = \dynamicscript #"sff"
-sfz = \dynamicscript #"sfz"
-fz = \dynamicscript #"fz"
-sp = \dynamicscript #"sp"
-spp = \dynamicscript #"spp"
-rfz = \dynamicscript #"rfz"
+#(define (make-dynamic-script str)
+  (let* ((m (make-music-by-name  'AbsoluteDynamicEvent)))
+  (ly-set-mus-property! m 'text str)
+  m
+  ))
+ppppp = #(make-dynamic-script "pppp")
+pppp = #(make-dynamic-script "pppp")
+ppp = #(make-dynamic-script "ppp")
+pp = #(make-dynamic-script "pp")
+p = #(make-dynamic-script "p")
+mp = #(make-dynamic-script "mp")
+mf = #(make-dynamic-script "mf")
+f = #(make-dynamic-script "f")
+ff = #(make-dynamic-script "ff")
+fff = #(make-dynamic-script "fff")
+ffff = #(make-dynamic-script "ffff")
+fp = #(make-dynamic-script "fp")
+sf = #(make-dynamic-script "sf")
+sfp = #(make-dynamic-script "sfp")
+sff = #(make-dynamic-script "sff")
+sfz = #(make-dynamic-script "sfz")
+fz = #(make-dynamic-script "fz")
+sp = #(make-dynamic-script "sp")
+spp = #(make-dynamic-script "spp")
+rfz = #(make-dynamic-script "rfz")
 
index 32522e672a06c1c1e5093ee44f9f5257236da384..9c69c6f0f24ed4abf8a61577cbe7d357a208f085 100644 (file)
@@ -8,6 +8,12 @@
        (span-type . "abort")
        (types . (general-music event abort-event))
        ))
+    (AbsoluteDynamicEvent
+     . (
+       (description . "")
+       (internal-class-name . "Event")
+       (types . (general-music event dynamic-event absolute-dynamic-event))
+       ))
     (ArpeggioEvent 
      . (
        (description .  "Make an arpeggio on this note. Syntax:
 
        (internal-class-name . "Event")
        (types . (general-music dynamic-event decrescendo-event event))
-       )) 
+       ))
     (ExtenderEvent
      . (
        (description .  "")