diff --git a/smf.C b/smf.C index c6cd1d4..e90d0b2 100644 --- a/smf.C +++ b/smf.C @@ -805,23 +805,27 @@ smf::read_pattern_info ( pattern *p ) name_set = true; break; case smf::INSTRUMENT: - // FIXME: decode mapping; { char *s = read_text(); - char pat[256]; - if ( 1 == sscanf( s, "Instrument: %s", pat ) ) + if ( 1 == sscanf( s, "Instrument: %[^\n]", pat ) ) { if ( ! p->mapping.open( Mapping::INSTRUMENT, pat ) ) + { + p->mapping.open( Mapping::SCALE, "Chromatic" ); WARNING( "could not find instrument \"%s\"", pat ); + } } else - if ( 1 == sscanf( s, "Scale: %s", pat ) ) + if ( 1 == sscanf( s, "Scale: %[^\n]", pat ) ) { if ( ! p->mapping.open( Mapping::SCALE, pat ) ) + { + p->mapping.open( Mapping::SCALE, "Chromatic" ); WARNING( "could not find scale \"%s\"", pat ); + } } break; }