Re: [haskell-art] Haskell audio I/O packages

2008-12-09 Thread stefan kersten
hi john,

John Lato wrote:
 Using unsafeFreezeIOCArray and my stream implementation provides the
 fastest version yet, with an average of about 1.9s per run.  This is
 in the hsndfile.hs test code as function test1.
 
 For the record, the stream implementation and fold I'm using are
 copied from Data.ByteString.Lazy.  I changed the types to suit this
 code, but that's the source.

thanks for posting the code. i'm not very convinced of lazy IO, but i'd
be very interested in incorporating an iteratee based approach into
hsndfile. i'm currently finalizing various api changes and extensions
(mostly to do with abstracting both mutable and immutable buffers) and
when i'm done i'll have a look at what you did in hsoundfile-3.
obviously oleg's iteratee code is not hackaged yet, and i couldn't find
it anywhere else, do you have any pointers?

thanks,
sk

___
haskell-art mailing list
haskell-art@lurk.org
http://lists.lurk.org/mailman/listinfo/haskell-art


Re: [haskell-art] Haskell audio I/O packages

2008-12-09 Thread Henning Thielemann

On Tue, 9 Dec 2008, stefan kersten wrote:

 thanks for posting the code. i'm not very convinced of lazy IO, but i'd
 be very interested in incorporating an iteratee based approach into
 hsndfile.

What are the reasons, you do not like lazy IO? Yes, currently it's a hack 
using unsafeInterleaveIO. But I hope someday one can hide this safely in a 
nice monad. But in general I find lazy stream processing a very elegant 
way of programming. Why else should we use Haskell and not, say OCaml?
___
haskell-art mailing list
haskell-art@lurk.org
http://lists.lurk.org/mailman/listinfo/haskell-art


Re: [haskell-art] Haskell audio I/O packages

2008-12-09 Thread John Lato
On Tue, Dec 9, 2008 at 4:45 PM, stefan kersten [EMAIL PROTECTED] wrote:
 hi john,

 John Lato wrote:
 Using unsafeFreezeIOCArray and my stream implementation provides the
 fastest version yet, with an average of about 1.9s per run.  This is
 in the hsndfile.hs test code as function test1.

 For the record, the stream implementation and fold I'm using are
 copied from Data.ByteString.Lazy.  I changed the types to suit this
 code, but that's the source.

 thanks for posting the code. i'm not very convinced of lazy IO, but i'd
 be very interested in incorporating an iteratee based approach into
 hsndfile. i'm currently finalizing various api changes and extensions
 (mostly to do with abstracting both mutable and immutable buffers) and
 when i'm done i'll have a look at what you did in hsoundfile-3.
 obviously oleg's iteratee code is not hackaged yet, and i couldn't find
 it anywhere else, do you have any pointers?

 thanks,
 sk


Hi Stefan,

It's available at
http://okmij.org/ftp/Haskell/Iteratee/

His DEFUN slides and notes, found at
http://okmij.org/ftp/Streams.html#iteratee, are also helpful.

I think it's pretty obvious how to apply this to hsndfile.  However, I
just noticed that Oleg has posted a TIFF library using an Iteratee
approach.  It supports seeking/random access and various other things
that directly apply to the matter at hand.  Looks like I'll have to do
some studying again...
http://okmij.org/ftp/Streams.html#random-bin-IO
___
haskell-art mailing list
haskell-art@lurk.org
http://lists.lurk.org/mailman/listinfo/haskell-art