MusicKit  0.0.0
AsympenvUG.h
00001 /*
00002   $Id$
00003   
00004   Defined In: The MusicKit
00005   Description:
00006     See discussion. 
00007 
00008   Original Author: David A. Jaffe
00009 
00010   Copyright (c) 1996 Stanford University.
00011   Portions Copyright (c) 1999-2001, The MusicKit Project.
00012 */
00013 // classgroup Envelope Handlers and Followers
00123 #import <MusicKit/MusicKit.h>
00124 
00125 @interface AsympenvUG: MKUnitGenerator
00126 {
00127     id anEnv;
00128     double (*scalingFunc)(); 
00129     double timeScale;            
00130     double releaseTimeScale;      
00131     double yScale;                
00132     double yOffset;               
00133     double targetX;               
00134     char useInitialValue;         
00135     int stickPoint; 
00136     DSPDatum firstVal;
00137     double releaseTime;
00138     double envTriggerTime;
00139     MKSynthData *durMem,*targetMem,*rateMem; 
00140     double _transitionTime;
00141     double _samplingRate;
00142     double _smoothConstant;
00143     int _tickRate;
00144 }
00145 
00146 + (void) envelopeHasChanged: (MKEnvelope *) env;  
00147 + (void) freeKeyObjects; 
00148 
00154 - setOutput: (id) aPatchPoint;
00155 
00164 - setTargetVal: (double) target;
00165 
00175 - setCurVal: (double) value;
00176 
00195 - setRate: (double) rate;
00196 
00204 - setT60: (double) seconds;
00205 
00216 - preemptEnvelope;
00217 
00252 - setEnvelope: (id) anEnvelope
00253        yScale: (double) yScaleValue
00254       yOffset: (double) yOffsetValue
00255        xScale: (double) xScaleValue
00256 releaseXScale: (double) releaseXScaleValue
00257       funcPtr: (double(*)()) yScaleFunction;
00258  
00280 -resetEnvelope: (id) anEnvelope
00281         yScale: (double) yScaleValue
00282        yOffset: (double) yOffsetValue
00283         xScale: (double) xScaleValue
00284  releaseXScale: (double) releaseXScaleValue
00285        funcPtr: (double(*)()) yScaleFunction
00286 transitionTime: (double) transitionTime;
00287 
00303 - useInitialValue: (BOOL) yesOrNo;
00304 
00313 - setYScale: (double) yScaleValue yOffset: (double) yOffsetValue;
00314 
00322 - setReleaseXScale: (double) releaseXScaleValue;
00323 
00328 - envelope;
00329 
00337 - runSelf;
00338 
00339 - abortSelf;
00340 
00351 - idleSelf;
00352 
00367 -(double)finishSelf;
00368 
00377 + (BOOL) shouldOptimize: (unsigned) arg;
00378 
00385 - abortEnvelope;
00386 
00396 - setConstant: (double) val;
00397 
00398 extern id MKAsympUGxClass(void);
00399 extern id MKAsympUGyClass(void);
00400 
00458 extern void MKUpdateAsymp(id asymp,
00459                           id envelope,
00460                           double valueAt0,
00461                           double valueAt1,
00462                           double attackDur,
00463                           double releaseDur,
00464                           double portamentoTime,
00465                           MKPhraseStatus status);
00466 
00467 @end
00468