+pl 0.1.7.jcn1
+ - complete redo mid/back-end of mi2mu
+ - bf: do not create/play empty Audio-{text,instrument} events
+
pl 7
- Audio_element as base for Audio_item and Audio_staff. fixes
midi-lyric segfault
*********
aug 11
+
pl 4
- correction of GNU Music Manifesto
- moved lowlevel stuff of Source_file to Mapped_file_storage.
- mudela: parse tempo requests, \midi{ \tempo 4= 60;}
******
+pl 0.1.3.jcn1
+ - mi2mu: simplification +bf lily_stream: indentation and wordwrap
+ - mi2mu: bf: blunt: non-alpha(num) chars from identifiers
aug 8
pl 3
- don't crash if no Clef_engraver.
TOPLEVEL_PATCH_LEVEL = 7
# use to send patches, always empty for released version:
-TOPLEVEL_MY_PATCH_LEVEL =
+TOPLEVEL_MY_PATCH_LEVEL = .jcn1
echo untarring ..
if [ ! -f $newarc ]
then
- echo cant find $newarc
+ echo "can't find $newarc"
exit
fi
tar zfx $newarc
if [ ! -f $oldarc ]
then
- echo cant find $oldarc
+ echo "can't find $oldarc"
exit
fi
tar zfx $oldarc
#ifndef STRING_CONVERT_HH
#define STRING_CONVERT_HH
+#include "string.hh"
+
/*
///a class which only has functions.
//#define functor class // cute. docxx fucks up
ticks_i_ = 0;
}
+Duration::Duration( int type_i, int dots_i = 0 )
+{
+ type_i_ = type_i;
+ dots_i_ = dots_i;
+ ticks_i_ = 0;
+}
+
bool
Duration::duration_type_b(int t)
{
Ctor of Duration. type_i should be a power of 2.
*/
Duration();
+ Duration( int type_i, int dots_i = 0 );
/// is the "plet factor" of this note != 1 ?
bool plet_b();
String str()const;
#ifndef SOURCE_HH
#define SOURCE_HH
+
+#include "proto.hh"
#include "plist.hh"
+
class Sources
{
public:
Midi_item*
Audio_instrument::midi_item_p()
{
- return new Midi_instrument( 0, str_ );
+ return str_.length_i() ? new Midi_instrument( 0, str_ ) : 0;
}
Audio_item::Audio_item( Request* req_l )
Midi_item*
Audio_text::midi_item_p()
{
- return new Midi_text( this );
+ return text_str_.length_i() ? new Midi_text( this ) : 0;
}
void
Lyric_performer::process_requests()
{
- if ( lreq_arr_.size() )
+ if ( lreq_arr_.size() && lreq_arr_[ 0 ]->tdef_p_->text_str_.length_i() )
play( new Audio_text( Audio_text::LYRIC, lreq_arr_[ 0 ]->tdef_p_->text_str_ ) );
lreq_arr_.clear();
}
cout << String_convert::bin2hex_str( event_str ) << endl;
}
assert(delta_time_i >= 0);
+ assert(event_str.length_i());
Midi_chunk::add( i2varint_str( delta_time_i ) + event_str );
}
do_stop_notes( ptr()->audio_column_l_->at_mom() );
Midi_item* p = ptr()->midi_item_p();
+ if ( !p )
+ return;
p->channel_i_ = track_l_->number_i_;
if ( p->name() != Midi_note::static_name() )
{
audio_staff_p_ = new Audio_staff;
- // staff name
- play(new Audio_text( Audio_text::TRACK_NAME, instrument_str()));
-
- // instrument description
- play(new Audio_text( Audio_text::INSTRUMENT_NAME, instrument_str()));
+ if (instrument_str().length_i()) {
+ // staff name
+ play (new Audio_text ( Audio_text::TRACK_NAME, instrument_str ()));
+ // instrument description
+ play (new Audio_text (Audio_text::INSTRUMENT_NAME, instrument_str ()));
+ }
// tempo
play(new Audio_tempo(get_tempo_i()));
- // instrument
- play(new Audio_instrument(instrument_str()));
+ if (instrument_str ().length_i ())
+ // instrument
+ play (new Audio_instrument (instrument_str ()));
}
void