In the last assignment we learned that there are functions in JavaScript that can be used to create compositions that appear differently each time we run our code, despite the code itself remaining the same. This is what's referred to as "generative art" or "algorithmic compositions", works of art where the aesthetic details result partly from the creative decisions of the artist/coder and in part by "decisions" made by the computer. Does this mean the computer is less of a tool or and more of a collaborator? Can computers be creative? In these next tutorials we'll be exploring the relationship between art and algorithms, artists and computers, in a bit more depth.
Watch the video above and take a look at the notes I reference in that video. Then watch the two videos below where I explain how to create a visual algorithmic composition using the popular JavaScript creative coding library p5.js.
As I mention in the introductory lecture video, those interested in learning the native Canvas API in the browser (optional deeper dive) can find tutorials on the Mozilla Developer Network (if you do take that deep dive and have any questions regarding the API send me an email). MDN also links to "Canvas Deep Dive" should you want to dive even deeper.
If you'd like to dive deeper into other algorithmic compositional approaches checkout the playlist of the JavaScript (p5.js) version of Daniel Shiffman's Nature of Code book.
algorithmic music
Again, it [the Analytical Engine] might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations, and which should be also susceptible of adaptations to the action of the operating notation and mechanism of the engine . . . Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent.
Ada Lovelace (from her notes on the Analytical Engine)
Building on the concepts we covered in the Form + Code lesson above, we'll move onto the videos and interactive notes for the Web Audio API, where we'll explore algorithmic musical compositions and discuss the very nature of creativity, before completing the next assignment on algorithmic music.