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 );
44 Midi_stream::operator <<( Midi_item const& mitem_c_r )
46 mitem_c_r.output_midi( *this );
53 Midi_stream::operator <<( int i )
55 // output binary string ourselves
56 *this << Midi_item::i2varint_str( i );
66 00 00 00 06 chunk length
69 00 60 96 per quarter-note
71 *this << Midi_header( 1, tracks_i_, clocks_per_4_i_ );
77 os_p_ = new ofstream( filename_str_ );
79 error ("can't open `" + filename_str_ + "\'" );