Melder_informationReal (entropy, L"bits"); END DIRECT (Categories_sort) WHERE (SELECTED) { iam_LOOP (Categories); Categories_sort (me); praat_dataChanged (me); } END /***** EXPERIMENT_MFC *****/ DIRECT (ExperimentMFC_run) if (theCurrentPraatApplication -> batch) Melder_throw ("Cannot run experiments from the command line."); autoOrdered experiments = Ordered_create (); Collection_dontOwnItems (experiments.peek()); WHERE (SELECTED) { iam_LOOP (ExperimentMFC); Melder_assert (my classInfo == classExperimentMFC); Collection_addItem (experiments.peek(), me); // reference copy of me } Melder_assert (experiments-> size >= 1); Melder_assert (((Data) experiments -> item [1]) -> classInfo == classExperimentMFC); Melder_assert (((Data) experiments -> item [experiments -> size]) -> classInfo == classExperimentMFC); autoOrdered experimentsCopy = experiments.clone(); // we need a copy, because we do a transfer, then a peek Melder_assert (experimentsCopy -> size == experiments -> size); Melder_assert (experimentsCopy -> item [1] == experiments -> item [1]); Melder_assert (experimentsCopy -> item [experimentsCopy -> size] == experiments -> item [experiments -> size]); autoRunnerMFC runner = RunnerMFC_create (L"listening experiments", experimentsCopy.transfer()); praat_installEditorN (runner.transfer(), experiments.peek());