6 ms·
The Haskell School of Music (2012) [pdf]
- thetwiceler 13y agoThis is by Paul Hudak, one of the creators of Haskell. I took one of his classes that corresponds with this book. This is how I was introduced to Haskell. Now I'm hooked on Haskell! The book is a truly excellent introduction to Haskell, and I suggest that anyone who is interested read it. The book goes into some interesting topics, including proofs by computation and induction, UIs and functional reactive programming, and arrows. And it elegantly explains some of the advantages of functional programming and the Haskell language. Just note that this book is a work in progress; he is always updating and modifying the book as he teaches the corresponding classes.
- rasur 13y agoThis looks an interesting way of learning Haskell, in a domain that is of personal interest. Thank you for posting, I look forwards to reading it.
- noloqy 13y agoSame here. I'm going to read this book and hope to learn more about functional programming and the Haskell language, while (hopefully) not being bothered with the kind of trivial examples that you commonly encounter in tutorials.
- jdn 13y agoIf you enjoy this, consider Hudak's "Haskell School of Expression" book. Very good book, very hands on. http://www.cs.yale.edu/homes/hudak/SOE/ http://www.cs.yale.edu/homes/hudak/SOE/
- zura 13y agoI shared same excitements as other folks here, but soon after I started reading, I discovered that it is very daunting unless you already know the music theory. This is not explicitly mentioned in the foreword. Actually, I was hoping to learn music theory with this book, along with deepening and refreshing my Haskell knowledge.
- deleted 13y ago[deleted]
- rdouble 13y agoIt's a very nerdified take on music theory which is only popular with "computer music" researchers at universities. It would be a poor way to learn music theory in the way that musicians think about it.
- Intermernet 13y agoI agree with you completely, but as someone who knows music theory the way musicians think about it, I find the "nerdified take on music history" to be a wonderfully refreshing view on the subject! I really find this book an insight into how to transpose one model into another. It could apply to so much more that music theory, it's just that the author has a predisposition to music and therefore uses it as the illustrative example.
- gtani 13y agoIt is demanding, you have to know/learn a lot of stuff: music composition, probability distributions, generative models (MCMC), DSP, MIDI, haskell. For haskell alone, I like Hutton's little green/yellow book, and the Stanford course notes http://www.cs.nott.ac.uk/~gmh/book.html http://www.cs.nott.ac.uk/~gmh/book.html http://www.scs.stanford.edu/11au-cs240h/ http://www.scs.stanford.edu/11au-cs240h/
- cgag 13y agoIs that book still worth checking out if you're read Learn You a Haskell or do they occupy the same sort of beginner niche? I'm almost done with that and was thinking I'd probably take a look at real world haskell next.
- gtani 13y agoHutton's and RWH are really good books, but haskell and GHC have moved a lot since they were published. Hutton uses hugs and doesn't discuss GHC extensions like OverlappingInstances and NoMonomorphismRestriction, which are pretty important, and RWH was written against 6.10, I believe. Since you can read RWH online, you should, but you should also check out the FPcomplete.com tutorials. Also Simon Thompson's 3rd edition Haskell book is good, probably the only thing I could call a gentle intro to haskell. also: http://shuklan.com/haskell/ http://shuklan.com/haskell/ __________ Finally, there's some ridiculous number of tutorials on the haskell wiki http://www.haskell.org/tutorial/ http://www.haskell.org/tutorial/ http://haskell.org/haskellwiki/Blow_your_mind http://haskell.org/haskellwiki/Blow_your_mind http://haskell.org/haskellwiki/Category:Tutorials http://haskell.org/haskellwiki/Category:Tutorials
- gtani 13y agosomewhat related: this paper describes the haskell innards of Chordify, a web service that annotates chord structures of songs from videos or sound clips http://ismir2012.ismir.net/event/papers/lbd2.pdf http://ismir2012.ismir.net/event/papers/lbd2.pdf http://chordify.net/pages/official-launch-of-chordify/ http://chordify.net/pages/official-launch-of-chordify/ ______________ The reason i picked up the book: I was thinking whether it was possible to annotate just intonation from equal temperament, but I think that's a limitation of MIDI that it can't do that. Also, eagerly awaiting §11.4, "Soundness and Completeness of Music Algebras".
- tessierashpool 13y agoI recently attended an academic workshop on algorithmic music in Common Lisp and wrote some relevant code in Clojure while there. A lot of people there had strong music theory backgrounds and were very interested in both alternate tunings and the "set theory" approach to pitch sets. The good news is that with Overtone (the Clojure interface to SuperCollider) you can specify individual pitches rather than MIDI note numbers. People at this workshop who wanted to work with pitch sets or unusual tunings had to resort to controlling the pitch bend programmatically, which, while it certainly works, involves a lot more effort and results in less elegant code.
- gtani 13y agoThx for info, I need to look at SuperCollider and chuck some day, I've heard a lot about both. Also, I didn't know there was any way to systemically describe just intonation. I'm one of those bubble children that hears wolf intervals all the time and can never get a guitar tuned. I got that from having piano and woodwind lessons simultaneously as a kid
- tessierashpool 13y agosorry, working with some sleep deprivation here. substitute "frequencies" for "pitches" in this sentence: The good news is that with Overtone (the Clojure interface to SuperCollider) you can specify individual pitches rather than MIDI note numbers. since you have access to the actual frequencies, you can build any arbitrary abstraction on top, including any tuning system known to humanity. (and since it's Clojure that abstraction can be unusually concise.)
- Schiphol 13y agoCan anyone share a non-scribd link?
- lelf 13y agoIt's there. Don't click on [scribd]
- tessierashpool 13y agoblatant self-promotion: I'm considering writing a book like this, as a product for sale, but using examples in Ruby, CoffeeScript, and Clojure (using Overtone, which is fantastic). background: I just quite recently went to a two-week workshop on this topic at the University of Santa Cruz: http://arts.ucsc.edu/programs/wacm http://arts.ucsc.edu/programs/wacm We were taught in Common Lisp but I did my projects in Clojure. The professors showed some amazing stuff, including very sophisticated harmonizers and counterpoint generators (e.g. Gradus Ad Parnassum in code, for those of you with a music theory background). I had the most hacker knowledge of anyone there, I think; most everyone else had a strong background in music but little or nothing in terms of code. I also built a video series on making music with CoffeeScript and JavaScript, in 2012, and a very effective breakbeat improviser in Ruby, way back in 2008. I'm not 100% satisfied with the video series, but you can see it at singrobots.com if you're curious, and I did a presentation on the breakbeat improviser which was very well-received: http://www.infoq.com/presentations/archaeopteryx-bowkett http://www.infoq.com/presentations/archaeopteryx-bowkett Kind of ancient history, though, so this next thing is more up to date. You can see a kind of rave-o-matic bassline improviser in Clojure, which is to say Clojure/Overtone code which cooks up original syncopated basslines, on GitHub: https://github.com/gilesbowkett/markov-bass-lines https://github.com/gilesbowkett/markov-bass-lines That's one of the things I wrote at this workshop. If you're interested in this stuff I HIGHLY recommend attending next year (if they continue to run it!). I might go back for a second round myself. It was a phenomenal experience. Anyway, to finish up that blatant self-promotion bit, if you're interested in a book like this, which you'd have to pay for, but which would give you examples in Clojure, Ruby, and JavaScript (and/or CoffeeScript) instead of Haskell, my email is gilesb@gmail.com.
- goldfeld 13y agoAs mentioned elsewhere in this thread, you seem to be expected to know a deal of music theory for this book. Are you considering a similar approach? If you explained music theory from the ground up using Clojure with Overtone, that'd be my dream book. Have you considered leanpub?
- rdouble 13y ago
- heifetz 13y agohttp://haskell.cs.yale.edu/?post_type=publication&p=112 http://haskell.cs.yale.edu/?post_type=publication&p=112 link to the latest revision of this book (2013)