Translate Morse code based on tone duration
APL (Dyalog), 65 62 60 57 bytes



-3 thanks to ngn.

Tacit prefix function.

⎕CY'dfns'
morse'/|[-.]+'⎕S'&amp;'∘(⊃∘'/. -'¨6|'1+|(00)+'⎕S 1)


Try it online! Header, f←, and Footer are just to allow calling the function from Input while retaining TIO's byte count. In a normal APL session (corresponding to TIO's Input field), it would not be needed.

⎕CY'dfns' copy the dfns workspace (library)

(…) apply this tacit function:
 '1+|(00)+'⎕S 1 PCRE Search 1-runs and even-length 0-runs and return matches' lengths
 6| division remainder when divided by 6
 ⊃∘'/. -'¨ for each match length, pick the corresponding character from this string
'/|[-.]+'⎕S'&amp;'∘ PCRE Search slashes and dash/dot-runs and return those
morse translate from Morse code to regular text