ftp.nice.ch/pub/next/unix/audio/sms.N.bs.tar.gz#/sms/hybridMk/HybridInstrument.h

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.