[Etoys] OggVorbisCodec crash

Karl karl.ramberg at comhem.se
Tue Dec 11 03:07:13 EST 2007


Ah, that explains a bit :-)
Thanks.
Karl

Takashi Yamamiya wrote:
> Hi Karl,
>
> 2007/12/9, karl <karl.ramberg at comhem.se>:
>   
>> This method returns a SequentialSound with several SampledSounds
>> compressed with OggVorbis in it. It's not optimal as you can notice the
>> cut between the each sound.
>>     
>
> Good!
>
> But the reason why the sound was cut is Vorbis encoder has a state. It
> is better to reuse same encoder in a sequence. I'll put such method
> into the stream (I'd rather prefer the rewrite #compressWith: itself).
>
> SampledSound>>compressWithOggVorbisCodec
>    | newSound sound samplesPerSecond size buffer startIndex stopIndex
> tempSound codec |
>    codec := OggVorbisCodec new.
>    size := self samples size.
>    startIndex := 1.
>    newSound := SequentialSound new.
>    samplesPerSecond := (self computeSamplesForSeconds: 1) size.
>    1
>        to: size
>        by: samplesPerSecond
>        do: [:i |
>             ((stopIndex _ startIndex + samplesPerSecond) > size)
> ifTrue:[ stopIndex _ size].
>            buffer := self samples copyFrom: startIndex to: stopIndex.
>            sound := SampledSound samples: buffer samplingRate: self
> samplingRate.
>            tempSound := codec compressSound: sound.
>            newSound
>                add: tempSound.
>            startIndex := stopIndex + 1].
>    ^ newSound
>
> Cheers,
> - Takashi
>
>   



More information about the Etoys mailing list