00001 /* 00002 $Id: InterpUG.h 3255 2005-05-14 03:27:27Z leighsmith $ 00003 00004 Defined In: The MusicKit 00005 Description: 00006 InterpUG - from dsp macro /usr/lib/dsp/ugsrc/interp.asm (see source for details). 00007 00008 Outputs an interpolation of two input signals, with the blend controlled 00009 by a third signal, i.e., 00010 00011 out = input1 + (input2-input1) * control 00012 00013 You allocate one of the subclasses InterpUG<a><b><c><d>, where <a> is the output 00014 space, <b> and <c> are the input signal spaces, and <d> is the space of the 00015 interpolation control signal. 00016 This unit generator is 25% faster if <b> is x and <c> is y. 00017 00018 Original Author: David A. Jaffe 00019 00020 Copyright (c) 1988-1992, NeXT Computer, Inc. 00021 Portions Copyright (c) 1994 NeXT Computer, Inc. and reproduced under license from NeXT 00022 Portions Copyright (c) 1994 Stanford University. 00023 Portions Copyright (c) 1999-2001, The MusicKit Project. 00024 */ 00025 // classgroup Table Lookup 00051 #ifndef __MK_InterpUG_H___ 00052 #define __MK_InterpUG_H___ 00053 00054 #import <MusicKit/MKUnitGenerator.h> 00055 @interface InterpUG:MKUnitGenerator 00056 00064 +(BOOL)shouldOptimize:(unsigned) arg; 00065 00075 -setInput1: (id) aPatchPoint; 00076 /* Sets input1 of interpolator. */ 00077 00078 00088 -setInput2: (id) aPatchPoint; 00089 /* Sets input2 of interpolator. */ 00090 00091 00102 -setInterpInput: (id) aPatchPoint; 00103 /* Sets interpolation signal of interpolator. */ 00104 00105 00115 -setOutput: (id) aPatchPoint; 00116 /* Sets output of adder. */ 00117 00118 @end 00119 00120 #endif