IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Problème avec la librairie 'LibZPlay'.


Sujet :

Langage Delphi

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Problème avec la librairie 'LibZPlay'.
    Bonjour à Tous...

    J'expérimente la librairie 'ZPLAY' : La fonction 'DetectFileBPM' avec delphi7.

    http://libzplay.sourceforge.net/libZ...ionMethod.html

    Je déclare la Lib dans la close 'uses'.
    Je déclare la variable 'Dtc' de type 'ZPlay'.
    Dans l'évènement 'OnCreate' du formulaire 'Form1', la création de 'Dtc'.

    Dans l'évènement 'OnClick' du bouton 'Detection' j'implémente le code de détection du 'BPM' avec
    la fonction :
    function DetectFileBPM(const FileName: AnsiString; Format: TStreamFormat; Method: TBMPDetectionMethod): Integer;
    de la librairie LibZplay.

    J'ai juste mis le code concernant la détection 'BPM'.

    Le problème c'est que cela ne parche pas.
    Aucun message d'erreur.
    Il n'y a aucun traitement et la valeur 'BPM' retourné est toujours égal à zéro.

    Pourriez-vous m'aider à ce sujet ?

    Merci...
    --------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    //##################################################################
    uses
      ...,libZPlay;
    //##################################################################
    var
      Dtc: ZPlay;
    //##################################################################	
    procedure TForm1.FormCreate(Sender: TObject);
     begin
      Dtc := ZPlay.Create;	
     end;
    //##################################################################
    procedure TBPMFiles.DetectionClick(Sender: TObject);
    var
     i: word   // Index du Fichier
     Bpm: integer; // Valeur 'BPM' du Fichier.
    begin
     for i: = 0 to ListeFichier.Items.Count-1 do // 'ListeFichier' contient la liste des fichier à traités'
      begin
       LB_Nom.Items.Add(ListeFichier.Items[i]); // Stockage du Nom de Fichier dans la ListBox 'LB_Nom';
       Bpm:=Dtc.DetectFileBPM(ListeFichier.Items[i],sfAutodetect,dmPeaks); // Appel de la fonction
       LB_Bpm.Items.Add(inttostr(Bpm)); // Stockage du 'BPM' dans la ListBox 'LB_Bpm'
      end;
    end;
    //##################################################################

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 972
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 972
    Points : 15 440
    Points
    15 440
    Par défaut
    Yop !
    Citation Envoyé par Cbm64 Voir le message
    Le problème c'est que cela ne parche pas.
    Aucun message d'erreur.
    Il n'y a aucun traitement et la valeur 'BPM' retournée est toujours égal à zéro.
    Comment sais-tu qu'il n'y a aucun traitement ?

    Par ailleurs, la première chose que j'ai vue en suivant le lien que tu donnes, c'est ça :
    Returns

    BPM value. If algorithm can't detect BPM value, return value is 0.
    Pour vérifier que ça parche, tu devrais essayer avec un morceau "facile", ie bien rythmé, bien marqué, pas le genre bossa-nova, quoi. (bon, j'dis ça parce que je ne sais pas avec quoi tu testes.)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Bonjour @Jipété...
    j'ai essayé avec des dizaines de fichiers de formats audio et styles différents bien évidemment.
    Je sais que cela marche pas, car je n'est aucun accés au fichier(s), Si on a un peu d'expérience sur la détection 'BPM' on sait que détecter ~1000 fichiers ne se fait pas instantanement. Sinon cette 'Lib' est révolutionnaire !?!
    L'affichage finale est quasi instentané dès que le relache le bouton.
    Je précise que si j'utilise la fonction 'DetectBPM' pendant la lecture d'un flux, cela fontionne très bien sur les même fichiers, et qu'aucunes valeurs de BPM=0 n'est retournée.
    Je pense pourtant bien implémenté cette fonction 'DetectFileBPM'.

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 972
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 972
    Points : 15 440
    Points
    15 440
    Par défaut
    Citation Envoyé par Cbm64 Voir le message
    Je sais que cela marche pas, car je n'est aucun accés au fichier(s),
    Pas compris.
    Comment ça, je n'est ai (du verbe "avoir") aucun accès au fichier(s) ?
    Avec DetectBPM tu as accès au fichier et avec DetectFileBPM non ? Faut voir avec les gens qui ont développé ça, alors.

    Citation Envoyé par Cbm64 Voir le message
    Je précise que si j'utilise la fonction 'DetectBPM' pendant la lecture d'un flux, cela fonctionne très bien sur les mêmes fichiers, et qu'aucune valeur de BPM=0 n'est retournée.
    Je pense pourtant bien implémenter cette fonction 'DetectFileBPM'.
    Je passe...

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Pour faire simple...
    Avec la fonction 'DetectBPM' on détecte le 'BPM' sur le flux de lecture en cours.
    Il faut donc créer un lecteur, puis lancer la fonction.
    ZPlay.OpenFile(...);
    Zplay.StartPlayback();


    Avec la fonction 'DetectFileBPM' on n'a pas besoin d'ouvrir un lecteur, on accède directement au fichier.

    il me semble que les noms des fonctions sont assez parlantes non ?

    P:S:
    Dez aulet pour lai phote, mèje sui pa été lon tan alécol...

Discussions similaires

  1. Problèmes avec des librairies (.a et .so)
    Par André K dans le forum C
    Réponses: 2
    Dernier message: 23/10/2006, 16h58
  2. Problème avec la librairie POI
    Par clement42 dans le forum Documents
    Réponses: 3
    Dernier message: 18/11/2005, 20h11
  3. [GD] Problème avec la librairie GD et les header !!
    Par jesspepette dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/10/2005, 13h09
  4. Problème avec la librairie rfunc sous Firebird
    Par yayelix dans le forum SQL
    Réponses: 4
    Dernier message: 17/05/2005, 17h49
  5. Problème avec les librairies ZLIB et LIBPNG
    Par VenusX117 dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 14/03/2005, 15h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo