This is SmsInstrument.h in view mode; [Download] [Up]
#import <musickit/Instrument.h>
#import <sound/soundstruct.h>
#include "../sms.h"
@interface SmsInstrument:Instrument
{
int iCurOutSample; /* Index of last written sample */
double fSamplingRate; /* Output sampling rate */
SNDSoundStruct *pOutSoundStruct; /* Output file SNDSoundStruct */
NXStream *pStream; /* Output NXStream */
id idSmsObj; /* sms object */
char *pChFile; /* sms file name */
double fDur; /* duration */
double fTimeOffset; /* time offset */
double fAmp; /* overall amplitude */
double fAmpDet; /* deterministic amplitude */
double fAmpStoc; /* stochastic amplitude */
double fFreq1; /* frequency */
double fFreq0; /* frequency */
double fTimeStretch; /* time stretch factor */
double fTimeStretchHyb; /* time stretch factor */
double fFreqStretch; /* frequency stretch factor */
int iMaxTraj; /* maximum number of trajectories */
id idAmpEnv; /* overall amplitude envelope */
id idAmpDetEnv; /* deterministic amplitude envelope */
id idAmpPartialsEnv; /* determines which partials to use */
id idAmpStocEnv; /* stochastic amplitude envelope */
id idAmpStocCoeffEnv; /* determines which coefficients to use */
id idFreqEnv; /* frequency envelope */
id idFreqPartialsEnv; /* determines which partials to use */
id idTimeStretchEnv; /* time stretch envelope */
id idTimeStretchHybEnv; /* time stretch envelope */
id idFreqStretchEnv; /* frequency stretch envelope */
id idSmsObjHyb; /* sms object to hybridize */
char *pChFileHyb; /* name of the sms file to hybridize */
double fTimeOffsetHyb; /* time offset for the hybridizing sound */
double fDurHyb; /* duration of the hybrid sound */
double fAmpDetHybFactor; /* percentage of the hybridizing
deterministic amp */
double fAmpStocHybFactor; /* percentage of the hybridizing
stochastic amplitude */
double fFreqHybFactor; /* percentage of the hybridizing
frequency */
id idAmpDetHybEnv; /* envelope for fAmpDetHybFactor */
id idAmpStocHybEnv; /* envelope for fAmpStocHybFactor */
id idFreqHybEnv; /* envelope for fFreqHybFactor */
int iFirstRecord; /* first record to synthesize */
int iLastRecord; /* last record to synthesize */
SMS_DATA newSmsRecord; /* modified record to be syntesized */
int iModification; /* 0 if original data was not modified */
int iOldSample; /* used for phase modification */
int iNewSample; /* used for phase modification */
}
-setSamplingRate:(double)fSSrate stream:(NXStream *)aStream;
-init;
-firstNote:aNote;
/* This is invoked when first note is received during performance */
-realizeNote:aNote fromNoteReceiver:aNoteReceiver;
/* This is invoked when a new Note is received during performance */
-afterPerformance;
/* This is invoked when performance is over. */
/* All other methods are private */
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.