Seite 1 von 1

``winsound.Beep`` tut nicht was es soll

Verfasst: Samstag 27. Dezember 2008, 09:30
von roschi
hallo!

wenn ich folgendes mache:

Code: Alles auswählen

import winsound
winsound.Beep(3000, 1000)
dann muesste ich doch eigendlich was hoeren?

aber leider tut sich da nichts, und eigendlich kann ich 3 kHz noch hoeren. :)

falls das irgendein bug sein sollte, koennte mir vielleicht jemand ein anderes kleines modul empfehlen, um pieptoene mit variabler frequenz und laenge zu erstellen, und diese dann auszugeben und in eine wave-datei zu schreiben?

lg
roschi

Verfasst: Samstag 27. Dezember 2008, 11:31
von draci
Bei mir funzts

Verfasst: Samstag 27. Dezember 2008, 11:47
von roschi
draci hat geschrieben:Bei mir funzts
ich hoer da gar nichts - eigenartig...
danke fuers testen!

dann werde ich wohl einen sound generieren, und den dann abspielen.
kann mir nun vielleicht noch jemand sagen, wie ich dann eine wave-datei aus mehreren wave-dateien zusammensetze?

lg
roschi

Verfasst: Samstag 27. Dezember 2008, 14:05
von HerrHagen
Schau dir mal das wave Modul an. Damit kannst du .wav Dateien öffnen und den Inhalt auslesen.
Das Ergebnis ist dann ein String mit den Daten in Binärformat.
Dies macht du dann einfach zwei mal für die beiden Teile.
Danach kannst du die dann einfach zusammenfügen und wieder als .wav speichern.

MFG HerrHagen

Verfasst: Samstag 27. Dezember 2008, 14:12
von roschi
HerrHagen hat geschrieben:Schau dir mal das wave Modul an. Damit kannst du .wav Dateien öffnen und den Inhalt auslesen.
Das Ergebnis ist dann ein String mit den Daten in Binärformat.
Dies macht du dann einfach zwei mal für die beiden Teile.
Danach kannst du die dann einfach zusammenfügen und wieder als .wav speichern.
ja, das wave-modul kenne ich. ich habe es auch schon oefters benutzt... aber noch nie damit rumgeschnitten...

kannst du mir eventuell etwas code posten, der zeigt, wie man damit zwei wave-dateien zusammenfuegt?

waere echt sehr nett!

lg
roschi

Verfasst: Samstag 27. Dezember 2008, 14:50
von Andyh
Hallo

Kann es sein das du Vista benützt?

Gruß
Andyh

Verfasst: Samstag 27. Dezember 2008, 14:56
von roschi
Andyh hat geschrieben:Kann es sein das du Vista benützt?
igitt! nein, kann es nicht ;-) ich nutze XP (wenn auch manchmal unfreiwillig)

lg
roschi

Verfasst: Samstag 27. Dezember 2008, 15:12
von Andyh
Hallo

Bei meinem Bruder hat das bei Vista nämlich nicht geklappt, bei mir ging es auf XP, nur jetzt habe ich Ubuntu.

Gruß
Andyh

Verfasst: Samstag 27. Dezember 2008, 15:39
von HerrHagen
Kann es sein das ihr einfach in der Lautstärkeregelung PC-Beep ausgeschaltet habt?

Verfasst: Samstag 27. Dezember 2008, 15:51
von HerrHagen
kannst du mir eventuell etwas code posten, der zeigt, wie man damit zwei wave-dateien zusammenfuegt?
Weil Weinachten ist :wink:.
Damit öffnest du eine wav Datei:

Code: Alles auswählen

f = wave.open('test1.wav', 'rb')
old_prm = f.getparams()
str_data1 = f.readframes(f.getnframes())
f.close()
Dies müsstest du entsprechend zweimal machen. Mit

Code: Alles auswählen

joined_str_data = ''.join(str_data1, str_data2)
kannst du die beiden Ergebnisse dann zusammenfügen. Und mit

Code: Alles auswählen

f = wave.open('test_1_plus_2.wav', 'wb')
f.setparams(old_prm) 
f.writeframesraw(data2.tostring())
f.close()
kannst du das Ganze wieder in eine Datei schreiben.
Du musst evtl. noch den nframes (Anzahl der Frames) Parameter entsprechend größer (ergebnis.nframes = Summe f1.nframes und f2.nframes) machen. Das weiß ich aber nicht. Musst du einfach probieren. Vieleicht gehts auch so.

MFG HerrHagen

Verfasst: Samstag 27. Dezember 2008, 16:36
von roschi
super! werde ich so machen!

das klappt

lg
roschi