|  |  | @@ -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; | 
		
	
		
			
			|  |  |  | } | 
		
	
	
		
			
				|  |  | 
 |