Ich generiere hier Sinustöne. Diese speichere ich als WAV ab. Da ich immer nur eine Sekunde Tonlänge und 44100kHz Samplingfrequenz habe, habe ich mir einen Header aus einer Sounddatei "geklaut und setzte immer den gleichen Herader vor den eigentlichen Daten.
Das klappt prima.
Nun möchte ich die Töne aber nicht erst als Datei abspeichern und danach mit f.OpenAsSound wieder einlesen, sonder gleich abspielen.
Ich habe schon sehr viel ausprobiert. Klappt alles nicht. Deshalb frage ich Euch schon wieder…
Ich bastel erst einen Datenstring mit dem Ton:
[code] dim i As integer
dim myByte As integer
dim myByte2 As double
dim Einzelsamples As integer
samples=""
Einzelsamples=Samplelaenge*samplerate
for i = 1 to Einzelsamples
myByte=round(sin(i*frequenz/samplerate*PI*2)*-127)+127
samples=samples+chrb(mybyte)
next[/code]
Dann speichere ich den ganzen String mit vorangestelltem Header ab:
[code] Dim bs As BinaryStream
Dim f As FolderItem
Dim newFolder as FolderItem
Dim v As Variant
Dim s As new Sound
newFolder=SpecialFolder.Desktop.child(“ToneMakerSounds”)
newFolder.createAsFolder
f = SpecialFolder.Desktop.Child(“ToneMakerSounds”).Child(Dateiname)
bs = BinaryStream.Create(f, True)
If bs <> Nil Then
bs.Write(Datenstring)
bs.Close
end if[/code]
Fertig ist meine WAV Datei. Klappt auch gut so.
Wenn ich nun die Datei nicht erst speichern will, sondern direkt nach dem erzeugen abspielen will, wie mache ich denn das?
Ich habe schon einiges versucht. Deshalb sind noch “Reste”, wie Variant und Sound zu sehen
Vielen Dank im Voraus!
Viele Grüße
Britta