Entwickler-Ecke
Windows API - windows.beep knackst bei ungeraden Frequenzen
Daniel L. - Mo 27.02.17 12:29
Titel: windows.beep knackst bei ungeraden Frequenzen
Hi zusammen!
Ich bastele gerade ein einem Prog, welches Melodien via windows.beep "abspielt" - oder besser: abpiepst.
function Beep(dwFreq, dwDuration: DWORD): BOOL; stdcall;
Jetzt hab ich ich mit Entsetzen festgestellt:
Immer, wenn die Frequenz eine ungerade Zahl ist, und die Dauer mind. 1000 Millisekunden beträgt,
kommt regelmässig nach ca. 500-Millisekunden ein Knacksgeräusch - es klingt so, als ob das Piepen kurz unterbrochen wird... :shock:
Delphi-Quelltext
1: 2:
| windows.Beep(441, 1500); windows.Beep(440, 1500); |
Nun kann ich natürlich den gewünschten Frequenzwert (der bei mir intern sowieso erstmal als double vorliegt) auf die nächste
gerade Zahl runden (statt allgemein 'round' zu nutzen) -
diese akkustische Ungenauigkeit wäre wohl noch akzeptabel.
Trotzdem würde ich gerne mal wissen, was da los ist....
Nutze W7
Gruß: Daniel
jaenicke - Mo 27.02.17 13:54
Da Windows 7 und höher Beep ohnehin normalerweise auf die Soundkarte rendern, verstehe ich nicht so recht weshalb du das noch benutzt.
Ob es bei mir auch knackst, kann ich mal testen.
Daniel L. - Mo 27.02.17 14:20
Ob es über die Soundkarte läuft oder nicht, wäre mir erstmal egal.
Mir gehts um einfaches abspielen von Tönen.
Wie könnte man das denn ohne 'windows.beep' machen?
edit: ok - besser vorher suchen:
es gibt etliche tools die sowas können - werd das beizeiten mal testen
Bliebe noch die Frage nach den Knacksern...
Daniel
Delete - Mo 27.02.17 15:00
- Nachträglich durch die Entwickler-Ecke gelöscht -
Delphi-Laie - Mo 27.02.17 15:09
Daniel L. hat folgendes geschrieben : |
diese akkustische Ungenauigkeit wäre wohl noch akzeptabel. |
Du sinnierst über 1 Hz als "akkustische Ungenauigkeit", verwendest aber windows.beep?
windows.beep erzeugt Rechteckschwingungen und somit massiv harmonische Obertöne, was diesen Ton ziemlich verrauscht klingen läßt. Jede reine Sinusschwingung (auch am Computer auch mit Delphi erzeugbar) hört sich zwar "nackt", dafür aber rein an. Ganz zu schweigen von Midiklängen.
Daniel L. - Mo 27.02.17 15:35
Delphi-Laie hat folgendes geschrieben : |
Du sinniersrst über 1 Hz als "akkustische Ungenauigkeit", verwendest aber windows.beep?
|
Ich meine damit nur die Tonhöhe.
Unterschiede von einem Herz sind bei nicht zu hohen Tönen durchaus wahrnehmbar,
wie auch bei Musikinstrumenten, die bisweilen auch sehr obertonreich klingen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!