# Powershell, 184 bytes <!-- language-all: lang-powershell --> *Inspired by Joey's [answer](https://codegolf.stackexchange.com/a/2621/80745).* (-split'14 4111 4141 411 1 1141 441 1111 11 1444 414 1411 44 41 444 1441 4414 141 111 4 114 1114 144 4114 4144 4411')[$args[0][0]-65]|% t*y|%{[Console]::Beep(880,200*"$_") sleep -m 70} Test script: $f = { (-split'14 4111 4141 411 1 1141 441 1111 11 1444 414 1411 44 41 444 1441 4414 141 111 4 114 1114 144 4114 4144 4411')[$args[0][0]-65]|% t*y|%{[Console]::Beep(880,200*"$_") sleep -m 70} } &$f "A" sleep -m 700 &$f "B" I used a [timing setup](https://en.wikipedia.org/wiki/Morse_code#Representation,_timing,_and_speeds) for beginers: * the `dot duration` is 200ms * the `gap between elements` is less then `dot duration` (70 ms) * the `dash duration` is 4 `dot durations`