#!/bin/bash
hangok[1]=262
hangok[2]=277
hangok[3]=294
hangok[4]=311
hangok[5]=330
hangok[6]=349
hangok[7]=370
hangok[8]=392
hangok[9]=415
hangok[10]=440
hangok[11]=466
hangok[12]=494
hangok[13]=523
hangok[14]=554
hangok[15]=587
hangok[16]=622
hangok[17]=659
hangok[18]=698
hangok[19]=740
hangok[20]=784
hangok[21]=831
hangok[22]=880
hangok[23]=923
hangok[24]=988
billek[1]="q"
billek[2]="2"
billek[3]="w"
billek[4]="3"
billek[5]="e"
billek[6]="r"
billek[7]="5"
billek[8]="t"
billek[9]="6"
billek[10]="z"
billek[11]="7"
billek[12]="u"
billek[13]="y"
billek[14]="s"
billek[15]="x"
billek[16]="d"
billek[17]="c"
billek[18]="v"
billek[19]="g"
billek[20]="b"
billek[21]="h"
billek[22]="n"
billek[23]="j"
billek[24]="m"
nbillek[1]="Q"
nbillek[2]="i"
nbillek[3]="W"
nbillek[4]="o"
nbillek[5]="E"
nbillek[6]="R"
nbillek[7]="p"
nbillek[8]="T"
nbillek[9]="k"
nbillek[10]="Z"
nbillek[11]="l"
nbillek[12]="U"
nbillek[13]="Y"
nbillek[14]="S"
nbillek[15]="X"
nbillek[16]="D"
nbillek[17]="C"
nbillek[18]="V"
nbillek[19]="G"
nbillek[20]="B"
nbillek[21]="H"
nbillek[22]="N"
nbillek[23]="J"
nbillek[24]="M"
# milisec
hosz=100
echo "Zongora szimulator."
echo "ASDF : mely egesz hangok"
echo "2345 : mely felhangok"
echo "YXCV : magas egesz hangok"
echo "SDFG : magas felhangok"
echo "MAGYAR bill.-re"
echo
echo
ID=0
C=""
while [ "$C" != ":" ]
do
read -n 1 C
let "ID=$ID+1"
D=`echo $C | tr '[:upper:]' '[:lower:]'`
C=`echo $C | tr '"' 'i' | tr '+' 'o' | tr '%' 'p' | tr '/' 'k' | tr '=' 'l'`
# echo -ne "\rHang: \n"
if [ "$C" == "$D" ]; then
# ha kisbetu
hosz=400
for i in `seq 1 24`
do
if [ "${billek[${i}]}" == "$C" ]; then
echo -ne "\rHang: ID=$ID \tf=${hangok[${i}]} Hz \tl=${hosz} ms \tCHR=\"$C\"\n"
beep -l ${hosz} -f ${hangok[${i}]}
fi
done
else
# ha nagybetu
hosz=200
for i in `seq 1 24`
do
if [ "${nbillek[${i}]}" == "$C" ]; then
echo -ne "\rHang: ID=$ID \tf=${hangok[${i}]} Hz \tl=${hosz} ms \tCHR=\"$C\"\n"
beep -l ${hosz} -f ${hangok[${i}]}
fi
done
fi
if [ "$C" == "_" ]; then
echo -ne "\rHang: ID=$ID \t[SZÜNET] \tl=400 ms\n"
sleep 0.4
fi
if [ "$C" == "." ]; then
echo -ne "\rHang: ID=$ID \t[SZÜNET] \tl=200 ms\n"
sleep 0.2
fi
done
echo
echo
Boci-boci:
echo 'QEQEttQEQEttYIUZTrzTREWqq:' | bash ./zongora.sh
Esetleg:
echo 'WW._WW._WQq:' | bash ./zongora.sh
- raron blogja
- A hozzászóláshoz be kell jelentkezni
- 943 megtekintés
Hozzászólások
Nem tudom, en kiprobaltam az alacsony meg a magas C-vel is a beep-et, egyaltalan nem hallok kulonbseget. Sima pcspkr modult hasznalok, 2.6.30-gentoo-r5 kernel, MSI K9MM-V alaplap (Via K8M800 chipset). Rendes PC speaker hanszoro van rakotve, lehet hogy ennek alacsony szintu a minosege?
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Sajnos nekem nem működik a beep. Lehet, hogy notebookban nincs is PC Speaker? Nem tudom... legutóbb Turbo Pascal programban használtam PC Speakert évekkel ezelőtt.
- A hozzászóláshoz be kell jelentkezni
nem lehet hogy csak BIOS-ban ki van kapcsolva?
man beep ír egy --device kapcsolóról, amivel át lehet irányítani hangkártyára elvileg, de nem próbáltam, illetve írja hogy némely rendszeren csak root-ként (vagy setuid-esen) szólal meg :)
- A hozzászóláshoz be kell jelentkezni
modprobe pcspkr?
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
nekem alsamixerben van lenémítva. Úgy is fog maradni :)
—-—-—
int getRandomNumber() {
return 4;//szabályos kockadobással választva.
} //garantáltan véletlenszerű. xkcd
- A hozzászóláshoz be kell jelentkezni
Pedig kellene :-(
Nálam itt 2 gépen is működik. Mindkettő Debian Lenny 2.6.26-2 kernel.
- A hozzászóláshoz be kell jelentkezni
hehe, nagyon jó
- A hozzászóláshoz be kell jelentkezni