}
\score{
- % huh? how to set id_str
\melodic{
- \id "Staff" "Cello"; \IImenuetto
+ \id "Staff" "cello"; \IImenuetto
}
\paper{
unitspace= 9.0\mm ;% to get lily to use only three lines
protected:
void do_print() const;
- virtual bool try_request( Request* req_l );
+ virtual bool do_try_request( Request* req_l );
virtual void process_requests();
private:
protected:
void do_print() const;
- virtual bool try_request( Request* req_l );
+ virtual bool do_try_request( Request* req_l );
virtual void process_requests();
private:
protected:
void do_print() const;
- virtual bool try_request( Request* req_l );
+ virtual bool do_try_request( Request* req_l );
virtual void process_requests();
private:
Note_performer();
~Note_performer();
+protected:
virtual void process_requests();
- virtual bool /*do_*/try_request( Request *req_l ) ;
-protected:
+ virtual bool do_try_request( Request *req_l ) ;
virtual void do_print() const;
-#if 0
- virtual void /*do_*/process_requests();
- virtual void /*do_*/pre_move_processing();
- virtual void /*do_*/post_move_processing();
-#endif
-
private:
Melodic_req * note_req_l_;
-// Rhythmic_req * note_req_l_;
-
-// Melodic_req* current_l_;
Moment off_mom_;
-// Moment on_mom_;
};
#endif // NOTE_PERFORMER_HH
Performer_group_performer();
~Performer_group_performer();
- bool is_bottom_performer_b() const;
- virtual Performer_group_performer* find_performer_l( String name, String id );
-
virtual void add( Performer* perf_p );
- virtual bool try_request( Request* req_l );
+ virtual void print()const { Performer::print() ; }
+ virtual Moment get_mom() const;
+ virtual bool do_try_request( Request* req_l );
+ virtual bool try_request(Request*r) { return Performer::try_request(r) ; }
+
+protected:
virtual Translator* find_get_translator_l( String name, String id );
virtual Translator* get_default_interpreter();
Translator * ancestor_l( int l = 1 );
virtual int depth_i() const;
- virtual Moment get_mom() const;
-
- virtual void midi_output( Midi_stream* midi_stream_l );
virtual void process_requests();
- virtual void set_track( Midi_def* midi_l, int& track_i_r );
+ virtual void do_removal_processing();
+ virtual void do_creation_processing();
+ bool is_bottom_performer_b() const;
+ virtual Performer_group_performer* find_performer_l( String name, String id );
+
+ virtual void do_print()const;
private:
Pointer_list<Performer*> perf_p_list_;
String instrument_str();
protected:
- virtual void midi_output( Midi_stream* midi_stream_l_ );
virtual void play_event( Midi_item* l );
- virtual void set_track( Midi_def* midi_l, int& track_i_r );
+ virtual void do_removal_processing();
+ virtual void do_creation_processing();
private:
void header();
- Midi_def* midi_l_;
Moment midi_mom_;
- int track_i_;
Midi_track* midi_track_p_;
};
class Swallow_performer : public Performer {
public:
NAME_MEMBERS();
- virtual bool try_request (Request* ) { return true; }
+protected:
+ virtual bool do_try_request (Request* ) { return true; }
};
#endif // SWALLOW_PERF_HH
#include "midi-item.hh"
-IMPLEMENT_STATIC_NAME(Key_performer);
+
IMPLEMENT_IS_TYPE_B1(Key_performer,Performer);
ADD_THIS_PERFORMER(Key_performer);
}
bool
-Key_performer::try_request( Request* req_l )
+Key_performer::do_try_request( Request* req_l )
{
if ( key_req_l_ )
return false;
#include "midi-item.hh"
-IMPLEMENT_STATIC_NAME(Lyric_performer);
+
IMPLEMENT_IS_TYPE_B1(Lyric_performer,Performer);
ADD_THIS_PERFORMER(Lyric_performer);
}
bool
-Lyric_performer::try_request( Request* req_l )
+Lyric_performer::do_try_request( Request* req_l )
{
Musical_req* m_l = req_l->musical();
if ( !m_l || ! m_l->lreq_l() )
#include "midi-item.hh"
-IMPLEMENT_STATIC_NAME(Meter_performer);
+
IMPLEMENT_IS_TYPE_B1(Meter_performer,Performer);
ADD_THIS_PERFORMER(Meter_performer);
}
bool
-Meter_performer::try_request( Request* req_l )
+Meter_performer::do_try_request( Request* req_l )
{
if ( meter_req_l_ )
return false;
#include "debug.hh"
IMPLEMENT_IS_TYPE_B1(Note_performer,Performer);
-IMPLEMENT_STATIC_NAME(Note_performer);
+
ADD_THIS_PERFORMER(Note_performer);
Note_performer::Note_performer()
}
bool
-Note_performer::try_request( Request* req_l )
+Note_performer::do_try_request( Request* req_l )
{
if ( note_req_l_ )
return false;
#include "string.hh"
#include "string-convert.hh"
-IMPLEMENT_STATIC_NAME(Staff_performer);
+
IMPLEMENT_IS_TYPE_B1(Staff_performer,Performer_group_performer);
ADD_THIS_PERFORMER(Staff_performer);
Staff_performer::Staff_performer()
{
midi_mom_ = 0;
- track_i_ = 0;
- midi_track_p_ = 0;
+ midi_track_p_ = new Midi_track;
+}
+void
+Staff_performer::do_creation_processing()
+{
+ header();
+}
+
+void
+Staff_performer::do_removal_processing()
+{
+ Performer::play_event( midi_track_p_);
}
Staff_performer::~Staff_performer()
{
- delete midi_track_p_;
+ delete midi_track_p_;
}
void
Staff_performer::header()
{
// set track name
- Midi_text track_name( Midi_text::TRACK_NAME, "Track " + String_convert::i2dec_str( track_i_, 0, '0' ) );
+ Midi_text track_name( Midi_text::TRACK_NAME, instrument_str());
midi_track_p_->add( Moment( 0 ), &track_name );
// set instrument :-)
Midi_text instrument_name( Midi_text::INSTRUMENT_NAME, instrument_str() );
midi_track_p_->add( Moment( 0 ), &instrument_name );
- Midi_tempo midi_tempo( midi_l_->get_tempo_i( Moment( 1, 4 ) ) );
+
+ Midi_tempo midi_tempo( get_tempo_i( ) );
midi_track_p_->add( Moment( 0 ), &midi_tempo );
}
return Translator::id_str_;
}
-void
-Staff_performer::midi_output( Midi_stream* midi_stream_l )
-{
- *mlog << "[" << track_i_ << "]";
- *midi_stream_l << *midi_track_p_;
-}
-
void
Staff_performer::play_event( Midi_item* l )
{
Moment mom = get_mom();
Moment delta_t = mom - midi_mom_ ;
midi_mom_ += delta_t;
- midi_track_p_->add( delta_t, l );
-}
-
-void
-Staff_performer::set_track( Midi_def* midi_l, int& track_i_r )
-{
- midi_l_ = midi_l;
- track_i_ = track_i_r++;
- midi_track_p_ = new Midi_track( track_i_ );
- header();
+ midi_track_p_->add( delta_t, l);
}