Accueil > Forum > > > > fmod spectrum analisys
fmod spectrum analisys
samedi 23 juillet 2005 à 12:22:33 |
fmod spectrum analisys

satellite34
|
salut, je programme un player mp3 avec wxWidegets et Fmod et je veux y mettre un spectrum, mais voila, aucune info sur le web et moi c'est la premiere fois que je veux faire ca.Je comprends pas la marche a suivre aprés avoir recupéré mes 512 canaux. donc si qqu' un a un tuto ou des infos sur le sujet a faire toourner faites suivre car je crois que c sans issue! thx ++
|
|
samedi 23 juillet 2005 à 16:03:31 |
Re : fmod spectrum analisys

SnOOpss
|
En fait ya plusieur methodes comment tu recupere tes canaux ??
en fait quand tu fait const float *spectrum = FSOUND_DSP_GetSpectrum( );
tu recupete toute tes valeurs dans un tableau (de 512 valeurs) dont le pointeur est spectrum
apres il te suffit de faire une boucle pour en faire ce que tu veut
int spectrumValue
for ( int i = 0; i < 512; ++i )
{
spectrumValue = int(100 * spectrum[ i ] );
[.....]
}
Par contre tu verra a l'essai pour le spectographe il vaut mieux rester
sur une plage ex ( 100 -> 512) plutot que de faire la totalité du
tableau ( a certaines frequences ca ne corespond plus a rien )
Pour avoir un truc encore plus precis tu peut meme faire une moyenne de valeurs ex plutot faire
int spectrumValue
for ( int i = 0; i < 512; i +5 )
{
spectrumValue =
int(100 * (spectrum[ i ] + spectrum[ i +1 ] + spectrum[ i+2 ] +
spectrum[ i+3 ] + spectrum[ i+4 ] )) / 5;
[.....]
}
A la place de [....] tu met code comme par exemple le dessin d'un point
au coordonnées (i,spectrumValue) ici tu auras un spectrographe a point
de taille (512,100)
|
|
dimanche 24 juillet 2005 à 01:18:33 |
Re : fmod spectrum analisys

satellite34
|
merci, c'est deja un bon debut mais je n' y arrive tjrs pas.lol. Je te met le code du spectrum
#include "Mp3PlayerFrm.h"
//ici la vrai fonction du spectre void Mp3PlayerFrm::spectrumData(int winx, int winy) { const float *spectrum = FSOUND_DSP_GetSpectrum(); int spectrumValue;
for ( int i = 0; i < 512; i +5 ) { spectrumValue = int(100 * (spectrum[ i ] + spectrum[ i +1 ] + spectrum[ i+2 ] + spectrum[ i+3 ] + spectrum[ i+4 ] )) / 5; bande->DrawPoint(i, spectrumValue); // } }
/*///////////////////////////////////////////////////////////////////////////////////////////////////// *Clik sur spectrum dans le menu *//////////////////////////////////////////////////////////////////////////////////////////////////////
void Mp3PlayerFrm::MnuSpectrum(wxCommandEvent& event) { FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), true); if (!FSOUND_DSP_GetActive(FSOUND_DSP_GetFFTUnit())) {wxString msg; msg.Printf( _T("Oups spectrum pas actif\nLe spectrum ne fonctionne que lorsqu' un stream est ouvert\nOuvrez un fichier")); wxMessageBox(msg, _T("Infos"), wxOK | wxICON_EXCLAMATION | wxCENTRE, this);return; }//si le spectrum est actif.... this->SetSize(380, 280, 690, 380); FSOUND_DSP_SetPriority(FSOUND_DSP_GetFFTUnit(), 150); FSOUND_DSP_GetSpectrum(); }
//dans le .h, en rapport avec le spectre: FSOUND_DSPUNIT *spectre; wxDC *bande;
bon, je sias que ce code ne renvoie pas spectrumData ds MnuSpectrum mais a force de trafiquer je l'ai remis de maniere lisible.
Un peu plus d' infos sur dessinner un point aux coordonnées i, spectvalue stp. et comment fais pour mettre ce spectrum en adequation avec les cannaux?
a l'aide!!!Putain de web! ya 0 infos sur les spectrums
enfin, merci pour ton aide!
|
|
dimanche 24 juillet 2005 à 11:16:55 |
Re : fmod spectrum analisys

satellite34
|
#include "Mp3PlayerFrm.h" #include <wx/gdicmn.h>
//ici la vrai fonction du spectre
void Mp3PlayerFrm::spectrum01 ( wxCommandEvent& event ) { const float *spectrumData = FSOUND_DSP_GetSpectrum(); //recupere les 512 cannaux separés int spectrumValue; for ( int i = 0; i < 512; ++i ) { spectrumValue = int(100 * spectrumData[ i ] ); point = new wxPoint(i, spectrumValue); this->point; } }
/*///////////////////////////////////////////////////////////////////////////////////////////////////// *Clik sur spectrum dans le menu *//////////////////////////////////////////////////////////////////////////////////////////////////////
void Mp3PlayerFrm::MnuSpectrum(wxCommandEvent& event) { FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), true); if (!FSOUND_DSP_GetActive(FSOUND_DSP_GetFFTUnit())) {wxString msg; msg.Printf( _T("Oups le spectrum n' est pas actif\nLe spectrum ne fonctionne que lorsqu' un stream est ouvert\nOuvrez un fichier")); wxMessageBox(msg, _T("Infos"), wxOK | wxICON_EXCLAMATION | wxCENTRE, this);return; }//si le spectrum est actif.... this->SetSize(0, 0, 800, 380); this->Center(); spectrum01 (event); }
"statement has no effect"
Un ti tuto sur le spectrum SVP!!!!!!!!!!!!!!!!!!!!!!
o sinon, explike un peu la démarche pour dessiner un point aux coordonées x, y car point = new wxPoint(i, spectrumValue); this->point;
ne marche pâs
allé bon dimanche ! ++
|
|
dimanche 24 juillet 2005 à 11:31:31 |
Re : fmod spectrum analisys

SnOOpss
|
Perso moi je ne me sers pas de FSOUND_DSP_SetPriority(FSOUND_DSP_GetFFTUnit(), 150);
Mais je croit pas que cette fonction change grand chose !!
Pour trouver le prb passe en mode debug et surveille la fonction
bande->DrawPoint
i doit bien aller de 0 a 512
et spectrumValue de 0 a 100 sinon utilise un coefficient pour le remonter (moi 64 mais je sais plus pourquoi).
Sinon un exmple de fonction tres simple
void affpoint ( HDC hdc,int x ,int y) {
SetPixel(hdc,x,100-y)
}
Par contre autre chose le spectrographe est tres gourmand en ressource
(et tres lente) donc la commande setpixel ne te servira que pour tes
test ou avancer un peu. Mais au final il vaut mieux passer par la
gestion "des bits d affichages" , je sais pas comment expliquer ca,
c'est l exemple de demo de la librairie, et en cherchant "setpixel" sur
ce site ya un topic qui s'apelle "setpixel plus rapide" ou un truc
comme ca. La prochaine fois je te passerais le lien si tu trouve pas,
la en ce moment la fonction recherche deconne encore sur ce forum !!!
"et comment fais pour mettre ce spectrum en adequation avec les cannaux?"
Tu travailles avec des mp3 ??? Pasque cette fonction fait juste un tableau de 512 valeur avec les frequences
ex si tu traite de 1 hz a 22000
spectrum[1] = 1hz a 42 hz
spectru[2] = 42 hz a 84 hz
etc ...
Function to return a pointer to the current spectrum buffer. The buffer contains
512 floating
point values that represent each frequency band's amplitude for
the current FMOD SoundSystem
mixing buffer. The range of frequencies covered
by the spectrum is 1 to the nyquist frequency
or half of the output rate. So
if the output rate is 44100, then frequencies provided are up
to 22050.
(entry 511)
Remarks
Note that hardware sounds, MIDI, files do not register on the
spectrum graph as they are not run through FMODs DSP system.
Note that to use
this you have to turn on the FSOUND FFT DSP unit. This is achieved by calling
FSOUND_DSP_GetFFTUnit, then using FSOUND_DSP_SetActive to turn it on.
|
|
dimanche 24 juillet 2005 à 11:36:58 |
Re : fmod spectrum analisys

satellite34
|
yo ! merci! on a ecrit en meme temps je crois ce quia donné une impression d' instantaneité!lol! bon ben je vais essayer tt ca merci pour les précisions , c'est supa cool quand j' orai fini , je la mettrai ici car g pas vu dee player mp3 que en wxWidgets et fmod ( ou g mal vu) allé a ++ 
|
|
dimanche 24 juillet 2005 à 19:58:45 |
Re : fmod spectrum analisys

satellite34
|
heuuuuuu, en fait pour dessinner le spectrum, il faut que je creer une zone speciale???? une bipmap???????? ou est ce qu' il n' ya rien a ajouter car je vois pas ou spectre peut se placer sur ma page
je te met le code
#include "Mp3PlayerFrm.h" #include <wx/gdicmn.h>
//ici la vrai fonction du spectre
void Mp3PlayerFrm::spectrum01 ( wxCommandEvent& event ) { const float *spectrumData = FSOUND_DSP_GetSpectrum(); //recupere les 512 cannaux separés int spectrumValue; for ( int i = 0; i < 512; ++i ) { spectrumValue = int(100 * spectrumData[ i ] ); SetPixel(hdc, i, spectrumValue, COLORREF RGB( 100, 174, 100 )); } }
/*///////////////////////////////////////////////////////////////////////////////////////////////////// *Clik sur spectrum dans le menu *//////////////////////////////////////////////////////////////////////////////////////////////////////
void Mp3PlayerFrm::MnuSpectrum(wxCommandEvent& event) { FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), true); if (!FSOUND_DSP_GetActive(FSOUND_DSP_GetFFTUnit())) {wxString msg; msg.Printf( _T("Oups le spectrum n' est pas actif\nLe spectrum ne fonctionne que lorsqu' un stream est ouvert\nOuvrez un fichier")); wxMessageBox(msg, _T("Infos"), wxOK | wxICON_EXCLAMATION | wxCENTRE, this);return; }//si le spectrum est actif.... this->SetSize(0, 0, 800, 380); this->Center(); spectrum01 (event); }
"Perso moi je ne me sers pas de FSOUND_DSP_SetPriority(FSOUND_DSP_GetFFTUnit(), 150);
Mais je croit pas que cette fonction change grand chose !!" ----->>change gd choze ou pas gd choze??? d' aprés mon code tu crois que ca peut marcher??? je vois pas comment m'enfin bon,,
++passion
|
|
lundi 25 juillet 2005 à 19:36:14 |
Re : fmod spectrum analisys

SnOOpss
|
Oui !!
il te faut creer un HDC !! ou en recuperer un si tu en as deja un !!!
|
|
lundi 25 juillet 2005 à 21:14:38 |
Re : fmod spectrum analisys

satellite34
|
oui HDC hdc c'est pour win32 mais moi je suis sous wxWidgets et c ca mon pb! par contre, si ya moyen, comment creer un HDC et est ce que ce n'est pas equivalent au device context de wxWidgets? wxDC
thx ++
|
|
lundi 25 juillet 2005 à 21:22:05 |
Re : fmod spectrum analisys

satellite34
|
//--------------------------------------------------------------------------- // // Name: spectrum.cpp // Author: Nicolas Robert // Created: 14/07/2005 17:42:55 // //---------------------------------------------------------------------------
#include "Mp3PlayerFrm.h"
//ici la vrai fonction du spectre
void Mp3PlayerFrm::spectrum01 ( wxCommandEvent& event ) { const float *spectrumData = FSOUND_DSP_GetSpectrum(); //recupere les 512 cannaux separés int spectrumValue; wxColour MaCouleur(0,0,255); wxPen MonCrayon(MaCouleur,10,wxSOLID); for ( int i = 0; i < 512; ++i ) { spectrumValue = int( 100 * spectrumData[ i ] ); m_DC->SetPen(MonCrayon); m_DC->DrawPoint(i, spectrumValue); } }
/*///////////////////////////////////////////////////////////////////////////////////////////////////// *Clik sur spectrum dans le menu *//////////////////////////////////////////////////////////////////////////////////////////////////////
void Mp3PlayerFrm::MnuSpectrum(wxCommandEvent& event) { FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), true); if (!FSOUND_DSP_GetActive(FSOUND_DSP_GetFFTUnit())) {wxString msg; msg.Printf( _T("Oups le spectrum n' est pas actif\nLe spectrum ne fonctionne que lorsqu' un stream est ouvert\nOuvrez un fichier")); wxMessageBox(msg, _T("Infos"), wxOK | wxICON_EXCLAMATION | wxCENTRE, this);return; }//si le spectrum est actif.... this->SetSize(0, 0, 800, 380); this->Center(); spectrum01 (event); }
m_DC pointe sur wxDC qui est le device context
et ds mon code qui creer les gui j' ai mis :
m_DC =new wxDC();
|
|
Cette discussion est classée dans : fmod, spectrum, suivre, analisys
Répondre à ce message
Sujets en rapport avec ce message
initialisation de Fmod avec devC++ [ par cppdupdup34 ]
je n'y arrive pas je crois qu' il faut faire quelque chose dans lezs option du projet mais je ne sait pas quoi.si vous avez une minute!!mercicppDupDup
Fmod [ par norton ]
Bonjour a tous, j'aimerai savoir comment faire avec Fmod pour que mon programme vérifie la lecture de mon mp3.je m'explique, j'aimerai que quand mon m
probleme avec la librairie FMOD (musique et sons) [ par Amanobuo ]
Bonjour, je n'arriva pas a utiliser FMOD pour jouer des musique dans les application. Pour comprendre ce qui ne va pas, voila ce que j essaye de faire
FMOD et MP3 [ par LordBob ]
Salut a tous,je sais que ma question est simple et qu'il y a des exemples sur le site, mais malgres tou cela, je n'y arrive pas !!! je n'arrive pas à
Mp3 et Lib.Fmod [ par SuperTonic ]
BonjourJ'ai un soucis sans compendre pkoi. Je dvp sous DevCpp.Je souhaite simplement lancer un mp3 avec la lib fmod.mais j'ai cette erreur :C:\DevCpp\
FMOD [ par xarier ]
SALUT A TOUS comme vous s'avez il existe deux frequence pour les stream (MP3,WMA...) soit le 24000 ou 44100.Alors la je veut que quand je lance une mu
fmod [ par khayyam ]
salut, ma question est toute simple : comment savoir si un son est terminé de jouer ou non (avec fmod) ??
fmod - arrêter un mp3 [ par khayyam ]
salut à tous, pour jouer un mp3 avec fmod, j'utilise le code suivant :son=FSOUND_Sample_Load ( FSOUND_FREE, "toto.mp3", FSOUND_HW2D, 0, 0);channel = F
[Fmod] Savoir si un "stream" est joué [ par Rouliann ]
Salut tout le monde!Ma question est dans le sujet en fait : Est-ce qu'il y a une fonction qui indique si un "stream" est joué ?J'ai regardé dans les p
fmod [ par goldberg13 ]
slt, j'ai un petit probleme avec fmod jarrive pa a charger de son depuit une ressource en utilisant la fonction :FMUSIC_LoadSongEx si kelkin porrai me
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|