Sound in String und zurück - Und noch ein Geschwindigkeitsproblem

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Sound in String und zurück - Und noch ein Geschwindigkeitsproblem

Klaus Füller-5
1. Problem:

Ich versuche, einen Sound über das Netz zu übertragen (an ein nicht-
Squeak-System). Dazu will ich den  Sound in ein ByteArray wandeln.  
Also probiere ich es zunächst rein lokal (ohne Netz):

sound play. **> Sound spielt (wenn auch zu schnell)
sound samplingRate. --> 22050
sound --> a SequentialSound

str := WriteStream on: ByteArray new. --> a WriteStream a ByteArray()
sound storeAIFFSamplesOn: str. --> a SequentialSound
str contents size --> 42586

wstr := ReadStream on: str contents --> aReadStream aByteArray .......
wstr contents size --> 42586

r := AIFFFileReader new. --> an AIFFFileReader
r readFromStream: wstr mergeIfStereo: false skipDataChunk: false Kein  
Gemeckere
r sound   --> a SampledSound (???)
r sound play **> Unverständliches Rauschen!

Was mache ich falsch??

2. Problem (weniger wichtig):

Ich nehme den Sound mit dem SoundRecorder auf. Allerdings spielt er  
viel schneller ab als ich aufnehme?

Klaus
Reply | Threaded
Open this post in threaded view
|

Re: Sound in String und zurück - Und noch ein Geschwindigkeitsproblem

Klaus Füller-5

Am 22.02.2009 um 13:16 schrieb Klaus Füller:

> 1. Problem:
>
> Ich versuche, einen Sound über das Netz zu übertragen (an ein nicht-
> Squeak-System). Dazu will ich den  Sound in ein ByteArray wandeln.  
> Also probiere ich es zunächst rein lokal (ohne Netz):
>
> sound play. **> Sound spielt (wenn auch zu schnell)
> sound samplingRate. --> 22050
> sound --> a SequentialSound

Lösung, allerdings mit dem Nachteil, dass beim Empfang die  
samplingRate nicht mehr bekannt ist und dass der Sound in Mono  
gewandelt wird ... (die Envelopes gehen verloren ...)

Statt

> str := WriteStream on: ByteArray new. --> a WriteStream a ByteArray()
> sound storeAIFFSamplesOn: str. --> a SequentialSound
> str contents size --> 42586
>
> wstr := ReadStream on: str contents --> aReadStream aByteArray .......
> wstr contents size --> 42586
>
> r := AIFFFileReader new. --> an AIFFFileReader
> r readFromStream: wstr mergeIfStereo: false skipDataChunk: false
> Kein Gemeckere
> r sound   --> a SampledSound (???)
> r sound play **> Unverständliches Rauschen!

schreibt man einfacher:

samples := sound samples asByteArray

rsamples := SoundBuffer fromByteArray: samples.
rsound := SampledSound samples: rsamples samplingRate: 22050.
rsound play

> Was mache ich falsch??
>
> 2. Problem (weniger wichtig):
>
> Ich nehme den Sound mit dem SoundRecorder auf. Allerdings spielt er  
> viel schneller ab als ich aufnehme?
>
> Klaus