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
» Gestion d'un système client-serveur.
Défi mp3 Emptypar Pedro Aujourd'hui à 10:32

» item_index(résolu)
Défi mp3 Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Défi mp3 Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Défi mp3 Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Défi mp3 Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Défi mp3 Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Défi mp3 Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Défi mp3 Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Défi mp3 Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Défi mp3 Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Défi mp3 Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Défi mp3 Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Défi mp3 Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Défi mp3 Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Défi mp3 Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

 

 Défi mp3

Aller en bas 
5 participants
AuteurMessage
jjn4

jjn4


Nombre de messages : 2709
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 : 7095
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 : 2397
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 : 8611
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 : 2709
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 : 7095
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 : 2397
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 : 4566
Age : 57
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 : 2709
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
-
» Petit défi de programmation.
» Encore un défi peut-être dur-dur
» Du coup, j'ai un autre défi
» Défi avec panoramic.
» 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: