static void infoPeriods (PointProcess me, double shortestPeriod, double longestPeriod, double maximumPeriodFactor, int precision) { long numberOfPeriods = PointProcess_getNumberOfPeriods (me, 0.0, 0.0, shortestPeriod, longestPeriod, maximumPeriodFactor); double meanPeriod = PointProcess_getMeanPeriod (me, 0.0, 0.0, shortestPeriod, longestPeriod, maximumPeriodFactor); double stdevPeriod = PointProcess_getStdevPeriod (me, 0.0, 0.0, shortestPeriod, longestPeriod, maximumPeriodFactor); double jitter_local = PointProcess_getJitter_local (me, 0.0, 0.0, shortestPeriod, longestPeriod, maximumPeriodFactor); double jitter_local_absolute = PointProcess_getJitter_local_absolute (me, 0.0, 0.0, shortestPeriod, longestPeriod, maximumPeriodFactor); double jitter_rap = PointProcess_getJitter_rap (me, 0.0, 0.0, shortestPeriod, longestPeriod, maximumPeriodFactor); double jitter_ppq5 = PointProcess_getJitter_ppq5 (me, 0.0, 0.0, shortestPeriod, longestPeriod, maximumPeriodFactor); double jitter_ddp = PointProcess_getJitter_ddp (me, 0.0, 0.0, shortestPeriod, longestPeriod, maximumPeriodFactor); MelderInfo_writeLine (U" Number of periods: ", numberOfPeriods); MelderInfo_writeLine (U" Mean period: ", meanPeriod, U" seconds"); MelderInfo_writeLine (U" Stdev period: ", stdevPeriod, U" seconds"); MelderInfo_writeLine (U" Jitter (local): ", Melder_percent (jitter_local, precision)); MelderInfo_writeLine (U" Jitter (local, absolute): ", Melder_fixedExponent (jitter_local_absolute, -6, precision), U" seconds"); MelderInfo_writeLine (U" Jitter (rap): ", Melder_percent (jitter_rap, precision)); MelderInfo_writeLine (U" Jitter (ppq5): ", Melder_percent (jitter_ppq5, precision)); MelderInfo_writeLine (U" Jitter (ddp): ", Melder_percent (jitter_ddp, precision)); }
static void menu_cb_getJitter_ppq5 (EDITOR_ARGS) { EDITOR_IAM (PointEditor); if (my d_startSelection == my d_endSelection) Melder_throw ("To measure jitter, make a selection first."); Melder_informationReal (PointProcess_getJitter_ppq5 ((PointProcess) my data, my d_startSelection, my d_endSelection, 1e-4, 0.02, 1.3), NULL); }
static void menu_cb_getJitter_ppq5 (PointEditor me, EDITOR_ARGS_DIRECT) { if (my startSelection == my endSelection) Melder_throw (U"To measure jitter, make a selection first."); Melder_informationReal (PointProcess_getJitter_ppq5 ((PointProcess) my data, my startSelection, my endSelection, 1e-4, 0.02, 1.3), nullptr); }