source file of the GNU LilyPond music typesetter
- (c) 1997--2001 Jan Nieuwenhuizen <janneke@gnu.org>
+ (c) 1997--2002 Jan Nieuwenhuizen <janneke@gnu.org>
*/
#include "translator-group.hh"
#include "performer-group-performer.hh"
/** Perform a staff. Individual notes should have their instrument
- (staff-wide) set, so we override play_element()
+ (staff-wide) set, so we override play_element ()
*/
class Staff_performer : public Performer_group_performer
{
public:
- VIRTUAL_COPY_CONS(Translator);
-
-
- Staff_performer ();
+ TRANSLATOR_DECLARATIONS(Staff_performer);
~Staff_performer ();
String new_instrument_str ();
Audio_tempo* tempo_p_;
};
-ADD_THIS_TRANSLATOR (Staff_performer);
+ENTER_DESCRIPTION (Staff_performer, "","","","","" );
Staff_performer::Staff_performer ()
{
void
Staff_performer::stop_translation_timestep ()
{
+ SCM proc = scm_primitive_eval (ly_symbol2scm ("percussion-p"));
+ SCM drums_p = gh_call1 (proc, ly_symbol2scm (instrument_str_.ch_C()));
+ audio_staff_p_->channel_i_ = (drums_p == SCM_BOOL_T ? 9 : -1 );
if (name_p_)
{
play_element (name_p_);
Staff_performer::new_instrument_str ()
{
// mustn't ask Score for instrument: it will return piano!
- SCM minstr = get_property (ly_symbol2scm ("midiInstrument"));
+ SCM minstr = get_property ("midiInstrument");
- if (!gh_string_p(minstr))
- minstr = get_property (ly_symbol2scm ("instrument"));
+ if (!gh_string_p (minstr))
+ minstr = get_property ("instrument");
if (!gh_string_p (minstr)
|| ly_scm2string (minstr) == instrument_str_)