Music / MIDI help

I'm a little lost in the bewildering array of music packages for Haskell, and need some help. I'm looking to recreate one of my algorithmic music compositions from the 1980s. I can easily code the logic in Haskell. I'm looking for a the right set of packages and SW so that I can: a) generate short sequences and play them immediately, preferrably in ghci, -- but 'runHaskell Foo.hs | barPlayer' would be acceptable 2) generate MIDI files I'm on OS X. So far what I've found is: Haskore, the midi package, and the jack package - and then I'd need some MIDI software synth for the Mac, and Jack based patcher.... Or perhaps I want SuperCollider, and the Haskell bindings - but that seems rather low level for my needs here (I don't really need to patch together my instruments, and I don't want to have re-write the whole timing framework from scratch.) So - What's a quick easy path here? - Mark

For midi you can try my packages: temporal-music-notation and
temporal-music-notation-demo (and maybe temporal-music-notation-western).
It looks like Haskore but different inside. It tries to be clear, minimal,
more efficient and documented (as far as my english goes though).
Anton
2013/7/10 Mark Lentczner
I'm a little lost in the bewildering array of music packages for Haskell, and need some help.
I'm looking to recreate one of my algorithmic music compositions from the 1980s. I can easily code the logic in Haskell.
I'm looking for a the right set of packages and SW so that I can: a) generate short sequences and play them immediately, preferrably in ghci, -- but 'runHaskell Foo.hs | barPlayer' would be acceptable 2) generate MIDI files
I'm on OS X.
So far what I've found is: Haskore, the midi package, and the jack package - and then I'd need some MIDI software synth for the Mac, and Jack based patcher.... Or perhaps I want SuperCollider, and the Haskell bindings - but that seems rather low level for my needs here (I don't really need to patch together my instruments, and I don't want to have re-write the whole timing framework from scratch.)
So - What's a quick easy path here?
- Mark
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Maybe Euterpea? http://haskell.cs.yale.edu/euterpea/download/ On Wed, Jul 10, 2013 at 08:20:08AM -0700, Mark Lentczner wrote:
I'm a little lost in the bewildering array of music packages for Haskell, and need some help.
I'm looking to recreate one of my algorithmic music compositions from the 1980s. I can easily code the logic in Haskell.
I'm looking for a the right set of packages and SW so that I can: a) generate short sequences and play them immediately, preferrably in ghci, -- but 'runHaskell Foo.hs | barPlayer' would be acceptable 2) generate MIDI files
I'm on OS X.
So far what I've found is: Haskore, the midi package, and the jack package - and then I'd need some MIDI software synth for the Mac, and Jack based patcher.... Or perhaps I want SuperCollider, and the Haskell bindings - but that seems rather low level for my needs here (I don't really need to patch together my instruments, and I don't want to have re-write the whole timing framework from scratch.)
So - What's a quick easy path here?
- Mark
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Mark Lentczner wrote:
I'm a little lost in the bewildering array of music packages for Haskell, and need some help.
I'm looking to recreate one of my algorithmic music compositions from the 1980s. I can easily code the logic in Haskell.
I'm looking for a the right set of packages and SW so that I can: a) generate short sequences and play them immediately, preferrably in ghci, -- but 'runHaskell Foo.hs | barPlayer' would be acceptable 2) generate MIDI files
I'm on OS X.
So far what I've found is: Haskore, the midi package, and the jack package - and then I'd need some MIDI software synth for the Mac, and Jack based patcher.... Or perhaps I want SuperCollider, and the Haskell bindings - but that seems rather low level for my needs here (I don't really need to patch together my instruments, and I don't want to have re-write the whole timing framework from scratch.)
So - What's a quick easy path here?
I'm also on MacOS X and had the same problem. For immediate sound output, I liked Rohan Drape's [SuperCollider bindings][hsc3], though I started to write my [own library][tomato-rubato] that abstracts away from the internals and presents a simpler interface. Maybe you can find something interesting here. It's currently dormant because the feedback loop in GHCi is still too long for my taste, though. I found Henning Thielemann's [midi][] package very useful for reading MIDI files, I guess it's equally useful for writing MIDI files. [hsc3]: http://hackage.haskell.org/package/hsc3 [midi]: http://hackage.haskell.org/package/midi [tomato-rubato]: https://github.com/HeinrichApfelmus/tomato-rubato Best regards, Heinrich Apfelmus -- http://apfelmus.nfshost.com
participants (4)
-
Anton Kholomiov
-
Brent Yorgey
-
Heinrich Apfelmus
-
Mark Lentczner