sabato 29 dicembre 2012

Uno script per accordare la chitarra

Salve!

Ho messo mano a un mio vecchio script per accordare la chitarra. Penso di averlo migliorato un po'. Tuttavia, se doveste riscontrare delle imperfezioni, fatemelo sapere.

Ovviamente, se non lo avete già fatto, dovete installare sox


$ sudo apt-get install sox

Lo script (accorda.sh)
#!/bin/bash
#Author: Bit3Lux
#Accordatore di chitarra
#name: accorda.sh

clear
function note(){
echo -e "Le note vanno scritte così:\n
mi_basso
la
sol
si
re
mi_cantino\n"
}

function decisione(){
clear
b=0
while [ $b == 0 ]; do
    echo "digita 1 per cambiare nota, 0 per continuare con la stessa" 
    read a
    if [[ $a != 1 && $a != 0 ]]; then
          echo -e "devi digitare 1 o 0;\n"
          sleep 2
    else
        b=1
    fi
done
}

x=0
while [ $x == 0 ]; do
  note
  read -p "Dammi una nota oppure digita 1 per uscire dallo script: " nota
  if [ $nota == 1 ]; then
      exit 1
  fi

  case "$nota" in
        [mM]i_basso)
              a=0
              while [ $a == 0 ]; do
                    play -n synth 4 pluck E2 repeat 6
                    decisione
              done
        ;;
        [lL]a)
              a=0
              while [ $a == 0 ]; do
                    play -n synth 4 pluck A2 repeat 6
                    decisione
              done
        ;;
        [rR]e)           
              a=0
              while [ $a == 0 ]; do
                    play -n synth 4 pluck D3 repeat 6
                    decisione
              done                     
        ;;
        [sS]ol)
               a=0
              while [ $a == 0 ]; do
                    play -n synth 4 pluck G3 repeat 6
                    decisione
              done     
        ;;
        [sS]i)
               a=0
              while [ $a == 0 ]; do
                    play -n synth 4 pluck B3 repeat 6
                    decisione
              done
        ;;
        [mM]i_cantino)
               a=0
              while [ $a == 0 ]; do
                    play -n synth 4 pluck E4 repeat 6
                    decisione
              done
        ;;
        *)
              echo -e "la nota che hai digitato non esiste\n"
              sleep 2
        ;;
   esac

done      

exit 0 

Dopo averlo salvato, ad es., nella vostra home,

va reso eseguibile:

$ chmod +x accorda.sh

Per eseguire lo script:

$ ./accorda.sh

Ripeto, dato che non ho avuto moltissimo tempo per testarlo, se doveste riscontrare delle anomalie, fatemelo sapere. 

Alla prossima!

3 commenti:

  1. io, da musicista, farei cosi:

    #!/bin/bash
    #Author: Bit3Lux
    #Accordatore di chitarra
    #name: accordatore.sh

    clear
    function note(){
    echo -e "Le note vanno scritte così:\n
    E6
    A
    D
    G
    B
    E1\n"
    }

    function decisione(){
    clear
    b=0
    while [ $b == 0 ]; do
    echo "digita 1 per cambiare nota, 0 per continuare con la stessa"
    read a
    if [[ $a != 1 && $a != 0 ]]; then
    echo -e "devi digitare 1 o 0;\n"
    sleep 2
    else
    b=1
    fi
    done
    }

    x=0
    while [ $x == 0 ]; do
    note
    read -p "Dammi una nota oppure digita 1 per uscire dallo script: " nota
    if [ $nota == 1 ]; then
    exit 1
    fi

    case "$nota" in
    [eE]6)
    a=0
    while [ $a == 0 ]; do
    play -n synth 4 pluck E2 repeat 5
    decisione
    done
    ;;
    [aA])
    a=0
    while [ $a == 0 ]; do
    play -n synth 4 pluck A2 repeat 5
    decisione
    done
    ;;
    [dD])
    a=0
    while [ $a == 0 ]; do
    play -n synth 4 pluck D3 repeat 5
    decisione
    done
    ;;
    [gG])
    a=0
    while [ $a == 0 ]; do
    play -n synth 4 pluck G3 repeat 5
    decisione
    done
    ;;
    [bB])
    a=0
    while [ $a == 0 ]; do
    play -n synth 4 pluck B3 repeat 5
    decisione
    done
    ;;
    [eE]1)
    a=0
    while [ $a == 0 ]; do
    play -n synth 4 pluck E4 repeat 5
    decisione
    done
    ;;
    *)
    echo -e "la nota che hai digitato non esiste\n"
    sleep 2
    ;;
    esac

    done

    exit 0

    ora le ottave sono giuste e sarebbe meglio usare la notazione letterale(http://it.wikipedia.org/wiki/Notazione_dell%27altezza )perchè più usata. Grazie per l'idea! ;)

    RispondiElimina
    Risposte
    1. Ma non tutti sono musicisti! :) Comunque in passato avevo fatto uno script in cui ho usato quel tipo di notazione, ma tanti miei amici non si trovavano bene. Lo script è sparso tra le pagine del mio blog... Grazie per la correzione delle ottave :D

      Elimina
    2. Ho corretto le ottave anche nello script :)

      Elimina