]> git.donarmstrong.com Git - lilypond.git/blobdiff - mi2mu/midi-score.cc
release: 0.1.7
[lilypond.git] / mi2mu / midi-score.cc
index 0c0bb5098d89c9ce112743e36ec0f4ea7ed9e194..7b3262045c37a84bfdbc256d2b241427a4b3747f 100644 (file)
@@ -26,40 +26,42 @@ int
 Midi_score::output_mudela( String filename_str )
 {
        tor( NORMAL_ver ) << "Lily output to " << filename_str << " ..." << endl;
+       
+       // ugh, ugly midi type 1 fix
+       if ( ( midi_track_p_list_.size() == 1 ) && !midi_track_p_list_.top()->number_i_ )
+               midi_track_p_list_.top()->number_i_ = 1;
 
        int track_i = 0;
        Lily_stream lily_stream( filename_str );
        for ( PCursor<Midi_track*> i( midi_track_p_list_.top() ); i.ok(); i++ ) {
                tor( NORMAL_ver ) << "track " << track_i++ << ": " << flush;
                i->output_mudela( lily_stream );
-               lily_stream.newline();
+               lily_stream << "\n";
                tor( NORMAL_ver ) << endl;
        }
 
-       lily_stream << "\\score{";
-       lily_stream.indent();
-               for ( PCursor<Midi_track*> i( midi_track_p_list_.top() ); i.ok(); i++ ) {
-                       lily_stream << "\\staff{ ";
-                       lily_stream << i->name_str();
-                       lily_stream << " }";
-                       lily_stream.newline();
-               }
-               lily_stream.newline();
-               lily_stream << "\\paper{";
-                       lily_stream.indent();
-                       lily_stream << "\\unitspace 20\\mm";
-                       lily_stream.tnedni();
-               lily_stream << "}";
-               lily_stream << "\\midi{";
-                       lily_stream.indent();
-                       // not use silly 0 track
-                       midi_track_p_list_.bottom()->midi_tempo_p_->output_mudela( lily_stream, true );
-                       lily_stream.tnedni();
-               lily_stream << "}";
-               lily_stream.tnedni();
+       lily_stream << "\\score{\n";
+       lily_stream << " < \\multi 3;\n";
+       for ( PCursor<Midi_track*> i( midi_track_p_list_.top() ); i.ok(); i++ ) {
+               if ( ( midi_track_p_list_.size() != 1 ) 
+                       && ( i == midi_track_p_list_.top() ) )
+                       continue;
+               lily_stream << "\\melodic{ ";
+               lily_stream << "\\$" << i->id_str();
+               lily_stream << " }\n";
+       }
+       lily_stream << ">\n";
+
+       lily_stream << "\\paper{";
+       lily_stream << "unitspace = 20.0\\mm;";
+       lily_stream << "}\n";
+
+       lily_stream << "\\midi{";
+               // not use silly 0 track
+               midi_track_p_list_.bottom()->midi_tempo_p_->output_mudela( lily_stream, true );
+       lily_stream << "}\n";
 
-       lily_stream << "}";
-       lily_stream.newline();
+       lily_stream << "}\n";
 
        return 0;
 }