123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- #include "cmPrefix.h"
- #include "cmGlobal.h"
- #include "cmFloatTypes.h"
- #include "cmComplexTypes.h"
- #include "cmRpt.h"
- #include "cmErr.h"
- #include "cmCtx.h"
- #include "cmMem.h"
- #include "cmMallocDebug.h"
- #include "cmLinkedHeap.h"
- #include "cmMath.h"
- #include "cmFile.h"
- #include "cmFileSys.h"
- #include "cmSymTbl.h"
- #include "cmJson.h"
- #include "cmPrefs.h"
- #include "cmProcObj.h"
- #include "cmDspValue.h"
- #include "cmDspClass.h"
- #include "cmDspFx.h"
- #include "cmMsgProtocol.h"
- #include "cmThread.h"
- #include "cmUdpPort.h"
- #include "cmUdpNet.h"
- #include "cmAudioSys.h"
- #include "cmDspSys.h"
-
-
- //==========================================================================================================================================
- enum
- {
- kFnTlId,
- kAudOutTlId,
- kMidOutTlId,
- kEvtOutTlId
- };
-
- cmDspClass_t _cmTimeLineDC;
-
- typedef struct
- {
- cmDspInst_t inst;
- cmTlH_t tlH;
-
- } cmDspTimeLine_t;
-
-
- cmDspInst_t* _cmDspTimeLineAlloc(cmDspCtx_t* ctx, cmDspClass_t* classPtr, unsigned storeSymId, unsigned instSymId, unsigned id, unsigned va_cnt, va_list vl )
- {
- unsigned chs = 1;
-
- cmDspVarArg_t args[] =
- {
- { "fn", kFnTlId, 0, 0, kInDsvFl | kStrzDsvFl, "Time line file" },
- { "a-out", kAudOutTlId, 0, chs, kOutDsvFl | kAudioBufDsvFl, "Audio output." },
- { "m-out", kMidOutTlId, 0, 0, kOutDsvFl | k
- { NULL, 0, 0, 0, 0 }
- };
-
- // allocate the instance
- cmDspTimeLine_t* p = cmDspInstAlloc(cmDspTimeLine_t,ctx,classPtr,args,instSymId,id,storeSymId,va_cnt,vl);
-
- // assign default values to any of the the optional arg's which may not have been set from vl.
- cmDspSetDefaultDouble(ctx, &p->inst, kMaxTlId, 0.0, DBL_MAX);
- cmDspSetDefaultDouble(ctx, &p->inst, kMultTlId, 0.0, 1.0);
- cmDspSetDefaultDouble(ctx, &p->inst, kPhsTlId, 0.0, 0.0);
-
- return &p->inst;
- }
-
- cmDspRC_t _cmDspTimeLineReset(cmDspCtx_t* ctx, cmDspInst_t* inst, const cmDspEvt_t* evt )
- {
- cmDspApplyAllDefaults(ctx,inst);
- cmDspZeroAudioBuf( ctx, inst, kOutTlId );
- return kOkDspRC;
- }
-
- cmDspRC_t _cmDspTimeLineExec(cmDspCtx_t* ctx, cmDspInst_t* inst, const cmDspEvt_t* evt )
- {
- cmSample_t* bp = cmDspAudioBuf(ctx,inst,kOutTlId,0);
- const cmSample_t* ep = bp + cmDspAudioBufSmpCount(ctx,inst,kOutTlId,0);
- double mult = cmDspDouble(inst,kMultTlId);
- double max = cmDspDouble(inst,kMaxTlId);
- double phs = cmDspDouble(inst,kPhsTlId);
- double inc = mult;
-
- for(; bp<ep; ++bp)
- {
- while( phs >= max )
- phs -= max;
-
- *bp = phs;
-
- phs += inc;
-
- }
-
- cmDspSetDouble(ctx,inst,kPhsTlId,phs);
-
- return kOkDspRC;
- }
-
- cmDspRC_t _cmDspTimeLineRecv(cmDspCtx_t* ctx, cmDspInst_t* inst, const cmDspEvt_t* evt )
- {
- switch( evt->dstVarId )
- {
- case kMultTlId:
- case kMaxTlId:
- case kPhsTlId:
- cmDspSetEvent(ctx, inst, evt );;
- break;
-
- default:
- { assert(0); }
- }
-
- return kOkDspRC;
- }
-
- struct cmDspClass_str* cmTimeLineClassCons( cmDspCtx_t* ctx )
- {
- cmDspClassSetup(&_cmTimeLineDC,ctx,"TimeLine",
- NULL,
- _cmDspTimeLineAlloc,
- NULL,
- _cmDspTimeLineReset,
- _cmDspTimeLineExec,
- _cmDspTimeLineRecv,
- NULL,
- NULL,
- "Ramp wave signal generator.");
-
- return &_cmTimeLineDC;
- }
-
-
-
- typedef struct
-
- typedef struct cmPerfEvt_str
- {
- unsigned pitch;
- unsigned dyn;
- unsigned ioiTicks;
- } cmPerfEvt_t;
-
-
|