source file of the GNU LilyPond music typesetter
- (c) 1997--2001 Jan Nieuwenhuizen <janneke@gnu.org>
+ (c) 1997--2002 Jan Nieuwenhuizen <janneke@gnu.org>
*/
-#include "debug.hh"
+#include "warn.hh"
#include "main.hh"
#include "misc.hh"
#include "string.hh"
#include "midi-stream.hh"
#include "audio-item.hh"
#include "duration.hh"
+#include "scm-option.hh"
#include "killing-cons.tcc"
midi_p_ = midi_p;
}
+/*
+ ugh. midi output badly broken since grace note hackage.
+ */
String
Midi_event::str () const
{
- int delta_i = delta_mom_ * Moment (384 * 4); // ugh.
+ Rational rat_dt = (delta_mom_.main_part_ * Rational (384) +
+ delta_mom_.grace_part_ * Rational (100))*Rational (4);
+ int delta_i = int (rat_dt);
String delta_str = Midi_item::i2varint_str (delta_i);
String midi_str = midi_p_->str ();
{
Byte program_byte = 0;
bool found = false;
- SCM proc = scm_eval2 (ly_symbol2scm ("midi-program"), SCM_EOL);
+ SCM proc = scm_primitive_eval (ly_symbol2scm ("midi-program"));
SCM program = gh_call1 (proc, ly_symbol2scm (audio_l_->str_.ch_C()));
found = (program != SCM_BOOL_F);
if (found)
String
Midi_time_signature::str () const
{
- int num_i = audio_l_->beats_i_;
- int den_i = audio_l_->one_beat_i_;
+ int num = audio_l_->beats_i_;
+ int den = audio_l_->one_beat_i_;
String str = "ff5804";
- str += String_convert::i2hex_str (num_i, 2, '0');
- str += String_convert::i2hex_str (intlog2 (den_i) , 2, '0');
+ str += String_convert::i2hex_str (num, 2, '0');
+ str += String_convert::i2hex_str (intlog2 (den) , 2, '0');
str += String_convert::i2hex_str (clocks_per_1_i_, 2, '0');
str += String_convert::i2hex_str (8, 2, '0');
return String_convert::hex2bin_str (str);
{
Moment m = audio_l_->length_mom_;
#if 0
- if (m < Moment (1, 1000))
+ //junkme?
+ if (m < Moment (Rational (1, 1000)))
{
warning (_ ("silly duration"));
m = 1;
str += to_str ((char)0x42);
else if (audio_l_->type_str_ == "Sustain")
str += to_str ((char)0x40);
- else if (audio_l_->type_str_ == "UnaChorda")
+ else if (audio_l_->type_str_ == "UnaCorda")
str += to_str ((char)0x43);
int pedal = ((1 - audio_l_->dir_) / 2) * 0x7f;