[Haskell-cafe] ANN: Haskore tutorial (programming music using Haskell)

jinjing nfjinjing at gmail.com
Thu Aug 7 14:41:29 EDT 2008


Thanks Henk-Jan van Tuyl,

It's been updated/changed accordingly.

jinjing

On Fri, Aug 8, 2008 at 1:42 AM, Henk-Jan van Tuyl <hjgtuyl at chello.nl> wrote:
> On Tue, 05 Aug 2008 10:59:10 +0200, jinjing <nfjinjing at gmail.com> wrote:
>
>> Hi there,
>>
>> Here's the project link:
>>
>> http://github.com/nfjinjing/haskore-guide/tree/master/doc/index.markdown
>>
>> I found Haskore pretty fun :) so I'm documenting it while learning it.
>> Please don't hesitate to give suggestions / corrections.
>>
>
>
> About the installation section: I think beginners will be grateful if you
> write down the full "darcs get" commands and explain the --global parameter
> of the "cabal install" command.
>
> There are two more packages that need to be downloaded:
>  - package hosc depends on package binary
>  - package haskore depends on package unix
>
> Windows users will be grateful if you tell them that Haskore cannot be built
> on Windows, because of the dependance on the unix package. It would have
> saved me a lot of time if I knew that beforehand.
>
>
>
> For the people interested in porting Haskore to Windows I'll describe what I
> have done so far:
>
> src\Haskore\Basic\Timer\Posix.hs:
> System.Posix.Unistd.usleep replaced by Control.Concurrent.threadDelay
> (of course, the name of the file is not correct after this; better put the
> timer function in another file)
>
>
> File Haskore.cabal:
> removed "unix" from section "Build-depends"
>
> Added to cabal file:
>   if os(windows)
>        cpp-options: -DWIN32
>
> Added to src\Haskore\Interface\CSound\Play.lhs:
>>
>> {-# OPTIONS -cpp #-}
>
> and around the signal handling part and the line
>>
>> import qualified System.Posix.Signals as Signals
>
> :
>
> #ifndef WIN32
> ...
> #endif
>
>
> Same treatment for src/Haskore/Interface/MIDI/Play.lhs
>
> Finally I discovered that in the file
>  src/Haskore/Interface/SuperCollider/Channel/Env.hs
> environment variables are set and that there is no setEnv or putEnv for
> Windows.
> GCC knows the function setenv(), but that function does not work as expected
> (on Windows); once the program terminates, the created environment variable
> has dissapeared. After I discovered that, I decided it would be too much yak
> shaving for me to go on. To solve this problem, on would either create an
> improved setenv() function, or redesign Haskore to pass the information some
> other way (and of course the program(s) that read this information).
>
>
> --
> Met vriendelijke groet,
> Henk-Jan van Tuyl
>
>
> --
> http://functor.bamikanarie.com
> http://Van.Tuyl.eu/
> --
>
>


More information about the Haskell-Cafe mailing list