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.