That's very good.
Generalization and line feed customisation :
function sloooower() {
BASE_INTERVAL=${1:-0.05}
RET_ADD_INTERVAL=${2:-0.1}
CHAR_ADD_INTERVAL=${3:-0}
while IFS= read -r -n1 char; do
if [[ -z "$char" ]]; then
sleep "${RET_ADD_INTERVAL}"
printf "\n"
else
sleep "${CHAR_ADD_INTERVAL}"
printf "%s" "$char"
fi
sleep "${BASE_INTERVAL}"
done
}
alias sl='ls | sloooower'
(
command | sloooower 0.000277
is pretty much a 3600 bauds output)