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

Delphi Discussion :

Karaoké, comment le créer


Sujet :

Delphi

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 111
    Points : 49
    Points
    49
    Par défaut Karaoké, comment le créer
    Bonjour a tous,

    Karaoké!!
    Donc voila, je voudrai faire un logiciel qui puisse lire un fichier (où dedans il y aurait un mp3 et du texte) jouer la musique en affichant le texte. Le (gros gros) problème c'est que je ne sais pas par où commencer .
    Je voudrai aussi faire le créateur de ce fichier (on charge la musique puis le texte avec le temps ou doivent s'afficher chaque ligne et on enregistre.)

    Merci a tous ceux qui m'aideront..

  2. #2
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Non, le mieux, c'est de faire trois fichiers ayant le même nom, tous les trois dans le m^me répertoire :

    chanson.mp3 --> la musique elle même
    chanson.txt --> le texte au complet (à afficher dans un RichEdit par exemple)
    chanson.bin --> un fichier texte spécial, sur trois colonnes, qui indique, en fonction du temps écoulé depuis le début de la chanson (en secondes par exemple), l'index du premier caractère à surligner et l'index du dernier caractère à surligner.

    Par exemple, dans chanson.txt, on aura :
    Frère Jacques, frère Jacques
    Dormez vous ? Dormez vous ?
    et dans chanson.bin :
    Code X : 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
    Jusqu'à la      N° du Caractère     N° du Caractère       //caractères qui 
    seconde n°...   de début            de fin                //seront surlignés
    1.0                0                    2                 //Frè
    1.5                3                    4                 //re 
    2.5                6                    7                 //Ja
    3.0                8                    11                //ques 
    4.0              etc...
    4.5
    5.5
    6.0
    7.0
    8.0
    9.0
    1.0
    11.0
    12.0
    ça devrait le faire

    Edit : tableau plus lisible
    Bidouilleuse Delphi

  3. #3
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    il nya pas des formats connu déja?

  4. #4
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Si, tu as le format de fichier .kar : http://www.wotsit.org/search.asp

    Mais celà ne concerne que les musiques au format midi

    (Au passage, le site www.wotsit.org est une mine d'or pour se documenter sur la structure de nombreux formats de fichiers)

    Voici l'explication donnée sur le site sur ce format :
    KAR files are based on standard Midi files with the following additional events:

    The KAR text meta events start with an @ followed by a character indicating the type of KAR text meta event, then followed by text for that event. The following text meta events occur embedded in regular MIDI text events:

    FileType: @KMIDI KARAOKE FILE
    Version: @V0100
    Information: @I<text>
    Language: @LENGL
    Title 1: @T<title>
    Title 2: @T<author>
    Title 3: @T<copyright>

    The following lyric text indicators are defined. A \ (backslash) in the text is to clear the screen. A / (forwardslash) in the text is a line feed (next line).
    Bref, pas grand chose...

    En tout cas, la méthode que je t'ai donné, est utilisée dans de nombreuses applications où l'on a besoin de synchroniser video texte et son (exemple : l'émulateur de jeux Laserdisc Daphne, qui utilise un ou plusieurs mpeg, un .ogg pour le son et un .txt pour synchroniser les différentes parties des fichiers video )

    Au pire, tu peux très bien encapsuler tes trois fichiers dans un autre à la façon d'un fichier zip (mais sans compression)
    Bidouilleuse Delphi

  5. #5
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    merci waskol. Mon probleme maintenant est comment faciliter l'edition des 3 fichiers dont tu as parlé! c'est à dire comment concepter l'interface?comment faciliter aux utilisateurs d'éditer la synchronisation entre le son et le texte?
    Merci a tous ceux qui m'aideront..

  6. #6
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par pointer
    merci waskol. Mon probleme maintenant est comment faciliter l'edition des 3 fichiers dont tu as parlé! c'est à dire comment concepter l'interface?comment faciliter aux utilisateurs d'éditer la synchronisation entre le son et le texte?
    Merci a tous ceux qui m'aideront..
    En fait je le verrais comme ça :
    Dans une fiche, tu affiches le fichier musical (façon sinusoïde), avec un wav je sais faire, avec un mp3 je suis largué... (donc ça c'est l'affichage du mp3)
    Avec une barre verticale sur cette représentation de l'onde sonore qui indique où se trouve la progression d'écoute, il faut que l'utilisateur puisse bouger cette barre verticale pour se positionner à un endroit voulu dans la musique
    Juste en dessous ou au dessus un bouton, play, un bouton stop, un bouton pause, etc...
    Un indicateur de temps, qui correspond à la position de la dite barre verticale.

    En dessous de tout ça, tu y places le texte de la chanson dans un TMemo (contenu du fichier TXT), une listbox, ou mieu une listview pour afficher sur trois colonnes (qui représente le contenu du fichier .bin)

    et deux bouton, un bouton "ajouter", un bouton "supprimer"
    Quand l'utilisateur clique sur le bouton "ajouter", le programme rajoute les index de début et de fin des caractères sélectionnés (propriétés selStart et SelEnd du TMemo) dans la listview.
    Quand l'utilisateur cliques sur un élément de la listview, le texte du TMemo est mis en surbrillance (affectation de SelStart et de SelEnd)
    Quand l'utilisateur cliques sur le bouton "supprimer", le programme supprime l'entrée (ou les entrées) sélectionnée dans le listview.

    Après il te faut juste les boutons ou menus ad'hoc pour ouvrir, et sauver tes ficheirs.

    Intéressant ton projet


    Pour l'affichage d'une onde sonore, j'avais mis un exemple ici (pour un fichier wav) :
    http://www.developpez.net/forums/sho...6&postcount=13

    Dans le fil de discussion tu y trouveras plein d'autre choses.
    Comme Sub0 est assez pointu là-dessus, il a même fait un tuto sur son site perso http://sub0.developpez.com et qui est drôlement bien fait. Néanmoins, il s'agit encore de fichier wav, pas de mp3, donc...
    Bidouilleuse Delphi

  7. #7
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Si tu as besoin d'aide sur l'audio, je suis là!
    De retour parmis vous après 10 ans!!

  8. #8
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Pour les mp3, j'ai trouvé des choses très interessante ici :
    http://www.phidels.com/php/index.php...ip.php3&id=559

    A savoir, qu'un mp3 est diviser temporellement par tranches (on parle de frames) de 0.026 secondes : ce qui te permettra de placer précisemment la barre au début de chacune de ces tranches.
    Du coup, dans le fichier .bin, au lieu d'indexer les sélections de syllabes avec le nombre de secondes écoulées depuis le début de la chanson, tu peux indexer avec le numéro de frame
    Bidouilleuse Delphi

  9. #9
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    Salut
    Premierement Merci waskol pour la conception et l'idée de visualiser le spectre est trés utile pour faciliter la synchronisation mais le probleme c'est qu'il faut utiliser les mp3 et l'idée des frames est plus facile de facon qu'on peut utiliser un timer est envoyer le frame vers la carte son et colorer le texte approprié en meme temps. Mais le probleme de spectre de mp3 et l'envoi des frames vers la carte sont encore obscures pour moi .
    voila sub0 si tu veux m'aider
    merci a vous tous

  10. #10
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Voici un petit lecteur de MP3 où tu pourras visualiser et modifier la position de lecture. Dans l'unité "bass.pas", tu trouveras de nombreuses fonctions très intérressantes. A noter que le fichier "bass.dll" devra être fourni avec ton application.

    http://sub0.developpez.com/delphi/basstest.zip

    Tu peux également télécharger toutes les démos de bass à cette adresse :
    http://www.un4seen.com/
    De retour parmis vous après 10 ans!!

  11. #11
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    Merci à vous tous j'ai réussi à faire la synchronisation grace à la conception de wascol reste que j'ajoute le spectre (de sub0) pour faciliter l'utilisation. je pense aussi à faire un marqueur de fin qui sera utiliser avec la bouton droite de la souris.
    ps: Il ya aussi quelques démos (& sources) de programme de Karaoké sur le site de Bass...
    peut tu nous donner les liens?
    encore merci à vous !!!

  12. #12
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par pointer
    peut tu nous donner les liens?
    http://cs.stanford.edu/~dmorris/proj.../caroloke.html
    One-at-a-time group karaoke: Christmas installation art

    http://kenshin1101.googlepages.com
    Kplayer (ENG) : a powerful mediaplayer support bass audio & video , can use to create Karaok

    http://www.clubdjpro.com
    Audio, Video, Visualization, and Karaoke mixing software

    http://www.freewebs.com/kenshin1101/
    Free Media Player + CDRipper + Convert Audio + Karaok & Video Support (Language :VietNamese)

    http://www.activeaspsoftware.net/
    MP3+G Toolz Karaoke File Converter

    http://www.activeaspsoftware.net
    Digital Disco DJ Software, and Karaoke-Go-Round Karaoke Software
    De retour parmis vous après 10 ans!!

  13. #13
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Voici une nouvelle version de mon player un peu plus "complète" : http://sub0.developpez.com/delphi/basstest4.zip

    • J'ai ajouté un marqueur de fin sur le bouton droit et la lecture en boucle de la portion sélectionnée. On peut aussi définir cette position en cliquant sur le bouton "Relancer" avec le bouton droit de la souris. La position enregistrée correspondra alors à la position courante de lecture.

    • Il ya toujours ce problème de déphasage entre la position réelle de lecture et celle affichée. J'ai donc ajouté une variable nommée "decalage" avec la valeur de 512*10. Je suppose que ce problème est dû à un temps de réponse du lecteur ou à la mise en mémoire d'un certain nombre de donnée (tampon). J'aimerais bien arriver à trouver la valeur exacte pour que le code soit plus "juste".

    • Une dernière chose concernant la lecture en boucle, je n'ai pas trouvé de commande (qui fonctionne) permettant de définir une position de fin. J'ai donc ajouté un timer avec un interval de 1ms pour détecter la position et relancer la boucle. Sinon, pour bien faire, il faudrait faire un copier/coller des données sélectionnées et recréer un sample... Mais bon, je ne pense pas que cela soit bien utile dans ton cas.

    Bon courage pour la suite, à+
    De retour parmis vous après 10 ans!!

  14. #14
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    Salut
    Je reviens à nouveau a ce beau sujet de karaoké pour poser la question au roi du son (sub0 ) ainsi que les autres (qui sait ) sur la synchronisation entre l'affichage et le son!
    En faite, en travaillant avec un musicien il m'apporte le fichier midi avec ces paroles et les liens et un fichier wav qui est synchronisé avec le midi . Donc à l'aide de ce dernier je prend les positions et les relations et je joue le wav et dans un timer je teste selon mediaplayer.position et j'affiche mais c'est pas synchroniser pourquoi et comment mieux faire la synchronisation?

  15. #15
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Pourrais-tu mettre en pièce jointe de ton message, une archive contenant ces fichiers et ton programme pour pouvoir faire des essais ?
    De retour parmis vous après 10 ans!!

  16. #16
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par pointer
    Salut
    Je reviens à nouveau a ce beau sujet de karaoké pour poser la question au roi du son (sub0 ) ainsi que les autres (qui sait ) sur la synchronisation entre l'affichage et le son!
    En faite, en travaillant avec un musicien il m'apporte le fichier midi avec ces paroles et les liens et un fichier wav qui est synchronisé avec le midi . Donc à l'aide de ce dernier je prend les positions et les relations et je joue le wav et dans un timer je teste selon mediaplayer.position et j'affiche mais c'est pas synchroniser pourquoi et comment mieux faire la synchronisation?
    Dis moi, qu'essaies tu de synchroniser ?
    a) Le son par rapport au texte
    b) ou le texte par rapport au son ???

    parce que personellement, et c'était mon idée, je choisirais l'option b), pas l'option a) comme tu sembles aavir fait (me trompe-je ? )
    Bidouilleuse Delphi

  17. #17
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    Dis moi, qu'essaies tu de synchroniser ?
    a) Le son par rapport au texte
    b) ou le texte par rapport au son ???
    c'est de b) que je parle et c'est bon j'ai trouvé l'erreur merci beaucoup!
    Juste une autre question svp : Est ce que dans un fichier .mid ou .kar on trouve la periode de chaque syllabe c'est a dire par exemple on trouve dans la position
    px1 le mot str1 et juste aprés la position px2 on trouve str2 mais le str2 dure plus que str1 ou on peut trouver la longueur de periode de str1 et str2. A mon avis le faite ke tu trouve la position de str1 ne suffit pas non?il faut la durée de str1?
    et merci encore

  18. #18
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Sinon, comme ça...

    c'est vrai que le composant Delphi TMediaPLayer n'a pas d'évènement du style OnPositionChange et que c'est casse-pied pour synchroniser ton texte...

    Mais il y a une solution qui devrait te permettre de t'affranchir du Timer

    Le "truc" c'est d'utiliser le Media player de Windows.
    Pour ce faire, tu vas dans le menu de ton IDE "projet-->Importer une bibliothèque de types"

    Là, tu repères dans la liste qui s'affiche "Windows Media Player (Version 1.0)", tu cliques dessus.
    Les classes présentent dans cette bibliothèque activeX s'affichent dans la rubrique "Nom des classes", juste en dessous de la liste.
    Dans cette liste de noms de classes, Tu repères TMediaPlayer que tu renommes en TMediaPlayerW par exemple, celà éviteras à Delphi de faire la confusion entyre ce TMediaPlayer et le sien.
    Tu cliques sur installer, et tu lui indiques un nouveau paquet pour mettre tout ça, et Hop.
    Après, tu vas dans l'onglet ActiveX de ton Delphi, et tu devrais y retrouver toutes les classes et contrôles ActiveX que tu viens d'importer. Celui qui t'intéresse, c'est celui dont l'icône représente une petite flêche dans un rond vert, tu le droppes sur ta fiche et tu as un composant de lecture multimedia assez intéressant...

    Examinons le de plus prêt.

    Pour jouer un fichier, tu peux par exemple t'inspirer de ce code :
    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
    public
        dTotalFrames: Double;
        dTotalTimeSecs: Double;
        dFramerate: Double;
    ...
     
      if OpenDialog1.Execute then
      begin
        WMP1.FileName := OpenDialog1.FileName;
        while WMP1.ReadyState < 3 do
          Application.ProcessMessages;
     
        // Get Length in frames
        WMP1.DisplayMode := 1; // 1 = Frames
        dTotalFrames := WMP1.Duration;
     
        // Get length in seconds
        WMP1.DisplayMode := 0 ; // 0 = Time
        dTotalTimeSecs := WMP1.Duration;
     
        // Framerate
        if dTotalTimeSecs > 0 then
          dFramerate := DTotalFrames / dTotalTimeSecs;
     
        WMP1.Play
      end;
    Et sinon, très important, tu as un évènement OnPositionChange qui te permettra de mieux synchroniser tes paroles avec ta musique
    Bidouilleuse Delphi

  19. #19
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par pointer
    c'est de b) que je parle et c'est bon j'ai trouvé l'erreur merci beaucoup!
    Juste une autre question svp : Est ce que dans un fichier .mid ou .kar on trouve la periode de chaque syllabe c'est a dire par exemple on trouve dans la position
    px1 le mot str1 et juste aprés la position px2 on trouve str2 mais le str2 dure plus que str1 ou on peut trouver la longueur de periode de str1 et str2. A mon avis le faite ke tu trouve la position de str1 ne suffit pas non?il faut la durée de str1?
    et merci encore
    Une durée, c'est bien la différence entre deux positions, donc la durée de str1 est px2-px1, celle de str2 est px3-px2.

    Mais sinon, je ne pense pas que tu en aies besoin avec le OnPositionChange du MediaPlayer de Windows

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    type
    TSyllabes=Record
      JusquaPosition:double;
      debut:integer;
      fin:integer;
    end;
    ...
    var FichierBin:array of TSyllabes; //Reçoit le contenu du fichier .bin
         Num_Syllabe_enCours:integer;
    ...
     
    ...
    procedure SurligneSyllabe(SyllabeNum:integer);
    begin
       //Code qui surligne dans le RichEdit ou le TMemo de 
       //FichierBin[SyllabeNum].debut à 
       //FichierBin[SyllabeNum].fin
       //(tu le fais probablement avec les propriétés SelStart et SelEnd)
    end;
    ...
    procedure Play;
    begin
       Num_Syllabe_enCours:=0; 
       SurligneSyllabe(Num_Syllabe_enCours);
       MediaPlayerW1.Play;
    end;
    ...
     
    procedure TForm1.MediaPlayerW1PositionChange(ASender: TObject; oldPosition,
      newPosition: Double);
    begin
      //tant que la nouvelle position correspond 
      while newPosition>=FichierBin[SyllabeNum].JusquaPosition do  
      then begin 
                inc(Num_Syllabe_enCours); //On passe à la syllabe suivante
                SurligneSyllabe(Num_Syllabe_enCours); //on met à jour l'affichage
             end;
    end;
    Normalement, ça devrait le faire
    Bidouilleuse Delphi

  20. #20
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    Une durée, c'est bien la différence entre deux positions, donc la durée de str1 est px2-px1, celle de str2 est px3-px2.
    et qui t'as dit que entre px3 et px2 y aura pas de musike sans parole ?

Discussions similaires

  1. Panier virtuel comment en créer un ?
    Par sigap dans le forum Langage
    Réponses: 1
    Dernier message: 07/08/2006, 05h41
  2. Comment se créer un compte ?
    Par Yakurena dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 17/11/2005, 11h22
  3. Réponses: 14
    Dernier message: 13/10/2005, 12h55

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