Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1334 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Generer un son d'une frequence donnee en parametre sous Windows

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Generer un son d'une frequence donnee en parametre sous Windows

n°687000
PETOZAK
Posté le 30-03-2004 à 00:58:54  profilanswer
 

Bonjour,
Voila je dois developper un petit soft qui doit me generer un son en fonction de la position des mains de l'utilisateur:
Si il se trouve a droite de la camera:
il genere un son d'une frequence F1
Si il se trouve a gauche de la camera:
il genere un son d'une frequence F12
.....
 
Ces frequences F1..F2.....FN sont passees en parametre.
Connaissez vous la lib pour faire ca:
du genre :

Code :
  1. Beep(10255)


Fais moi un son de frequence 10255Hz
Merci


Message édité par PETOZAK le 30-03-2004 à 00:59:18
mood
Publicité
Posté le 30-03-2004 à 00:58:54  profilanswer
 

n°687002
harrysauce
Miaaaooou!
Posté le 30-03-2004 à 01:14:30  profilanswer
 


En C++ y'a une fonction Beep qui prend en paramètre la fréquence et la durée

Code :
  1. Beep(frequence, duree);

n°687004
PETOZAK
Posté le 30-03-2004 à 01:22:01  profilanswer
 

Merci

n°687005
PETOZAK
Posté le 30-03-2004 à 01:22:11  profilanswer
 

il faut inclure koi?

n°687006
PETOZAK
Posté le 30-03-2004 à 01:24:37  profilanswer
 

au fait j'ai essaye et le son sort du HP de la Carte mere tu sais pas si c'est possible d'avoir un son meilleur et plus puissant surtout?

n°687007
harrysauce
Miaaaooou!
Posté le 30-03-2004 à 01:25:58  profilanswer
 

PETOZAK a écrit :

il faut inclure koi?

J'ai regardé dans un vieux programme qui utilisais cette fonction et j'ai rien inclu:o
(a part les mfc vu que c'était une apps graphique)

n°687008
PETOZAK
Posté le 30-03-2004 à 01:28:11  profilanswer
 

oui elle est dans WinBase.h donc rien a inclure....
mais le son sort pas du bon trou :)

n°687010
harrysauce
Miaaaooou!
Posté le 30-03-2004 à 01:34:34  profilanswer
 

PETOZAK a écrit :

oui elle est dans WinBase.h donc rien a inclure....
mais le son sort pas du bon trou :)

Ah oui, en effet, ca sort du HP de la carte mère.
Si tu veux du son par les enceintes, faut voir avec DirectX j'imagine puisque que ca passe par la carte son....

n°687566
yawen
Posté le 30-03-2004 à 16:53:51  profilanswer
 

euh je sais que j'avais fais un programme pour gérer du son y'a longtemps, mais je me souviens que j'avais galéré avec des fonctions tordues de windows... je crois pas que ça utilisait DirectX, par contre. Pour faire un son, je passais un tableau de short int à ma fonction, où chaque élément représentait l'amplitude du signal à sortir, donc ensuite, en remplissant le tableau comme il faut par rapport au taux d'échantillonage, on peut faire le son qu'on veut, dont un son de fréquence fixe (en gros, le tableau contient les différentes ordonnées des points de la courbe du signal à sortir, comme dans un WAV, quoi). Si ça intéresse quelqu'un je pourrais essayer de replonger dans mes vieux codes voir si je retrouve le truc...


---------------
~~ Yawen ~~
n°687580
xiluoc
un pc pour les unirs ....
Posté le 30-03-2004 à 17:07:36  profilanswer
 

jai creer une classe qui joue de snotes a partir de ca :

Code :
  1. /*
  2. FILE    : Mucic.h   
  3. AUTHOR  : coulix, TAGMC21     v0.3     12/07/03
  4. PURPOSE : An easy way to translate music sheets into computer-speaker output sounds.
  5. ENLISH NOTE SYSTEM EQUIVALENCE
  6. ------------------------------
  7. DO -> C     DO#/REb -> C#/Db
  8. RE -> D     RE#/MIb -> D#/Eb
  9. MI -> E     FA#/SOLb-> F#/Gb
  10. FA -> F     SOL#/LAb-> G#/Ab
  11. SOL-> G     LA#/SIb -> A#/Bb
  12. LA -> A
  13. SI -> B
  14. ENGLISH RYTHMIC SYSTEM EQUIVALENCE
  15. ----------------------------------
  16. On hold
  17. */
  18. #ifndef MUSIC_BEEP_H
  19. #define MUSIC_BEEP_H
  20. class Music 
  21. {
  22.   public :
  23.     enum sound_freq          //link a frequencie to a note
  24.                  {oDO=16    ,oRE=18    ,oMI=20    ,oFA=22    ,oSOL=24   ,oLA=27   ,oSI=31,
  25.                   oDOd=17   ,oREd=20   ,oFAd=23   ,oSOLd=26  ,oLAd=29,
  26.                   IDO=33    ,IRE=37    ,IMI=41    ,IFA=44    ,ISOL=49   ,ILA=55   ,ISI=62,
  27.                   IDOd=35   ,IREd=39   ,IFAd=46   ,ISOLd=52  ,ILAd=58,
  28.                   IIDO=65   ,IIRE=73   ,IIMI=82   ,IIFA=87   ,IISOL=98  ,IILA=110 ,IISI=123,
  29.                   IIDOd=69  ,IIREd=78  ,IIFAd=92  ,IISOLd=104,IILAd=117,
  30.                   IIIDO=131  ,IIIRE=147  ,IIIMI=165   ,IIIFA=175   ,IIISOL=196 ,IIILA=220 ,IIISI=247,
  31.                   IIIDOd=139 ,IIIREd=156 ,IIIFAd=185  ,IIISOLd=208 ,IIILAd=233,
  32.                   IVDO=262   ,IVRE=294   ,IVMI=329  ,IVFA=349 ,IVSOL=392 ,IVLA=440 ,IVSI=494,
  33.                   IVDOd=277 ,IVREd=311 ,IVFAd=370 ,IVSOLd=415 ,IVLAd=466,
  34.                   VDO=523  ,VRE=587  ,VMI=659  ,VFA=698   ,VSOL=784 ,VLA=880 ,VSI=988,
  35.                   VDOd=554 ,VREd=622 ,VFAd=740 ,VSOLd=831 ,VLAd=932,
  36.                   VIDO=1046  ,VIRE=1175  ,VIMI=1319  ,VIFA=1397   ,VISOL=1568 ,VILA=1760 ,VISI=1976,
  37.                   VIDOd=1109 ,VIREd=1245 ,VIFAd=1480 ,VISOLd=1661 ,VILAd=1865,
  38.                   VIIDO=2094  ,VIIRE=2349  ,VIIMI=2637  ,VIIFA=2793   ,VIISOL=3135 ,VIILA=3520 ,VIISI=3951,
  39.                   VIIDOd=2217 ,VIIREd=2489 ,VIIFAd=2959 ,VIISOLd=3322 ,VIILAd=3729,
  40.                   VIIIDO=4186  ,VIIIRE=4698,
  41.                   VIIIDOd=4434 ,VIIIREd=4978,};
  42.                  
  43.     enum type                  //lenght of a note
  44.          {ronde=32, blanche_pointe=24 ,blanche=16, noire_pointe=12,
  45.           noire=8, croche_pointe=6 , croche=4, triolet=3, demi_croche=2,
  46.           quart_croche=1 };
  47.          
  48.     enum stop                  //lenght of a pause
  49.          {soupir=8 , demi_soupir= 4, pause=32 , demi_pause = 16, quart_soupir=2};
  50.                  
  51.     void assign_tempo(int x);  //Assign tempo for one "noire" (60 =1s )
  52.     void note(sound_freq freq,type lenght); //play the wanted note
  53.     void silence(stop stp);               
  54.     void sample(int var); //loop sound sanple
  55.    
  56.     //small created music
  57.    
  58.     void winner();
  59.     void intro ();
  60.     void error();
  61.    
  62.     private :
  63.     int tempo; 
  64.  
  65. };
  66. #endif


 

Code :
  1. #include "MUSIC_BEEP.h"
  2. #include <cstdlib>
  3. using namespace std;
  4. void Music::assign_tempo(int x)
  5. {
  6.     tempo=x;
  7. }
  8. void Music::error()
  9. {
  10.     assign_tempo(100);
  11.     note(Music::IIIDO, Music::croche);
  12.     note(Music::IIRE, Music::croche);
  13. }
  14. void Music::note(sound_freq freq,type lenght)
  15. {
  16.     _beep(freq,(7500/tempo*lenght));
  17. }
  18. void Music::silence(stop stp)
  19. {
  20.     _sleep((7500/tempo)*stp);
  21. }
  22.  
  23. void Music::sample(int var)
  24. {
  25.     for (int i=1; i <var; i++) {
  26.     _beep((5000/i), i*10);}
  27. }
  28. void Music::winner()
  29. {
  30.     assign_tempo(130);
  31.     note(Music::VSOL, Music::croche_pointe); 
  32.     note(Music::VSOL, Music::demi_croche); 
  33.     note(Music::VSOL, Music::demi_croche); 
  34.     note(Music::VLA, Music::croche); 
  35.     note(Music::VSOL, Music::croche); 
  36.     note(Music::VLA, Music::croche); 
  37.     note(Music::VSI, Music::blanche); 
  38. void Music::intro()
  39. {
  40.     assign_tempo(200);
  41.     note(Music::IVSOL, Music::croche); 
  42.     note(Music::IIIRE, Music::croche); 
  43.     note(Music::IIISI, Music::croche); 
  44.     note(Music::IIISOL, Music::croche); 
  45.    
  46. }

mood
Publicité
Posté le 30-03-2004 à 17:07:36  profilanswer
 

n°687740
PETOZAK
Posté le 30-03-2004 à 19:02:41  profilanswer
 

Merci xiluoc, je vais tenter de faire quelque chose de semblable :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Generer un son d'une frequence donnee en parametre sous Windows

 

Sujets relatifs
existe t'il des command button du style windows xp ?registre windows
autoconf pour windowscompiler du gtk sur windows
Quelle base de donnée utilisez-vous principalement ?Comptage de lignes de code C ou Java sous Windows
Générer du code HTML "à la volée" avec le langage ASP.NET ?php connexion windows linux
[oracle] Un script pour genérer le script de creation de basepb ouverture base de donnee
Plus de sujets relatifs à : Generer un son d'une frequence donnee en parametre sous Windows


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR