//--------------------------------------------------------------------------------------
// music音色クラス : 1音の情報
//--------------------------------------------------------------------------------------

#import "mml.h"

#define USE_MUTABLEDATA

@interface MusicTone1 : NSObject
{
	// サンプリングレート表
	ULong rateTable[MUSIC_OCTAVES][MUSIC_SCALES];	// wavヘッダー内のサンプリングレートがULong値なのでfloatにする必要がない
}
@property (nonatomic)	int  samplingRate;			// 音声のサンプリングレート
@property (nonatomic)	BOOL floopSound;			// ループさせる音かどうか
@property (nonatomic,strong) NSString *toneName;	// 音色のファイル名(主にデバッグ用)
// 音色データ本体
#ifdef USE_MUTABLEDATA
@property (nonatomic,strong) NSMutableData *data;
#else
@property (nonatomic,strong) NSData *data;
#endif

-(instancetype)initWithFile:(NSString *)fname rate:(int)rate octave:(int)octave scale:(int)scale floop:(BOOL)floop ferror:(BOOL *)ferror;
-(instancetype)initWithFile:(NSString *)fname rate:(int)rate octave:(int)octave scale:(int)scale floop:(BOOL)floop;
-(void)remakeWaveHeaderForNote:(UByte *)wavBuff octave:(int)octave scale:(int)scale;
		
/*
 NSMutableData *data *p=[data mutableByte]で内容は書き換えられる
 NSData *data	     *p=[data bytes]	　でも内容を書き換え可能
 でも、AVAudioPlayer.dataの内容を書き換えても音程は変わらない
 	おそらく、.dataから別の領域にコピーされている。
 */

@end

//--------------------------------------------------------------------------------------
