<< SoundList.mesa:>> <> <> <<>> DIRECTORY Rope USING [ROPE], VoiceRope USING [IntervalSpecs], VoiceViewers USING [VoiceViewerInfo, SoundInterval, SoundList]; SoundList: CEDAR DEFINITIONS = BEGIN SoundListFromIntervalSpecs: PROC [intervalSpecs: VoiceRope.IntervalSpecs, lengthOfRopeInterval: INT] RETURNS [VoiceViewers.SoundList]; ExtractSoundList: PROC [voiceViewerInfo: VoiceViewers.VoiceViewerInfo, soundInterval: VoiceViewers.SoundInterval]; <> <<>> ReplaceSoundList: PROC [voiceViewerInfo: VoiceViewers.VoiceViewerInfo, cutStart: INT, cutLength: INT, replacement: VoiceViewers.SoundList]; <> << >> SoundChars: PROC [viewerInfo: VoiceViewers.VoiceViewerInfo, skipChars: INT _ 0] RETURNS [soundRope: Rope.ROPE _ NIL, remnant: INT]; <> << >> LastSilenceInSoundList: PROC [soundList: VoiceViewers.SoundList, lengthGreaterThan: INT _ 0] RETURNS [startsAt: INT, lasts: INT _ -1]; <> <<>> END.