Creative Coding and Software Design 2: Dataflow programming

Spring 2018

Instructor - Grigore Burloiu / moc.liamg|uiolrubg#moc.liamg|uiolrubg

Credits - 6 ECTS

Course Prerequisites

This class assumes a high degree of computer and media literacy, but not a high degree of programming ability. A logical, structured approach to solving creative problems is encouraged. Previous experience with visual or interpreted programming languages is a plus, but not required.

Course Description

This course builds on the programming experience gathered in the first semester, turning the focus to visual, interpreted (non-compiled) programming. We continue the exploration of event-driven, concurrent real-time processes, and how to design them into systems that implement various behaviours, user interfaces and graphical outputs. The results will be complete user-facing interactive applications, made possible by a swift prototyping and experimentation workflow.

Course Objectives

Students in this course will:

  • aquire a solid level of audio/video programming proficiency using Cycling’74 Max
  • gain conceptual and practical knowledge of human-computer interaction using Max
  • understand elements of control mapping, physical modelling, 3D graphics
  • complete an interactive creative coding project

Course Structure

This course will be comprised of 11 weekly classes, 1 final project proposal, and 1 final project. Additionally, there will be small weekly homework assignments, which we will go over and build upon in class. Homework assignments will often be supplemented by reading unless otherwise noted.

The grading breakdown is as follows:

  • Class attendance and participation (25%).
  • Weekly homework studies (15%): to be published on Github by the due date.
  • Final project proposal (10%): to be presented to class and approved.
  • Final project (50%): each project is individual, and can be any application showing creative skills and design clarity, as approved based on your proposal.

Readings

  • Electronic Music and Sound Design - Theory and Practice with Max/MSP, by Alessandro Cipriani and Maurizio Giri.
  • Multimedia Programming using Max/MSP and TouchDesigner, by Patrik Lechner.
  • Max Documentation. Link
  • MOOCs

https://www.kadenze.com/programs/generative-art-and-computational-creativity
https://www.kadenze.com/courses/programming-max-structuring-interactive-software-for-digital-arts-i
https://www.kadenze.com/courses/machine-learning-for-musicians-and-artists-iv

  • Guides

http://cycling74.com/wiki/index.php?title=20Objects_Curriculum_Overview
ftp://arts.ucsc.edu/pub/ems/MaxTutors/
http://www.nyu.edu/classes/bello/DCMS_files/2-MAX.pdf (older)
https://drive.google.com/file/d/0B97y8ubkbDHwVVZKaFFTMjMxb0E/view
http://sites.uci.edu/iap2015/links/
https://www.youtube.com/playlist?list=PLD45EDA6F67827497
https://www.youtube.com/user/PolloZombie666/
https://www.facebook.com/groups/maxmspjitter/
http://artmusictech.libsyn.com/


Class Schedule

This schedule is subject to change depending on the interests and pace of the class, etc. All code prepared for the class is available here.

Max Cheat Sheet

Week 1 (23.02): Introduction to visual programming and Max.

  • Slides
  • Reading: recap CC first semester.
  • Assignment (due before following class): Max Tutorials 1 - 5.

Week 2 (1.03): Different media types and Max. Good patching practices.

  • Slides
  • Assignment (due before following class): Max Tutorials 6 - 8.

Week 3 (8.03): Data mapping. Control interfaces.

Week 4 (15.03): Timing, sequencing and temporal form in Max. Algorithmic composition, probability and randomness.

  • Slides
  • Reading: Student choice
  • Assignment (due before following class): Create a generative sequence in Jitter.

Week 5 (22.03): Sensory input and physical computing: Arduino, sensors, and HCI.
Live & recorded video processing and analysis in Jitter.

  • Slides
  • Reading: Student choice
  • Assignment (due Week 7): Control a generative patch via sensors.

Week 6 (29.03) Guest lecture (Ion Aramă): Introduction to spatial design in Unreal Editor.

Week 7 (4.04) Network communication. Networked performance.

  • Slides
  • Reading: Student choice
  • Assignment (due before following class): prepare project proposals.

Week 8 (19.04) Project proposals.

Week 9 (26.04) Sensors, Arduino and Max. A case study: Nova Lab.
Elements of OpenGL in Jitter (//Unreal?). Physical models.

  • Slides
  • Assignment (due before following class): project first steps.

Week 10 (3.04) Max software encapsulation, abstractisation and presentation. JS in Max.

  • Slides
  • Assignment (due before following class): set up project structures.

Week 11 (10.04) Live. Max for Live. Instrument and effect devices. The Live API.

  • Slides
  • Assignment (due before following class): set up project timeline.

Week 12 (17.04) Interactivity design issues.

  • Slides
  • Assignment (due before following class): prepare project prototype for preview & discussion.

Week 13 Final project discussion.

Final: Final Project Presentations.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License