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

Composants VCL Delphi Discussion :

Note de musique [Archives]


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de DelphiCool
    Homme Profil pro
    Ingénieur de production
    Inscrit en
    Mars 2002
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur de production
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 187
    Points : 2 198
    Points
    2 198
    Par défaut Note de musique
    Bonsoir à tous

    Quelqu'un sait il comment jouer une note de musique avec Delphi, et sans utiliser de composant (autre que ceux fournis avec l'IDE) ou de dll.

    par exemple si je veux jouer un Ré#
    puis il y a la hauteur et la longeur, etc..

    Mais ma question est surtout sur le fait de faire jouer un son

    PS : sans utiliser de fichier sonore

    Merci

  2. #2
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Si tu ne recherches pas la qualité (ie par le haut parleur du PC) du peut utiliser :

    Windows.Beep(Fréquence, Durée);


    Pour ce qui est du midi (API Windows) tu peut regarder à cette adresse :

    http://www.pics-software.de/download/misc/midi.zip

  3. #3
    Membre chevronné
    Avatar de DelphiCool
    Homme Profil pro
    Ingénieur de production
    Inscrit en
    Mars 2002
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur de production
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 187
    Points : 2 198
    Points
    2 198
    Par défaut
    Merci
    pil poil

    à part Windows.Beep(Fréquence, Durée); qui genere toujours le
    meme bip de windows ??

  4. #4
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 676
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 676
    Points : 7 082
    Points
    7 082
    Par défaut
    Citation Envoyé par DelphiManiac
    Pour ce qui est du midi (API Windows) tu peut regarder à cette adresse :

    http://www.pics-software.de/download/misc/midi.zip
    Le lien est mort !!


  5. #5
    Membre habitué
    Développeur .NET
    Inscrit en
    Juin 2002
    Messages
    274
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2002
    Messages : 274
    Points : 174
    Points
    174
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    BOOL Beep(
     
        DWORD dwFreq,	// sound frequency, in hertz 
        DWORD dwDuration 	// sound duration, in milliseconds 
       );
     
    Remarks
    Windows 95:
    The Beep function ignores the dwFreq and dwDuration parameters. On computers with a sound card, the function plays the default sound event. On computers without a sound card, the function plays the standard system beep.
    Pour les anglophobes : la fréquence et la durée ne sont prises en compte que sous NT, sinon il joue le son par défaut.
    A+

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2002
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 1
    Points : 1
    Points
    1
    Par défaut On connait la chanson ...
    Cette question n'est pas nouvelle (ce n'est pas une critique !)
    Mais à voir le nombre de gens qui ont consulté cette question/forum on peut supposer qu'elle est bien pertinente.

    Effectivement le windows.beep (x,y) ne fonctionne pas ...

    En tous cas pas avec un delphi 5 standard par exemple ...

    Et dire que lorsque j'ai débuté en informatique personnelle j'avais de vulgaires MO5 ou TO7 Thomson qui faisaient ça, en BASIC, les doigts dans le nez !! (avec durée de la note, octave etc...)

    Allez, Monsieur BORLAND, un petit effort !

  7. #7
    Membre habitué
    Développeur .NET
    Inscrit en
    Juin 2002
    Messages
    274
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2002
    Messages : 274
    Points : 174
    Points
    174
    Par défaut Re: On connait la chanson ...
    Citation Envoyé par YDumont
    Allez, Monsieur BORLAND, un petit effort !
    Je ne sais pas si c'est à Borland ou Microsoft de faire un effort mais en effet ça aiderait beaucoup de gens.
    J'ai essayé il y a quelque temps de jouer un son en boucle, vous savez à la manière de ce jeu qui pour se défouler consiste à bombarder le bureau windoz à la mitraillette, lance-flammes, tronçonneuse, ...
    Il a de super bruitages et je voulais faire un peu pareil, mais devant l'ampleur de la tache pour un tel résultat j'ai laissé tomber, il y a bien plus intéressant à faire (et surtout je suis pas payé pour ça )
    DelphiCool tiens nous au courant si tu développes un truc !
    A+

  8. #8
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Pour gérer le speaker de l'unité centrale :
    http://www.swissdelphicenter.ch/en/showcode.php?id=323

  9. #9
    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 DelphiCool!

    J'ai tout ce qu'il faut pour jouer une note de musique avec Delphi!
    Soit par le pc speaker, soit par le midi, ou wave...
    Si tu n'as pas déjà trouvé ce que tu cherchais, contacte-moi, sinon...


  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 44
    Points : 46
    Points
    46
    Par défaut
    Est-il possible de jouer 2 sons de fréquences différentes en même temps?

  11. #11
    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! Oui, enfin il me semble que j'ai vu le code quelque part (je sais plus où).
    Mais d'abord, il faut savoir si tu parles du speaker, de wavs, ou midi? à+

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 44
    Points : 46
    Points
    46
    Par défaut
    Oui j'ai recherché sur le forum, c'est comme ca d'ailleurs que je suis tombé sur ce topic. En fait, le plus simple et de passer par le speaker de la tour, donc avec un Windows.beep, mais impossible de combiner 2 fréquences. La solution serait peut etre de calculer la résultante des deux fréquences, mais je ne sais pas comment faire, je vais voir sur Google.
    Toutefois, si quelqu'un a une solution pour jouer 2 fréquences, je suis preneur

  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
    Tu vas trouvé en cherchant, c'est sûr!
    dommage que je me souvienne plus où je l'ai vu!
    Bon courage, à+

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par Sub0
    dommage que je me souvienne plus où je l'ai vu!
    Ne serait ce pas de celui ci dont tu parles ???

    @++

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 44
    Points : 46
    Points
    46
    Par défaut
    Oui, mais il faudrait les jouer en même temps les sons...
    Et puis le Windows.beep, c'est pas l'idéal car incompatible avec 95/98/Me...
    Quand à la solution de l'ASM proposée dans un post et sur la FAQ il plante sous XP (donc sous NT/2000).

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 44
    Points : 46
    Points
    46
    Par défaut
    Ben finalement, je trouves pas grand chose.
    Je trouves pas de formules pour calculer la résultante et aucun moyen de jouer 2 fréquences à la fois. En plus, je ne peux pas passer par un fichier Wav avec les 2 fréquences en mm temps car c'est l'utilisateur qui doit choisir

  17. #17
    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
    Pas de problème, j'ai la solution!

    D'abord, ce n'est pas celui-là, mais plutôt celui qu'à trouvé Benc me semble-t-il!
    Ensuite, pour mixer des wavs, rien de tel que DirectSound, d'ailleurs, je me suis programmé une unité qui va super bien, regardez moi ça, vous m'en direz des nouvelles, j'espère!

    http://site.voila.fr/subut/data4/mixsound.zip (368Ko)

    Et enfin, si tu tiens à mixer des beeps, alors saches que le beep est une fonction d'accès direct au port du pc speaker, et sous XP, il faut utiliser un pilote comme ZLPortIO (que je te conseil vivement). Il suffit de connaître quel est le type de données à envoyer sur quel port (je m'en souviens pas, il faudrait que je cherche un peu pour le savoir). En réalité, si tu fais "Port[BeepPort]:=X", sous 98 et 95 tu obtiens ton beep. Sous Xp, tu fais PortWriteb(BeepPort,X), et voilà! Il suffira de modifier la fonction de base de l'unité que tu as trouvé pour mixer des beeps sous XP!

    Je continu mes recherches pour vous apporter plus d'infos! à+

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 44
    Points : 46
    Points
    46
    Par défaut
    Je comprends pas très bien
    Pour faire un son, tu envoies la fréquence sur le port correspondant au speaker. Il est donc impossible de jouer 2 valeurs en même temps...
    Je pense que la seule solution est de calucler la résultante.

  19. #19
    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
    Regarde les sources de l'unité qui ne fonctionne pas sous XP, et cherche le tableau PORT. Tu as juste à le remplacer avec l'équivalent pour XP (comme ZLPortIO). Si tu ne sais pas comment faire, donne-moi le lien où tu as récupéré cette unité! Sinon, il te reste la solution de faire des beeps avec des wavs! lol, à+

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 44
    Points : 46
    Points
    46
    Par défaut
    Tu parles de quelle unité? Celle en ASM pour 95/98/Me?
    Celle la je l'ai pas testée
    Le lien : http://www.developpez.net/forums/vie...ht=fr%E9quence

    Le 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
    27
    28
    29
    30
    function InPort(PortAddr:word): byte; assembler; stdcall; 
    asm 
      mov dx,PortAddr 
      in al,dx 
    end; 
     
    procedure OutPort(PortAddr: word; Databyte: byte); assembler; stdcall; 
    asm 
      mov al,Databyte 
      mov dx,PortAddr 
      out dx,al 
    end; 
     
    procedure Sound(Hz : Word); 
    var TmpW : Word; 
    begin 
      OutPort($43,182); 
      TmpW :=InPort($61); 
      OutPort($61,TmpW or 3); 
      OutPort($42,lo(1193180 div hz)); 
      OutPort($42, hi(1193180 div hz)); 
    end; 
     
    procedure NoSound; 
    var TmpW : Word; 
    begin 
      OutPort($43,182); 
      TmpW := InPort($61); 
      OutPort($61,TmpW and 3); 
    end;
    Comme c'est en ASM, ya pas le Port[Addr]:=frequ.
    Et je pense que c'est la même chose que le Windows.beep, donc qu'il est impossible de jouer deux sons à la fois. Ca me paraît logique car le speaker joue le son de la fréquence qu'il recoit et continue tant qu'il le reçoit. Donc on peut envoyer qu'un signal à la fois. Enfin j'espère que je me trompes

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Generer note de musique
    Par dridk dans le forum API graphiques
    Réponses: 1
    Dernier message: 12/06/2009, 02h49
  2. Réponses: 15
    Dernier message: 12/01/2008, 22h26
  3. Clé de sol ou note de musique
    Par firiel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 16/11/2007, 11h09
  4. Notes de musique en C++
    Par druid dans le forum C++
    Réponses: 26
    Dernier message: 18/12/2006, 14h45
  5. Fichier Midi : récupérer les notes de musique
    Par zardi dans le forum Multimédia
    Réponses: 2
    Dernier message: 20/12/2005, 02h38

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