<> <> <<>> DIRECTORY Rope USING [ ROPE ], Thrush USING [ Tune, IntervalSpec, IntervalSpecs, VoiceInterval, VoiceTime ]; BluejayUtils: CEDAR DEFINITIONS = { Tune: TYPE = Thrush.Tune; DescribeTune: PROC[tune: Tune] RETURNS [exists: BOOL, size: INT]; <> <> <> DescribeInterval: PROC[targetTune: Thrush.Tune, targetInterval: Thrush.VoiceInterval, minSilence: Thrush.VoiceTime _ 1] RETURNS [exists: BOOL, intervals: Thrush.IntervalSpecs]; <<>> DeleteTune: PROC[tune: Tune] RETURNS [existed: BOOL]; NewTune: PROC RETURNS [tune: Tune]; TunesInJukebox: PROC RETURNS [nTunes: INT]; <> InitializeJukebox: PROC; -- takes a long time to run, usually. Initialize: PROC[instance: Rope.ROPE, password: Rope.ROPE]; Uninitialize: PROC; }.