SCRIPTS = clearlily cpgento genheader make_patch \
lily.efence\
- make_version make_website release convert-mudela show-latest
+ make_version make_website release convert-mudela show-latest \
+ conflily
EXTRA_DISTFILES = $(SCRIPTS)
#
AC_ARG_ENABLE(mingw32,
[ mingw-prefix=DIR set the mingw32 directory (standalone windows32 exes)],
[MINGWPREFIX=$enableval],
- [MINGWPREFIX=$enableval])
+ [MINGWPREFIX=no])
AC_ARG_ENABLE(tex-prefix,
[ tex-prefix=DIR set the tex-directory to find TeX subdirectories. (default: PREFIX)],
--- /dev/null
+%{MudelaHeader
+
+ filename: beams.ly
+ title:
+ description:
+ composer(s): heu
+ entered-by: jcn
+ copyright: GPL
+
+ Tested Features: beams and beamflags
+EndMudelaHeader
+%}
+
+\score{
+ \staff{ \inputregister{melodicregs}
+ \melodic{ \octave c';
+ \meter 8/4;
+ \duration8;
+ \stem 1; [c c'' a' f']
+ \duration16;
+ \stem 1; [c c'' a' f']
+ \duration32;
+ \stem 1; [c c'' a' f']
+ \duration64;
+ \stem 1; [c c'' a' f']
+ \duration128;
+ \stem 1; [c c'' a' f']
+
+ \duration 8;
+ \stem 1; ['g 'g 'g 'g]
+ \duration 16;
+ \stem 1; ['g 'g 'g 'g]
+ \duration 32;
+ \stem 1; ['g 'g 'g 'g]
+ \duration 64;
+ \stem 1; ['g 'g 'g 'g]
+ \duration 128;
+ \stem 1; ['g 'g 'g 'g]
+ }
+ }
+ \staff{ \inputregister{melodicregs}
+ \melodic{ \octave c';
+ \meter 8/4;
+ \duration8;
+ \stem -1; [a' 'a c e]
+ \duration16;
+ \stem -1; [a' 'a c e]
+ \duration32;
+ \stem -1; [a' 'a c e]
+ \duration64;
+ \stem -1; [a' 'a c e]
+ \duration128;
+ \stem -1; [a' 'a c e]
+
+ \octave c;
+ \duration 8;
+ \stem -1; [d'' d'' d'' d'']
+ \duration 16;
+ \stem -1; [d'' d'' d'' d'']
+ \duration 32;
+ \stem -1; [d'' d'' d'' d'']
+ \duration 64;
+ \stem -1; [d'' d'' d'' d'']
+ \duration 128;
+ \stem -1; [d'' d'' d'' d'']
+ }
+ }
+ \paper{}
+}
void set(Lookup*);
~Paper_def();
Paper_def(Paper_def const&);
+ /// The distance between beams
+ Real interbeam_f()const;
/**
The distance between lines
*/
Array< Collision *> collision_l_arr_;
protected:
virtual void acknowledge_element(Score_elem_info);
+ virtual void do_print() const;
virtual void do_pre_move_processing();
public:
Rest_collision_register();
Link_array<Note_head> head_l_arr_;
public:
int dir_i_;
+ Stem* stem_l_;
void add(Note_head *);
+ void add(Stem *);
NAME_MEMBERS();
void translate_y(Real dy);
Rest_column();
protected:
+ virtual void do_print() const;
virtual void do_substitute_dependency(Score_elem*, Score_elem*);
};
for (int i=0; i < script_l_arr_.size(); i++)
col_l->add(script_l_arr_[i]);
- if (ncol_p_&&stem_l_)
- ncol_p_->add(stem_l_);
+ if (stem_l_) {
+ if (ncol_p_)
+ ncol_p_->add(stem_l_);
+ if (restcol_p_)
+ restcol_p_->add(stem_l_);
+ }
if (restcol_p_) {
if (! restcol_p_ -> dir_i_)
restcol_p_->dir_i_ = dir_i_;
return lookup_p_->ball(4).dim.y.length();
}
+Real
+Paper_def::interbeam_f() const
+{
+ return lookup_p_->interbeam_f();
+}
Real
Paper_def::internote_f() const
{
(c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
*/
+#include "debug.hh"
#include "rest-collision.hh"
#include "rest-collision-reg.hh"
#include "collision.hh"
#include "rest-column.hh"
#include "note-column.hh"
+IMPLEMENT_STATIC_NAME(Rest_collision_register);
+IMPLEMENT_IS_TYPE_B1(Rest_collision_register, Request_register);
+ADD_THIS_REGISTER(Rest_collision_register);
+
+Rest_collision_register::Rest_collision_register()
+{
+ rest_collision_p_ =0;
+}
+
void
Rest_collision_register::acknowledge_element(Score_elem_info i)
{
if (nC == Collision::static_name()) {
collision_l_arr_.push((Collision*)i.elem_l_->item());
}
- else if (nC == Rest_column ::static_name()) {
+ else if (nC == Note_column::static_name()) {
+ // what should i do, what should _register do?
+ if (!rest_collision_p_)
+ rest_collision_p_ = new Rest_collision;
+ rest_collision_p_->add((Note_column*)i.elem_l_->item());
+ }
+ else if (nC == Rest_column::static_name()) {
if (!rest_collision_p_)
rest_collision_p_ = new Rest_collision;
rest_collision_p_->add((Rest_column*)i.elem_l_->item());
}
}
-Rest_collision_register::Rest_collision_register()
+void
+Rest_collision_register::do_print() const
{
- rest_collision_p_ =0;
+#ifndef NPRINT
+ mtor << "collisions: " << collision_l_arr_.size();
+ if ( rest_collision_p_ )
+ rest_collision_p_->print();
+#endif
}
-
-IMPLEMENT_STATIC_NAME(Rest_collision_register);
-IMPLEMENT_IS_TYPE_B1(Rest_collision_register, Request_register);
-ADD_THIS_REGISTER(Rest_collision_register);
{
#ifndef NPRINT
mtor << "flag "<< flag_i_ << " print_flag_b_ " << print_flag_b_;
-
#endif
}
#undef mtor
#endif
-#define MVOICE_LIST
+// arrays are 20% faster, but we have no Pointer_array yet
+#define MVOICE_LIST // does this work?
+#define MEVENT_LIST
+#define TCOL_LIST
#include "string.hh"
#include "string-convert.hh"
void output_mudela_rest_remain( Lily_stream& lily_stream_r, Moment mom );
#ifdef TCOL_LIST
-#warning using track_column list
Pointer_list<Track_column*> tcol_p_list_;
#else
Array<Track_column*> tcol_p_array_;
#endif
#ifdef MVOICE_LIST
-#warning using midi_voice list
Pointer_list<Midi_voice*> midi_voice_p_list_;
#else
Array<Midi_voice*> midi_voice_p_array_;
Moment end_mom_;
Moment begin_mom_;
#ifdef MEVENT_LIST
-#error using list
Pointer_list<Midi_event*> midi_event_p_list_;
#else
Array<Midi_event*> midi_event_p_array_;
//private:
#ifdef MEVENT_LIST
-#error using list
Pointer_list<Midi_event*> midi_event_p_list_;
#else
Array<Midi_event*> midi_event_p_array_;
midi_time_p_ = new Midi_time( 4, 2, 24, 8 );
midi_tempo_p_ = new Midi_tempo( 1000000 );
#ifdef TCOL_LIST
-#error doing list!
tcol_p_list_.bottom().add( new Track_column( Moment( 0 ) ) );
#else
tcol_p_array_.push( new Track_column( Moment( 0 ) ) );
Moment begin_mom = Midi_track::end_mom();
#ifdef MVOICE_LIST
for ( PCursor<Midi_voice*> i( midi_voice_p_list_.top() ); i.ok(); i++ )
-// if ( i->begin_mom() >= now_mom )// well, which one ?
if ( i->begin_mom() > now_mom )
begin_mom = begin_mom <? i->begin_mom();
#else
for ( int i = 0; i < midi_voice_p_array_.size(); i++ )
- if ( midi_voice_p_array_[ i ]->begin_mom() >= now_mom ) // well, which one ?
if ( midi_voice_p_array_[ i ]->begin_mom() > now_mom )
-// begin_mom = begin_mom <? midi_voice_p_array_[ i ]->begin_mom();
+ begin_mom = begin_mom <? midi_voice_p_array_[ i ]->begin_mom();
#endif
return begin_mom;
}
end_mom = end_mom <? i->end_mom();
#else
for ( int i = 0; i < midi_voice_p_array_.size(); i++ )
-// if ( midi_voice_p_array_[ i ]->end_mom() >= now_mom )
if ( midi_voice_p_array_[ i ]->end_mom() > now_mom )
end_mom = end_mom <? midi_voice_p_array_[ i ]->end_mom();
#endif
Midi_track::remove_end_at( Link_list<Midi_voice*>& open_voices_r, Moment mom )
{
for ( PCursor<Midi_voice*> i( open_voices_r.top() ); i.ok(); i++ )
-// if ( i->end_mom() == mom ) { }
if ( i->end_mom() <= mom ) {
tor( DEBUG_ver ) << "open_voices (" << open_voices_r.size() << "): -1\n";
i.remove_p();