oggi non avevo niente da fare, così ho deciso di miglirare un po' il mio vecchio script per la sveglia. adeso in pratica può:
diminuire il volume della musica che è in "suonamento"
e poi:
- suonare musica (con volume incrementale)
- aumentare il volume della musica (incrementale)
ovvero: se lascio xmms acceso di notte quando lo script è chiamato il volume viene aumentato pian piano fino a 100 (con l'opzione -s) o viene pian piano diminuito, viene fatto partire mplayer con il brano scelto e infine il volume è riaumentato gradualmente fino a 100 (con -a)
lo script funziona con ogg, mp3 e wav perchè mplayer supporta tutti e 3 questi formati
potete scaricare lo script qui, ma visto che so che prima o poi quel sito non ci sarà più posto una versione anche sul forum
se sono stato utile a qualcuno bene, altrimenti mi sono divertito lo stesso a farlo![]()
ah dimenticavo.. uno bravo probabilmente l'avrebbe scritto in metà delle righe, io sono ancora in fase di apprendimento..
codice:#!/bin/bash # author: Luca Guglielmetti # version: 0.3 # license: GPL-2 # use: uno scrip da inserire in crontab che funziona da sveglia # oss: lo script si basa su alsa per incrementare il volume USE_ALSA="true" SLEEP_VALUE=0.3 SPEED_VOLUME_CHANGE=2 MUSIC_DIRECTORY="/usr/local/sveglia/music/" MUSIC_SOFTWARE="mplayer" function whelp { echo echo "USE sveglia [-a] <nomeautore>" echo "or" echo "USE sveglia [-s]" echo echo "lo script ha l'inutile scopo di cercare di svegliarmi al mattino.." echo echo "opzioni: " echo "-a --author: accetta un brano specifico da suonare" echo "-s --silent: alza solamente il volume e fa partire xmms/bmp/..." echo "-l --list: stampa la lista dei brani disponibili" echo "-h --help: stampa questo messaggio ed esce" exit 0 } function list { echo "lista degli autori selezionabili:" echo for i in `ls $MUSIC_DIRECTORY` do titolo=${i%.*} estensione=${i##*.} echo "- "$titolo" ["$estensione"]" done echo exit 0 } function play { echo echo "+-------------------------------------+" echo "| sveglia partita.. buona giornata !! |" echo "+-------------------------------------+" echo `$MUSIC_SOFTWARE $MUSIC_DIRECTORY$1 &` echo "ok" } function stop_players() { if [ "$USE_ALSA" = "true" ]; then diminuisci_volume fi for i in "xmms" "beep-media-play" do name=`ps -e | grep $i | line 1 | awk '{ print $4 }'` if [ "$name" = "$i" ]; then `xmms -s` echo $name "stoppato" fi done for i in "ogg123" "mpg123" do name=`ps -e | grep $i | line 1 | awk '{ print $4 }'` if [ "$name" = "$i" ]; then `killall $name` echo $name "killato" fi done } function start_players() { for i in "ogg123" "mpg123" do name=`ps -e | grep $i | line 1 | awk '{ print $4 }'` if [ "$name" = "$i" ]; then PLAYING_FROM_SHELL="true" fi done if [ ! "$PLAYING_FROM_SHELL" ]; then for i in "xmms" "beep-media-play" do name=`ps -e | grep $i | line 1 | awk '{ print $4 }'` if [ "$name" = "$i" ]; then `xmms -p` echo $i "partito" fi done fi } function aumenta_volume() { for ((i=0; i <= 100; i+=SPEED_VOLUME_CHANGE)) do #echo $i amixer set Master $i% >> /dev/null sleep $SLEEP_VALUE; done } function diminuisci_volume() { i=`amixer get Master | grep "Front Left: " | awk '{ print $5 }'` i=`echo $i| sed "s/\[//g" | sed "s/\]//g" | sed "s/%//g"` for ((i; i >= 0; i-=SPEED_VOLUME_CHANGE)) do #echo $i amixer set Master $i% >> /dev/null sleep $SLEEP_VALUE done } if [ ! "$1" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$3" ]; then whelp elif [ "$1" = "-l" ] || [ "$1" = "--list" ] ; then list elif [ "$1" = "-s" ] || [ "$1" = "--silent" ]; then start_players if [ "$USE_ALSA" = "true" ]; then aumenta_volume fi elif [ "$1" = "-a" ] || [ "$1" = "--author" ]; then for i in `ls $MUSIC_DIRECTORY` do nomefile=$i titolo=${i%.*} estensione=${i##*.} if [ "$titolo" = "$2" ] ; then if [ "$estensione" = "ogg" ] || [ "$estensione" = "mp3" ] \ || [ "$estensione" = "wav" ]; then FILE_TROVATO="true" stop_players play $nomefile & if [ "$USE_ALSA" = "true" ]; then aumenta_volume fi else echo "estensione sconosciuta" fi fi done if [ ! "$FILE_TROVATO" ]; then list fi else whelp exit 0 fi