This is HybridInstrument.h in view mode; [Download] [Up]
#import <musickit/Instrument.h> #import <sound/soundstruct.h> @interface HybridInstrument:Instrument { int iCurOutSample; /* Index of last written sample */ int iSamplingRate; /* Output sampling rate */ SNDSoundStruct *pOutSoundStruct; /* Output file SNDSoundStruct */ NXStream *pStream; /* Output NXStream */ NXStream *pTempStream; /* Temporary output NXStream */ id idSndObj1; /* sound object */ double fFrameRate; /* analysis frame rate in Hz */ int iOverlapping1; /* overlapping factor of windows */ int iOverlapping2; /* overlapping factor of windows */ int iNCoefficients; /* number of filter coefficients */ double fTimeOffset1; /* time offset */ double fDur1; /* duration */ id idSndObj2; /* sound object to hybridize */ double fTimeOffset2; /* time offset */ double fDur2; /* duration */ double fGain0; /* gain factor at point 0 of envelope */ double fGain1; /* gain factor at point 1 of envelope */ id idGainEnv; /* envelope for gain */ int iNCoefficients0; /* number of filter coefficients at point 0 */ int iNCoefficients1; /* number of filter coefficients at point 1 */ id idNCoefficientsEnv; /* envelope for number of coefficients */ double fMagBalance0; /* balance between the two sounds at point 0 */ double fMagBalance1; /* balance between the two sounds at point 0 */ id idMagBalanceEnv; /* envelope for balance */ double fTimeStretch0; double fTimeStretch1; id idTimeStretchEnv; /* time stretch envelope for second sound */ int iFilterType; /* 1 for line segments, other for LPC */ int iSmoothOrder; /* number of surounding points to use for filtering */ id idCompression0Env; /* envelope used for compressing the spectral envelope */ id idCompression1Env; /* envelope used for compressing the spectral envelope */ id idCompressionIntEnv; /* envelope to interpolate between the last two */ char bNormal; } -setSamplingRate:(double)aSrate normal:(char)bNormal 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. */ -normalAmp; /* This is invoked from afterPerformance */ -(float)interpolate:(double)fLocation envelope:(id)idEnvelope bottom:(double)bottom top:(double)top; /* 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.