DLL pour analyser les basses dans un mp3

DLL pour analyser les basses dans un mp3 - C#/.NET managed - Programmation

Marsh Posté le 11-12-2011 à 19:49:04    

Hello,  
 
je connais pleins d'API pour gérer la lecture de fichiers MP3
 
mais dans aucune (je connais peut être pas le terme exact qui m'indiquerai quel propriété, ou fonction utilisé) je ne trouve
le moyen de capter l'intensité des basses par exemple
 
j'aimerai pouvoir faire en sorte que si l'intensité dépasse une valeur, un truc scintille a l'image
 
J'ai reussi avec une librairie a obtenir une valeur sur la lecture de mon MP3 mais je sais pas trop à quoi ca correspond :o et mes flash sont un peu réalisé au pif et pas du tout calé sur le son des basses :o
 
 
C#  
 

Reply

Marsh Posté le 11-12-2011 à 19:49:04   

Reply

Marsh Posté le 21-12-2011 à 16:44:55    

C'est de la détection de BPM que tu veux faire ?

Reply

Marsh Posté le 21-12-2011 à 23:47:15    

BPM c'est beat per minute c'est une valeur fixe non?
 
Je me demande comment ils font les "animation" dans le lecteur windows media player par exemple. Ca vibre parfois au son des graves ou des aigus.
 

Reply

Marsh Posté le 22-12-2011 à 01:43:16    

J'me rappelle avoir fait un tuto sur After Effect pour faire un truc du style du lecteur Windows, et si j'me plante pas tu fais ça avec un filtre en analysant les fréquences (essaie de retrouver le tuto si tu peux, ça peut être une bonne source).
Pour ce qui du nom d'une lib, je connais absolument pas les libs dispo en C#, si t'as openAL ça devrait être faisable :D

 

edit : c'est ce tuto http://fr.tuto.com/after-effects/a [...] ab_extrait il me semble, ça te donne une base déjà :jap:

Message cité 1 fois
Message édité par Terminapor le 22-12-2011 à 01:44:58

---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 22-12-2011 à 02:50:03    

FFT : Fast Fourier Transform.
 
C'est ce que tu dois chercher pour faire de l'analyse fréquentielle sur ton signal. Ce que tu appelles "basses", c'est sous entendu "basses fréquences". Si tu ne t'y connais pas en analyse fréquentielle, un monde entier s'ouvre à toi.


---------------
last.fm
Reply

Marsh Posté le 22-12-2011 à 09:57:28    

Oui, c'est du traitement de signal que tu désire faire, l'analyse de fréquence se fait par FFT. Il y a plein de lib ou d'algo pour extraire la FFT d'un signal audio.
 
La facile : Bass.NET ( http://www.un4seen.com/ )
La full managed : Naudio de mon pote mark + WPF sound visualization Library ( http://Naudio.codeplex.com & http://wpfsvl.codeplex.com/ )
La mienne bugguée [:petrus75] : utilisé dans SharpMod ( http://sharpmod.codeplex.com )

Message cité 1 fois
Message édité par ixemul le 22-12-2011 à 09:57:59
Reply

Marsh Posté le 22-12-2011 à 13:40:45    

Terminapor a écrit :

J'me rappelle avoir fait un tuto sur After Effect pour faire un truc du style du lecteur Windows, et si j'me plante pas tu fais ça avec un filtre en analysant les fréquences (essaie de retrouver le tuto si tu peux, ça peut être une bonne source).  
Pour ce qui du nom d'une lib, je connais absolument pas les libs dispo en C#, si t'as openAL ça devrait être faisable :D
 
edit : c'est ce tuto http://fr.tuto.com/after-effects/a [...] ab_extrait il me semble, ça te donne une base déjà :jap:


 
Merci pour le coup de pouce je vais voir si j'arrive a m'en sortir  :jap:

Reply

Marsh Posté le 22-12-2011 à 13:42:07    

ixemul a écrit :

Oui, c'est du traitement de signal que tu désire faire, l'analyse de fréquence se fait par FFT. Il y a plein de lib ou d'algo pour extraire la FFT d'un signal audio.
 
La facile : Bass.NET ( http://www.un4seen.com/ )
La full managed : Naudio de mon pote mark + WPF sound visualization Library ( http://Naudio.codeplex.com & http://wpfsvl.codeplex.com/ )
La mienne bugguée [:petrus75] : utilisé dans SharpMod ( http://sharpmod.codeplex.com )


 
Merci, j'utilise bass.net pour lire mes fichiers audio, j'ai essayé avec sharpmod au début mais peu documenté j'ai pas réussi (mais je suis pas doué)
 
merci pour les infos, je vais essayer de m'en sortir :)

Message cité 1 fois
Message édité par cafenintendo le 22-12-2011 à 13:44:11
Reply

Marsh Posté le 22-12-2011 à 13:47:42    

Derniere question, au cas ou, j'utilise des fichiers audio .mod .it .xm uniquement, mais ce genre de fichier contient les mêmes infos (des fréquences) analysable ? ou bien c'est complètement différent?

Reply

Marsh Posté le 22-12-2011 à 13:52:49    

cafenintendo a écrit :


 
Merci, j'utilise bass.net pour lire mes fichiers audio, j'ai essayé avec sharpmod au début mais peu documenté j'ai pas réussi (mais je suis pas doué)
 
merci pour les infos, je vais essayer de m'en sortir :)


 
Comment ça SharpMod est mal documenté ! [:ofou]
 
Je prévois une nouvelle release bientôt (intégration de NAudio 1.5 et full release XNA), mais pour l'instant je passe les fêtes de fin d'année.
 

cafenintendo a écrit :

Derniere question, au cas ou, j'utilise des fichiers audio .mod .it .xm uniquement, mais ce genre de fichier contient les mêmes infos (des fréquences) analysable ? ou bien c'est complètement différent?


 
Avec Bass.Net, oui, les filtres se font de toute manière sur le stream de sortie.
 
Avec SharpMod, non, je fais ma FFT en sortie du multiplexage des voies, en parallèle avec l'envoie du stream à Naudio. Mais je vais refaire la FFT car elle est instable par moment (en même temps, c'est fait à l'arrache pour le programme de démo, ça ne fait pas partie du projet)
 

Reply

Marsh Posté le 22-12-2011 à 13:52:49   

Reply

Marsh Posté le 22-12-2011 à 14:10:37    

ixemul a écrit :


 
Comment ça SharpMod est mal documenté ! [:ofou]
 
Je prévois une nouvelle release bientôt (intégration de NAudio 1.5 et full release XNA), mais pour l'instant je passe les fêtes de fin d'année.
 


 

ixemul a écrit :


 
Avec Bass.Net, oui, les filtres se font de toute manière sur le stream de sortie.
 
Avec SharpMod, non, je fais ma FFT en sortie du multiplexage des voies, en parallèle avec l'envoie du stream à Naudio. Mais je vais refaire la FFT car elle est instable par moment (en même temps, c'est fait à l'arrache pour le programme de démo, ça ne fait pas partie du projet)
 


 
C'est moi qui chie pour sharpmod :) j'ai toutes les sources mais je suis pas doué ;) les gars comme moi on a besoins de tuto pas à pas quasiment :o  
 
Je me permettrai pas de critiquer ton boulot, c'etait mal exprimé de ma part le "mal documenté"

Message cité 1 fois
Message édité par cafenintendo le 22-12-2011 à 14:10:52
Reply

Marsh Posté le 22-12-2011 à 14:14:31    

Je vais me donner une journée pour réussir un truc avec bass.NET
 
et si jamais je suis complètement paumé je reviendrai pour avoir de l'aide en étant peut être un peu plus précis dans mes demandes d'aide :o

Reply

Marsh Posté le 22-12-2011 à 14:17:56    

cafenintendo a écrit :


 
C'est moi qui chie pour sharpmod :) j'ai toutes les sources mais je suis pas doué ;) les gars comme moi on a besoins de tuto pas à pas quasiment :o  
 
Je me permettrai pas de critiquer ton boulot, c'etait mal exprimé de ma part le "mal documenté"


 
Non, mais je blague hein ;). Je sais qu'il n'y a pas de doc, en même temps, mes principaux utilisateurs n'en ont pas besoin et j'ai déja expliqué 2~3 trucs sur divers forum concernant son utilisation dans certain cas un peu touchy.
 

Reply

Marsh Posté le 22-12-2011 à 14:28:52    

Ok vous m'avez orienté vers cette fonction si je comprends bien
 
Bass.BASS_ChannelGetData Method (Int32, Single[], Int32)
 

Citation :

Retrieves the immediate sample data (or an FFT representation of it) of a stream or MOD music channel. Can also be used with a recording channel. This overload uses a managed float[] to reference the buffer data as 32-bit! SHOULD ONLY BE USED, if the stream was created with BASS_SAMPLE_FLOAT!


 
(source: http://www.bass.radio42.com/help/h [...] 1bd463.htm )


Message édité par cafenintendo le 22-12-2011 à 14:29:24
Reply

Marsh Posté le 22-12-2011 à 14:41:54    

tootafé !
 
un petit exemple dans la langue de Goethe ici :
http://www.bauer-martin.com/csharp [...] s-201.html
 
Et comme je suis un mec vraiment sympa, ce sont les premières valeurs du tableau retourné par la méthode qui vont t’intéresser (les basses fréquence au début et les plus élevées à la fin)
 
Si tu utilise la FFT avec en entrée un tableau de 128 valeurs (utilisation avec BASS_DATA_FFT256... envoie un MP à nyquist pourquoi 256 retourne 128 valeurs), tu prends grosso modo à la louche les 30 premières valeurs du tableau, tu fait une moyenne et tu compare à un seuil que tu va déclarer de manière arbitraire (selon la sensibilité que tu désire sur le boom boom :D)  

Reply

Marsh Posté le 22-12-2011 à 14:47:07    

ixemul a écrit :

tootafé !
 
un petit exemple dans la langue de Goethe ici :
http://www.bauer-martin.com/csharp [...] s-201.html
 
Et comme je suis un mec vraiment sympa, ce sont les premières valeurs du tableau retourné par la méthode qui vont t’intéresser (les basses fréquence au début et les plus élevées à la fin)
 
Si tu utilise la FFT avec en entrée un tableau de 128 valeurs (utilisation avec BASS_DATA_FFT256... envoie un MP à nyquist pourquoi 256 retourne 128 valeurs), tu prends grosso modo à la louche les 30 premières valeurs du tableau, tu fait une moyenne et tu compare à un seuil que tu va déclarer de manière arbitraire (selon la sensibilité que tu désire sur le boom boom :D)  


 
[:roi]
 
Je vous tiens au courant si j'ai réussi, au risque de me payer la honte si je n'y arrive pas. Mais bon, personne pourra le vérifier si je reviens en disant que j'ai réussi [:braysse]

Reply

Marsh Posté le 22-12-2011 à 15:51:09    

j'ai réussi a intégrer le truc a peu près dans mon programme [:cupra]  reste a nettoyer ce bordel de code et trouver un bon moyen de chopper une bonne valeur LIMITE pour mes basses detectés
 
Merci pour les soluces


Message édité par cafenintendo le 22-12-2011 à 15:52:16
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed