* lily/parser.yy: remove \dynamicscript.
* ly/dynamic-scripts-init.ly: redo the dynamic scripts
definitions.
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:
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;
}
",
/* 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 */ "");
/*
TODO:
+
handle multiple events
- */
-/**
- perform absolute (text) dynamics
+ perform absolute (text) dynamics
*/
class Dynamic_performer : public Performer
{
Audio_dynamic* audio_;
};
-
-
Dynamic_performer::Dynamic_performer ()
{
script_req_ = 0;
{
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;
ENTER_DESCRIPTION(Dynamic_performer,
/*descr*/ "",
/* creats*/ "",
- /* accepts */ "note-column-interface script-interface",
+ /* accepts */ "absolute-dynamic-event",
/* acks */ "",
/*reads */"dynamicAbsoluteVolumeFunction midiMaximumVolume midiMinimumVolume midiInstrument instrumentEqualizer",
/*writes*/"");
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);
#ifndef MIDI_STREAM_HH
#define MIDI_STREAM_HH
-#include <iostream>
+#include <stdio.h>
#include "string.hh"
/// Midi outputfile
void open ();
- std::ostream* os_;
+ FILE *out_file_;
String filename_string_;
};
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;
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&
{
Byte * b = str.get_bytes ();
for (int sz = str.length (); sz--;)
- *os_ << *b ++;
+ {
+ fputc (*b, out_file_);
+ b++;
+ }
return *this;
}
{
Byte * b = str.get_bytes ();
for (int sz = str.length (); sz--;)
- *os_ << *b++;
+ {
+ fputc (*b, out_file_);
+ b++;
+ }
}
return *this;
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)
{
*/
#include <ctype.h>
-
#include <sstream>
#include "lily-proto.hh"
{"default", DEFAULT},
{"denies", DENIES},
{"duration", DURATION},
- {"dynamicscript", DYNAMICSCRIPT},
{"grobdescriptions", GROBDESCRIPTIONS},
{"figures",FIGURES},
{"grace", GRACE},
%token ALIAS
%token APPLY
%token ARPEGGIO
-%token DYNAMICSCRIPT
%token ACCEPTS
%token ALTERNATIVE
%token BAR
$$ = 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);
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;
}
ENTER_DESCRIPTION (Span_dynamic_performer,
"", "",
- "dynamic-event",
+ "crescendo-event decrescendo-event",
"", "", "");
%
% 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")
(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 . "")