Hacker News new | past | comments | ask | show | jobs | submit login
The Haskell School of Music – From Signals to Symphonies (yale.edu)
119 points by infodroid on May 4, 2015 | hide | past | favorite | 21 comments



While this book is an interesting and fairly comprehensive book on functional programming and music theory, I have the impression that the idea of algorithmic composition as expressed in this book is out of fashion now. Algorithmic composition was big in contemporary, "serious" music in the last part of the 20th century, but my contemporary composer friends seem to have left their Markov chains and Lisp algorithms and are now more into interactive stuff, with Processing and Arduino being a couple of the technologies du jour. It's not a clear-cut distinction, you can of course use Haskell and FP for interactive music creation and there will be various degrees of algorithmic composing in an interactive, computer based performance. But the possibilities of pure, computer generated music have largely been explored, decomposed down to sample-level granularity and recomposed using all thinkable sound generating algorithms. The cultural impact has been somewhere between weak and zero. People still prefer tonal music composed by humans.

I believe algorithmic composition has suffered the same fate as symbolic natural language processing. They are both interesting from an academic point of view, but have failed to produce the wanted end results. Computers have not given us new musical dimensions that anyone outside an academic, postmodernist following care to listen to. The hope (or threat, depending of how you view it) may lie in statistical approaches. Thorough statistical analyses of existing compositions and recomposition based on that, parallelling what Google translate does with natural language processing. As far as I know, there are companies and researchers working on that, so don't throw away those Markov chains yet.


Algo-comp still has huge potential. The reason it's largely unexplored is because most computer music is really computer science music - trivial algos flapping around semi-randomly, producing trivial-sounding results.

Sound synthesis is largely a solved problem. Composition is just getting started. The problem is there are very few people who have deep insight into music and are capable of writing complex software.

Academics and engineers are often capable of the latter, but the former is a truly rare talent. So what you usually get is algos that work at the wireframe level, but lack anything that produces the musical equivalents of texture, lighting, depth of field, motion, and so on.


I'm unconvinced that current trends and artists imply a terrible "fate" for either algorithmic or symbolic language processing. People are still working on both, and there's lots of potential.

Functional representation of music theory is interesting from an educational perspective, for example, even if avant garde composers have moved on to other methods.

And by the way, isn't Band-in-a-Box still pretty widely used? It's certainly been a lot of fun for me in playing around with jazz improvisation.


I've just started working on a statistical approach to generate banjo arrangements in the style of Earl Scruggs, father of bluegrass banjo. Like you said, statistical analyses of existing compositions and recomposition based on that. The difficulty so far is data acquisition & prep - I'm entering & annotating transcriptions manually. A lot of work for something that's unlikely to succeed, but it's fun. If I get any results worth sharing, I'll put it on HN.


Even though there is still active development work on music composition applications in Lisp.

Recently a new commercial application has been published: OpusModus http://opusmodus.com . It's written in Clozure Common Lisp and a port to Windows is planned.

Symbolic Composer (LispWorks) still has new releases from time to time.

PWGL (LispWorks) is still developed.

OpenMusic now is based on LispWorks and has a Linux port.


And there's Overtone (http://overtone.github.io/), based on Clojure and SuperCollider.


Is there a book/documentation on how to do the stuff mentioned in the Haskell documentation using Overtone?


This seems amazing. It combines three things I've been meaning to learn for ages - Haskell, Music theory and Digital Music. THANK YOU so much for showing me this, OP.


To be honest, you should first know that three things before starting reading this book.


>The book also teaches functional programming in Haskell from scratch. It is suitable for use in the classroom to teach functional programming, computer music principles, or both.

Do you disagree with this statement? I haven't read the book, but this the opinion of the author, after all.


Sorry, I should've said "those two things". I started reading this book but I was put off by music theory. If one already knows music theory, I guess it should be fine to learn Haskell with it, but not the other-way.


Written by Paul Hudak, who recently passed away.


Yes and the book was never "officially" published. It's not clear whether Hudak would have considered it complete. There are two new chapters compared against an earlier announcement: http://haskell.cs.yale.edu/euterpea/haskell-school-of-music/

I'm looking forward to reading it. Thank you Paul.


Wow - as someone with a music degree that is currently transitioning from imperative programming to functional programming in Scala, this looks really fun.


As you're learning Scala you might enjoy this music composition library: https://github.com/underscoreio/compose

Blog post about it: http://underscore.io/blog/posts/2015/03/05/compositional-mus...

It's based on the ideas in the Haskell library, but much simpler.


Neat, a way to both learn Haskell and learn some basics of music theory. Fun stuff.


I'd tend to be skeptical that you can learn two difficult things at once. I can see this being useful if you know music theory and want to learn haskell; or, if you know haskell, you want to learn music theory!


What if you're mediocre at both!


I was hoping to see at least some discussion of temperaments [1], like Scala [2], but this appears to only support 12-tone equal temperament?

[1] http://en.wikipedia.org/wiki/Musical_temperament [2] http://www.huygens-fokker.org/scala/



Used the euterpea library in a class about computer music. Super fun, great way to learn haskell.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: