giovedì 18 agosto 2011

Accordare la chitarra con Sox

Salve!



Aggiornamento: Il nuovo script lo trovate qui.

Ritorno volentieri a parlare di Sox! Questa volta, però, per eseguire un'operazione un pò insolita, cioè per accordare una chitarra classica. :D

Sox è un tool a riga di comando, il cui nome sta per Sound Exchange; è libero, multipiattaforma e rilasciato sotto licenza Gnu General Public License.

E' meglio conosciuto come coltellino svizzero.

Vabbè, tutte queste cose le avevo scritte già nell'altro post. Si, perchè questo è il secondo che gli dedico. E ce ne saranno degli altri!

Per installarlo:

sudo apt-get install sox

Per installare i codec

sudo apt-get install libsox-fmt-all

Per automatizzare le operazioni da eseguire mi sono "permesso" (lol) di scrivere uno script. Dato che è tutto spiegato al suo interno, non mi dilungo "molto" con parole inutili.

Ecco il corpo dello script:

#!/bin/bash
#Autor: Bit3Lux
#Accordatore di chitarra

clear

echo "Quando lo script ci chiede una nota, bisogna usare la nomenclatura internazionale. Ecco il prospetto:"

echo "1 E4 sta per MI Cantino
2 B sta per Si
3 G sta per Sol
4 D sta per RE
5 A sta per LA
6 E2 sta per Mi Basso"

echo "se si vuole uscire dallo script durante l'esecuzione della nota, premere Ctrl+C."

echo "Dammi una nota"

read nota

if [ $nota == E2 ]; then
echo "la nota è il MI basso, detto E2"
play -n synth 4 pluck E2 repeat 6

elif [ $nota == A ]; then
echo "la nota è il LA, detto A"
play -n synth 4 pluck A repeat 6

elif [ $nota == D ]; then
echo "la nota è il RE, detto D"
play -n synth 4 pluck D repeat 6

elif [ $nota == G ]; then
echo "la nota è il SOL, detto G"
play -n synth 4 pluck G repeat 6

elif [ $nota == B ]; then
echo "la nota è il SI, detto B"
play -n synth 4 pluck B repeat 6

elif [ $nota == E4 ]; then
echo "la nota è il MI cantino, detto E4"
play -n synth 4 pluck E4 repeat 6
fi

exit 0


Va salvato su un file di testo, sulla scrivania, e nominato ak.sh

aperto il terminale, ci spostiamo sulla scrivania con

$ cd Scrivania

e lo rendiamo eseguibile

$ chmod +x ak.sh

lanciamo lo script

$ ./ak.sh

Non resta che leggere e eseguire le poche istruzioni che saranno stampate a video. In caso di problemi, se avete qualche idea per migliorarlo, etc, etc, fatevi sentire :)

Ciao :)

11 commenti:

  1. @Mattux
    Ho scoperto di questa possibilità leggendo il man di Sox. Sox è un tool che mi fa impazzire. Permette di fare migliaia e migliaia di cose! Peccato che il manuale, come tutti i grandi manuali con la M maiuscola, è scritto male! :D

    RispondiElimina
  2. @Bit3Lux:
    Con Sox non ci ho ancora smanettato, rimedierò :)

    Dopo aver provato lo script ho due considerazioni da fare :)

    Prima considerazione: sarebbe meglio se la nota venisse riprodotta finché non viene premuto un tasto, per esempio invio.

    Seconda considerazione: se devo accordare tutte le corde devo lanciare 6 volte lo script. Riproducendo dal MI basso fino al Mi Cantino in un'unica "passata" forse sarebbe meglio.

    Poi come implementarlo ehm...dovrei rimettermi a fare un po' di bash XD

    RispondiElimina
  3. @Mattux
    Hai perfettamente ragione! A dire il vero, ci avevo pensato anch'io. Mi sa che devo mettere mani alle funzioni! Per "allungare" l'esecuzione della nota si può intervenire sull'opzione "repeat" che ho impostato a 6 Insomma la mia voleva essere un'idea. Spero che possa essere migliorata :)

    RispondiElimina
  4. #Mattux
    Oppure si potrebbe ricorrere al ciclo di For. Che poi è l'esempio riportato nel Man, dove ho solo modificato il valore di repeat (da due a otto)
    for n in E2 A2 D3 G3 B3 E4; do
    play -n synth 4 pluck $n repeat 8; done

    RispondiElimina
  5. Questo va subito nei preferiti, lo userò per stupire mio fratello :P

    RispondiElimina
  6. @Bit3Lux
    Sì sicuramente occore un ciclo. La mia idea è che certe corde le potrei accordare dopo più di n ascolti, altre in meno. Certo, se le accordo in meno di n ascolti potrei abortire lo script con CTRL-C, ma devo rieseguirlo per andare avanti nell accordatura.
    Bisognerebbe fare in modo che cicli finché non si preme un tasto, così da passare alla corda successiva.
    Per ora va benissimo così :D Non avrei molto tempo da dedicare alla cosa però chissà...

    RispondiElimina
  7. @Mattux
    Dai, che creiamo un accordatore sofisticato! :D

    RispondiElimina
  8. @Mattux

    Non mi escludete dal creare lo script. Vi darò una mano molto volentieri, anzi mi piace proprio l'idea. Anche se non suono la chitarra, be niente ci fa, l'idea mi intrippa molto :D

    RispondiElimina
  9. @Lightuono
    Certe cose non dirle neanche per scherzo! Tu qui sei di casa!!!! ;)

    RispondiElimina