SoundList.mesa:
sound lists are descriptions of the silence/sound profiles of a ropeInterval and form part of the data structure behind a voice viewer
Ades, September 22, 1986 7:21:41 pm PDT
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];
voiceViewerInfo contains the sound list for a complete rope. Use the interval specification from soundInterval.ropeInterval to create a new sound list for that interval, placing it in soundInterval.soundList
ReplaceSoundList:
PROC [voiceViewerInfo: VoiceViewers.VoiceViewerInfo, cutStart:
INT, cutLength:
INT, replacement: VoiceViewers.SoundList];
voiceViewerInfo contains the sound list for a complete rope. Cut out the specified portion and at the cutting point insert the replacement soundlist.
SoundChars:
PROC [viewerInfo: VoiceViewers.VoiceViewerInfo, skipChars:
INT ← 0]
RETURNS [soundRope: Rope.
ROPE ←
NIL, remnant:
INT];
produce the graphical representation of the SoundList within a VoiceViewerInfo record. The caller already has the first skipChars of the representation in his hand, so omit these from the returned rope. If the sound list does not exactly fill a whole number of characters, return as remnant the number of samples left over. Any marker characters indicated in the VoiceViewerInfo are inserted
LastSilenceInSoundList:
PROC [soundList: VoiceViewers.SoundList, lengthGreaterThan: INT ← 0]
RETURNS [startsAt:
INT, lasts:
INT ← -1];
all INTs are values in samples, as for the rest of this interface. lasts=-1 indicates that there are no silence intervals in the list of lengthGreaterThan that specified
END.