+: metronomo.sh
This commit is contained in:
parent
ffc9eb0b11
commit
83f75d409d
146
metronomo.sh
Executable file
146
metronomo.sh
Executable file
@ -0,0 +1,146 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
WAVCACHE=$HOME/.cache
|
||||||
|
Progrm=metronomo
|
||||||
|
VersionStr='21-05-2022'
|
||||||
|
|
||||||
|
REd="\e[0;31m"; GRn="\e[0;32m"; BLu="\e[0;34m"; ORn="\e[33m";
|
||||||
|
RED="\e[1;31m"; GRN="\e[1;32m"; BLU="\e[1;34m"; CYA="\e[1;36m";
|
||||||
|
MGt="\e[0;35m"; MGT="\e[1;35m"; RST="\e[0m";
|
||||||
|
|
||||||
|
# frecs para tonos
|
||||||
|
# 790 - 720 - 640 - 320 - 260
|
||||||
|
# ej. SUBDIV=(0 1 1 0 0 0 1 0 1 1 0 0 0 1 0 1)
|
||||||
|
declare SUBDIV=(1 0 0 0)
|
||||||
|
WAV0=790
|
||||||
|
WAV1=640
|
||||||
|
BPM=80
|
||||||
|
SUB=0
|
||||||
|
|
||||||
|
Err(){
|
||||||
|
printf '%bERROR: %b%s%b\n' "${RED}" "${MGT}" "$2" "${RST}" 1>&2
|
||||||
|
[ $1 -gt 0 ] && exit $1
|
||||||
|
}
|
||||||
|
|
||||||
|
Uso(){
|
||||||
|
while read; do
|
||||||
|
printf '%s\n' "$REPLY"
|
||||||
|
done <<-EOF
|
||||||
|
Uso: $Progrm [OPCS]
|
||||||
|
|
||||||
|
metro -b 80 -c '1 0 0 0'
|
||||||
|
metro --frecs '680 720'
|
||||||
|
|
||||||
|
-b, --bpm <BPM> - Golpes por minuto.
|
||||||
|
-c, --compas <COMPAS> - Entre comillas, '1 0 0 1 0', separados por espacios.
|
||||||
|
-s, --sub - Activa sonido de las subdivisiones.
|
||||||
|
-f, --frecs <FREQs> - Cambia la frecuencia de sonidos del metronomo (0 y 1).
|
||||||
|
-v, --version - Muestra la fecha de la versión.
|
||||||
|
-h, --help - Muestra información de ayuda.
|
||||||
|
|
||||||
|
Sonidos metronomo:
|
||||||
|
|
||||||
|
- '${WAVCACHE}/metro0.wav'.
|
||||||
|
- '${WAVCACHE}/metro1.wav'.
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
crea_wavs(){
|
||||||
|
if [ ! -f ${WAVCACHE}/metro1.wav ]; then
|
||||||
|
ffmpeg -f lavfi -i "sine=frequency=${WAV1}:duration=0.05" -ac 2 ${WAVCACHE}/metro1.wav &>/dev/null
|
||||||
|
ffmpeg -f lavfi -i "sine=frequency=${WAV0}:duration=0.05" -ac 2 ${WAVCACHE}/metro0.wav &>/dev/null
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
set_bmp(){
|
||||||
|
if [ ! -z "${1}" ]; then
|
||||||
|
if [[ ! -n ${1//[0-9]/} ]] && [[ "${1}" -lt 501 ]] && [[ "${1}" -gt 0 ]]; then
|
||||||
|
BPM="${1}"
|
||||||
|
else
|
||||||
|
Err 1 "Debes ingresar un numero entre 1 y 500."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
Err 1 "Debes ingresar un numero entre 1 y 500."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
set_frec(){
|
||||||
|
if [ ! -z "${1}" ]; then
|
||||||
|
if [[ ! -n ${1//[0-9]/} ]] && [[ "${1}" -lt 1001 ]] && [[ "${1}" -gt 199 ]]; then
|
||||||
|
WAV0="${1}"
|
||||||
|
rm -f ${WAVCACHE}/metro0.wav &>/dev/null
|
||||||
|
else
|
||||||
|
Err 1 "Debes ingresar un numero entre 200 y 1000."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
Err 1 "Debes ingresar un numero entre 200 y 1000."
|
||||||
|
fi
|
||||||
|
if [ ! -z "${2}" ]; then
|
||||||
|
if [[ ! -n ${2//[0-9]/} ]] && [[ "${2}" -lt 1001 ]] && [[ "${2}" -gt 199 ]]; then
|
||||||
|
WAV1="${2}"
|
||||||
|
rm -f ${WAVCACHE}/metro1.wav &>/dev/null
|
||||||
|
else
|
||||||
|
Err 1 "Debes ingresar un número entre 200 y 1000."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
Err 1 "Debes ingresar un número entre 200 y 1000."
|
||||||
|
fi
|
||||||
|
crea_wavs
|
||||||
|
}
|
||||||
|
|
||||||
|
metro(){
|
||||||
|
crea_wavs
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
-v|--version)
|
||||||
|
printf '%s\n' "$VersionStr"; exit 0 ;;
|
||||||
|
-h|--help)
|
||||||
|
Uso; exit 0 ;;
|
||||||
|
-b|--bpm)
|
||||||
|
set_bmp ${2}
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-c|--compas)
|
||||||
|
SUBDIV=(${2})
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-s|--sub)
|
||||||
|
SUB=1
|
||||||
|
shift; ;;
|
||||||
|
-f|--frecs)
|
||||||
|
declare FRECS
|
||||||
|
FRECS=(${2})
|
||||||
|
set_frec ${FRECS[0]} ${FRECS[1]}
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-*|--*)
|
||||||
|
Err 1 "Opción no válida." ;;
|
||||||
|
*)
|
||||||
|
Err 1 'Argumento(s) inválido(s).' ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
div=${#SUBDIV[@]}
|
||||||
|
bpm=$(echo "(60000/${BPM}/1000)" | bc -l)
|
||||||
|
rit=$(echo "(${bpm}/${div})" | bc -l)
|
||||||
|
printf '%bMetronomo a: %b%s bpm%b\n%b[Salir] %b<Ctrl>+<C>%b\n\n' \
|
||||||
|
"${CYA}" "${GRN}" "${BPM}" "${RST}" "${REd}" "${BLU}" "${RST}"
|
||||||
|
while :; do
|
||||||
|
echo -en "${MGT} ${SUBDIV[@]}${RST}"
|
||||||
|
printf "\r"
|
||||||
|
for r in ${SUBDIV[@]} ;do
|
||||||
|
if [ $r -gt 0 ]; then
|
||||||
|
aplay -q ${WAVCACHE}/metro1.wav & printf ' %b%s' "${GRN}" "${r}" & sleep ${rit}
|
||||||
|
elif [[ $SUB -gt 0 ]]; then
|
||||||
|
aplay -q ${WAVCACHE}/metro0.wav & printf ' %b%s' "${GRn}" "${r}" & sleep ${rit}
|
||||||
|
else
|
||||||
|
printf ' %b%s' "${GRn}" "${r}" & sleep ${rit}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
printf '\r'
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
"$@"
|
6
ritopls
6
ritopls
@ -1,6 +1,6 @@
|
|||||||
new_tab 'Lutris LoL'
|
title 'Lutris Lol'
|
||||||
title ' Lutris LoL '
|
new_tab 'Btop - Lutris - LoL'
|
||||||
launch bash -c 'bpytop && exit'
|
launch bash -c 'bpytop && exit'
|
||||||
launch bash -c 'tail -f $HOME/Biblio/LutrisLibrary/league-of-legends/drive_c/Riot\ Games/League\ of\ Legends/debug.log | batcat --paging=never --style grid -l log'
|
launch bash -c 'tail -f ${HOME}/Biblio/LutrisLibrary/league-of-legends/drive_c/Riot\ Games/League\ of\ Legends/debug.log | batcat --paging=never --style grid -l log'
|
||||||
launch bash -c 'lutris lutris:rungameid/2 && exit'
|
launch bash -c 'lutris lutris:rungameid/2 && exit'
|
||||||
enabled_layouts tall:bias=50;full_size=1
|
enabled_layouts tall:bias=50;full_size=1
|
||||||
|
Loading…
Reference in New Issue
Block a user