Se connecter
Se connecter

ou
Créer un compte

ou
FR
EN
Bidouille & Développement Informatique
Articles
Tutoriels

Developpement analyseur audio

  • 60 réponses
  • 12 participants
  • 5 434 vues
  • 16 followers
Sujet de la discussion Developpement analyseur audio
Bonjour à tous,

j'ai entammé le développement d'un analyseur audio, qui permettra un certain nombre de contrôles, ainsi qu'une appréciation de la dynamique globale d'un morceau musical.

Il ne s'agit pour le moment que d'une version beta, dont la majorité des fonctionnalités annoncées n'est pas encore implémentée. Mais comme la partie "Moteur audio" est tout de même fonctionnelle, j'ai décidé de mettre le soft à disposition.



AudioAnalyser

L'analyse temps réel fonctionne sur ma machine, s'il y en a parmis vous qui veulent tester, pourquoi pas... :mrg:

1 - Lancement de l'exe
2 - Choix de l'entrée audio pour l'analyse (menu Analyse, Interfaces audio)
3 - Choix de la sortie audio pour le monitoring (menu Analyse, Interfaces audio)
4 - Options : choisir (forcer) le moteur Win32 sous WinXP (pour le moment).
5 - Bouton Démarrer pour démarrer l'analyse...

A bientôt pour de nouvelles aventures...
:fou:

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

2
Hé bien décidément tu t'intéresses au traitement du son par tous les moyens! Un clavier à cellules photoélectriques, un logiciel... :clin:

Le logiciel démarre sans problème et il analyse très bien en direct. Je me demande toutefois pourquoi l'analyse d'un fichier wav ne se fait que par fractions (on ne peut entendre qu'autant d'échantillons qu'il n'est possible d'en afficher sur l'oscilloscope?). Enfin j'imagine que ça fait partie des réglages dans les options... Aucun bug malgré les quelques milliers d'avertissements sur la page de téléchargement et dans les fichiers joints.

J'avais moi-même réalisé un petit analyseur il y a quelques années. Il n'était pas aussi complet, il permettait seulement de dessiner la courbe d'échantillons d'un fichier MP3 déjà enregistré (en le lisant bit à bit si je me souviens bien). J'avais fait cela en... Visual Basic! Sisi!

J'ai toujours voulu apprendre le C++, je m'y mets tout doucement avec OpenGL mais c'est dur :???: Cet été, j'avais bien avancé dans le développement d'un jeu video en 3D et mon disque dur a rendu l'âme emportant tous mes efforts dans la tombe. De rage, j'avais abandonné et ces jours-ci je reprends, presque à zéro.

J'ai regardé un p'tit peu tes fichiers sources. Je ne connais pas du tout le Delphi mais on dirait une sorte d'héritier du Turbo Pascal, me trompe-je?

Je, je, je... ce n'était pas le sujet. Bravo pour ton oeuvre fonctionnelle!

A bientôt donc, pour les nouvelles aventures.

Julien
3
Bonjour Julien, et merci d'avoir testé et résumé le fruit de tes constatations ! :D:

La lecture des fichiers audio pose toujours problème avec le moteur DirectShow, mais pas avec les anciennes routines Win32. Je maitrise tellement peu le sujet que ça ne m'étonne pas de mettre autant de temps à trouver la raison de ce problème.

Delphi est en effet un digne successeur du Turbo Pascal. Je m'étais essayé à ce langage il y a bien longtemps, et avais laissé tomber, c'était trop compliqué pour moi. Et puis j'ai découvert Delphi, et ma vie de développeur a changée... Il faut dire aussi que l'ensemble des outils de développement disponibles à ce jour est plus à la portée des débutants comme moi. :clin:

J'implémenterai l'affichage en dB ce soir (pour l'instant les courbes Densité sont dessinées avec les valeurs d'échantillon brutes). Le résultat affiché sera plus parlant car plus proche de ce qu'on entend.

Merci encore à toi !

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

4
Ca a l'air très intéressant ! :bravo:

D'ailleurs, je suis en train de penser au développement d'un plug-in, sûrement en C++, mais je vois que y'en a plein qui sont faits en Delphi, faudrait que je teste cette plateforme de développement... Ce qui me rebute un peu avec le C++, c'est la complexité de la gestion des objets, et le fait que j'ai jamais vu quelque chose d'aussi lourd que Visual Studio.NET sur un ordi :oo: Je me demande donc si ça serait pas mieux pour moi :?!:

Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud

5
Salut Wolfen,

J'ai téléchargé plusieurs outils parfaitement intégrables à Delphi et permettant de réaliser des plugins VST ou DirectX, mais je n'en ai encore essayé aucun. Ceux de Tobybear auront sans doute ma préférence pour faire mes armes.


03/11/2005 - V0.6.0.2
- Correction bug mineur Affichage taille buffer. A la mise en route du
logiciel, la taille des buffers audio affichée était toujours 1024, quelque
soit la valeur choisie dans les préférences. Cela est désormais corrigé.
- Correction bug mineur RAZ led CLIP. Dans certaines situations, la RAZ
(remise à zéro automatique) de l'indicateur CLIP ne s'effectuait pas et
ce dernier restait allumé.

03/11/2005 - V0.6.0.1
- Désormais, les valeurs utilisées pour les graphes Historique des crêtes et Densité des crêtes sont en décibel (les valeurs utilisées avant étaient celles des échantillons brut). La représentation des courbes est donc plus proche de la perception auditive.
- Ajout de petits points carrés sur chaque valeurs de densité des crêtes (meilleur visibilité globale).

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

6
Et Delphi c'est pas trop lourd comme environnement de développement ? (genre vas-y que ça te ralentit toutes les autres applis après l'installation qui prends 1 Go sur le DD)

Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud

7

Citation : genre vas-y que ça te ralentit toutes les autres applis après l'installation qui prends 1 Go sur le DD


Ce n'est pas du tout le cas sur ma machine. Je précise que j'utilise la version 5 pro, je ne sais pas ce qu'il en est des versions suivantes.

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

8
OK je vais approfondir un peu le sujet alors, merci :clin:

J'espère que tu connais https://delphi.developpez.com/faq/ :bravo:

Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud

9
Arf j'aimerais bien le tester mais je sens que mon ordinateur est instable en ce moment, je crains les ennuis...
bon, je repasse demain après sauvegarde de mes chanons sur DVD, et je teste, je peux pas résister
:mrg:
10
Wolfen >
Oui je connais ce lien. Il faut dire que les forums et sites dédiés à ce genre d'ustensiles ne font pas défaut...

paul auster >
Pour information, il n'y a ni programme d'install ni fichier déployé dans le système Windows (ni nul part ailleurs). Il s'agit d'un seul fichier executable, qui se débrouille comme un grand et qui peut être lancé depuis n'importe quel répertoire. Une fois ce fichier effacé, il ne reste absolument aucune trace de son passage (si ce n'est la présence d'un pauvre petit fichier ini créé dans le même répertoire, que l'on peut évidement supprimer en même temps).
:clin:

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

11
Merci, je crois que je testerais ça dans la journée.
12
Ajouté ce jour fonction de filtrage BF.
V0.6.1



Ce n'est pas très "graphique" pour le moment, mais ça viendra...

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

13
14
13/11/2005 - V0.6.1.5
- Correction bug majeur changement du moteur audio lorsque le logiciel est
lancé sous WinXP. Désormais, tout du moins sur ma machine, le changement de
moteur audio s'effectue correctement et ne produit plus de message d'erreur.
- Correction bug majeur saturation audio sur monitoring G+D ou G-D. Les sommes
et différences n'étaient pas divisées par deux avant d'être envoyées sur la
sortie audio sélectionnée.
- Description des différentes étapes d'initialisation lors du lancement du
logiciel, dans la fenêtre d'acceuil.

13/11/2005 - V0.6.1.4
- Suppression bug mineur affichage indésirable de l'élement "Aucun équipement
audio detecté" dans la liste des périphériques d'entrées audio.

13/11/2005 - V0.6.1.3
- Fonction Monitoring implémentée. Il est désormais possible de n'orienter
vers la sortie audio sélectionnée, que le signal de la voie Gauche, celui de
la voie Droite, ou encore leur Somme ou leur Différence. Bien entendu,
l'écoute normale en stéréo reste possible.



Le passage en Mono (Somme Gauche + Droite) est particulièrement utile pour déceler des problèmes de phase.
Vous le saviez déjà j'en suis sûr :clin:

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

15
Ca commence à devenir un poil plus stable, fonctionnement moteur Win32 sous WinXP désormais possible. Un peu plus réactif, même si le temps de chargement s'est un peu rallongé...
V0.6.2.0

18/11/2005 - V0.6.2.0
- Implémentation Affichage défaut inversion de phase. Désormais, l'indicateur
Inversion de phase est opérationel. En complément de cet indicateur, un
bargraph a été ajouté (juste en dessous de l'oscilloscope du bas) pour donner
une indication de l'écart de niveau entre somme et différence des voies Gauche
et Droite. Cet indicateur travaille sur une plage (fixée par défaut) de -24 dB
à +24 dB. Il est possible de spécifier des seuils de niveau pour la prise en
compte de l'inversion de phase.
- Implémentation analyse différences de niveaux entre voies G et D.
- Désormais, l'affichage spectral moyenné travaille sur les niveaux converti
en dB et non plus avec les données brutes. Comme on peut s'en douter,
l'affichage obtenu est plus interressant et permet d'interprêter plus de
choses...

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

16
Salut Chimimic,

bravo pour ton soft ! :bravo2:

je viens de le tester deux secondes et demi, et ça m'a l'air très bien.

juste quelques remarques :

- quand on analyse en temps réel, y a la grille de fond qui bouge beaucoup, c'est assez ... bizarre !
- dommage qu'on puisse pas étirer la fenetre, pour avoir le max de visibilité de l'analyse...
- est ce qu'il y a un moyen d'avoir un spectrogramme genre Spectralab ou Sia Live ? car, corriges moi si besoin, l'affichage de la fenetre superieure du spectre est en linéaire, non ? ça ne serait pas + lisible en log ?

bon, je vais au dodo, d'autres essais demain !
bravo encore !

a+
17
Salut Starzen,

merci pour ces quelques retours ! :D:

Citation : quand on analyse en temps réel, y a la grille de fond qui bouge beaucoup, c'est assez ... bizarre !


C'est normal, car pour le moment l'echelle verticale (amplitude) est ajustée automatiquement en fonction du contenu du signal. Il sera prochainement possible de spécifier de façon indépendante les échelles Horizontale et Verticale, en fixe.

Citation : dommage qu'on puisse pas étirer la fenetre, pour avoir le max de visibilité de l'analyse...


J'ai prévu ce genre de chose, mais pas via un agrandissement de la fenêtre principale. Un double-clic sur l'affichage de son choix (Oscillo, Spectre ou Crêtes) fera apparaitre une nouvelle fenêtre redimensionnable, qui pourra si besoin prendre toute la taille de l'écran.

Citation : est ce qu'il y a un moyen d'avoir un spectrogramme genre Spectralab ou Sia Live ? car, corriges moi si besoin, l'affichage de la fenetre superieure du spectre est en linéaire, non ? ça ne serait pas + lisible en log ?


Tu as l'oeil... Pour l'instant, je n'ai effectué l'affichage en log que pour les affichage Spectre2 et crêtes. Pour ce qui est de la représentation "physique", je sais dessiner en mode point, en mode trait simples et en mode ligne, mais pas encore en mode barre (ça viendra aussi).


Je dois préciser que l'absence de document d'aide joint au logiciel qui explique l'ensemble des fonctionnalités force à se poser quelques questions... :clin:

En tout cas, merci encore à toi, ça m'a fait plaisir !

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

18
Salut Chimimic,

Citation : C'est normal, car pour le moment l'echelle verticale (amplitude) est ajustée automatiquement en fonction du contenu du signal.



ah d'acc ! j'étais tellement speed hier soir que j'avais pas fait gaffe que cela pouvait être ça !

Citation : Un double-clic sur l'affichage de son choix (Oscillo, Spectre ou Crêtes) fera apparaitre une nouvelle fenêtre redimensionnable, qui pourra si besoin prendre toute la taille de l'écran.



excellent comme idée !! :bravo2:

Citation : en mode ligne, mais pas encore en mode barre



mon affichage préféré c'est la ligne, j'suis pas un fan des 31 bandes en mode barre...
attention au mode log aussi pour les db, idem, je trouve que la lisibilité est meilleure qu'en linéaire.

:bravo2:
19
Sinon, encore un truc auquel je pense maintenant : quand tu veux faire une analyse à l'aide d'un micro, il faudrait pouvoir choisir l'unique entrée necessaire et du coup travailler en mono, et ainsi alléger l'affichage à l'écran (une seule ligne au lieu des deux côtés dont un qui sert pas).

en tout cas re- :bravo2:

a+
20

Citation : quand tu veux faire une analyse à l'aide d'un micro, il faudrait pouvoir choisir l'unique entrée necessaire et du coup travailler en mono, et ainsi alléger l'affichage à l'écran


C'est marrant, cette fonction existe, mais en mode Debug (dernier onglet de la fenetre des options, case à cocher "Ignorer voie droite en stéréo" ). Je n'avais même pas imaginé la proposer comme fonction "normale". Ah la la, quand je suis dans mes pensées... Je vais y remédier.

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

21
Starzen >

La plage d'affichage peut désormais être spécifiée pour les affichages Analyse spectrale moyennée, Historique des crêtes et Densité des crêtes. L'affichage de spectre temps réel n'est pas encore en log, mais j'y travaille.

J'ai réalisé de nombreuses analyses sur des fichiers audio de toutes natures en provenances de CD, de radios locales et de radios nationales, ça commence à prendre tournure.

Les meilleurs résultats sont toujours obtenus avec le moteur Win32, le moteur DirectShow me pose toujours problème. Bien vérifier donc que c'est le moteur Win32 qui est utilisé, même sous XP (le forcer dans la fenêtre des options).

De nombreux bugs ont été corrigés, ça ne plante plus toutes les cinq secondes :mrg:

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

22
J'ai découvert hier soir de sérieux disfonctionnements du soft lorsqu'on utilise les ports MME émulés de la FireFace 800. Le soft aime bien les entrées "normales", mais pas du tout les entrées émulées (blocage ou message d'erreur système assuré).

Ca me rappelle de vagues souvenirs avec Cubase, et son fichier "Ignore Port Filter"...

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

23
- Désormais, les vumetres G+D et G-D restent actifs même quand l'affichage
Oscillo des sommes et différences est désactivé.
- Correction bug majeur lecture fichiers audio mono. Désormais, la lecture
de fichiers mono est possible. Les tests n'ont toutefois été réalisés que
pour des fréquences d'échantillonnage de 44,1KHz... Pour le moment, je ne
garanti pas le bon fonctionnement pour les autres types de fichiers.
- Correction bug mineur : l'indicateur de différences importantes de niveau
entre voies G et D n'affichait une alarme que lorsque c'était la voie droite
qui avait la plus forte amplitude. Désormais, c'est bien la valeur absolue
de la différence entre les deux voie qui est vérifiée.
- Correction bug mineur Filtres audio : le filtre passe-haut de la voie
gauche n'était pas utilisé, les données fournies en sortie étaient en réalité
prélevées sur le filtre passe-haut de la voie droite.
- Modification de la gestion du Mute de la sortie Monitoring. Désormais,
le mute est activé ou désactivé lors du changement de mode d'analyse,
mais n'est plus modifié par le logiciel après démarrage ou arrêt d'une
l'analyse. Une modification de la fonction de mute effectuée en cours
d'analyse est désormais conservée.
- Désormais, l'indicateur Mono / Stereo est fixé à 'S' et en vert au
lancement du logiciel et après un reset général.
- Désormais, il n'est plus possible de sélectionner le moteur audio
DirectShow dans la fenêtre des options, lorsque la version de DirectX
detectée est inférieure à la version V9.0. Auparavant, ce moteur n'était
pas utilisé lorsque la version de DirectX detectée est inférieure à la
version V9.0, mais le choix restait possible et portait à confusion.
- Désormais, lors de la première utilisation du logiciel (ou après
effacement du fichier AudioAnalyser.ini), le moteur audio selectionné par
défaut est le moteur MME Win32, puisque ce dernier fonctionne mieux dans
la grande majorité des cas.
- Désormais, le chargement d'un fichier audio depuis la liste des fichiers
récement utilisés, n'est plus possible si une analyse est en cours.
- Désormais, les vumetres et les graphiques (oscillos, spectres, crêtes)
sont remis à zéro lors de l'ouverture d'un nouveau fichier audio ou lors
d'un changement de type d'analyse (temps réel / fichier audio).
- Désormais, il n'existe plus de temps d'attente lors de la modification
des paramètres des filtres audio qui ne sont pas activés.
- Ajout information Durée fichier audio dans la ligne d'informations le
concernant, au format hh:mm:ss.

:zzz:

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

24
J'ai ajouté un module d'enregistrement audio automatisable. Vrai que ça n'a pas grand chose à voir avec l'analyse, mais j'avais envie de le faire !



Ce module permet de programmer à l'avance des enregistrements audio. Je sais que ce genre de chose existe déjà sur le net, mais j'avais un besoin particulier, alors je l'ai fait à ma sauce.

- J'ai ajouté la possibilité de supperposer une courbe de référence avec les courbes de densité des crêtes, celà permet de faire des comparaisons quand on a affaire à un programme audio toujours de même type :



- J'ai supprimé (temporairement ? ) le moteur DirectShow, parce que je ne m'en sortais pas. Le fonctionnement est désormais correct en analyse temps réel, aussi bien sous WinNT que sous WinXP. Enfin... j'ai testé sur 2 PC NT et sur 3 PC XP, je ne sais pas si c'est suffisant pour dire que c'est OK...

AudioAnalyser, suite et pas fin.

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

25
Bin dis donc, t'es bosseur toi :oo:
Je suis curieux de l'essayer, j'aborde d'ici 3 ou 4 jours la phase de mixage de mes morceaux...