4 // source file of the GNU LilyPond music typesetter
6 // (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
11 #include "string-convert.hh"
14 #include "midi-item.hh"
15 #include "midi-stream.hh"
18 Midi_stream::Midi_stream( String filename_str, int tracks_i, int clocks_per_4_i )
20 filename_str_ = filename_str;
22 clocks_per_4_i_ = clocks_per_4_i;
28 Midi_stream::~Midi_stream()
34 Midi_stream::operator <<( String str )
37 str = String_convert::bin2hex_str( str );
48 Midi_stream::operator <<( Midi_item const& mitem_c_r )
50 // *this << mitem_c_r.str();
51 mitem_c_r.output( this );
58 Midi_stream::operator <<( int i )
60 // output binary string ourselves
61 *this << Midi_item::i2varint_str( i );
71 00 00 00 06 chunk length
74 00 60 96 per quarter-note
76 *this << Midi_header( 1, tracks_i_, clocks_per_4_i_ );
82 os_p_ = new ofstream( filename_str_ );
84 error ("can't open `" + filename_str_ + "\'" );