Assignments
The idea becomes a machine that makes the art.
Sol LeWitt
For homework each week there will be recommended sketches, viewings and or readings aimed at supplementing, reviewing and/or putting into practice concepts covered in class. We will often discuss the homework at the start of the next class each week. These are for your own benefit, the only work which you will be submitting to canvas for evaluation are the following two official assignments:
1: web-based musical instrument
For this assignment, students will design and develop a web-based musical instrument. The instrument should allow users to interact with it and generate sounds in a meaningful way. This should not be a web-based version of an existing instrument (like a guitar or piano) but rather something more experimental which embraces the creative possibilities of the Web. Students should explore different interfaces and consider the use of sensors or controllers to enhance the user experience. The final deliverable will be a functional web-based instrument that can be shared online, along with a brief written reflection on the creative process and technical challenges.
2: algorithmic composition
For this assignment, students will create an algorithmic system that generates musical compositions. This should not be digital/coded version of a pre-existing song or melody and ideally not something that could be easily written as a classical score, rather it should be a composition that leverages the generative potential of the Web. The final deliverable will be a functional algorithm that generates unique and interesting musical compositions, along with a brief written reflection on the creative process and technical challenges.
Publishing your work on the Web
These two assignments should be published on the web, and turned in on canvas by submitting the project's URL (published web address).
If you have a preferred workflow you are free to work in any code editor and publish to any server, so long as the work can be submitted on canvas via a publically available URL. This can mean hosting on your own server (or shared host), or if you're familiar with GitHub, you can create a repository for your project and use GitHub's "Pages" service to serve your project on the Web. This is the same service netnet uses, which means you could either open your project in netnet and follow the steps below or setup GitHub Pages directly yourself.
If you do not have a preferred code editor and workflow, I suggest using netnet with the following workflow:
- First make sure you've created a free GitHub account, we'll be using this account to store our code as well as publish our work on the web.
- Then, on netnet click on netnet's face to open up the "Functions Menu" and click "Log In" to connect your GitHub account to netnet (you only need to do this once)
- Once netnet is connected to your GitHub account you can create a new project by pressing and choosing the create new project option. Once you're working on a project pressing again will let you can save your progress and update your project
- Alternatively, if you'd like to open a previously saved project you can do so by pressing
- When you're ready to publish your saved project on the open web, click on netnet's face to search for "publish project" or open up the "Functions Menu" and choose "publishProject()" under the "my project" section.
Once a project is plublished netnet will show you it's publically available URL, though it does usually take a couple of minutes for the URL to work. From now on, any time you save your progress the published site will also update (usually takes a couple of minutes) but the web address itself never changes, only the contents of your website.