KHR, 10.04.2008 20:48: Hallo miteinander,
.
hab schon wieder ein neues Projekt, das mir so duch die Hirnwindungen geistert.
Dazu sollte ich eine Tonfrequenz, die z.B. an der Soundkarte ankommt, erkennen können.
bis jetzt mach ich das mit einem kleinen Atmel und schick mir den gemessenen Wert über seriell ins Programm. Beim Suchen (und nicht finden) im Forum ist mir dann auch gleich noch das nächste Problem aufgefallen:
Wie krieg ich ne Soundkarte dazu mir z.B. einen Ton mit 1750Hz für 0,3 Sek auszugeben.
Soweit ich die Hilfe gelesen und verstanden habe, geht das mit Xprofan nicht ..........
oder hat da jemand nen Tip für mich???
.
David Strutz, 11.04.2008 00:42: Du könntest mit z.B. GoldWave ein derartiges wav speichern das 1750Hz für 0,3 Sekunden abspielt.
Ledeod R., 11.04.2008 06:29: "Sound 1750,120" sollte, laut Hilfe, genau das machen. Sieh mal in der Anleitung nach unter "Sound".
KHR, 12.04.2008 10:22: Hallo miteinader,
.
danke für die Antworten.
@David: Wav-Datei abspielen geht, wenn es sich nur um ein paar Töne handelt. Will man aber verschiedene Töne und die auch noch in unterschiedlich Längen parat haben, wird es umständlich.
Besser wäre da der direkte Zugriff auf die Soundkarte.
@Ledeod Remmud: "Sound 1750,120" - der Ton kommt aber aus dem PC-Lautsprecher und nicht über die Soundkarte. Das geht nur, wenn es alleine ums hören geht. Will man den Ton "elektrisch" weiterverwenden, wird es aufwändig. (kabel anlöten, Verstärker ....)
.
Matthias, 12.04.2008 11:51: Zitat von ""KHR"": "Sound 1750,120" - der Ton kommt aber aus dem PC-Lautsprecher und nicht über die Soundkarte.
Normalerweise eigentlich nicht, bzw. je nach Einstellung. Das Wiedergabegerät einzustellen, ist zudem Sache des Betriebssystems und hat hier erstmal mit Profan nix zu tun...
Gruss
Matthias
KHR, 12.04.2008 12:44: Hallo Matthias,
.
also - entweder steh ich total auf dem Schlauch oder irgend etwas anderes passt nicht.
Ich habs probiert:
sound 1750,760 und es piepst.
aber: Egal wie ich die Lautstärke der Ausgabe stelle es ändert sich nix, Also scheint der Ton nur aus der kleinen Tröte im PC zu kommen.
Dann hab ich die Tröte abgesteckt und nun war nix mehr zu hören, egal wie laut ich die Lautstärke gestellt habe.
Meine erweiterte Einstellung (Lautstärkeregelung) zeigt zwar nen Eintrag" PC-Lautsprecher" an, aber egal was ich da einstelle hat keine Auswirkung auf die "Tröte"
Hätte mich auch gewundert, da das eine mit dem anderen auch überhaupt nichts zu tun hat.
.
Rolf Koch, 12.04.2008 13:00: Wird auch nicht funktionieren, siehe Ausschnitt Hilfe:
Zitat:
Hinweis: Die Befehle PlaySound, Play und Music setzen eine Soundkarte oder einen Soundchip auf dem Motherboard vorraus. Beep und Sound hingegen verwenden den internen PC-Speaker.
RGH, 12.04.2008 14:01: Hallo,
prinzipiell ist es natürlich so, wie in der Hilfe beschrieben, aber trotzdem gibt es etliche PCs, die BEEP und SOUND auch über die Soundkarte ausgeben können. Meiner zählt zum Beispiel dazu: Hier tönt BEEP und SOUND gleichzeitig über den eingebauten Lautsprecher und die an der Soundkarte angeschlossenen Lautsprecher.
Gruss
Roland
Nachtrag: Regeln lässt sich die Wiedergabe von SOUND und BEEP über die Soundkarte über den Regler "PC-Lautsprecher" in der erweiterten Lautstärkeregelung. Wenn der ganz runter geregelt oder ausgestellt ist, kommt der Sound nur über den eingebauten PC-Lautsprecher. Ich muss ihn ganz hoch regeln, damit der Sound klar auch über die Soundkarte kommt.
Matthias, 12.04.2008 15:46: Zitat von ""RGH"": ...die BEEP und SOUND auch über die Soundkarte ausgeben können. Meiner zählt zum Beispiel dazu...
Das kannte ich bisher auch garnicht anders. Was Gegenteiliges ist bei mir noch nicht vorgekommen, obwohl ich die PC's, die durch meine Finger gegangen sind, schon lange nicht mehr zählen kann. Prinzipiell ist es ja davon abhängig, wie der jeweilige Soundtreiber das handelt. Bei mir z.B. wird in den Einstellungen der PC-Speaker nicht mal mehr angezeigt.
Mit folgender Registry-Einstellung lässt sich übrigens der PC-Lautsprecher gezielt abschalten:
Unter dem Schlüssel "HKCU\Control Panel\Sound" die Zeichenfolge "ExtendedSounds" erstellen und deren Wert auf 0 setzen. Vielleicht hilft das in diesem Falle.
Gruss
Matthias
Andreas M., 14.04.2008 19:10: Hallo Karl-Heinz,
es gibt auch die Möglichkeit eine Wave im Speicher zu erzeugten und dann abzuspielen.
DEF PlaySoundData(2) ! "winmm.dll" , "sndPlaySoundA"
Declare Wave#
Proc MakeWave
Parameters Freq&,secs&
Declare avBytesPerSec&,channels&,bitrate&,samplerate&
Declare acctime&,actchannel&,actsamplevalue&
Declare X&,Loudness&
channels& = 2
bitrate& = 16
samplerate& = 11025
avBytesPerSec& = channels&*bitrate&/8*samplerate&
Dim Wave#,44+(avBytesPerSec&*secs&)
Long Wave#,0 = 1179011410' RIFF
Long Wave#,4 = 36+avBytesPersec&*secs&
Long Wave#,8 = 1163280727'WAVE
Long Wave#,12 = 544501094'fmt
Long Wave#,16 = 16
Word Wave#,20 = 1
Word Wave#,22 = channels&
Long Wave#,24 = samplerate&
Long Wave#,28 = avBytesPersec&
Word wave#,32 = bitrate&/8*channels&
Word Wave#,34 = bitrate&
Long Wave#,36 = 1635017060' DATA
Long wave#,40 = avBytesPerSec&*secs&
X& = 0
acctime& = 1
actchannel& = 1
Loudness& = 32767/2' halbe Lautstärke
Whileloop acctime&,samplerate&*Channels&*secs&,4
actsamplevalue& = Loudness& * Sin(2 * PI() * freq& * (&Loop/4) / samplerate&)
word wave#,45+&Loop = actsamplevalue&,actsamplevalue&
Endwhile
EndProc
Cls
Print "Mache Wave..."
Makewave(440,1)
Print "Spiele Wave..."
PlaySoundData(Wave#,4)
Print ""
Print "Taste..."
Dispose wave#
waitinput
end
August G., 14.04.2008 20:12: Guten Abend Andreas.
Dein Programm funktioniert leider nicht in jedem Fall. Wenn ich es probiere, höre ich nur etwar jedes zweite Mal einen Ton.
Andreas M., 15.04.2008 18:40: Hallo August,
das liegt wohl am Abspielmodus, den habe ich auf asynchron gesetzt.
Word der Ton synchron abgespielt sollte es immer funktionieren.
PlaySoundData(Wave#,4)
Der 2. Parameter ist der Abspielmodus, 4 bedeutet Memory, 1 bedeutet asynchron. Diese Flags und noch ein paar andere können kombiniert werden.
Was mir nicht gefallen hat war die Geschwindigkeit beim erzeugen der Wave-Datei, die habe ich ein wenig optimiert.
Siehe Code oben.
Gruss
Andreas
Dies ist die Offlinevariante vom Thread [Ansprechen der Soundkarte].
©2006 XProfan.Com