Impossible de faire biper mon ordinateur

bip-bip -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Depuis relativement longtemps, j'essaye de faire biper mon ordinateur sans succès. J'ai essayé:

printf("\a");
printf("%c", 7);
Beep(440, 1000);
qui ne marche pas puisque je suis sous Linux

Je sais qu'il existe plein de page de forum dédiée à cette question mais ils terminent souvent par une des solutions citées plus haut. Auriez-vous quelque chose d'autres à me proposer?

D'avance, merci

5 réponses

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    Tu peux trouver des infos ici et hacker le code (sous GPL)
    htttp://www.johnath.com/beep/

    Fais un
    git clone  git://github.com/johnath/beep.git
    1
    1. bip-bip
       
      merci à vous deux.
      Je vais me pencher sur le code Jonath, ça n'a pas l'air simple :)
      0
    2. bip-bip
       
      Rectification: il utilise dans son code
      printf("\a");

      ce qui ne marche pas chez moi.
      C'est peut-être un problème plus général de droit de faire biper l'ordinateur (les bips sont généralement là pour identifier un problème lorsqu'on allume un ordi [si c'est les même bips..]).
      J'ai essayé sur plusieurs ordinateurs et même en tant que su sur un avec toujours le même résultat.
      0
    3. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      non, le code de Johnathan Nightingale utilise evdev et l'événement
      EV_SND
      décrit là https://www.kernel.org/doc/Documentation/input/event-codes.txt

      putchar('\a');
      n'est utilisé que comme "fallback" si ioctl ou le write renvoient des erreurs :

      voir :

      https://github.com/johnath/beep/blob/master/beep.c#L294
      https://github.com/johnath/beep/blob/master/beep.c#L100

      voir aussi le README, qui comporte des avertissements sur les limites de fonctionnement de son programme en raison du fonctionnement de ioctl sous Linux si la commande n'est pas lancée par root ou à partir d'un vrai terminal localement ouvert sur la machine par l'utilisateur (et non ouvert à distance ou un terminal émulé sous X), et les moyens de contourner la difficulté.

      https://github.com/johnath/beep/blob/master/README#L25


      Dal
      0
    4. bip-bip
       
      J'ai aussi essayé
      putchar('\a');

      qui ne marche pas non plus.
      Je n'ai pas très bien compris le reste mais tu penses que si je le compile et éxecute, les bips marcheront??
      0
    5. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      C'est bizarre que
      putchar('\a');
      ne donne rien. Exécutes-tu ton programme à partir d'une session X. Chez moi, sous Gnome, le son passe par la carte son et fait un "bong" sur un PC portable avec une carte son supportée.

      S'agissant de beep, tu n'as pas vraiment besoin de le compiler si ta distribution Linux comprend un paquet pour cet utilitaire et si tout ce que tu veux c'est un programme à lancer qui fasse bip.

      C'est le cas par exemple de Debian : https://packages.debian.org/fr/wheezy/beep (c'est le même utilitaire).

      Quand à savoir si cela "marchera", je ne peux pas le deviner.

      Cependant, tu devras lire attentivement le README ou la partie correspondante figurant dans la page de manuel (man beep) une fois que tu auras installé beep,

      Debian installe l'utilitaire dans dans /usr/bin avec les permissions -rwsr-xr-x root audio ce qui permet à l'utilitaire de fonctionner comme il est sensé fonctionner dans un maximum de cas.

      En tout cas, il marche pour moi.

      En prime, tu peux faire de la musique avec :-)


      Dal
      0
  2. Ravaltabav Messages postés 248 Statut Membre 36
     
    Est-ce que ton ordinateur peut bip au moins? Vérifie si il y a un bippeur branché sur la carte mère.
    1
    1. bip-bip
       
      Oui j'ai testé, il bip une fois lors de l'allumage (pour signifier que tout va bien)
      0
  3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonjour,

    Rien de portable...
    Sinon, pourquoi ne pas installer "beep" ?
    Ensuite, tu l'appelles via "system()". Bon, c'est pas très propre, mais bon.
    En plus, tu peux choisir la fréquence :
    system("beep -f 1000"); (par exemple).

    Cdlt,
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Essaye un simple
    tput bel
    ;-)
    -1