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.