Windows, XBOX 360 si Zune

Analizator de Spectru XNA 08/02/2010

Analizatorul de spectru

Captură a miniaplicației pe care o prezint mai jos

Exemplu utilizare analizator de spectru

Același analizator folosit ca și textura RenderTarged2D pentru un quad.

Generarea sau folosirea unui analizator de spectru este destul de importantă atunci când dorim să generăm gameplay bazat pe muzică. Informațiile analizatorului sunt preluate in XNA din clasa VisualizationData. Aceasta returnează valorile frecvențelor (valori reale între 0 și 1) într-un array de 256 de elemente (0..255) și intensitatea sunetului (într-un array de aceeași dimensiune și cu același câmp de valori reale, între 0 și 1; 0 = LOW, 1 = HIGH).

În mod normal aceste valori se calculează aplicând o transformare Fourier frecvențelor sunetului, dar din fericire pentru cei leneși, XNA face aceste calcule pentru noi și ne dă rezultatele finale în cele 2 array-uri de mai sus (visualizationData.Frequencies și visualizationData.Samples)

Ce face exemplul acesta e sa ruleze prima melodie găsită în librăria Media Player și să afișeze frecvențele și intensitatea melodiei în timp ce o cântă (cam ce vedeți în Winamp când ascultați muzică). În general Media Player are o librărie cu melodii standard care sunt instalate odată cu Windows așa că ar trebui să poată fi rulat pe orice calculator. Dacă doriți să rulați un MP3 anume, încărcat prin Content Pipeline, ștergeți comentariile de la variabila testMP3 întâlnite peste tot prim program, comentați songCollection și dați un build.

Pentru mai multe detalii puteți citi acest post de pe forumul XNA, precum și tentativa mea de a calcula valoarea frecvenței salvată în acel array la un anumit punct (frecvențele variază de la 20Hz la 20000Hz, noi avem acces la un array de 256 de valori deci e normal sa fie stocate doar anumite valori din întreaga paletă de valori).

În imaginea 2 puteți vedea cum am folosit imaginea generată ca și textură pentru un quad pe care afișez frecvențele sunetului și informațiile despre joc (scor, vieți, etc). Faceți click pe imagine să o vedeți fullscreen ca să puteți observa imaginea completă. Bineînțeles că și gameplayul este influențat de muzică. Imaginea face parte dintr-un proiect la care lucrez și pe care sper să îl postez când va fi gata, ca cei interesați să poată citi sursele și să vadă cum sunt făcute unele lucruri.

< Înapoi

 

Adaugă comentariu

* - câmp obligatoriu

*

*

*
Nici un comentariu

Dezvoltarea de jocuri multidevice şi multiplatformă folosind XNA

Am scris o mini carte despre dezvoltarea pentru PC şi Windows Phone 7 folosind XNA 4.0 şi Visual...

citeşte tot

Blackjack pentru Windows Phone si PC

Captura 1, emulator Windows Phone
Captura 2, emulator Windows Phone
Captura 3, emulator Windows Phone
Captura 3, versiune PC

Blackjack este un joc scris in XNA 4.0 CTP si C# folosind Visual Studio 2010 Express pentru Windows...

citeşte tot

o soluţie: www.pixelplant.ro