<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>applicazioni-e-progetti &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/applicazioni-e-progetti/</link>
	<description>Feed of posts on WordPress.com tagged "applicazioni-e-progetti"</description>
	<pubDate>Sat, 11 Oct 2008 08:47:05 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Disegnare una superficie parametrica con Scilab / Draw a parametric surface with Scilab]]></title>
<link>http://natonelbronx.wordpress.com/?p=187</link>
<pubDate>Tue, 18 Mar 2008 13:54:40 +0000</pubDate>
<dc:creator>mastro</dc:creator>
<guid>http://natonelbronx.it.wordpress.com/2008/03/18/disegnare-una-superficie-parametrica-con-scilab-draw-a-parametric-surface-with-scilab/</guid>
<description><![CDATA[Questo articolo sarà sia in Italiano che in Inglese: scusate per gli strani colori ma aiuta a disti]]></description>
<content:encoded><![CDATA[<p><font color="#008000"><font color="#003366">Questo articolo sarà sia in Italiano che in</font> <font color="#0000ff">Inglese</font><font color="#003366">: scusate per gli strani colori ma aiuta a distinguere tra le due lingue.</font></font></p>
<p><font color="#003366">Mi serviva per la tesi produrre delle superfici parametriche utilizzando Scilab, tutti gli esempi trovati nel manuale e su web non funzionavano e davano strani errori!!!! Così mi sono stufato e ho studiato un metodo alternativo per disegnarle...</font></p>
<p><font color="#003366">Per disegnare una sfera parametrica (di prova) ho seguito il metodo suggerito dalle guide ricevendo l'errore che vedete:</font></p>
<p><font color="#0000ff">This article will be either in <font color="#003366">Italian</font> and in English: sorry for the weird colors but help to differentiate them.</font></p>
<p><font color="#0000ff">I was in trying to plot a 3d parametric surface with Scilab, all the example I've found in the manual and on the web doesn't worked for me giving some weird errors!!!! So i pissed off and worked around it finding my own way to draw a parametric surface...</font></p>
<p><font color="#0000ff">To draw a parametric sphere (to test) I tried the way suggested by manuals getting the error you see:</font></p>
<blockquote><p><code>u=linspace(0,%pi);</code> // <font color="#003366">primo vettore dei parametri</font> / <font color="#0000ff">first parameter vector</font></p>
<p><code>v=linspace(0,2*%pi);</code> // <font color="#003366">secondo vettore dei parametri</font> / <font color="#0000ff">second parameter vector</font></p>
<p><code>deff('[x,y,z]=fun(u,v)',['x=sin(u).*cos(v)','y=sin(u).*cos(v)','z=cos(u)']);</code> // <font color="#003366">definizione dell'equazione parametrica</font> / <font color="#0000ff">define the parametric equation</font></p>
<p><code>mesh(u,v,fun);</code></p>
<p><i>Z must not be a scalar or vector, not rendering surface.<br />
!--error 999<br />
set: color_mode property does not exist for this handle<br />
at line       4 of function generic_i_h called by :<br />
line     2 of function %s_i_h called by :<br />
line    22 of function mesh called by :<br />
mesh(u,v,fun);</i></p></blockquote>
<p><font color="#003366">Ho ricontrollato parecchie volte ma non ho fatto nulla di diverso da quello consigliato in numerose guide!  Eppure non funziona così... Quindi ecco come ho risolto:</font></p>
<p><font color="#0000ff">I checked a lot of times but exactly made what many guides advice to do!  Nevertheless it doesn't work this way... So here how i solved this issue:</font></p>
<p><!--more--></p>
<p><font color="#003366">Ho creato manualmente le X,Y,Z richieste dalle funzioni plot3d, mesh e surf come segue.</font></p>
<p><font color="#0000ff">I manually created the X,Y,Z needed by plot3d, mesh and surf function as follows.</font></p>
<blockquote><p><code>u=linspace(0,%pi)';</code> // <font color="#003366">primo vettore COLONNA <code>Nx1</code> dei parametri</font> / <font color="#0000ff">first parameter <code>Nx1</code> COLUMN vector</font></p>
<p><code>v=linspace(0,2*%pi);</code> // <font color="#003366">secondo vettore RIGA <code>1xN</code> dei parametri</font> / <font color="#0000ff">second parameter <code>1xN</code> ROW vector</font></p>
<p><code>[si,sj]=size(v);</code> // <font color="#003366">mi salvo le dimensioni del vettore v che mi serviranno dopo</font> / <font color="#0000ff">I store the size of the v vector because i will need them</font></p>
<p><code>X=sin(u)*cos(v);</code> // <font color="#003366">calcolo la matrice X <code>NxN</code></font> / <font color="#0000ff">I compute the X <code>NxN</code> matrix</font></p>
<p><code>Y=sin(u)*sin(v);</code> // <font color="#003366">calcolo la matrice Y <code>NxN</code></font> / <font color="#0000ff">I compute the Y <code>NxN</code> matrix</font></p>
<p><code>Z=cos(u)*ones(si,sj);</code> // <font color="#003366">calcolo la matrice Z <code>NxN</code>, nota che tutte le colonne della matrice sono identiche</font> / <font color="#0000ff">I compute the Z <code>NxN</code> matrix, note that all the columns of the matrix are the same</font></p>
<p><code>plot3d(X,Y,Z);</code> // <font color="#003366">disegno, potrei usare anche <code>mesh</code> o <code>surf</code></font> / <font color="#0000ff">plotting, you can use either <code>mesh</code> or <code>surf</code> too</font></p></blockquote>
<p><font color="#003366">Se non capite cos'ho fatto forse con questo vi sarà più chiaro:</font></p>
<ul>
<li><font color="#003366">un vettore <code>Nx1</code> per un vettore <code>1xM</code> formano una matrice <code>NxM</code>. Quindi <code>sin(u)*cos(v)</code> è una matrice <code>NxN</code> in questo caso. L'ordine dei moltiplicandi È importante.</font></li>
<li><font color="#003366">X,Y e Z devono essere matrici tutte della stessa dimensione.</font></li>
<li><font color="#003366">la funzione <code>ones(righe,colonne)</code> restituisce una matrice (o un vettore) di tutti "uni" con dimensione <code>righeXcolonne</code>: possiamo usarla quando ad una delle funzioni manca un parametro. Per la sfera ad esempio costruendo la Z utilizziamo un vettore di tutti "uni" al posto di <i><b>v</b></i> che manca.</font></li>
<li><font color="#003366">potete utilizzare <code>linspace(inizio,fine,dimensione)</code> per creare gli array oppure anche <code>[inizio:passo:fine]</code> a vostro piacimento. I 2 vettori dei parametri possono avere dimensioni diverse ma il primo dev'essere un vettore colonna e il secondo un vettore riga per creare delle matrici.</font></li>
<li><font color="#003366">In altre situazioni semplicemente ragionate secondo le regole matriciali.</font></li>
</ul>
<p><font color="#0000ff">If you can't understand what i made read below:</font></p>
<ul>
<li><font color="#0000ff">if you multiply an <code>Nx1</code> vector with a <code>1xM</code> vector you get an <code>NxM</code> matrix. Thus <code>sin(u)*cos(v)</code> is an <code>NxN</code> matrix in this example. The multiplier order DOES matter.</font></li>
<li><font color="#0000ff">X,Y e Z must all be matrix of the same dimension.</font></li>
<li><font color="#0000ff">the <code>ones(rows,columns)</code> function return a matrix (or a vector) full of "ones" of <code>rowsXcolumns</code> dimension: you can use it when you miss a parameter in one of the functions or when you miss both them. For this example we use a vector with all "ones" instead of the missing <i><b>v</b></i> to compute Z.</font></li>
<li><font color="#0000ff">you can use either <code>linspace(start,end,size)</code> either <code>[start:step:end]</code> as you like to create the parameters vectors. The 2 parameters vector can be of different size as long as the first is a column vector and the seconds a row one or you will not be able to create those matrix.</font></li>
<li><font color="#0000ff">On other situation simply think with the matrix rules.</font></li>
</ul>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Gtk verso un salto di qualità?]]></title>
<link>http://natonelbronx.wordpress.com/2007/12/18/gtk-verso-un-salto-di-qualita/</link>
<pubDate>Tue, 18 Dec 2007 14:49:39 +0000</pubDate>
<dc:creator>mastro</dc:creator>
<guid>http://natonelbronx.it.wordpress.com/2007/12/18/gtk-verso-un-salto-di-qualita/</guid>
<description><![CDATA[Le gtk come tutti sapete sono delle librerie che forniscono tutta una serie di elementi (pulsanti, b]]></description>
<content:encoded><![CDATA[<p>Le gtk come tutti sapete sono delle librerie che forniscono tutta una serie di elementi (pulsanti, barre di scorrimento, menù, dialoghi di scelta file e così via...).</p>
<p>Le gtk sono utilizzate da Gnome e da moltissime altre applicazioni! Tutto ciò che vediamo, la gestione dei temi e l'utilizzo delle varie componenti (o se preferite "look and feel"): trascinamenti di icone ecc...</p>
<p>Ebbene... recentemente 2 promettenti talenti stanno modificando queste librerie per renderle più gradevoli e più potenti e flessibili!</p>
<p>Il nostro italianissimo <a href="http://www.cimitan.com/" title="Sito web di Cimi" target="_blank">Andrea Cimitan (alias Cimi)</a> ha incluso effetti come le trasparenze nel suo motore GTK: murrine.</p>
<p style="text-align:center;"><a href="http://www.cimitan.com/blog/wp-content/murrine_rgba-3.jpg" title="Vedi a dimensioni naturali" target="_blank"><img src="http://www.cimitan.com/blog/wp-content/murrine_rgba-3.thumbnail.jpg" alt="Cimi Murrine Trasparency" height="320" width="400" /></a></p>
<p style="text-align:center;"><em>Trasparenze nelle GTK: immagine dal blog di Cimi, precisamente da <a href="http://www.cimitan.com/blog/2007/12/12/gtk-rgba-transparent-widgets-with-the-murrine-engine" title="Gtk+, RGBA: transparent widgets with the Murrine engine" target="_blank">qui</a>.</em></p>
<p><a href="http://macslow.thepimp.net/" title="Sito web di MacSlow" target="_blank">Mirco Müller (alias MacSlow)</a> è andato oltre e sta cercando di integrare le OpenGL con le GTK, pare che Cimi e MacSlow stiano lavorando insieme per migliorare queste cose! Se riuscissero nel loro obiettivo presto i programmatori GTK avranno a disposizione una nuova gamma di possibilità che non faranno invidia ai vari AIGLX/XGL + Compiz/Beryl.</p>
<p>Ecco i primi video di MacSlow:</p>
<p><!--more--></p>
<p>Riflesso nei widget (grazie a OperaOmnia per <a href="http://operaomnia.wordpress.com/2007/12/10/gtk-revolution/" title="da qui ho scoperto questo video la prima volta" target="_blank">la segnalazione</a>)</p>
<p align="center"><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/2JNDC6K15Wk'></param><param name='wmode' value='transparent'></param><embed src='http://www.youtube.com/v/2JNDC6K15Wk&rel=0' type='application/x-shockwave-flash' wmode='transparent' width='425' height='350'></embed></object></span></p>
<p align="center">Formato ogg scaricabile <a href="http://macslow.thepimp.net/clips/reflected-widgets-1.ogg" title="Ogg video - reflection widget" target="_blank">qui</a> (1.0MB)</p>
<p align="left">Widget in texture</p>
<p align="center"><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/X8NoZ041RPA'></param><param name='wmode' value='transparent'></param><embed src='http://www.youtube.com/v/X8NoZ041RPA&rel=0' type='application/x-shockwave-flash' wmode='transparent' width='425' height='350'></embed></object></span></p>
<p align="center">Formato ogg scaricabile <a href="http://macslow.thepimp.net/clips/widgets-in-textures-1.ogg" title="Ogg video - widget in texture" target="_blank">qui</a> (6.1MB)</p>
<p align="left">Animazioni, trasparenze, riflessi.. di tutto un po... sempre realizzato mettendo le widget all'interno di texture</p>
<p align="center"><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/dCAvtaeWwmU'></param><param name='wmode' value='transparent'></param><embed src='http://www.youtube.com/v/dCAvtaeWwmU&rel=0' type='application/x-shockwave-flash' wmode='transparent' width='425' height='350'></embed></object></span></p>
<p align="center">Formato ogg scaricabile <a href="http://macslow.thepimp.net/clips/widgets-in-textures-2.ogg" title="Ogg video - widget in texture 2" target="_blank">qui</a> (22.3MB)</p>
<p>Al momento il progetto di MacSlow ha ancora dei problemi da risolvere:</p>
<ul>
<li>redirezione degli input al livello dei toolkit</li>
<li>c'è del lag quando si cambia tema</li>
<li>integrazione con le gtk+, ora gira come applicazione sopra le gtk</li>
</ul>
<p>MacSlow sta realizzando un applicazione (gdm-face-browser) che dovrebbe sostituire o integrarsi con il login manager gdm e permettervi di navigare tra le "faccie" degli utenti con effetti grafici piacevoli. Se siete interessati seguite il link e guardatevi le immagini a fondo articolo.</p>
<p>Che ne pensate? Forse potremo fare a meno di Compiz un giorno? Io ne faccio a meno già ora :D</p>
<p>Links:</p>
<p><a href="http://arstechnica.com/news.ars/post/20071217-bringing-more-bling-to-gtk-with-opengl.html" title="Qui ho scoperto la notizia" target="_blank">http://arstechnica.com/news.ars/post/20071217-bringing-more-bling-to-gtk-with-opengl.html</a></p>
<p><a href="http://macslow.thepimp.net/?p=150" title="Questo è l'articolo sul blog di MacSlow che spiega come ha ottenuto gli effetti" target="_blank">http://macslow.thepimp.net/?p=150</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Installare e configurare pulseaudio su Linux e in particolare su Debian/Ubuntu]]></title>
<link>http://natonelbronx.wordpress.com/2007/11/08/installare-e-configurare-pulseaudio-su-linux-e-in-particolare-su-debianubuntu/</link>
<pubDate>Thu, 08 Nov 2007 00:23:05 +0000</pubDate>
<dc:creator>mastro</dc:creator>
<guid>http://natonelbronx.it.wordpress.com/2007/11/08/installare-e-configurare-pulseaudio-su-linux-e-in-particolare-su-debianubuntu/</guid>
<description><![CDATA[Ho parlato qualche giorno fa di PulseAudio e di come presto manderà in pensione esound su tutti i s]]></description>
<content:encoded><![CDATA[<p>Ho parlato <a href="http://natonelbronx.wordpress.com/2007/10/31/grande-notizie-per-gli-utenti-gnome-pulseaudio-presto-sostituira-esound/" title="PulseAudio sostituirà esound" target="_blank">qualche giorno fa</a> di PulseAudio e di come presto manderà in pensione esound su tutti i sistemi Gnome.</p>
<p>PulseAudio per ora è difficile da integrare nel proprio sistema o almeno è difficile se non si è un minimo smalizziati! Comunque il problema più grosso è a mio avviso la mancanza di guide per farlo! Ecco perché qui spiego come ho fatto sul mio sistema...</p>
<p>Questa guida è orientata a sistemi Debian/Ubuntu ma può essere riadattata a qualunque distribuzione Linux purché si installino i pacchetti pulseaudio corrispondenti a quelli che tratto qui.</p>
<p>La guida non è comunque semplicissima, se seguendola fate casini nel vostro sistema non sarà colpa mia :). In ogni caso se vi fate i backup dei file che modificate e ponete attenzione in quel che fate dovrebbe andare tutto liscio...</p>
<p>Vi ricordo che <strong>PulseAudio è un software in via di sviluppo</strong>: pertanto potrebbe essere instabile o avere delle mancanze/malfunzionamenti di vario tipo... Siete caldamente invitati quindi a non lamentarvi in caso di problemi! Aiutate invece gli sviluppatori segnalandoli e aiutandoli a risolverli... In fondo riporterò una lista dei problemi che IO ho rilevato e quelli che mi segnalerete.</p>
<p><!--more--></p>
<p>La guida è scritta per PulseAudio versione 0.9.5 ma potrebbe funzionare anche per versioni precedenti/successive.</p>
<h1>Installare PulseAudio</h1>
<p>Su Ubuntu (testato con Feisty) potete farlo con questo comando</p>
<blockquote><p><code>sudo apt-get install pulseaudio pulseaudio-esound-compat pulseaudio-utils paprefs pavumeter pavucontrol padevchooser paman libao-pulse pulseaudio-module-hal pulseaudio-module-x11 libasound2-plugins</code></p></blockquote>
<p>Su debian... beh.. penso lo stesso comando ma il mio computer si è rotto e sto usandone uno che mi hanno prestato su cui c'è ubuntu feisty :) e tanto che c'ero faccio un regalo al proprietario e gli configuro pulseaudio.. più avanti testerò su debian (o se volete darmi le eventuali correzioni/conferme nei commenti siete i ben venuti)</p>
<p>NOTA: non vi dimenticate il pacchetto <code><strong>libasound2-plugins</strong></code> altrimenti le applicazioni alsa non riusciranno ad appoggiarsi a pulse</p>
<h1>Configurare PulseAudio</h1>
<p>Vi anticipo che se impostate alsa per agire di default utilizzando pulseaudio praticamente tutto sul vostro sistema funzionerà tramite pulse audio!</p>
<p>Talvolta alcuni programmi si possono configurare per utilizzare direttamente pulseaudio evitando un passaggio inutile :)</p>
<p>L'installazione che propongo è di tipo "system-wide", cioè adatta anche se si hanno più utenti sul proprio computer ma funziona anche con un solo utente. Se volete abilitare pulseaudio per un solo utente o solo per alcuni invece non dovete seguire questa procedura alla lettera ma ragionare su quali opzioni sia il caso di abilitare e quali no :)</p>
<h3>Abilitare il demone</h3>
<p>Prima di tutto dobbiamo fare in modo che il PulseAudio server sia avviabile: modificate il file <code>/etc/default/pulseaudio</code></p>
<blockquote><p><code># Start the PulseAudio sound server in system mode.<br />
# (enables the pulseaudio init script)<br />
# System mode is not the recommended way to run PulseAudio as it has some<br />
# limitations (such as no shared memory access) and could potentially allow<br />
# users to disconnect or redirect each others audio streams.<br />
# 0 = don't start, 1 = start<br />
<strong>PULSEAUDIO_SYSTEM_START=1</strong></code></p>
<p><code># Prevent users from dynamically loading modules into the PulseAudio sound<br />
# server. Dynamic module loading enhances the flexibilty of the PulseAudio<br />
# system, but may pose a security risk.<br />
# 0 = no, 1 = yes<br />
DISALLOW_MODULE_LOADING=0</code></p></blockquote>
<p>in grassetto (<code>PULSEAUDIO_SYSTEM_START=1</code>) la parte più importante (di default è 0 ed impedisce allo script di avvio di attivare il server pulseaudio)</p>
<p>la seconda opzione sta a vostra discrezione, io ho messo "0" come vedete qui sopra. Questa impostazione permette al server di caricare un modulo pulseaudio all'occorrenza.</p>
<p>Adesso impostiamo qualche opzione del demone: si trovano in <code>/etc/pulse/daemon.conf</code>. Rendiamo il demone "system-wide" cioè attivo per tutto il sistema:</p>
<blockquote><p><code>## Run the daemon as system-wide instance, requires root priviliges<br />
system-instance = 1<br />
</code></p></blockquote>
<h3>Assicurarsi che i moduli fondamentali vengano caricati</h3>
<p>Le impostazioni di default del demone pulseaudio si trovano in <code>/etc/pulse/default.pa</code>. Assicuratevi che questi moduli vengano caricati (devono essere stati installati con il comando precedente):</p>
<p>Rileva automaticamente nuove sorgenti/uscite audio (source/sink)</p>
<blockquote><p><code>### Automatically load driver modules depending on the hardware available<br />
load-module module-hal-detect</code></p></blockquote>
<p>Supporto al demone esound (esd)</p>
<blockquote><p><code>### Load esound protocol<br />
load-module module-esound-protocol-unix</code></p></blockquote>
<blockquote></blockquote>
<h3>Aggiungere i gruppi all'utente</h3>
<p>Per poter utilizzare il demone pulse audio ogni utente deve appartenere ai gruppi <code>pulse</code>, <code>pulse-access</code> e <code>pulse-rt</code>. Da utente con privilegi di root date i seguenti comandi per ogni utente del vostro sistema a cui volete permettere l'utilizzo di pulse audio</p>
<blockquote><p><code>adduser vostronomeutente pulse<br />
adduser vostronomeutente pulse-access<br />
adduser vostronomeutente pulse-rt</code></p></blockquote>
<p>Quindi <strong>fate il log out e rientrate</strong></p>
<h3>Configurare alsa perché usi il server pulse</h3>
<p>Da utente amministratore aprite il file <code>/etc/asound.conf</code> ed aggiungete in fondo quanto segue (o se è vuoto/non esiste scriveteci riempitelo con quanto segue)</p>
<blockquote><p><code>pcm.pulse {<br />
type pulse<br />
}</code></p>
<p><code>ctl.pulse {<br />
type pulse<br />
}</code></p></blockquote>
<p>Adesso se volete che alsa utilizzi pulse di default dovete aggiungere un altra cosa allo stesso file. Se invece volete che il comportamento di default esista solo per alcuni utenti potete aggiungere quanto segue nel file <code>$HOME/.asoundrc</code> nella home degli utenti a cui volete impostare pulse</p>
<blockquote><p><code>pcm.!default {<br />
type pulse<br />
}</code></p>
<p><code>ctl.!default {<br />
type pulse<br />
}</code></p></blockquote>
<h2>Provare pulseaudio</h2>
<p>Prima di tutto avviamo il server pulseaudio lanciando come utenti privilegiati il seguente comando</p>
<blockquote><p><code>/etc/init.d/pulseaudio start</code></p></blockquote>
<h3>linkare il pulse-cookie</h3>
<p>Date questo comando per ogni utente o rischierete di vedervi rispondere "accesso negato" se scaricate e ricaricate il server pulseaudio</p>
<blockquote><p> <code>ln -sf /var/run/pulse/.pulse-cookie ~/.pulse-cookie</code></p></blockquote>
<h3>il test</h3>
<p>quindi per verificare il funzionamento di PulseAudio procuratevi un file .wav e date il seguente comando</p>
<blockquote><p><code>paplay file.wav</code></p></blockquote>
<p>verificate anche il funzionamento di alsa (il più importante)</p>
<blockquote><p><code>aplay -Dpulse file.wav</code></p></blockquote>
<p>Dovreste sentire il suono. Se non lo sentite verificate che il server pulseaudio sia in esecuzione (<code>ps ax &#124; grep pulse</code>)</p>
<h2>Configurare Gnome (esound) perché utilizzi pulseaudio</h2>
<p>Esound è anche chiamato esd.</p>
<p>Dovete solo assicurarvi che il modulo <code>module-protocol-esound-unix</code> sia caricato. In genere questo è attivo di default e non occorre nulla... potete verificarlo nel file <code>/etc/pulse/default.pa</code></p>
<blockquote><p><code>### Load esound protocol<br />
load-module module-esound-protocol-unix</code></p></blockquote>
<p>Quindi per ogni utente date questo comando</p>
<blockquote><p> <code>ln -sf /var/run/pulse/.esd_auth ~/.esd_auth</code></p></blockquote>
<p>Se ci fossero problemi pare siano risolvibili inserendo questo alla fine del file <code>.bashrc</code> di ogni utente che usa pulseaudio (a me non è servito)</p>
<blockquote><p><code>if [ ! -e /tmp/.esd-${UID} ]; then<br />
ln -s /tmp/.esd /tmp/.esd-${UID}<br />
fi</code></p></blockquote>
<p>Tutte le applicazioni che usano esound possono adesso appoggiarsi a pulseaudio (per testarlo potete installare il pacchetto <code>esound-clients</code> ed eseguire <code>esdplay file.wav</code></p>
<h2>Configurare KDE (arts) perché utilizzi pulseaudio (non testato, datemi conferme grazie)</h2>
<p>Il demone per l'audio di KDE (arts) può essere configurato per utilizzare esound (e quindi pulseaudio se avete seguito il passo precedente). Per farlo aggiungete al file <code>/etc/kde</code> (oppure in <code>/usr/share/config</code>)</p>
<blockquote><p><code>[Arts]<br />
Arguments=\s-F 10 -S 4096 -a esd -n -s 1 -m artsmessage -c drkonqi -l 3 -f<br />
NetworkTransparent=true<br />
SuspendTime=1</code></p></blockquote>
<p>O per cambiare comportamento solo per un utente aggiungete quanto sopra nel file <code>$HOME/.kde/share/config</code></p>
<h2>Flash Player 9</h2>
<p>A questo punto quasi tutte le vostre applicazioni dovrebbero già funzionare... Flash NO!  (Viva i software proprietari ...)</p>
<p>Questa è forse la parte più complessa per un "newbie".. ma ecco come farlo funzionare:</p>
<p>Aprite un terminale e scrivete i seguenti comandi</p>
<blockquote><p><em>(solo utenti debian/ubuntu - comando da amministratore)</em></p>
<p><code>apt-get install build-essential libesd0-dev libpulse-dev libssl-dev checkinstall</code></p></blockquote>
<p>checkinstall ve lo consiglio io se siete utenti debian/ubuntu. Se non lo siete installate i pacchetti corrispettivi (quelli per compilare e quelli di developing per esd, pulse e ssl) e lasciate perdere checkinstall</p>
<blockquote><p><em>(da utenti normali)</em></p>
<p><code>mkdir libflashsupport_pulse-9<br />
cd libflashsupport_pulse-9<br />
wget https://svn.revolutionlinux.com/MILLE/XTERM/trunk/libflashsupport/src/Makefile<br />
wget https://svn.revolutionlinux.com/MILLE/XTERM/trunk/libflashsupport/src/flashsupport.c<br />
make</code></p></blockquote>
<p>il seguente comando va dato da utente con privilegi di root.</p>
<p>Se siete utenti Debian/Ubuntu e avete deciso di utilizzare checkinstall date il seguente comando</p>
<blockquote><p><code>checkinstall</code></p></blockquote>
<p>Seguite le istruzioni: ad un certo punto vi verrà chiesto di scrivere una breve descrizione del pacchetto (vedrete due &#62;&#62; come ultimi caratteri): scriveteci qualcosa come "Flash Player 9 Library to support PulseAudio"; quindi andate a capo 2 volte per permettergli di proseguire. Per tutte le altre domande date semplicemente invio o seguite le istruzioni in inglese.</p>
<p>Se invece non volete/non potete usare checkinstall date semplicemente</p>
<blockquote><p><code>make install</code></p></blockquote>
<p>Ora per provare il funzionamento chiudete il vostro browser (firefox o chi per lui) e riapritelo... andate in un sito che utilizza flash e l'audio (es. youtube.com) e verificate che funzioni a dovere.</p>
<p>Se qualcosa non funzionasse (crash del browser o simili) potete disinstallare la libreria così:</p>
<p>per gli utenti che hanno usato checkinstall</p>
<blockquote><p><code>apt-get remove libflashsupport-pulse</code></p></blockquote>
<p>per tutti gli altri</p>
<blockquote><p><code>rm /usr/lib/libflashsupport.so</code></p></blockquote>
<p>entrambi questi comandi vanno dati con privilegi di root.</p>
<p>Nota per chi ha usato checkinstall: nella directory dove avete eseguito "<em>checkinstall</em>" vi troverete un pacchettino .deb che servirà a reinstallare la libreria di supporto a pulseaudio per flash se lo desiderate.</p>
<h2>Configurare Mplayer per utilizzare pulse</h2>
<p>Funziona con alsa ma se volete utilizzi direttamente pulse per ogni utente del sistema modificate il file <code>/etc/mplayer/mplayer.conf</code> dove trovate</p>
<blockquote><p><code># Specify default audio driver (see -ao help for a list).<br />
ao=alsa,</code></p></blockquote>
<p>in</p>
<blockquote><p><code># Specify default audio driver (see -ao help for a list).<br />
ao=pulse,</code></p></blockquote>
<p>se invece volete modificare il comportamento per i singoli utenti aggiungete al file <code>$HOME/.mplayer/config</code> la seguente riga</p>
<blockquote><p><code>ao=pulse</code></p></blockquote>
<p>e in <code>$HOME/.mplayer/gui.conf</code> modificate la voce ao_driver in</p>
<blockquote><p><code>ao_driver = "pulse"</code></p></blockquote>
<p>(NOTA: gmplayer non funziona se non fate questo qui sopra, comunque potete farlo anche da interfaccia grafica)<br />
Per chi usa mplayer-plugin si mette sempre l'opzione <code>ao=pulse</code> ma nel file <code>$HOME/.mplayer/mplayerplug-in.conf</code>.</p>
<h2>Applicazioni OSS</h2>
<p>possono essere lanciate con il comando padsp, ad esempio:</p>
<blockquote><p><code>padsp teamspeak</code></p></blockquote>
<p>Non so quanto questa emulazione funzioni perché (come al solito) senza il mio pc non ho testato a dovere attendo le vostre prove per giochi come Quake 3 o programmi come TeamSpeak</p>
<p>NOTA: pare che proprio teamspeak con la versione da me testata ancora non funzioni... dovrebbe sistemarsi con le prossime versione, se siete impazienti potete compilare pulseaudio dai sorgenti.</p>
<h2>Applicazioni libao</h2>
<p>Utilizzano alsa e quindi se avete configurato alsa (primo punto) dovrebbero già funzionare. Se però volete utilizzino direttamente pulseaudio allora editate <code>/etc/libao.conf</code> e scriveteci</p>
<blockquote><p><code>default_driver=pulse</code></p></blockquote>
<p>io avevo "alsa09" come default driver</p>
<h2>Applicazioni GSStreamer (Totem, Rythmbox ecc..)</h2>
<p>Come prima: dovrebbe funzionare usando alsa senza far nulla. Se volete che usi direttamente pulseaudio...</p>
<p>In gconf modificate le due voci (va fatto per ogni utente)</p>
<blockquote><p><code>/system/gstreamer/0.10/default/audiosink autoaudiosink<br />
/system/gstreamer/0.10/default/audiosrc alsasrc</code></p></blockquote>
<p>in</p>
<blockquote><p><code>/system/gstreamer/0.10/default/audiosink pulsesink<br />
/system/gstreamer/0.10/default/audiosrc pulsesrc</code></p></blockquote>
<p>Potete effettuare questa modifica lanciando questi due comandi</p>
<blockquote><p><code>gconftool -t string --set /system/gstreamer/0.10/default/audiosink pulsesink<br />
gconftool -t string --set /system/gstreamer/0.10/default/audiosrc pulsesrc</code></p></blockquote>
<p>Se con questa modifica non dovesse funzionare ripristinate i valori precedenti oppure compilate ed installate <a href="http://0pointer.de/lennart/projects/gst-pulse" title="GSStreamer pulse audio plugin" target="_blank">questo plugin</a>.</p>
<h2>Applicazioni Xine (totem xine, amaroK ecc..)</h2>
<p>Funzionano con alsa. Se volete potete chiedere a xine di usare direttamente pulse modificate il file <code>$HOME/.xine/.config</code> per ogni utente inserendovi:</p>
<blockquote><p><code>audio.driver:pulse</code></p></blockquote>
<h2>Applicazioni SDL</h2>
<p>Non supporta ancora pulse ma può essere utilizzato con alsa, libao e esd senza problemi. Consiglio di lasciare che utilizzi alsa :)</p>
<h2>Timidity (x file midi)</h2>
<p>Come al solito: funziona con alsa. Anche questo può funzionare con libao o esound se preferite... Basta che modifichiate la stringa di avvio del server perché utilizzi ciò che preferite</p>
<blockquote><p><code>timidity <strong>-Os</strong> #(x alsa)<br />
timidity <strong>-Oe</strong> #(x esound)<br />
timidity <strong>-OO</strong> #(x libao)</code></p></blockquote>
<h2>Configurate PulseAudio per fare da server audio nella vostra rete LAN locale</h2>
<p>Vi serve caricare qualche modulo in <code>/etc/pulse/default.pa</code>. Eviterò le impostazioni di default perché poco sicure!</p>
<blockquote><p><code>### Network access (may be configured with paprefs, so leave this commented<br />
### here if you plan to use paprefs)<br />
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;<strong>192.168.1.0/24</strong><br />
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;<strong>192.168.1.0/24</strong><br />
load-module module-zeroconf-publish</code></p></blockquote>
<p>In grassetto c'è la parte che dovete adattare alla vostra LAN. Nell'esempio si supponche che i vostri computer siano in rete con indirizzi ip come 192.168.1.X dove X può essere un numero da 1 a 254. Se volete verificare il vostro indirizzo IP potete dare questo comando da terminale (assicurandovi di avere privilegi di root)</p>
<blockquote><p><code>ifconfig</code></p></blockquote>
<p>Nella lista dovreste trovare qualcosa di simile a questo:</p>
<blockquote><p><code>eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx<br />
<strong>inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0</strong><br />
inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
RX packets:1203535 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:1583297 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:100<br />
RX bytes:721501413 (688.0 MiB)  TX bytes:1431342906 (1.3 GiB)<br />
Base address:0xcc80 Memory:fe540000-fe560000</code></p></blockquote>
<p>Dalla riga in grassetto potete evincere la vostra configurazione di rete.</p>
<p>La configurazione di rete non è finita.. per concluderla utilizzeremo il tool grafico di pulseaudio come spiegato qui di seguito.</p>
<h1>Vediamo di giocarci un po'</h1>
<p>Per prima cosa apriamo il programma/applet che ci permette di gestire tutto....  Premete ALT+F2 o usate il modo che preferite per avviare</p>
<blockquote><p>padevchooser</p></blockquote>
<p>Ora dovreste avere nella trayicon l'icona di uno spinotto audio!</p>
<p>Cliccateci su per vedere il menù</p>
<ul>
<li><strong>Default Server</strong><br />
Imposta quale server audio utilizzare (dovrebbe essere <em>pulseaudio</em> stesso). Utile solo se sullo stesso pc avete più di un server pulseaudio in funzionamento</li>
<li><strong>Default Sink<br />
</strong>Imposta quale uscita audio utilizzare: qui compariranno anche le uscite audio fornite da altri server di rete</li>
<li><strong>Default Source<br />
</strong>Imposta l'entrata audio predefinita</li>
<li><strong>Manager<br />
</strong>Tutte le informazioni sul server in esecuzione: moduli caricati, dispositivi disponibili, statistiche di vario genere, stream attivi e così via...<strong><br />
</strong></li>
<li><strong>Volume Control<br />
</strong>Imposta il volume di tutti gli stream pulseaudio separatamente. Qui potete dare un volume diverso ad ogni applicazione che sta utilizzando l'audio o sentirne una sul canale sinistro e un altra sul canale destro. Se il modulo <code>module-volume-restore</code> è stato caricato verranno salvate le impostazioni di volume degli stream e recuperate alla riapertura del programma.</p>
<p align="center"> <a href="http://img398.imageshack.us/img398/1038/pulseaudiovolumecontrolbm9.png" title="PulseAudio Volume Manager dimensione originale" target="_blank"><img src="http://img217.imageshack.us/img217/7395/pulseaudiovolumecontroloc4.png" alt="PulseAudio VolumeControl" height="295" width="357" /></a></p>
</li>
<li><strong>Volume Meter (playback/recording)<br />
</strong>Niente di spleciale: mostra delle barre che si muovono seguendo l'audio</li>
<li><strong>Configure Local Sound Server<br />
</strong>Qui potete configurare l'applet, il mio consiglio è quello di farla eseguire in automatico al login. Il resto secondo vostro piacimento.<strong><br />
</strong></p>
<p align="center"> <a href="http://img398.imageshack.us/img398/4796/pulseaudioappletpreferetj4.png" title="PulseAudio Local Server Preferences dimensione originale" target="_blank"><img src="http://img217.imageshack.us/img217/2279/pulseaudioappletpreferevc6.png" alt="PulseAudio Local Sound Server" height="332" width="400" /></a></p>
</li>
<li><strong>Preferences<br />
</strong>Qui potete concludere l'impostazione di rete: abilitate le prime 3 opzioni e il vostro server pulseaudio sarà disponibile anche via rete</p>
<p align="center"> <a href="http://img62.imageshack.us/img62/1014/pulseaudiopreferencesst2.png" title="PulseAudio Preferences dimensione originale" target="_blank"><img src="http://img217.imageshack.us/img217/3440/pulseaudiopreferencesthrj7.png" alt="PulseAudio Preferences" height="329" width="350" /></a></p>
</li>
</ul>
<p>Sono ben accette le vostre impressioni...</p>
<h1>Problemi riscontrati e mancanze</h1>
<p>Se avete un problema con una qualche applicazione e google non è di aiuto spesso è sufficiente terminare il server pulseaudio e lanciare l'applicazione, quindi riabilitarlo successivamente per poterla eseguire normalmente! (perfavore segnalate eventuali fix per programmi particolari o altri problemi incontrati qui non listati)</p>
<h3>Ecco i problemi che ho riscontrato per ora</h3>
<ul>
<li>il gioco <em>openarena</em> non parte utilizzando PulseAudio<br />
Esce con il seguente errore</p>
<blockquote><p><code>------ Initializing Sound ------<br />
openarena.bin: pcm_params.c:2351: sndrv_pcm_hw_params: Assertion `err &#62;= 0' failed.<br />
Received signal 6, exiting...<br />
</code></p></blockquote>
<p>Da quel che ho letto pare si tratti di un bug di alsa e non di pulseaudio che dovrebbe essere sistemato con le successive versioni, stiamo a vedere.<code></code></li>
<li>alcuni stream audio non vanno via rete (non ho ancora capito perché). Ad esempio esdplay non viene mandato via rete.</li>
</ul>
<h3>Questo invece quello che non sono riuscito a fare</h3>
<p>Non ho ancora avuto occasione di informarmi sulle seguenti cose</p>
<ul>
<li>Spostare via rete uno stream senza interromperlo, modificare il "default sink" e rifarlo partire.</li>
<li>Impostazioni di regolazione del volume automatiche (esempio: fare in modo che i programmi in background si sentano meno di quello in primo piano)</li>
</ul>
]]></content:encoded>
</item>

</channel>
</rss>
