12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #ifndef cmOnset_h
- #define cmOnset_h
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- enum
- {
- kOkOnRC = cmOkRC,
- kDspProcFailOnRC,
- kDspAudioFileFailOnRC,
- kDspTextFileFailOnRC,
- };
-
- typedef cmRC_t cmOnRC_t;
- typedef cmHandle_t cmOnH_t;
-
- enum { kNoneFiltId, kSmoothFiltId, kMedianFiltId };
-
- typedef struct
- {
- double wndMs;
- unsigned hopFact;
- unsigned audioChIdx;
-
- unsigned wndFrmCnt; // Detection window length
- double preWndMult; // Detection window stretch factor prior to current location.
- double threshold; // Spectal flux detection threshold
- double maxFrqHz; // Ignore frequencies above maxFrqHz during processing.
- double filtCoeff; // smoothing filter coeff (-.7)
- double medFiltWndMs;// median filter window in milliseconds
- unsigned filterId; // kSmoothFiltId || kMedianFiltId
- double preDelayMs; // move each detection preDelayMs backwards in time
- // on the audio output. (compensates for detection delay due to filtering)
-
-
- } cmOnsetCfg_t;
-
- extern cmOnH_t cmOnsetNullHandle;
-
- cmOnRC_t cmOnsetInitialize( cmCtx_t* c, cmOnH_t* hp );
-
- cmOnRC_t cmOnsetFinalize( cmOnH_t* hp );
-
- bool cmOnsetIsValid( cmOnH_t h );
-
- cmOnRC_t cmOnsetProc(
- cmOnH_t h,
- const cmOnsetCfg_t* cfg,
- const cmChar_t* inAudioFn );
-
- // Return count of detected onsets.
- unsigned cmOnsetCount( cmOnH_t h );
-
- // Return location of detected onsets as a sample offset into the file.
- unsigned cmOnsetSampleIndex( cmOnH_t h, unsigned idx );
-
- unsigned cmOnsetHopSampleCount( cmOnH_t h );
-
- cmOnRC_t cmOnsetWrite(
- cmOnH_t h,
- const cmChar_t* outAudioFn,
- const cmChar_t* outTextFn);
-
- cmOnRC_t cmOnsetTest( cmCtx_t* c );
-
- #ifdef __cplusplus
- }
- #endif
-
-
- #endif
|