Show HN: Music for Geeks and Nerds
musicforgeeksandnerds.com
musicforgeeksandnerds.com
The Haskell School of Music — From Signals to Symphonies, by Paul Hudak (pdf available at http://www.cs.yale.edu/homes/hudak/Papers/HSoM.pdf).
Music: a Mathematical Offering, by David J. Benson (pdf available at http://homepages.abdn.ac.uk/mth192/pages/html/music.pdf)
I know Ableton Live has python scripting support built in. I wonder how hard it'd be to integrate all this into composer tools in the DAW
Yes, the controllers are configured using precompiled python scripts and 3rd party users have been decompiling them and building their own bindings based on that. But liveapi.org / http://code.google.com/p/liveapi/ has been down for a while and was built for version 6.0.7 (current is version 8).
Currently official way to access Ableton API seems to be MAX [1] but I have no experience with that. At first sight it didn't seem to have any python reference. I could be wrong.
[1] http://cycling74.com/docs/max5/refpages/m4l-ref/m4l_live_api...
Music during 'Notch live coding 0x10c': http://news.ycombinator.com/item?id=3811332
Found somewhere in there, a 290GB 'Essential Mix' archive: http://soundcloud.com/das-boy/sets/essential-mix
I few years back, I wrote Ruby and C wrappers to communicate with Live via OSC: https://github.com/tassock/ruby_4_live, https://github.com/tassock/ofxAbleton
I waited a couple minutes and clicked the download link again and it worked. Wanted to let someone know, since the site doesn't appear to have any contact information.
I'm asking this because http://musicforgeeksandnerds.com/resources.html lists csound as one of the resources.
Any ideas how pyknon API relates to csound API?
I was working with some programmatic sound generation and csound built-in python interpreter seemed to be one of the most advanced free solutions to get some python-based music generated. Csound is free for academic and research. Commercial license requires contacting MIT. But yes, csound itself is not python...
I even didn't find anything close to csound in terms of features, instruments available and community.
[1] https://s3.amazonaws.com/musicforgeeksandnerds.com/code.zip
[2] https://github.com/kroger/pyknon
[3] http://www.csounds.com/journal/issue14/realtimeCsoundPython....
EDIT: I just noticed that pyknon is generating a MIDI, not an audiofile. Pyknon is for building midi scores and is not meant for sound synthesis.
I excelled in music. Is there anything in particular in programming that you teach differently so musicians can understand it better? If so, do you have any ebooks, PDFs or other resources of this? Just wondering because I've only recently taken up programming and I'm looking to pull information from various resources. Thank you!
Usually I start with a SICP-like [1] approach, but focused on musical, instead of mathematical problems. I show them some basics of the language and ask them to implement musical operations they already know, such as transposition and inversion. Then, I show how they can simplify their code.
If you want to learn programming, I suggest SICP [1]. The videos [2] are also very good.
[1] http://mitpress.mit.edu/sicp/
[2] http://ocw.mit.edu/courses/electrical-engineering-and-comput...
Thank you for taking the time for this.
retrogradation(transposition(inversion([0, 4, 7])))retrogradation(transposition(inversion([0, 4, 7])))
also explain the relationship between each part of this function as retrogradation does with transposition and inversion? E.g., if you start with a triad, transpose it to another key, and then create an inverted chord out of it? Or were the musical terms chosen merely to indicate that they can be a "subset" of a particular general idea ("chord" or "function"?)?
But is the book suitable for someone seeking to acquire a foundational knowledge of music theory, or does it require some level of pre-existing understanding?
I ask because most of the material on the page refers to learning "more" about music, and the sample material does seem to assume some background knowledge in musical notation, etc.
If this isn't suitable as an entry-level primer on music theory, can anyone recommend some other works to read first?
Thank you for the awesome work! I'll try and leave feedback on the subreddit once I get started.
done. :)
Also with (http://libpd.cc/) you can embed your Pd code almost anywhere!
I'm using Pd/libpd for an audio-focused mobile project --- so far it's a great architecture, perfect separation of concerns, keeps the audio guts cross-platform. Plus everything is permissively licensed.
Supercollider seems to have a lot of traction with the improvisational community, folks who do "live coding", i.e. hacking at curly-bracket syntax in a performance setting. But it's GPL and not easily embeddable in mobile devices afaik ---
P.S. Custom python scripts against Ableton work great if you are using a hardware controller that supports the Framework classes. You can access pretty much the entire Max for Live object model, via python. It's definitely an unsupported back door though.
Here's a tutorial: http://remotescripts.blogspot.com/2010_03_01_archive.html
Some others you have to pay for, but worth it IMHO:
http://www.amazon.com/Music-Probability-David-Temperley/dp/0...
also Prof Cope from UCSC:
That said, where do we go from here? Many of the challenges in writing contemporary music are in fact notational challenges. We have a system of music notation that developed largely alongside the musical styles of the baroque and early classical eras, which tends to emphasize discrete pitches and a "divisional" model of time. (That is, the only allowable note lengths are those that can be expressed roughly as multiples of powers of 2.)
This book seems like a great way to get your toes wet, but what is the geek or nerd to do when their compositional ideas begin to butt up against what is possible within western notation and, indeed, pyknon?
If you want to compose for instruments, you may want to learn more about what contemporary classical composers are doing (or have done) [1] to address the notational challenges.
On the other hand, if you want to have completely freedom, computer generated music [2] can give you that, specially if you use something like Csound, Supercollider [3], Chuck [4], or PD [5].
[1] http://en.wikipedia.org/wiki/Contemporary_classical_music
[2] http://en.wikipedia.org/wiki/Computer_music#Computer-generat...
[3] http://supercollider.sourceforge.net
Is there anything practical I can expect to use as a result of reading it and going through the exercises?
Note - It's also available on Amazon priced at 9.99, though that would be DRM encumbered and (probably?) not include the sound samples.
The kindle version at amazon shouldn't have DRM (I hate DRM).
Just keep in mind that some (older) kindle readers may not display some formatting properly, such as code blocks and tables (gasp!) that's why I sell a package with 3 formats. It looks good on my kindle3, but your mileage may very.
Unfortunately this is a limitation of the format (modi) and readers (it should get better with the kindle format 8).
I bought some programming books from Amazon for the kindle that I end up buying again from the publisher just to have a pdf copy and be able to read the source code better. It's still convenient to have some programming books on the kindle, though.
I'm interested in buying it, and I'm pretty sure my kindle show be able to handle the format. That said, I think I'd rather buy from your website than from Amazon (assuming more of the money ends up in your pocket) - but not at a markup of 50%!
Edit: Forgot to mention, I spent a weekend writing a bunch of similar music manipulation tools in clojure if anybody is interested in checking it out: https://github.com/dmansen/composition-assistant
@kroger Will this help?
I'd love to see some more advanced topics covered in much the same way!
I'm currently Yale's free online course, Listening to Music. Should be a great complement.