martedì 29 novembre 2011

Migliori posti di lavoro in Italia e nel mondo


Il sito http://www.greatplacetowork.it/index.php riporta la classifica dei migliori luoghi di lavoro in Italia e nel mondo.
La classifica, viene aggiornato di volta in volta e fornisce il vincitore annuale dei migliori ambienti di lavoro in Italia e nel mondo.
E la vostra azienda offre gli stessi standard?

giovedì 24 novembre 2011

Evento gratuito NIDays 2012


Il 29 febbraio 2012 a Roma, si svolgerà l'evento grautito NiDay 2012 http://italy.ni.com/nidays, una giornata formativa sul prodotto Labview della società National Struments.
Interessanti l'iniziative di questa giornata formativa, come la possibilità di proporre il proprio progetto.
Attualmente l'agenda è in fase di preparazione, ma il tema di questa edizione riguarderà la robotica.
Al momento è possibile registrarsi all'evento tramite il pulsante posto sulla destra oppure tramite il seguente link http://sine.ni.com/nievents/app/offering/p/offeringId/556191/site/nie/country/it/lang/it

Vi terrò informati sulle novità.

Per maggiori informazioni visitate il seguente sito http://italy.ni.com/nidays

Visto l'argomento e visto che saranno a Roma, parteciperò a questa ottima iniziativa, vi consiglio di partecipare.

mercoledì 23 novembre 2011

segnalazione sito: blog di gestione documentale

Per la rubrica, segnalazione sito, oggi vi segnalo il blog del mio amico Yuri, http://artika.biz/blog/ il quale fornisce notizie in ambito gestione documentale e gestione dei contenuti tramite i seguenti prodotti Documentum, Alfresco, Adobe, IBM. Exalead, Vivisimo.
Il blog è in lingua inglese.

martedì 22 novembre 2011

Servizio on line per il fotoritocco

Per coloro che cercano siti web, che offrono servizi gratuiti di grafica, oggi segnalo il seguente sito http://www.picnik.com/ il quale offre la possibilità di modificare le foto. Il tutto senza registrazione e senza installare programmi.
Il sito è anche in lingua italiana.

lunedì 21 novembre 2011

QT day evento gratuito sulla programmazione QT




















Nokia Italia in collaborazione con i suoi partner, il 27 e 28 gennaio 2012 presenteranno all'evento gratuito QT Day http://www.qtday.it/ informazioni e delucidazioni sulla tecnologia QT.




L'evento è gratuito ed aperto a tutti, per maggiori informazioni ed iscrizioni vistate il seguente sito http://www.qtday.it/




Che dirvi... buona formazione.




domenica 20 novembre 2011

download Sql Server 2012 RC

Dal seguente sito http://www.microsoft.com/downloads/it-it/details.aspx?familyid=3df53bd9-cde1-466e-b3d1-9884d46c897c&displaylang=it potete scaricare la versione italiana di Sql Server 2010 Release Candidature.
Per il download e maggiori informazioni, visitate il sito appena indicato.

sabato 19 novembre 2011

silverlight ChildWindow in VB.Net e C#

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_silverlight-finestra-popup-childwindow-v_1108.aspx



Introduzione
In questo articolo, vedremo come creare le famose popup di Asp.net anche per la tecnologia Silverlight.
Tramite la classe ChildWindow, possiamo creare delle finestre modali, che permettono di dotare le nostre applicazioni in Silverlight, di un interfaccia che possa obbligare l’utente a compilare i campi di una determinata finestra, senza che possa digitare altre parti del nostro applicativo.
Una finestra, che resta in primo piano, il tutto come riportato in figura 1







Figura 1




Dopo aver creato un nuovo progetto in Silverlight, aggiungete al progetto un pulsante, il quale avrà il compito di eseguire la nostra finestra modale.
Terminata tale operazione, nella finestra “esplora soluzioni” fate click sul progetto con il tasto destro, e selezionare dal menu di scelta rapida, “aggiungi nuovo elemento”, nella finestra che viene aperta, selezionate il modello quello relativo alla voce “finestra secondaria di Silverlight”, il tutto come mostrato in figura 2.







Figura 2





Lasciamo il nome che ci viene assegnato (ma volendo il lettore può cambiarlo senza problemi), verrà inserito nel progetto un nuovo controllo, che assomiglia in molti aspetti ad una finestra di progetti stile “windows Application”, con un titolo e due pulsanti (ok ed annulla).
Cambiamo la proprietà “title” dalla finestra delle proprietà, con il valore “Finestra di dialogo”.
Nella finestra, aggiungiamo due controlli label e due controlli textbox, il tutto come mostrato in figura 1.
I controlli label riporteranno il valore della proprietà text “Nome” e l’altro “cognome” mentre le proprietà name sarà “lblNome” e “lblCognome”, mentre le caselle di testo, avranno la proprietà “Name” un controllo impostato con il valore “txtNome” e l’altro con il valore “txtCognome”.
Ora passiamo alla pagina, quella relativa di partenza, ossia dove si trova il pulsante.
Facciamo doppio click sul pulsante, e nella visualizzazione codice, nell’evento click, scriviamo il codice che ci permette di aprire la finestra child e di gestire l’evento closed, tramite un gestore di evento.
Qui di seguito si riporta il codice delle suddette operazioni.







VB.Net




Private Sub Btnapri_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Btnapri.Click




Dim finestra As New ChildWindow1()




AddHandler finestra.Closed, AddressOf Me.finestra_closed




finestra.Show()




End Sub







C#




private void Btnapri_Click(object sender, RoutedEventArgs e)




{




ChildWindow1 finestra = new ChildWindow1();




finestra.Closed += new EventHandler(finestra_Closed);




finestra.Show();




}









Qui di seguito si riporta la funzione relativo al gestore di evento per rilevare i valori.






VB.Net




Private Sub finestra_closed(ByVal sender As Object, ByVal e As EventArgs)




Dim finestra As ChildWindow1 = CType(sender, ChildWindow1)




If finestra.DialogResult = True Then




MessageBox.Show("Testo Nome: " & finestra.txtNome.Text & " Cognome: " + finestra.txtCognome.Text)




End If




End Sub







C#




void finestra_Closed(object sender, EventArgs e)




{




ChildWindow1 finestra = (ChildWindow1)sender;




if (finestra.DialogResult == true)




{




MessageBox.Show("Nome: " + finestra.txtNome.Text + " Cognome: " + finestra.txtCognome.Text);




}




}










Conclusioni
L’articolo ha voluto fornire le basi per la creazione di finestre modali, ossia quelle finestre che bloccano la pagina chiamante, per visualizzare a video una semplice finestra, con due pulsanti per confermare e annullare.
La flessibilità di Silverlight lascia molto spazio ed autonomia al programmatore permettendo di personalizzare ed ampliare le finestre modali.

venerdì 18 novembre 2011

FT: Salviamo l'istituto Majorana di Gela













Vi è giunta notizia, che vogliono chiudere una delle migliori scuole italiane, l'Istituto Majorana di Gela, qui http://www.istitutomajorana.it/index.php?option=com_content&task=view&id=1583&Itemid=33 la notizia.

Non conosco il dettaglio di tale vicenda, ma conoscendo bene il Prof. Antonio Cantaro, ideatore di moltissimi software gratuiti, in italiano e portatile, sono certo che sia un grave errore, che non solo limiterebbe la diffusione di cultura nel nostro paese, visto che loro, hanno aiutato moltissime persone in tutta Italia, ma fermerebbe quella poca qualità che c'è nelle scuole.

Sono certo che questa situazione si sistemi, perchè il nostro paese, non può far a meno di scuole proprio come quella dell'Istituto Majorana d Gela.

Nel sito appena indicato, trovate la possibilità di inviare l'email ad alcuni contatti istituzionali, proprio per sostenere la causa per il salvataggio di tale scuola e per far comprendere a certe persone il loro grave errore.

Io scriverò un email, proprio perchè credo e sostengo questa scuola, e voi? vi consiglio di leggere con attenzione il post e perchè no, aiutare questa bellissima scuola, che ha fatto molto per noi, per il paese, e per il settore cultura ed informatico.

Forza Antonio, siamo tutti con te.

giovedì 17 novembre 2011

ebook gratuito sulla prevenzione tumore della prostata

Il fuori tema di questo mese, riguarda la salute, in particolare, dal seguente sito http://www.prevenzionetumoreprostata.it/ potete scaricare un ebook gratuito di circa 10 pagine, sulla prevenzione del tumore della prostata.
Il libro è scritto in lingua italiana ed è ben fatto.

mercoledì 16 novembre 2011

Silverlight utilizzo dei file xml tramite VB.Net e C#

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_silverlight-utilizzare-i-file-xml-in-vbn_1106.aspx



Introduzione
Vedremo in questo nuovo articolo su Silverlight, come utilizzare i file xml, per leggere e scrivere i dati.
I file XML, da alcuni anni, si usano per la gestione dei dati, molto importante infatti è questo protocollo, perché permette di far comunicare, sistemi ed applicazioni diversi fra loro.
L’articolo fornisce le basi per utilizzare i file xml.




Creazione del progetto
Si crea un nuovo progetto di tipo Silverlight 4, in base al linguaggio di proprio gradimento.
Aggiungete nel progetto un nuovo file XML, (dalla finestra esplora soluzione, tasto destro sul nome del progetto->aggiungi



<?xml version="1.0" encoding="utf-8" ?>



<!-- nodi-->



<Items>



<Nome attributo='testo'>



Emanuele</Nome>



<Cognome>Mattei</Cognome>



</Items>







Terminata questa operazione, passiamo in visualizzazione codice XAML, della nostra classe page, ossia la pagina dove andremo a leggere e scrivere i dati XML.
Aggiungente due pulsanti, i quali avranno il ruolo di leggere i dati e scrivere i dati.
In un controllo pulsante, impostate la proprietà “Text” con Leggi e la proprietà “Name” in btnCarica, mentre per l’altro pulsante, impostate la proprietà “Text” in Scrivi e la proprietà “Name in “BtnScrivi”.
Terminato ciò, passiamo in visualizzazione codice ed inseriamo gli spazio dei nomi per la gestione dei file XML.
Qui di seguito si riportano i frammenti di codice delle suddette operazioni




VB.Net



Imports System.Xml



Imports System.IO



Imports System.Text



Imports System.IO.IsolatedStorage







C#





using System.Xml;



using System.IO;



using System.Text;





using System.IO.IsolatedStorage;





Lo spazio dei nomi, forniscono le classi per la gestione dei file XML, file fisici, per la gestione del testo e per il salvataggio isolato.
Passiamo in visualizzazione disegno e facciamo doppio click sul pulsante di lettura, quello relativo alla lettura dei dati.
Nell’evento click, che viene generato nel codice, scriviamo il codice per la lettura dei file.
In particolare faremo uso della classe xmlreader per leggere i vari valori.
Qui di seguito, si riporta un frammento di codice per il linguaggio VB.Net e C#




VB.Net



Private Sub BtnCarica_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles BtnCarica.Click



' Leggo il file



Using lettura As XmlReader = XmlReader.Create("XMLdati.xml")



Dim testo As String = ""



While lettura.Read()



'Ciclo per tutti i nodi



Select Case lettura.NodeType



Case XmlNodeType.Element



testo += vbCrLf & " Nome Elemento:" & lettura.Name & " Attributo:" & lettura.GetAttribute("attributo")



Case XmlNodeType.Text



testo += vbCrLf & " Testo Elemento:" & lettura.Value



Case XmlNodeType.XmlDeclaration Or XmlNodeType.ProcessingInstruction



testo += vbCrLf & " Dichirazione:" & lettura.Name & " " & lettura.Value



Case XmlNodeType.Comment



testo += vbCrLf & " Commento:" & lettura.Value



End Select





End While



textBlock1.Text = testo



End Using



End Sub





C#





private void BtnCarica_Click(object sender, RoutedEventArgs e)



{





// Leggo il file



using (XmlReader Lettura = XmlReader.Create("XMLdati.xml"))



{



string Testo = "";



//Ciclo per tutti i nodi



while (Lettura.Read())



{



switch (Lettura.NodeType)



{



case XmlNodeType.Element:



Testo += "\n Nome Elemento:" + Lettura.Name + " Attributo:" + Lettura.GetAttribute("attributo");



break;



case XmlNodeType.Text:



Testo += "\n Testo Elemento:" + Lettura.Value;



break;



case XmlNodeType.XmlDeclaration:



case XmlNodeType.ProcessingInstruction:



Testo += "\n Dichirazione:" + Lettura.Name + " " + Lettura.Value;



break;



case XmlNodeType.Comment:



Testo += "\n Commento:" + Lettura.Value;



break;





}





}



textBlock1.Text = Testo;



}



}



A questo punto, non ci resta che scrivere il codice per il salvataggio dei dati.
In visualizzazione grafica, facciamo doppio click sul pulsante destinato al salvataggio dei dati, in questo modo viene generato in automatico il codice per il gestore dell’evento click del pulsante.
In visualizzazione codice, scriviamo il codice che ci permette di salvare i dati, il tutto tramite l’utilizzo delle classi classi IsolatedStorageFile, per la gestione di archiviazione isolata, xmlwriteSettings e XmlWrite, per gestione i dati nel file xml ed infine la classe StreamReader per la lettura del file. Nei commenti trovate le indicazioni delle varie righe di codice.



VB.Net



Private Sub BtnScrivi_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles BtnScrivi.Click



'Gestione archiviazione isolata



Using isoStore As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication



' Creo un file



Using isoStream As IsolatedStorageFileStream = New IsolatedStorageFileStream("NomeFile.xml", FileMode.Create, isoStore)



' imposta l'intestazione del file



Dim settings As New XmlWriterSettings



settings.Indent = True



'Eseguo la generazione e la compilazione dei vari campi



Using writer As XmlWriter = XmlWriter.Create(isoStream, settings)



'commento



writer.WriteComment("Commento in XML")



'Creo un elemento, ossia item, che contiene elementi con valore



writer.WriteStartElement("NodoPrincipale")



'Creo per il nodo peredecente degli attributi, di tipo namespace



writer.WriteAttributeString("xmlns", "Attributo", Nothing, "urn:valore attributo")



'Creo un attributo semplice



writer.WriteAttributeString("Attributo", "Vaolore attributo")



'SCrivo un elemento, con il valore



writer.WriteElementString("Nodo", "Valore nodo")



'Chiudo i tag aperti



writer.WriteEndElement()



'Genero il file



writer.Flush()



End Using



End Using



'Leggo il file per le modifiche



Using reader As New StreamReader(isoStore.OpenFile("NomeFile.xml", FileMode.Open))



textBlock1.Text = reader.ReadToEnd()



End Using



End Using



End Sub





C#



private void BtnScrivi_Click(object sender, RoutedEventArgs e)



{



//gestione archiviazione isolata



using (IsolatedStorageFile isoStore =



IsolatedStorageFile.GetUserStoreForApplication())



{



// Creo un file



using (IsolatedStorageFileStream isoStream =



new IsolatedStorageFileStream("NomeFile.xml",



FileMode.Create, isoStore))



{



//imposta l'intenzione del file



XmlWriterSettings settings = new XmlWriterSettings();



settings.Indent = true;



//eseguo la generazione e la compilazione dei vari campi



using (XmlWriter writer = XmlWriter.Create(isoStream, settings))



{



//commento



writer.WriteComment("Commento in XML");



//Creo un elemento, ossia item, che contiene elementi con valore



writer.WriteStartElement("NodoPrincipale");



//Creo per il nodo peredecente degli attributi, di tipo namespace



writer.WriteAttributeString("xmlns", "Attributo", null, "urn:valore attributo");



//Creo un attributo semplice



writer.WriteAttributeString("Attributo", "Vaolore attributo");



//SCrivo un elemento, con il valore



writer.WriteElementString("Nodo", "Valore nodo");



//Chiudo i tag aperti



writer.WriteEndElement();



//Genero il file



writer.Flush();



}



}



//Leggo il file per le modifiche



using (StreamReader reader = new StreamReader(isoStore.OpenFile("NomeFile.xml", FileMode.Open)))



{



textBlock1.Text = reader.ReadToEnd();



}



}



}







Conclusioni
Abbiamo visto come utilizzare il protocollo per lo scambio e gestione dei dati, XML, molto usato in vari linguaggi e tecnologie.
Silverlight, giunto alla versione 5, offre notevoli classi, da considerarlo uno strumento efficiente e con ottima flessibilità.


martedì 15 novembre 2011

Download Mega Player Portable 1.1 Free in Italiano

Mega Player Portable 1.1 free





Antonio, mi informa della nuova versione del suo programma per viedere i filmati.



Dal seguente sito http://www.istitutomajorana.it/index.php?option=com_content&task=view&id=1581&Itemid=33 potete scaricare il programma gratuito Mega Player 1.1. in italiano, che permette di vedere file video, il software ricordiamo è portatile, ossia che non richiede nessuna installazione.



lunedì 14 novembre 2011

Recensione MiniMouse ottico P009-TM032-R

Riporto l'articolo scritto per il sito http://www.shoppalo.it/guide-shopping/minimouse-ottico-p009-tm032-r_c-220.aspx





In questa recensione, conosceremo un prodotto della società Atlantis http://www.atlantisland.it, ed in particolare il MiniMouse ottico P009-TM032-R con sensore ottico a 800 dpi http://www.atlantisland.it/pub/prodotti.php?famiglia=2&l1=11&l2=72&articolo=UDAwOS1UTTAzMi1S.



Il mouse, è divenuto uno strumento indispensabile per chi utilizza il pc, infatti, permette con precisione di compiere determinate azioni sul computer. Al tempo stesso è divenuto anche un gadget tecnologico di moda, con strane forme, colori e stili sempre più accattivanti.



Il MiniMouse Atlantis offre un design accattivante, ideale per coloro che vogliono fare un regalo oppure visto il periodo, valutarlo come pensierino di Natale.



Il mini mouse ha tre pulsante, posizionati uno a sinistra, l’altro a destro, e la rotella, oltre alla funzione di scroll, premendo verso il basso effettua il terzo pulsante.



Questo dispositivo, ha un’ottima precisione, offre prestazioni elevate, permettendo all’utilizzatore altissima precisione, lavorando in maniera ottimale all’uso del pc.



La confezione (figura 1) , fornisce all’acquirente le informazioni tecniche del dispositivo, inoltre si può ammirare nell’involucro il design accattivante.







Figura 1 – il mouse nella sua confezione



Dopo averlo estratto dalla scatola, si può ammirare la brillantezza ed il design di questo dispositivo, nel nostro caso, abbiamo scelto il colore rosso, con bande di color argento, queste rifiniture risaltano il design. I colori disponibili di questo dispositivo sono nero e bianco.





Figura 2 – il mouse senza scatola



Nel momento in cui inseriamo il mouse al pc o accendiamo il pc con il mouse collegato, la rotella del mouse, viene illuminata (figura 3) di colore rosso, in abbinamento al colore rosso del mouse.





Figura 3 – il mouse con la rotella illuminata di rossa, nel momento in cui si collega al pc.



Se colleghiamo il mouse per la prima volta, il sistema operativo Windows, installerà il dispositivo, visualizzando a video le varie fasi d’installazione (figura 4). Questo avviene solo la prima volta, in seguito non verrà visualizzata tale messaggio, visto che questo avviene solo la prima volta che il mouse viene collegato al pc, per il relativo riconoscimento del sistema operativo Windows.





Figura 4 – La fase d’installazione



Al termine dell’installazione (figura 5) possiamo utilizzare tranquillamente il mouse.





Figura 5 – termine d’utilizzo



Conclusioni



Ottimo dispositivo hardware da regalare oppure da regalarsi, e visto l’avvicinarsi delle festività natalizie, può essere una buona occasione per far un simpatico pensiero agli amici, soprattutto per quelli appassionati di oggetti tecnologici o utilizzatori passionali di pc.



domenica 13 novembre 2011

XNA gestione suoni ed effetti

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_tutorial-xna-utilizzo-del-suono_1104.aspx



Introduzione
In questo articolo, vediamo come gestire i file audio ed i suoni nei nostri giochi creati con la tecnologia XNA, il tutto tramite il linguaggio di programmazione C#. Inoltre vedremo l’utilizzo del programma “Microsoft Cross-Platform Audio Creation Tool” per la realizzazione di effetti sonori ed aggiungere al codice la manipolazione dell’audio.



Creazione del gioco
Dopo aver creato un nuovo progetto in XNA, aggiungete al content un nuovo file audio, per esempio un file di tipo “wave” , si ricorda che sono validi altri formati audio, come per esempio wma, mp3, xap.
Fatto ciò, vediamo come eseguire questo file nelle nostre applicazioni.
Si creano a livello di classe, due oggetti, uno di tipo “SoundEffect” che ha il compito di gestire l’audio ed un oggetto di tipo SpriteFont, per visualizzare le informazioni a video
Qui di seguito si riporta la dichiarazione di oggetti delle suddette classi.



//oggetto per il suono



SoundEffect suono;



SpriteFont fontTesto;





Con l’oggetto di tipo SoundEffect, andremo a gestire il file audio, mentre con l’oggetto di tipo SpriteFont, il testo, si ricrdao di aver aggiunto nel content, un oggetto sprintfont ed un file audio nel nostro caso chiamato "gameOver.wav”.
Nell’evento LoadContent, inizialiamo gli oggetti creati in precedenza, ed in particolare, caricando il file audio e font, inseriti precedentemente.
Il tutto come riportato nell’esempio qui di seguito.




protected override void LoadContent()



{



// Create a new SpriteBatch, which can be used to draw textures.



spriteBatch = new SpriteBatch(GraphicsDevice);



//carico il suono che fa parte del progretto



suono = Content.Load<SoundEffect>("gameOver"); //nome file audio



fontTesto = Content.Load<SpriteFont>("SpriteFont1"); //nome file





A questo punto, nell’evento update, andremo ad utilizzare il nostro oggetto per il suono, ed in particolare il metodo “Play” che permette di eseguire l’audio.
Qui di seguito si riporta il frammento di codice, dove se viene digitato da tastiera il tasto S, viene emesso un suono.




protected override void Update(GameTime gameTime)



{



// Allows the game to exit



if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)



this.Exit();





// TODO: Add your update logic here



//eseguo il suono



if(Keyboard.GetState().IsKeyDown(Keys.S))



{



suono.Play();







}







La classe “SoundEffect” contiene diverse proprietà e metodi, che permettono di rilevare informazioni, come la durata oppure eseguire il suono.
Vedremo come rilevare la durata del nostro file.
Nell’evento “Draw”, visualizziamo a video, il tempo di questo nostro file audio, tramite l’utilizzo della proprietà Duration.



Qui di seguito si riporta un esempio di codice.




protected override void Draw(GameTime gameTime)



{



GraphicsDevice.Clear(Color.CornflowerBlue);





// TODO: Add your drawing code here



spriteBatch.Begin();



string testoDurata = "Durata: " + suono.Duration.ToString();



spriteBatch.DrawString(fontTesto, testoDurata, new Vector2(10, 10), Color.White);



spriteBatch.End();



base.Draw(gameTime);



}





Utilizzo di Microsoft Cross-Platform Audio Creation Tool (XACT) v3.0
Quando si installa XNA, vengono installati diversi strumenti, essi si trovano nel menu programmi e precisamente nel menu “Tools” del nostro menu di XNA.
Lo strumento Microsoft Cross-Platform Audio Creation Tool, permette di manipolare i file audio, gestire effetti particolari e tanto altro.
Apriamo tale strumento, ci verrà visualizzata la finestra vuota, il tutto come mostrato in figura 1.





Figura 1




Facciamo click sulla voce di menu, file, e successivamente “New Project”, ci verrà chiesto dove salvare il file “XAP”, si consiglia di metterla nella cartella content del nostro progetto XNA, anzi, prima di procedere a tale operazioni, consigliamo vivamente la creazione di una cartella (Es. suoni) in cui andremo a salvare il nostro file XAP (generato dal tools) ed il file audio.
Ora in questa cartella, inserite un file audio, che volete gestire con effetti particolare, nel nostro caso, è stato inserito un file di tipo wav “end.wav”.
Terminata tale operazione, facciamo click sul pulsante File, e poi salva, e nella finestra di dialogo che ci viene aperta, andiamo a ricercare la cartella “Suoni” creata nel nostro progetto, precedentemente.
A questo punto, salviamo il nostro progetto (per esempio con il nome “suoni”) in questo modo verrà generato un file di tipo XAP.
Facciamo click sulla voce “Wave Banks” con il tasto destro, e nel menu di scelta rapida, selezioniamo la voce “New Wave Bank”, in questo modo verrà genato un oggetto di tipo “Wave Bank” nel quale andrà inserito il nostro file audio.



Possiamo lasciare anche il nome che viene assegnato automaticamente, ossia “Wave Bank”, il tutto come mostrato in figura 2.







Figura 2



Nella finestra di destra, quella relativa al dettaglio di “Wave Bank” facciamo click con il tasto destro, e nel menu di scelta rapida, selezioniamo la voce “insert wave File…” e andremo a ricercare il file end, che abbiamo copiato nella cartella Suoni, del nostro progetto.
Verranno visualizzati le informazioni di questo file, come nome, dimensione, ed altro ancora, il tutto come mostrato in figura 3








Figura 3



Terminato di impostare le informazioni di questo, facciamo click con il tasto destro del mouse sulla voce “Sound Banks” e dal menu di scelta rapida, selezioniamo la voce “New Sound Bank”.
Verrà visualizzata una finestra tutta bianca (figura 4).










Figura 4




Anche in questo caso, troviamo nella parte sinistra, una finestra delle proprietà. Questa finestra, ci fornisce alcune informazioni di dettaglio degli elementi che abbiamo selezionato, sia per quanto concerne la finestra del “Wave Bank” che per quanto concerne questa finestra.
Sono finestre, che permettono di gestire gli effetti al nostro file audio.
Ricordiamo che non è compito di questo articolo, approfondire lo strumento messo a disposizione di XNA, anche perché la gestione dei suoni, di norma, nella creazione di progetti, viene fatta da figure preposte a questo tipo di attività e quindi con una buona preparazione in ambito musicale, la nostra guida, a solo lo scopo illustrativo.
Dalla finestra “Wave Bank” trasciniamo (Drag & Drop) il file nell’elenco, nella lista “Cue Name” della finestra “Sound Bank” in questo viene generato il riferimento al file, il tutto come mostrato in figura 5









Figura 5



Assicurarsi dopo aver selezionato il nome della lista “Sound Name” della finestra “Sound Bank”, che nella finestra delle proprietà, la lista “Attached to Cues” ha la voce del cue, ossia “end” nel nostro caso, il tutto come mostrato in figura 5.
A questo punto, salviamo il nostro progetto, tramite la voce di menu “Salva”, situata nel menu File e successivamente compiliamo tramite la voce “Build” sempre del menu “File”.
Quando si fa click sulla voce “Build”, verrà visualizzata una finestra, lasciate l’opzione su “none” e fate click sul pulsante “Finish” a questo punto verrà generato un file xap, di nome suoni.xap.
Non solo, anche due cartelle, nominate Win e Xbox, nella cartella Win, troviamo alcuni file, che utilizzeremo nel nostro progetto.
Copiamo questi tre file (suoni.xgs, Sound Bank.xsb, e Wave Bank.xwb) nella cartella superiore, dove si trova il file “suoni.xap”.



Aggiungiamo al nostro progetto e precisamente nella cartella “Suoni”, il nostro file di tipo XAP, ossia suoni.xap, generato dalla compilazione del tools di XNA.
Il tutto come mostrato in figura 6.





Figura 6



Ora non ci resta che compilare il nostro progetto, di visual studio. Facciamo click nella finestra esplora soluzione, sul nome della soluzione e facciamo build e rebuild della nostra soluzione.
Nella finestra di output, verranno visualizzati i files che sono stati generati precedentemente dal tools “Microsoft Cross-Platform Audio Creation Tool”, nella figura 7 viene mostrato l’output della ricompilazione della nostra soluzione.







Figura 7.



Ora non ci resta che scrivere il codice, per utilizzare i file creati e manipolati.
Nel nostro progetto XNA, si creano a livello di classe, tre oggetti di tipo AudioEngine, SoundBank, e WaveBank, i quali hanno il compito di gestire i file creati.
Qui di seguito si riporta un frammento di codice d’esempio.




//per la gestione effetto suono



AudioEngine audioEngine;



SoundBank soundBank;



WaveBank waveBank;







Nell’evento loadContent, si inizializzano tali oggetti, con i relativi file.




protected override void LoadContent()



{



// Create a new SpriteBatch, which can be used to draw textures.



spriteBatch = new SpriteBatch(GraphicsDevice);



//carico il suono che fa parte del progretto



suono = Content.Load<SoundEffect>("gameOver"); //nome file audio



fontTesto = Content.Load<SpriteFont>("SpriteFont1"); //nome file



//imposto il suono



audioEngine = new AudioEngine("Content\\Suoni\\suoni.xgs");



soundBank = new SoundBank(audioEngine, "Content\\Suoni\\Sound Bank.xsb");



waveBank = new WaveBank(audioEngine, "Content\\Suoni\\Wave Bank.xwb");







// TODO: use this.Content to load your game content here



}



Come si vede dal codice d’esempio, l’oggetto di tipo AudioEngine, viene associato il file suoni.xgs, mentre soundBank la classe soundbank, che accetta due parametri, un oggetto di tipo “AudioEngine” ed il percorso del file “.xsb”. Infine per l’oggetto di tipo “WaveBank”, viene impostato oltre all’oggetto di tipo AudioEngine, il file di tipo “.xwb”, il tutto nell’evento Loadcontent.
Nell’evento Update, verifichiamo che l’utente ha digitato il tasto “A” in tal caso, tramite il metodo PlayCue, che accetta come parametro, il valore relativo al campo “Cue Name” visto nel tools “Microsoft Cross-Platform Audio Creation Tool” viene eseguto l’effetto sonoro.



Qui di seguito si riporta l’esempio di codice delle sudette operazioni.



protected override void Update(GameTime gameTime)



{





//Eseguo gli effetti suono



if (Keyboard.GetState().IsKeyDown(Keys.A))



{





soundBank.PlayCue("end");



}









base.Update(gameTime);



}





Conclusioni
L'articolo è giunto al termine, non ci resta che testare il nostro programma e digiare il tasto “A” per verificare gli effett sonori. Come si è visto in questo articolo, le potenzialità offerte dagli strumenti messia a disposizioni da XNA, permettono la gestione degli effetti audio, permettono di creare giochi con della musica, molto ma molta complessa.
Per approfondire l’utilizzo dello strumento “Microsoft Cross-Platform Audio Creation Tool” , il lettore potrà consultare dal seguente sito http://msdn.microsoft.com/it-it/library/ff827590.aspx un tutorial, che illustra l’utilizzo di questo strumento.