Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Laute Frequez für Windows.Beep ? (https://www.delphipraxis.net/63310-laute-frequez-fuer-windows-beep.html)

Thorben86 16. Feb 2006 16:38


Laute Frequez für Windows.Beep ?
 
Hi, ich will in meinem Program über den internen Speaker einen Hinweis-Ton ausgeben lassen.
Da es sich um Windows XP handelt kann ich dies ja einfach über den folgenden Befehl machen.
Delphi-Quellcode:
Windows.Beep(Frequenz, Dauer);
Allerdings würde mich interessieren, welche Frequenz + Länge Windows bei seinem beep hat. Mein Problem ist, dass die Lautstärke stark variiert, so ist z.b. eine Frequenz vom 900 deutlich lauter als 950 und ich benötige eine Frequenz, die man gut hört, allerdings sollte sie nicht zu hoch sein, wobei auch bei höheren Frequenzen das gleiche Problem auftritt.

Event. kennt ja jemand ein paar Kombinationen? :)
Zur zeit bin ich bei 900hz und 200 ms, allerdings ist mir das noch zu leise^^ Wenn Windows nen Fehler meldet ist der beep meiner Ansicht nach lauter.

alcaeus 16. Feb 2006 16:41

Re: Laute Frequez für Windows.Beep ?
 
Moin Thorben,

wie waers mit MSDN-Library durchsuchenMessageBeep?

Greetz
alcaeus

Thorben86 16. Feb 2006 17:22

Re: Laute Frequez für Windows.Beep ?
 
Damit hatte ich es schon mal Probiert, nur kommt da folgende fehlermeldung bei:
Delphi-Quellcode:
MessageBeep(-1);
bzw.
windows.messagebeep(-1);
Zitat:

[Fehler]: Konstantenausdruck verletzt untere Grenzen
Ich verstehe allerdings nicht warum, da die Funktion ja auch für diesen Bereich auch definiert sein müsste.

Außerdem steht im MSDN:
Zitat:

Simple beep. If the sound card is not available, the sound is generated using the speaker.
in der Code-Lib steht, dass bei -1 immer der interne speaker genutzt wird?

Edit: ich verwende Delphi7

teebee 16. Feb 2006 17:51

Re: Laute Frequez für Windows.Beep ?
 
Wo hast Du die -1 her? Wenn Du den Lautsprecher verwenden willst geht das so:
Delphi-Quellcode:
MessageBeep($FFFFFFFF);
Das Argument ist ein Cardinal, d.h ohne Vorzeichen.

Gruß, teebee

turboPASCAL 16. Feb 2006 17:59

Re: Laute Frequez für Windows.Beep ?
 
Der def. Windows-PC-Speaker-Piepton Strg + G auf der Console ist:
Delphi-Quellcode:
windows.beep(800, 200);
:wink:

Zitat:

Zitat von msdn.microsoft.com
MessageBeep

The MessageBeep function plays a waveform sound. The waveform sound for each sound type is identified by an entry in the registry.

BOOL MessageBeep(UINT uType);

Parameters

uType
[in] Sound type, as identified by an entry in the registry. This parameter can be one of the following values.
Value Meaning
-1

Simple beep. If the sound card is not available, the sound is generated using the speaker.

Note that this value is resolved to 0xFFFFFFFF within the function.

-1 hat bei mir noch nie nicht mit Delphi funktioniert. :mrgreen:

Delphi-Quellcode:
Windows.MessageBeep(uType: Cardinal):LongBol;

Achtzig 16. Feb 2006 18:15

Re: Laute Frequez für Windows.Beep ?
 
Ich glaube, die starken Lautstärkeunterschiede sind auch von der Eigenresonanzfrequenz des jeweiligen Rechners abhängig. Will sagen, daß 900 Hz auf dem einem Rechner lauter sein kann als dem anderen. Auch die jeweiligen Lautsprecher haben so ihre "Lieblingsfrequenzen".

sharpals 24. Feb 2006 09:38

Re: Laute Frequez für Windows.Beep ?
 
Hallo, das -1 bezieht sich nur auf C !!!

Der lautsprecher im PC , oder die PC-Boxen, sind nicht linear.

Es gibt also eine wellige resonanzkurve. Sie ist abhängig von der membramgröße, die der box und wie sie innen aufbaut ist.

Bei Zwei lautsprechen kommt noch hinzu, daß sich beide Lautstärken verstärken , oder auslöschen. Da aber die verstärker und lautsprecher
nicht phasentreu sind, kann es passieren, daß eine phasenverschiebung
zwischen den lautsprechern auftritt und es zu auslöschungen, oder verstärkungen kommt.

SirThornberry 24. Feb 2006 09:45

Re: Laute Frequez für Windows.Beep ?
 
also ich würde nicht auf den internen speaker vertrauen. Bei den meisten Systemen gibt der gar keinen ton aus weil er irgendwo abgeschaltet wurde.

Der Rechner wo ich dran sitze gibt weder bei windows.beep noch bei windows.messagebeep einen Ton von sich. Vielleicht wäre es sinnvoller ein Hinweis fenster anzuzeigen.

Ben 5. Mär 2006 09:45

Re: Laute Frequez für Windows.Beep ?
 
Hallo Thorben,

die Lautstärke des internen Lautsprechers ist von Gehäuse zu Gehäuse unterschiedlich und hängt außerdem vom Amplituden-/Frequenzgang ab, der von Lautsprecher zu Lautsprecher unterschiedlich und bei derart billigen Konstruktionen keineswegs linear ist.

So etwas wie "Lieblingsfrequenzen" lassen sich also nicht allgemein definieren, daher solltest du lieber auf den Audioausgang der Soundkarte oder eine herkömmliche Meldung als Hinweis zurückgreifen.

Mit freundlichen Grüßen,
Ben


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz