Am un server cu PC Speaker si vroiam sa cinte si el mai frumos in anumite
cazuri. Fara sa recompilez kernelul ca sa bag patchuri de OSS-over-PCSP
samd. Asa ca:

1. http://freshmeat.net/projects/beep/
   (programel care scoate sunete de frecventa/lungime diferita prin speaker)
2. http://www.phy.mtu.edu/~suits/notefreqs.html
   (frecventele notelor din toate octavele, in caz ca)
3. un script bash care transforma ringtones Ericsson in parametri pentru beep
   (exemplu: e2b "eapecpeapeapepapfapfcpfafcpfpapgbpgdpgbpgdpgpb")
   (daca-l imbunatatiti ziceti-mi si mie)

=== incepe scriptu' ===
#!/bin/sh
# e2b (ericsson2beep) by [EMAIL PROTECTED]
# pass Ericsson ringtone strings to beep
# (http://freshmeat.net/projects/beep/)

TUNE=$1
LEN=`echo $TUNE|wc -c`
POS=1
LINE="-f1 -l1"
OCTUP=no
DIEZ=no
FREQ1=100
FREQ2=300

freq() {
  case "$1" in
    c4|C4) echo 261 ;;
    d4|D4) echo 293 ;;
    e4|E4) echo 329 ;;
    f4|F4) echo 349 ;;
    g4|G4) echo 392 ;;
    a4|A4) echo 440 ;;
    b4|B4) echo 493 ;;
    c5|C5) echo 523 ;;
    d5|D5) echo 587 ;;
    e5|E5) echo 659 ;;
    f5|F5) echo 698 ;;
    g5|G5) echo 783 ;;
    a5|A5) echo 880 ;;
    b5|B5) echo 987 ;;
  esac
}

diez() {
  case "$1" in
    c4|C4) echo 277 ;;
    d4|D4) echo 311 ;;
    f4|F4) echo 369 ;;
    g4|G4) echo 415 ;;
    a4|A4) echo 466 ;;
    c5|C5) echo 554 ;;
    d5|D5) echo 622 ;;
    f5|F5) echo 739 ;;
    g5|G5) echo 830 ;;
    a5|A5) echo 932 ;;
  esac
}

len() {
  case "$1" in
    c|d|e|f|g|a|b) echo $FREQ1 ;;
    C|D|E|F|G|A|B) echo $FREQ2 ;;
  esac
}

while (( $POS < $LEN )); do
  CH=`echo "$TUNE"|cut -c$POS`
  case "$CH" in
    c|d|e|f|g|a|b|C|D|E|F|G|A|B)
      NFREQ=`freq $CH`
      NLEN=`len $CH`
      if [ "$OCTUP" = "no" ] && [ "$DIEZ" = "no" ]; then
        LINE=$LINE" -n -D 1 -f `freq $CH'4'` -l `len $CH`"
      elif [ "$OCTUP" = "yes" ] && [ "$DIEZ" = "no" ]; then
        LINE=$LINE" -n -D 1 -f `freq $CH'5'` -l `len $CH`"
      elif [ "$OCTUP" = "no" ] && [ "$DIEZ" = "yes" ]; then
        LINE=$LINE" -n -D 1 -f `diez $CH'4'` -l `len $CH`"
      elif [ "$OCTUP" = "yes" ] && [ "$DIEZ" = "yes" ]; then
        LINE=$LINE" -n -D 1 -f `diez $CH'5'` -l `len $CH`"
      fi
      OCTUP=no
      DIEZ=no
    ;;
    "+")
      OCTUP=yes
    ;;
    "#")
      DIEZ=yes
    ;;
    p)
      LINE=$LINE" -n -D 1 -f 1 -l 100"
    ;;
    *)
  esac
  (( POS=$POS+1 ))
done

beep $LINE
====== end of script ===

-- GZ
---
Pentru dezabonare, trimiteti mail la 
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/


Raspunde prin e-mail lui