FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Défi mp3 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Défi mp3 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Défi mp3 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Défi mp3 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Défi mp3 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Défi mp3 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Défi mp3 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Défi mp3 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Défi mp3 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Défi mp3 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Défi mp3 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Défi mp3 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Défi mp3 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Défi mp3 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Défi mp3 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -28%
-28% Machine à café avec broyeur ...
Voir le deal
229.99 €

 

 Défi mp3

Aller en bas 
5 participants
AuteurMessage
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Défi mp3 Empty
MessageSujet: Défi mp3   Défi mp3 EmptyJeu 26 Mai 2022 - 14:53

J'ai une question un peu compliquée pour les grands spécialistes :
Comment faire pour obtenir (par un programme en pur panoramic)
la durée d'un fichier mp3 en minutes et secondes ?
Dans l'idée, je vois plusieurs formules possibles :
1) C'est déjà écrit quelque part dans le fichier mp3, mais où ?
2) Y = (X - a) / b
. où Y = durée en secondes
. X = longueur du fichier mp3 en octets
. a = octets indépendants de la longueur du son
. b = nombre d'octets joués en une seconde
Peut-être y a-t-il encore une autre formule ????
scratch scratch scratch
Parmi nos spécialistes, il y a quelqu'un qui sait répondre à cela ?
rabbit
J'ai un peu tâté de la formule 2 :
Ca me donne : Y = (X - 14000) / 16000
mais c'est assez approximatif.... study
Il y a quelqu'un qui a mieux ?
A vos marques... prêt ? partez !
lol!
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Défi mp3 Empty
MessageSujet: Re: Défi mp3   Défi mp3 EmptyJeu 26 Mai 2022 - 16:06

Salut jjn4,

Désolé, je supprime mon intervention, la solution donnée en script ne marche pas...

Effectivement il faudrait connaître la structure d'un MP3 et aller lire directement dans le fichier.
Mais j'ai un peu de mal à trouver la structure.
J'ai bien une sub qui fait le boulot en faisant appel à ffmpeg.exe, ce n'est pas du pur panoramic.
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Défi mp3 Empty
MessageSujet: Re: Défi mp3   Défi mp3 EmptyVen 27 Mai 2022 - 10:57

Le bonjour à tous !

@JJN4

Voici un petit code-source qui permet une analyse très succincte de certains MP3 comme les chants d‘oiseaux de ton programme.

Peut-être est-ce suffisant ?

En quelques mots :
Le programme ne fonctionne qu’avec un MP3 contenant qu’un seul et unique fichier audio de type MPEG version 1 (ISO/IEC 11172-3) layer III.
Il recherche l’entête de synchronisation composée de 11 bits à 1 successifs. Cela permet de sauter toutes les métadonnées (ID3) pour calculer la longueur exacte de l'unique trame audio.

Puis on recherche le code du débit binaire qui nous donnera la valeur réelle du débit via un tableau de correspondance bitRate%(x).

En dernier, on divise la longueur de la trame audio par le débit binaire pour avoir la durée en secondes.

Code:
dim bitRate%(16), i%
data 0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,0

for i% = 0 to 15
   read bitRate%(i%)
next i%


open_dialog 1

analyseFichier()

end

sub analyseFichier()
    dim_local nomFichier$, octet1$, octet2$, octet3$, octet4$, index%, entete$, valeurDecimal%, MPEG%, quartet$, debit%, longueurAudio%, duree%
    dim_local hr%, mn%, sec%

    ' ouvrir fichier MP3
    filter 1,"Fichier MP3 (*.mp3)|*.mp3"
    nomFichier$ = file_name$(1)

    print " Nom du fichier : " + file_extract_name$(nomFichier$)

    ' Recherche de l'entête audio. On ignore toutes les métadonnées éventuelles (ID3)    
    filebin_open_read 2,nomfichier$
    
    ' recherche de la séquence de synchronisation composée de 11 bits successifs à 1
    while octet1$ <> "FF"
        filebin_hexa_read 2,1,octet1$
        if octet1$ = "FF" :' les huit premiers bits sont à 1
            filebin_hexa_read 2,1,octet2$
            if left$(octet2$,1) = "E" or left$(octet2$,1) = "F" :' les 3 bits de poids fort sont à 1
                filebin_hexa_read 2,1,octet3$
                filebin_hexa_read 2,1,octet4$
                exit_while
            end_if  
        end_if
        octet1$ = ""
    end_while

    index% = filebin_pos(2)

    longueurAudio% = filebin_size(2) - index%
    
    filebin_close 2
    
    ' recherche code du débit binaire
    quartet$ = left$(octet3$,1)
    debit% = bitRate%(hex(quartet$)) * 1000

    print " Débit binaire : " + str$(debit%)

    duree% = longueurAudio% * 8 / debit%

    mn% = int(duree%/60)
    sec% = ((duree%/60)-mn%) * 60
    
    print "Durée : " + str$(mn%) + "min " + str$(sec%) + "s"
end_sub

Défi mp3 Jjn4_111


Je ferai un programme plus exhaustif ultérieurement.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Défi mp3 Empty
MessageSujet: re   Défi mp3 EmptyVen 27 Mai 2022 - 14:52

Pour doc :
ici
 Défi mp3 1f609
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Défi mp3 Empty
MessageSujet: Re: Défi mp3   Défi mp3 EmptyVen 27 Mai 2022 - 15:09

Ouhaaaa !  Bravo !!!
Ca, c'est du grand art !
silent cheers
Et c'est précis !
J'ai calculé, à partir de 45 fichiers :
(en comparant avec la durée calculée par la fenêtre Windows)
25 donnent une durée exactement identique
20 affichent une différence de seulement 1 seconde (et toujours en plus)
Marc a écrit:
Peut-être est-ce suffisant ?
Largement, oui !
D'autant que rien ne prouve que la durée calculée par la fenêtre Windows soit si fiable que ça !
Merci bien, Marc !
Toujours en grande forme olympique, je vois ! Laughing Laughing Laughing
king  farao  queen
Et merci aussi pour Yannick,
ça explique le code de Marc, mais c'est vrai que c'est du pointu !
(Et sans oublier de saluer JL35, que cela fait toujours plaisir de retrouver)
cheers
Et sans vouloir vous mettre trop tôt la salive à la bouche,
je concocte un truc... mais c'est très long et ce sera pour la rentrée...
geek
flower alien lol!
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Défi mp3 Empty
MessageSujet: Re: Défi mp3   Défi mp3 EmptyVen 27 Mai 2022 - 17:37

Bonjour à tous,

Effectivement Marc c'est exactement ce qu'il fallait et que je n'ai pas réussi à faire.
Bravo et merci.
(pour mes besoins personnels j'ai bricolé un peu la sub pour renvoyer le résultat dans le clipboard
sous la forme HH:MM:SS)
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Défi mp3 Empty
MessageSujet: Re: Défi mp3   Défi mp3 EmptyVen 27 Mai 2022 - 20:59

Super !  Merci à tous !

JJN4 a écrit:
une différence de seulement 1 seconde (et toujours en plus)

Ah… les arrondis…
Remplace la ligne 54 :
Ancienne ligne : duree% = longueurAudio% * 8 / debit%
Nouvelle ligne  : duree% = int(longueurAudio% * 8 / debit%)

Par ailleurs, dans le code-source, j’ai omis de supprimer les variables locales devenues inutiles au fil du développement.
A supprimer : hr%, MPEG%, valeurDecimal%, entete$.

Bonne programmation à tous !
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Défi mp3 Empty
MessageSujet: Re: Défi mp3   Défi mp3 EmptyVen 27 Mai 2022 - 21:16

Ah oui intéressant ce lien Yannick. Wink
Mais c'est quand même pas simple...

Citation :
Et sans vouloir vous mettre trop tôt la salive à la bouche,
je concocte un truc... mais c'est très long et ce sera pour la rentrée...

Ah ben mince moi qui m'attendais à un nouveau programme pour les vacances... Mad
Bon et bien j'attendrai la rentrée alors... Laughing
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Défi mp3 Empty
MessageSujet: Re: Défi mp3   Défi mp3 EmptySam 28 Mai 2022 - 11:41

Ah, super !
Cette fois, plus d'arrondis !
Ca donne la durée exacte dans 100% des cas !
Vraiment, super !
Vive les cracks en informatique !
cheers
Petite indice pour Minibug :
(C'est pour les gens qui aiment la musique classique)
(mais chuttt......... !)
alien affraid lol!
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Contenu sponsorisé





Défi mp3 Empty
MessageSujet: Re: Défi mp3   Défi mp3 Empty

Revenir en haut Aller en bas
 
Défi mp3
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Nouveau défi pour les spécialistes
» Petit défi de programmation.
» Dessine-moi une étoile ... ou un super-cercle
» Du coup, j'ai un autre défi
» Petit défi avec un objet memo.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: