Low Level Audio - Writing bytes to the sound card?

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

Low Level Audio - Writing bytes to the sound card?

M Xyz

What is the most minimal (preferably platform independent) library available for writing bytes to the sound card? I see 60 wonderful libraries on Hackage, but I really just need the Haskell equivalent of an audio.write(byte[]) method. What sound api are these 60 libraries using?

I think the portaudio library is the only contender but when I try to install it I get:

>cabal install portaudio
Resolving dependencies...
Downloading portaudio-0.0.1...
Configuring portaudio-0.0.1...
cabal: Missing dependency on a foreign library:
* Missing C library: portaudio
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
cabal: Error: some packages failed to install:
portaudio-0.0.1 failed during the configure step. The exception was:
exit: ExitFailure 1




_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

John Van Enk
Hi,

portaudio is my embarrassing fault, but it does work most of the time. (Community, some one remind me to revisit this package after Christmas.)

Are you running in Windows? Linux? If Linux, which flavor?

/jve

On Fri, Dec 4, 2009 at 1:51 PM, M Xyz <[hidden email]> wrote:

What is the most minimal (preferably platform independent) library available for writing bytes to the sound card? I see 60 wonderful libraries on Hackage, but I really just need the Haskell equivalent of an audio.write(byte[]) method. What sound api are these 60 libraries using?

I think the portaudio library is the only contender but when I try to install it I get:

>cabal install portaudio
Resolving dependencies...
Downloading portaudio-0.0.1...
Configuring portaudio-0.0.1...
cabal: Missing dependency on a foreign library:
* Missing C library: portaudio
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
cabal: Error: some packages failed to install:
portaudio-0.0.1 failed during the configure step. The exception was:
exit: ExitFailure 1




_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe



_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

M Xyz


Hi,

portaudio is my embarrassing fault, but it does work most of the time. (Community, some one remind me to revisit this package after Christmas.)

Are you running in Windows? Linux? If Linux, which flavor?

/jve


I'm using Haskell on XP but I dual boot with Ubuntu 9 and I'd prefer not to break compatibility. I'm new to this, was I supposed to install portaudio for my OS before downloading the Haskell package? Are there other similar simple sound apis?



On Fri, Dec 4, 2009 at 1:51 PM, M Xyz <functionallyharmonious@...> wrote:

What is the most minimal (preferably platform independent) library available for writing bytes to the sound card? I see 60 wonderful libraries on Hackage, but I really just need the Haskell equivalent of an audio.write(byte[]) method. What sound api are these 60 libraries using?

I think the portaudio library is the only contender but when I try to install it I get:

>cabal install portaudio
Resolving dependencies...
Downloading portaudio-0.0.1...
Configuring portaudio-0.0.1...
cabal: Missing dependency on a foreign library:
* Missing C library: portaudio
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
cabal: Error: some packages failed to install:
portaudio-0.0.1 failed during the configure step. The exception was:
exit: ExitFailure 1




_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@...
http://www.haskell.org/mailman/listinfo/haskell-cafe




_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

John Van Enk
You'll have to install the portaudio C libraries and header files before continuing. I never actually tested the package on XP, if you get it to work, I'd love to hear your experience.

/jve

On Fri, Dec 4, 2009 at 2:20 PM, M Xyz <[hidden email]> wrote:


Hi,

portaudio is my embarrassing fault, but it does work most of the time. (Community, some one remind me to revisit this package after Christmas.)

Are you running in Windows? Linux? If Linux, which flavor?

/jve


I'm using Haskell on XP but I dual boot with Ubuntu 9 and I'd prefer not to break compatibility. I'm new to this, was I supposed to install portaudio for my OS before downloading the Haskell package? Are there other similar simple sound apis?




On Fri, Dec 4, 2009 at 1:51 PM, M Xyz <functionallyharmonious@...> wrote:

What is the most minimal (preferably platform independent) library available for writing bytes to the sound card? I see 60 wonderful libraries on Hackage, but I really just need the Haskell equivalent of an audio.write(byte[]) method. What sound api are these 60 libraries using?

I think the portaudio library is the only contender but when I try to install it I get:

>cabal install portaudio
Resolving dependencies...
Downloading portaudio-0.0.1...
Configuring portaudio-0.0.1...
cabal: Missing dependency on a foreign library:
* Missing C library: portaudio
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
cabal: Error: some packages failed to install:
portaudio-0.0.1 failed during the configure step. The exception was:
exit: ExitFailure 1




_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@...
http://www.haskell.org/mailman/listinfo/haskell-cafe





_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

M Xyz

> if you get it to work

As a spoiled Java programmer, this new role as pioneer is a bit intimidating, but I will give it a shot. :)

I downloaded the portaudio v19 source and I'm attempting to build it. Apparently I have to register my Visual Studio Express with Microsoft. Deeper down the rabbit hole... (Interesting aside, on the registration form under "What programming language topics are you interested in?" neither F# or Haskell are listed)

I wish there was a multimedia standard library for beginners like me. Writing audio to the speakers shouldn't be such a journey.


You'll have to install the portaudio C libraries and header files before continuing. I never actually tested the package on XP, if you get it to work, I'd love to hear your experience.

/jve

On Fri, Dec 4, 2009 at 2:20 PM, M Xyz <functionallyharmonious@...> wrote:


Hi,

portaudio is my embarrassing fault, but it does work most of the time. (Community, some one remind me to revisit this package after Christmas.)

Are you running in Windows? Linux? If Linux, which flavor?

/jve


I'm using Haskell on XP but I dual boot with Ubuntu 9 and I'd prefer not to break compatibility. I'm new to this, was I supposed to install portaudio for my OS before downloading the Haskell package? Are there other similar simple sound apis?




On Fri, Dec 4, 2009 at 1:51 PM, M Xyz <functionallyharmonious@...> wrote:

What is the most minimal (preferably platform independent) library available for writing bytes to the sound card? I see 60 wonderful libraries on Hackage, but I really just need the Haskell equivalent of an audio.write(byte[]) method. What sound api are these 60 libraries using?

I think the portaudio library is the only contender but when I try to install it I get:

>cabal install portaudio
Resolving dependencies...
Downloading portaudio-0.0.1...
Configuring portaudio-0.0.1...
cabal: Missing dependency on a foreign library:
* Missing C library: portaudio
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
cabal: Error: some packages failed to install:
portaudio-0.0.1 failed during the configure step. The exception was:
exit: ExitFailure 1




_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@...
http://www.haskell.org/mailman/listinfo/haskell-cafe






_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

Vo Minh Thu
2009/12/4 M Xyz <[hidden email]>
>
> > if you get it to work
>
> As a spoiled Java programmer, this new role as pioneer is a bit intimidating, but I will give it a shot. :)
>
> I downloaded the portaudio v19 source and I'm attempting to build it. Apparently I have to register my Visual Studio Express with Microsoft. Deeper down the rabbit hole... (Interesting aside, on the registration form under "What programming language topics are you interested in?" neither F# or Haskell are listed)
>
> I wish there was a multimedia standard library for beginners like me. Writing audio to the speakers shouldn't be such a journey.

Hi,

Did you look at synthesizer ? There is a short introductory file [1].
Be sure to look at the source (there is a link next to each function
definition). Outputting list of values is easy, for instance

Play.monoToInt16 (44100::Double) (map sin [0::Double,0.1..])

It uses SoX [2], which should be installed.

Cheers,
Thu

[1] http://hackage.haskell.org/packages/archive/synthesizer-core/0.2.1/doc/html/Synthesizer-Plain-Tutorial.html
[2] http://sox.sourceforge.net/
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

M Xyz

Did you look at synthesizer ? There is a short introductory file [1].
Cheers,
Thu

[1] http://hackage.haskell.org/packages/archive/synthesizer-core/0.2.1/doc/html/Synthesizer-Plain-Tutorial.html

Thanks for the tutorial link. As I'm new to Haskell, these 2 lines got me thinking: "Using plain lists is not very fast" and "Getting real-time performance is mostly an issue of the right signal data structure." What do you use as an efficient byte buffer in a value-oriented language?

The array tutorial says "Obviously, a naive implementation of such an array semantics would be intolerably inefficient, either requiring a new copy of an array for each incremental redefinition, or taking linear time for array lookup; thus, serious attempts at using this approach employ sophisticated static analysis and clever run-time devices to avoid excessive copying."



_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

John Lato-2
In reply to this post by M Xyz
> From: M Xyz <[hidden email]>
>
>> if you get it to work
>
> As a spoiled Java programmer, this new role as pioneer is a bit intimidating, but I will give it a shot. :)
>
> I downloaded the portaudio v19 source and I'm attempting to build it. Apparently I have to register my Visual Studio Express with Microsoft. Deeper down the rabbit hole... (Interesting aside, on the registration form under "What programming language topics are you interested in?" neither F# or Haskell are listed)

For doing cross-platform development, I would strongly recommend that
you use MinGW (or cygwin) in preference to Visual Studio Express.
This is because most Unix/Linux packages, and thus most cross-platform
packages, are designed to be built with the GNU compiler toolchain
(i.e. configure, make, make install), and getting them to work with
Visual Studio can be a chore.

I also would use PortAudio for what you describe, and have had good
experience with it on OSX.  Sox is a good choice as well if you don't
mind piping output to another program.

*shameless plug* you could also use hCsound, although it's probably
higher-level than what you're looking for.  Installing on Windows is
tricky too, but you only need to do so once.

John
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Re: Low Level Audio - Writing bytes to the sound card?

M Xyz


For doing cross-platform development, I would strongly recommend that
you use MinGW (or cygwin) in preference to Visual Studio Express.

MinGW is installed on our computers at work and its nice to work with. I tried installing it 2 years ago at home and I made a mess of it and gave up. I will certainly revisit it. Thanks.


I also would use PortAudio for what you describe, and have had good
experience with it on OSX. 

That's reassuring! I finished compiling PortAudio on XP today, I'm just having trouble doing the Cabal install. I made a portaudio_x86.lib and .dll and blindly tried:

>cabal install portaudio --extra-include-dirs=...\portaudio\include --extra-lib-dirs=...\portaudio\build\msvc\Win32\Release

Where ... is the actual path shortened here. JVE has been kind to let me email him for help.
*shameless plug* you could also use hCsound, although it's probably
higher-level than what you're looking for.  Installing on Windows is
tricky too, but you only need to do so once.

John

Seriously, I can't wait to play with all these Haskell libraries. As a beginner though I'm trying to work my way through the simple stuff yet.


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

Henning Thielemann
In reply to this post by M Xyz
M Xyz schrieb:

>
>     Did you look at synthesizer ? There is a short introductory file [1].
>     Cheers,
>     Thu
>
>     [1]
>     http://hackage.haskell.org/packages/archive/synthesizer-core/0.2.1/doc/html/Synthesizer-Plain-Tutorial.html
>
> Thanks for the tutorial link. As I'm new to Haskell, these 2 lines got
> me thinking: "Using plain lists is not very fast" and "Getting real-time
> performance is mostly an issue of the right signal data structure." What
> do you use as an efficient byte buffer in a value-oriented language?

I have written some more details on it:
 http://hackage.haskell.org/packages/archive/synthesizer/0.2.0.1/doc/html/Synthesizer-Storage.html

But I think that's not something one should start with ...

http://www.haskell.org/haskellwiki/Sound_data_structures

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

Andrew Coppin
In reply to this post by M Xyz
M Xyz wrote:
>
> > if you get it to work
>
> As a spoiled Java programmer, this new role as pioneer is a bit
> intimidating, but I will give it a shot. :)
>
> I wish there was a multimedia standard library for beginners like me.
> Writing audio to the speakers shouldn't be such a journey.
>

Unfortunately, I've yet to find a single Haskell package that binds to C
which will actually compile on Windows. :-(

(It still makes me chuckle that even the COM bindings - which, by
definition, can *only* work on Windows - also don't compile. One wonders
how the author managed to test it...)

Fortunately, for GUI work we have Gtk2hs, which works just fine on
Windows. (Although obviously, Windows boxes don't usually have GTK+
installed.) But most of the really interesting stuff on Hackage is just
unusable on Windows, sadly.

If you ever do manage to get audio working, I'd be interested to know how.

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Binding to C in Windows (was: Low Level Audio - Writing bytes to the sound card?)

Maurí­cio CA
 > Unfortunately, I've yet to find a single Haskell package that
 > binds to C which will actually compile on Windows. :-(

Do you know how can we check dependencies to C libraries in
Windows? Is pkg-config available? What about packages with
no pkg-config configuration?

Thanks,
Maurício

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

Stephen Tetley-2
In reply to this post by Andrew Coppin
Hello Andrew

Plenty compile on Windows:

Some OpenVG, OpenGL[1] (still? - I'm a bit behind the times) only
compile with MinGW.

Others are fine with Cygwin provided you have the dev packages
installed (readline, pcre-light...).

Yet others - no chance...

If you can get the raw C library to work in either Cygwin or MinGW,
you should have a good chance. The only sound software I've had
working on Cygwin has been ChucK though I haven't tried many - ChucK
uses RtAudio to talk to the soundcard which probably isn't easy to
write a binding for as its C++. I had ChucK working two years ago,
maybe things have improved in the Cygwin world regarding sound since
then and other systems now work.

http://www.music.mcgill.ca/~gary/rtaudio/

Best wishes

Stephen

[1] OpenGL worked fine when it was bundled with GHC, when it got
unbundled things seemed to go amiss, plus it seemed to be the thing to
use freeglut - hence the complicated instructions here:
http://netsuperbrain.com/blog/posts/freeglut-windows-hopengl-hglut/
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

wren ng thornton
In reply to this post by Andrew Coppin
Andrew Coppin wrote:
> Unfortunately, I've yet to find a single Haskell package that binds to C
> which will actually compile on Windows. :-(

Take a look at logfloat[1], it builds cleanly on Windows XP using GHC
6.10.1 without needing Cygwin nor Mingw/Msys (however GHCi has some DLL
errors[2]).

Not that that has anything to do with audio ;)


[1] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/logfloat

[2] If you know how to resolve these, I'd be much obliged. I don't have
a Windows machine to test on but I've been much irked that there's still
this outstanding portability bug.

--
Live well,
~wren
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

Andrew Coppin
In reply to this post by Stephen Tetley-2
Stephen Tetley wrote:

> Hello Andrew
>
> Plenty compile on Windows:
>
> Some OpenVG, OpenGL[1] (still? - I'm a bit behind the times) only
> compile with MinGW.
>
> Others are fine with Cygwin provided you have the dev packages
> installed (readline, pcre-light...).
>  

You're talking about MinGW and Cygwin. So... Unix emulators, basically.

I don't think it should be necessary to install a Unix emulator just so
that I can write Windows programs. Maybe others disagree.

> If you can get the raw C library to work in either Cygwin or MinGW,
> you should have a good chance.

I'm by no means an expert here, but isn't it usual for C libraries on
Windows to be supplied as a compiled DLL and a header file for using it?
I don't quite understand why you need a C compiler.

> [1] OpenGL worked fine when it was bundled with GHC, when it got
> unbundled things seemed to go amiss.

Apparently there is some talk of removing OpenGL from the Haskell
Platform. And if this happens, it'll be one more thing I can't use on
Windows. :-(

Personally, I'd like to see *more* C bindings in HP, so that I can start
doing cool stuff on Windows.

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

MigMit
I'm constantly amused by those who manage to use Windows without  
installing Cygwin.

On 5 Dec 2009, at 23:33, Andrew Coppin wrote:

> Stephen Tetley wrote:
>> Hello Andrew
>>
>> Plenty compile on Windows:
>>
>> Some OpenVG, OpenGL[1] (still? - I'm a bit behind the times) only
>> compile with MinGW.
>>
>> Others are fine with Cygwin provided you have the dev packages
>> installed (readline, pcre-light...).
>>
>
> You're talking about MinGW and Cygwin. So... Unix emulators,  
> basically.
>
> I don't think it should be necessary to install a Unix emulator just  
> so that I can write Windows programs. Maybe others disagree.
>
>> If you can get the raw C library to work in either Cygwin or MinGW,
>> you should have a good chance.
>
> I'm by no means an expert here, but isn't it usual for C libraries  
> on Windows to be supplied as a compiled DLL and a header file for  
> using it? I don't quite understand why you need a C compiler.
>
>> [1] OpenGL worked fine when it was bundled with GHC, when it got
>> unbundled things seemed to go amiss.
>
> Apparently there is some talk of removing OpenGL from the Haskell  
> Platform. And if this happens, it'll be one more thing I can't use  
> on Windows. :-(
>
> Personally, I'd like to see *more* C bindings in HP, so that I can  
> start doing cool stuff on Windows.
>
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

Stephen Tetley-2
In reply to this post by Andrew Coppin
Hi Andrew



2009/12/5 Andrew Coppin <[hidden email]>:

> I don't think it should be necessary to install a Unix emulator just so that
> I can write Windows programs. Maybe others disagree.
>

...

>
> I'm by no means an expert here, but isn't it usual for C libraries on
> Windows to be supplied as a compiled DLL and a header file for using it? I
> don't quite understand why you need a C compiler.

The thing is, all the bindings on Hackage (or at least something most
likely above 95%) are to "Unix" C libraries so you need a C compiler
and a Unix emulator to use them. I do have have some sympathy with
your point though - it is possible to get things to compile once you
have Cygwin, but deployment on any other machine Windows thereafter is
'challenging' to say the least.




> Apparently there is some talk of removing OpenGL from the Haskell Platform.
> And if this happens, it'll be one more thing I can't use on Windows. :-(


I didn't realise until I looked today that OpenGL was in the Haskell
Platform. If the proposal to remove it is from Sven Panne then fair
enough, otherwise it would be a bit disappointing - it always "just
worked" when it was part of GHCs extralibs...

Best wishes

Stephen
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

Andrew Coppin
In reply to this post by MigMit
Miguel Mitrofanov wrote:
> I'm constantly amused by those who manage to use Windows without
> installing Cygwin.

I'm constantly puzzled by those who think that Cygwin is a mandatory
part of Windows. ;-)

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

Daniel Fischer-4
In reply to this post by MigMit
Am Samstag 05 Dezember 2009 21:43:13 schrieb Miguel Mitrofanov:
> I'm constantly amused by those who manage to use Windows without  
> installing Cygwin.

I'm constantly amazed by those who manage to use Windows.


(In case you want to misunderstand, it's not a Windows bashing, I just never managed to
work with it)
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Low Level Audio - Writing bytes to the sound card?

Andrew Coppin
Daniel Fischer wrote:
> I'm constantly amazed by those who manage to use Windows.
>
>
> (In case you want to misunderstand, it's not a Windows bashing, I just never managed to
> work with it

I've not had a lot of luck with Linux. I imagine this is merely due to
having a lot more experience with Windows.

FWIW, I used to hate Windows too - AmigaOS is far nicer. ;-)

But now we're drifting wildly off-topic. For better or worse, Windows is
the most popular desktop OS currently.

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
123