sabato 15 settembre 2012

Modificare il tempo/velocita` (bpm) ad un file audio

Dopo uno schiarimento di idee a riguardo, domandando se e come fosse possibile, nel caso si tratti di un file audio compresso, modificarne il tempo d'ascolto, memorizzandolo su un nuovo file, in lista pubblica RELug, ho scoperto che ...

Non e` possibile cambiare la "velocita`/tempo" ad un file audio compresso, senza prima decodificarlo e reencodarlo di nuovo, quindi, con una perdita di qualita`, anche minima, ma c'e`.

Lo avevo anche gia` intuito, ma per sicurezza ho preferito domandare.

Metodi per l'ascolto
Quanti ne volete ?

play <infile> tempo <numero>
Questo "play" fa parte del pacchetto "sox", potete cambiare il tempo da 0.1 a '?' (ma oltre il 3 non ha senso), velocita` normale e` 1.

mpg123 -pitch <numero> <infile> 
Non e` proprio il "tempo", potete cambiare da -0.9 a 3.3, il "man" non lo dice, il valore normale e` 0.

mplayer <infile> -speed <numero>
La velocita` puo` essere impostata da 0.01 a 100, la normale e` 1.

Per la memorizzazione ho scelto "sox", tanto devo comunque passare attraverso un 'wav'.
A proposito, ho scoperto che sox pacchettizzato debian, non e` compilato col supporto per encodare in mp3, direi anche a ragione, visto che utilizzerebbe la libreria di 'lame', tanto vale risparmiare sulle dimensioni dell'eseguibile, pero`, si deve poi installare 'lame', per me non e` un problema, per altri ..
sox <infile> <outfile> tempo <numero>
Non rimane che rippare in mp3, io utilizzo questo comando, perche` normalmente faccio tutta la directory:
for i in *.wav; do lame -h -b 320 "${i}" "${i%.wav}.mp3";done

lunedì 10 settembre 2012

ownCloud installazione

(Bene, ora che funziona anche dall'esterno, vedi Modifiche al firewall (regole di nat), posso postare anche questo, cui freghera` poco a pochi, pero` mi sono e mi sto` divertendo ;P )

Ho cercato di raggruppare tutte le operazioni eseguite, quindi potrei anche aver dimenticato/tralasciato qualcosa o qualche comando, non prendete per oro colato quel che ho scritto e andate a leggere anche la documentazione sul sito ufficiale (link, come al solito, che metto al termine del post).

Ho creato una macchina virtuale installando Debian 6.0.5, selezionando KDE come desktop, avrei anche potuto evitare l'Xserver, ma vorrei utilizzarla (forse) anche per altri scopi, tant'e` che ho pure messo previsto due schede di rete.
Terminata l'installazione del sistema operativo, ho scaricato ownCloud, direttamente dal browser (Konqueror), poi ..


Inizio Installazione
Ho decompresso l'archivio come root, perche` come utente mi falliva la creazione dei permessi di scrittura di alcune sottodirectory
mkdir tmp
cd tmp
tar -xvjf ../owncloud-<versione>.tar.bz2

Ho cambiato i permessi
chown root:www-data -R owncloud/
chmod g+w owncloud

L'ho spostato in /var/www, utilizzando 'midnight commander', lasciando inalterati i permessi e la directory "owncloud".
Seguendo la guida online all'indirizzo http://owncloud.org/support/install/, ho installato (in effetti) questi software:
apt-get install apache2 php5 php5-common php5-gd php5-sqlite curl libcurl3 libcurl3-dev php5-curl mysql-server php5-mysql
non sono sicuro che il "php-mysql" serva, ma male non dovrebbe fare.


Configurazione del web server Apache
Attivo sempre anche 'https', che non serve, ma mi piace averlo.
Comandi usati:
a2ensite default-ssl
a2enmod rewrite headers ssl
(spero di non aver dimenticato qualcosa, li ho ricopiati dall' ordine sparso di un "history" finale)

Prima di riavviare Apache, ho creato il file per ownCloud, "/etc/apache2/conf/owncloud.conf" con queste righe:
Alias /owncloud /var/www/owncloud

<Directory /var/www/owncloud/>
    AllowOverride All
    order allow,deny
    allow from all
</Directory>

Adesso si puo` riavviare
invoke-rc.d apache2 restart


Predisposizione MySQL
Non ho trovato indicazioni sul sito web di ownCloud, quindi sono andato su quello di Drupal ;) all'indirizzo http://drupal.org/documentation/install/create-database seguendo questa parte (copio ed incollo):

Create a new database for your site.
mysqladmin -u username -p create databasename

MySQL prompts for the 'username' database password, and creates the initial database files.

Log in and set the access database rights:
mysql -u username -p

MySQL prompts for the 'username' database password.

At the MySQL prompt, set the permissions using the following command:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES, CREATE TEMPORARY TABLES ON `databasename`.* TO 'username'@'localhost' IDENTIFIED BY 'password';

In this case:

'databasename' is the name of your database
'username@localhost' is the username of your MySQL account
'password' is the password required for that username
You will need the ` around the database name if you have used a MySQL escape character in your schema name.

If successful, MySQL will reply with:
Query OK, 0 rows affected

To activate the new permissions, enter the following command:
FLUSH PRIVILEGES;

Now exit the MYSQL prompt by typing:
exit

Ovviamente, non tutto e` andato liscio, i comandi da me eseguiti non sono stati proprio nella sequenza esposta, ma un pochino piu` casuali, quindi qualcosa non funzionava, probabilmente avevo dimenticato di riavviare qualche servizio, insomma, alla fine, per 'tagliare la testa al toro', ho riavviato la macchina.


Ultima parte
Terminata la preparazione, e` ora di puntare il nostro browser all'indirizzo della macchina, se siete sulla stessa: "http://localhost/owncloud"


Inserite i dati ed il gioco e` fatto.
Devo anche scrivere i dati che dovete inserire ?
Username: Nome utente principale, potete mettere il vostro.
Password: La vostra password per entrare.
Data folder: Lasciatela pure inalterata.
Database User: Il nome dell'utente del database mysql che avete creato.
Database Password: La password per accedere al database che avete creato.
Database Name: Il nome del database che avete creato.
"localhost" e` l'indirizzo web del database, che io ho lasciato sulla macchina locale (localhost appunto).

Ora dovreste essere pronti per il login.

Una volta entrati, alla voce Settings/Personal, troverete anche il pulsante per il download del client per la vostra architettura/sistema operativo, pulsante che vi reindirizzera` alla pagina web per la scelta ed il download.


Riferimenti:
http://owncloud.org/
http://owncloud.org/support/install/
http://owncloud.org/support/distro-notes/
http://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud-client

Modifiche al firewall (regole di nat)

Come perdere una giornata fra HOWTO, FAQ e ricerche web .. senza cavare un ragno dal buco.

Situazione
Ho aggiunto un Web Server interno alla rete locale a cui voglio accedere con l'indirizzo Web principale, ma su una differente porta.
Non son bravo con la grafica, quindi schematizzero` cosi`:

  • Rete
    • PC client
  • Rete Esterna
    • Internet
  • Rete Locale
    • Firewall
      • Web server

L'indirizzo da digitare nel client sara` "http://websitename:10212" e dovra` rispondere il Web Server interno.

Per "nattare" questa connessione ho modificato il firewall inserendo alcune regole, riporto le principali perche` tutto il firewall e` esageratamente lungo.

Regole iptables
Ai pacchetti in arrivo sulla porta 10212 dalla scheda di rete collegata in internet, cambio destinazione e porta, spedendoli al web server interno.
iptables -t nat -I PREROUTING -p TCP -i interfacciainternet --dport 10212 -j DNAT --to-destination indirizzowebserver:80

Accetto tutti i pacchetti in arrivo sulla porta 80, questa regola e` in effetti in una "sottocatena".
iptables -A INPUT -p TCP -s 0/0 --destination-port 80 -j ACCEPT

Faccio proseguire i pacchetti, e` un'altra sottocatena concatenata con quelle che accettano/scartano i pacchetti in ingresso.
iptables -A FORWARD -p TCP -i interfacciainternet --dport 80 -j ACCEPT

Quindi ricapitolando, modifico la destinazione del pacchetto in PREROUTING, accetto (ACCEPT) i pacchetti e li faccio proseguire (FORWARD), poi c'e` il solito MASQUERADE in uscita cui non serve metter mano.

Spero di essermi spiegato.

sabato 8 settembre 2012

promemoria debian flash player plugin

Installare
apt-get flashplugin-nonfree

Aggiornare (mi e` capitato un paio di volte)
update-flashplayer-plugin --install