Analyse de signal audio-numérique

Soyez le premier à donner votre avis sur cette source.

Vue 11 429 fois - Téléchargée 1 355 fois

Description

Bonjour

Petite application d'analyse des graphes temporel et fréquentiel d'un signal audio.

La principale originalité graphique du programme est peut-être la création des fenêtres interactives ; les développeurs souhaitant débuter dans les applications audio-numériques seront peut-être davantage intéressés par l'utilisation assez poussée de la fonction mciSendString et la manipulation de fichiers audio.

Avant la première utilisation, je suggère de lire l'introduction contenue dans le fichier wave.HLP, qui peut être ensuite supprimé.

Ce projet .net a été précédé d'un avant-projet sous vba Excel, que je dépose également.

Conclusion :


Merci a comemich pour son algorithme de transformation de Fourier rapide.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Adn56
Messages postés
1220
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1 -
c'est limpide, merci
cs_Orohena
Messages postés
578
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4 -
A l'époque où j'ai développé cette technique, je n'utilisais que VBA ; or dans ce langage, les handles des contrôles ne sont pas exposés comme en VB, ce qui empêche l'utilisation d'un très grand nombre d'API, comme celles sur la gestion de bitmaps. J'ai donc essayé d'autres méthodes, comme la fonction SetPixel, qui s'est révélée très lente.

L'importation d'image à partir d'un fichier bitmap me paraissant la seule solution pratique, j'ai, comme tu l'as évoqué, comparé les approches "mémoire" et "disque" de la gestion d'une image Windows bitmap. J'ai alors constaté que dessiner dans un fichier, en mémoire virtuelle, était plus rapide et moins gourmand en ressources que de travailler en mémoire avec des tableaux à deux dimensions. Cette bonne performance est due au fait, je pense, que les accès au disque se font seulement à l'ouverture et à la fermeture du fichier et que, dans l'intervalle, le système écrit dans le cache. Ceci est vrai à la condition que le fichier soit créé à sa taille définitive, sinon le système est susceptible d'accéder au disque en cours de travail pour ajuster la taille du fichier. Il faut donc utiliser un format Windows Bitmap non compressé, qui est à ma connaissance le seul format de fichier d'image dont on peut prévoir la taille exacte sans connaître le contenu. Ces conditions étant remplies, le fichier peut être utilisé comme mémoire vituelle (ce qui, au passage, allège considérablement les ressources de l'application).

Aujourd'hui, bien que je ne développe plus que rarement en VBA, je continue, par habitude, à utiliser cette technique.
Adn56
Messages postés
1220
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1 -
C'est bien ce que je pensais avoir compris. D'ou une nouvelle question :
Niveau performance le temps d'acces au fichier via le HDD doit être plus long qu'a la RAM, pourquoi ce choix ?
cs_Orohena
Messages postés
578
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4 -
Bonjour ADN56

Merci beaucoup pour tes commentaires, c'est sympa.

Pour dessiner dans un bitmap, je n'utilise pas les fonctions de dessin de VB, mais je dessine plutôt dans un fichier au format bmp 256 couleurs que je charge ensuite dans un contrôle.

Voici comment je fais. D'abord, je crée sur disque un fichier bmp vide, mais entier, c.a.d. avec ses quatre structures bmpfileheader, bmpinfoheader, palette de couleurs et bitmap data. Une fois le fichier initialisé, l'application écrit directement les pixels dans la section bitmap data du fichier. C'est possible dans le cas d'un fichier bmp, celui-ci stockant l'image sous la forme d'un tableau matriciel de pixels (raster). Une fois le dessin terminé, l'application ferme le fichier bmp avant de charger l'image dans un contrôle.

Donc, l'application écris ses pixels dans un fichier, pas à l'écran. C'est la principale différence par rapport aux fonctions de dessin de vb.

Amicalement
Adn56
Messages postés
1220
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1 -
Bonjour,
Chapeau bas Mr, je viens de tester ta source et whaouuu.
Je ne comprends cepedant comment tu fais pour dessiner dans un bipmap.
c'est la fonction ecrire pixel :
For wY = axe + 1 - (hauteur - HAUTEUR_AXE - MARGE_VER) / 2 To axe + 1 + (hauteur - HAUTEUR_AXE - MARGE_VER) / 2
If wY <> axe + 1 Then ecrirePixel(numFic, wX, wY, largeur, trailer, VERT_FONCE)
Next wY
Mais j'ai un peu de mal à la décortiquer, pourtant cela à l'air plus rapide que de dessiner directement dans la picture box, c'est pour cela que tu fais ainsi ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.