DLL pour analyser les basses dans un mp3 - C#/.NET managed - Programmation
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.
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
edit : c'est ce tuto http://fr.tuto.com/after-effects/a [...] ab_extrait il me semble, ça te donne une base déjà
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.
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 : utilisé dans SharpMod ( http://sharpmod.codeplex.com )
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). |
Merci pour le coup de pouce je vais voir si j'arrive a m'en sortir
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. |
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
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?
Marsh Posté le 22-12-2011 à 13:52:49
cafenintendo a écrit : |
Comment ça SharpMod est mal documenté !
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)
Marsh Posté le 22-12-2011 à 14:10:37
ixemul a écrit : |
ixemul 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
Je me permettrai pas de critiquer ton boulot, c'etait mal exprimé de ma part le "mal documenté"
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
Marsh Posté le 22-12-2011 à 14:17:56
cafenintendo a écrit : |
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.
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 )
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 )
Marsh Posté le 22-12-2011 à 14:47:07
ixemul a écrit : tootafé ! |
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
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 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
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 et mes flash sont un peu réalisé au pif et pas du tout calé sur le son des basses
C#