The Code of Music +

In this course, students learn how to create musical systems –pieces that incorporate randomness, interact with their listeners, or evolve over time, in the browser.

We will start by creating audiovisual instruments and sample-based interactive songs, as students review their p5.js skills and are introduced to the Tone.js music library. Then, we will turn to a structured exploration of the elements of music, focusing on rhythm, melody, timbre, and harmony. For each, we will hold listening sessions, represent and manipulate the element in code, and interact with it via a range of existing interfaces. Students will explore the possibilities that computation and interactivity open up by designing and implementing a series of interactive studies.

The last few weeks of the semester will be dedicated to introducing algorithmic composition techniques such as Markov Chains and Neural Networks. During this time, students will also develop their final project: an interactive/generative musical piece that builds on their previous classwork.

Throughout the course, students are encouraged to bring in their musical tastes and interests into the classroom. This class is a good fit for students who are interested in:
– Creating interactive music pieces and digital instruments.
– Deepening their understanding of how music works. All musically-curious students are welcome: previous experience with music and audio will be useful, but is not required.
– Continuing to develop coding skills. Creative Coding or equivalent programming experience is required.

About Luisa Hors: https://www.luisapereira.net/

Prerequisite: Creative Computing (IMNY-UT 101)

Networked Media +

The network is a fundamental medium for interactivity. It makes possible our interaction with machines, data, and, most importantly, other people. Though the base interaction it supports is simple, a client sends a request to a server, which replies; an incredible variety of systems can be and have been built on top of it. An equally impressive body of media theory has also arisen around its use.

This hybrid theory and technology course will be 50% project driven technical work and 50% theory and discussion. The technical work will utilize JavaScript as both a client and server side programming language to build creative systems on the web. Technical topics will include server and client web frameworks, such as Express, HTML, CSS, templating, and databases. The theory portion of the course will include reading and discussion of past and current media theory texts that relate to the networks of today.

**** it is HIGHLY recommended you take Front End Web Development (or have equivalent front end web development experience) to get the most out of this course. We will be going over fundamentals of HTML/CSS but it would be useful to have prior knowledge ***

Live Web (Topics in Media Art) +

The web is an amazing platform for asynchronous communication such as email, social media posts and audio/video sharing. Over the last decade with faster connections, powerful computers, always on and connected mobile devices, synchronous or live communications have become more viable. Streaming media, audio and video conferencing and realtime chat give us the ability to create new forms of live interactive experiences for participants.

In this course, we’ll focus on the types of content and interaction that can be supported through web based and live interactive technologies as well as explore new concepts around participation. Specifically, we’ll look at new and emerging platforms on the web such as HTML5, WebSockets and WebRTC using p5.js, JavaScript and Node.js.

Introduction to Machine Learning for the Arts +

Prerequisite: Creative Computing (IMNY-UT 101) OR equivalent coursework.

An introductory course designed to provide students with hands-on experience developing creative coding projects with machine learning. The history, theory, and application of machine learning algorithms and related datasets are explored in a laboratory context of experimentation and discussion. Examples and exercises will be demonstrated in JavaScript using the p5.js, ml5.js, and TensorFlow.js libraries. In addition, students will learn to work with open source pre-trained models in the cloud using Runway. Principles of data collection and ethics are introduced. Weekly assignments, team and independent projects, and project reports are required.

Topics in Computation and Data: Nature of Code +

Can we capture the unpredictable evolutionary and emergent properties of nature in software? Can understanding the mathematical principles behind our physical world help us to create digital worlds? This class focuses on the programming strategies and techniques behind computer simulations of natural systems. We explore topics ranging from basic mathematics and physics concepts to more advanced simulations of complex systems. Subjects covered include physics simulation, trigonometry, self-organization, genetic algorithms, and neural networks. Examples are demonstrated in JavaScript using p5.js.

Prerequisites: Creative Computing

Instructor Daniel Shiffman Website: https://natureofcode.com/