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