4 ms·
blatant 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,
by tessierashpool 13y ago
blatant 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 agoYou don't need to know very much music theory to read this book. You do need to know some, though. If you don't know any music theory, like what chords and scales and rhythms are, it won't make much sense. That said, the book isn't worth reading.
- tessierashpool 13y agoI actually helped leanpub get going, way back when, with some UX advice and stuff like that, but I have my own little system which I prefer. might be a control freak thing. re music theory, I think I could basically write your dream book, with some caveats. my own grasp of music theory doesn't extend as far as Mozart or Miles Davis. I can say some things about Bach, thanks to brilliant work by Chris Ford, Douglas Hofstadter, and David Cope, but if I wrote a "ground up" type of thing, I think I could get you far enough to understand the majority of popular music today, but not into the intellectual stratosphere of formal art musics like jazz or modern "classical." Likewise I can't say a ton about non-Western musical forms. I can deliver a ton of specifics on electronic dance music, so that's probably what I'd do. But, short answer is, yeah, I could sort of write that. I have to admit that it didn't totally occur to me that a book like that would be interesting. I was mostly thinking about the AI aspect (writing code which writes music) and a straightforward user's guide to Overtone (because it is pretty complicated in places). But I think what you're talking about is the way to go, or at least a good place to begin.
- goldfeld 13y agoDefinitely a beginner's thing. The hardest part when coming upon a subject is learning enough so you can get around and pick and choose what to study next. I think this niche is still starved for good starting material, so if you got the basics of music theory along with the basics of Overtone, well that would surpass my expectations of the dream book I'm looking for in this area--mainly because Overtone seems to have momentum and appears to be the right technology on which to place my bets at this point (I have considered ChucK and Impromptu before but never took the plunge.) Also a great excuse to learn Clojure. Regarding your publishing system, is it something you can point me towards?