I think I was unclear on how I was storing the data...

On Thu, Jun 4, 2009 at 2:04 AM, Fred Kiefer <fredkie...@gmx.de> wrote:

> I think that in almost all cases using NSData is better then storing a
> pointer. That way you only have to worry once (when creating the NSData
> object) about who is responsible for cleaning up afterwards.
>
I'll go ahead and use a NSData object to store the data, but to make my life
easier on the playback side I only store raw 16-bit PCM data into the
object.  This allows me to not have to convert it later, and is the native
format for most (if not all) sound cards.


> Writing in differenet formats should be no concern for NSSound, all we
> have to support is writing the data to the pasteboard in a format we are
> able to read ourselves.
> As for reading we should rely on NSData and have the other two init
> methods just create a suitable NSData object. What ever happens inside
> of -initWithData: is up to your.
>
So should I leave -dataWithFormat:fileType: out?  And keep the raw reading
method (David seems to like the idea)?


> As I understand it you are using two different libraries, libsndfile to
> read the data and OpenAL to play the sound. As each of them may not be
> available on the user system it is great to have fallbacks for that
> case. I think it would be enough to support one file format, though.
>
Well, since the data in all these format are the same, all I really have to
worry about is correctly reading the headers.  For example, AU can store
uLaw, aLaw and 8, 16, 24 and 32 bit PCM in big endian; WAV can store uLaw,
aLaw and 8, 16, 24 and 32 bit PCM in little endian.  So really, once I can
read WAV, I can also read AU as long as I account for the header and convert
endian format.

Thanks for the input.  I have a lot clearer way ahead at this point.  I'll
leave the back-end (gnustep_sndd, OpenAL or even JACK now) to after I have a
complete, working implementation of the front-end.  There are some things
that need to be analyzed in some more detail there.

Stefan
_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to