!7 set flag DynModule. sclass Recording { File file, clippedFile; double clippedLength; S text; } sclass AudioRecordings extends DynObjectTable { start { itemToMap = func(Recording r) -> Map { litorderedmap( Name := fileName(r.file), "Clipped length" := r.clippedLength == 0 ? "" : formatDouble(r.clippedLength, 1) + " s", Word := r.text) }; setData(map(allRecordings(), func(File f) -> Recording { nu(Recording, file := f, clippedFile := fileIfExists(fileInSubDir(f, "clipped")), text := wordFromAudioFileName(f.getName())) ret r; })); thread { for (Recording r : data) pcall-short { if (r.clippedLength == 0) r.clippedLength = lengthOfWAVInSeconds(r.clippedFile); } } } }