Skip to content

amonwong/electro-sounds-2-201516

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

Electro Sounds

Semester 2

This semester will be about generating images using code and algorithms. You will make use of and create your own generative systems with the means of a range of coding techniques and good ideas. To get started, a quote by Philip Galanter from his paper What is Generative Art?

Generative art refers to any art practice where the artist uses a system, such as a set of natural language rules, a computer program, a machine, or other procedural invention, which is set into motion with some degree of autonomy contributing to or resulting in a completed work of art.

P. Galanter, "What is Generative Art? Complexity theory as a context for art theory," in International Conference on Generative Art, Milan, Italy, 2003.

Sessions

There will be 5 sessions this semester. Each week we will meet for 3 hours, optional and upon appointment you can book individual tutorials (up to 30 minutes) with me.

Session 1: Getting Started

Week 1-4. Getting to know the Processing Environment. During this session you will learn a range of programming principles that will help you to create generative visual through coding.

  • What is an API?
  • Where to find documentation?
  • How to save and organize your documents?

To successfully complete all required assignments, the following concepts must be understood and practiced. You will find an example for each item inside the sessions folder.

  • Blocks, Functions, Scope
  • Variables and Data Structures
  • Loops
  • Conditionals
  • Objects
  • Various drawing techniques
    • Shape primitives
    • Lines and Curves
    • Custom shapes
    • Transformations
    • Pixel manipulation
  • Shaders
    • what is a shader?
    • a simple shader example, a filter.
  • Libraries
    • how to extend Processing with Libraries
      • controlP5
      • midimapper
      • VideoExport

Assignment A due in week 4.

Session 2: From Sketch to Video

Week 5-6 In this session you will familiarize yourself with different recording methods to capture the visual output of your Processing sketches.

  • saveFrame, how to use Processing's saveFrame function and the MovieMaker Tool
  • Syphon, how to use Syphon recorder to record Processing sketches
  • ffmpeg, how to use ffmpeg with the VideoExport library to record a Processing sketch

Session 3: Algorithms and Aesthetics

Week 6-9. This session will explore the beauty of algorithms/

  • Linear, Random and Noise
    • random walk
    • perlin and simplex noise
  • Data Driven
  • Particles and Complexity
  • Glitch

Furthermore we will look into the characteristics and strategies of computation and generative aesthetics that have been widely used within the context of generative art.

Assignment B due in week 9.

Session 4: From Input to Output

Week 10-11. In this session we will look at different forms of input and how they lead to output through evaluating and translating incoming data. We will briefly look at the MIDI and OSC protocol and will look at the Duration app, a timeline editor for creative coding, which can be used to synchronize tracks with Processing generated visuals. Duration introduction

Assignment C due week 11

Session 5: Open Session

Week 10-15.

  • work on your Assignment D project, class attendance is required.
  • individual tutorials upon appointment

Assignment D due Monday of week 16

Assignments

This semester you will learn about generative systems and processes, the following 4 assignments will help you exercise and practice various coding techniques covered in class.

  1. Assignment A Create a series of 3 sketches that resemble one work of each of the following artists: Frieder Nake, Sol Lewitt, Ryoji Ikeda. (naming convention, sketch size is 960x540, include image in data folder)
  2. Assignment B Use a selection of your current Processing sketches that use code to animate abstract, geometric visuals. add your own sound track that supports the visuals and create a 15 seconds long generative video. (sketch size is 960x540, sketch archiving, quicktime format and quality, 1x vimeo format, 1x instagram format)
  3. Assignment C Choose one Processing project from the Processing Exhibition that relates to the concept of Generative Art (see References to get to know more about Generative Art) and describe in 150 words why you like the project. Then describe in your own words (150) how the project works technically. Create a Processing sketch that visually-animated illustrates one aspect of the project you have chosen. (use markdown format and export your document as pdf, properly structure your text, include 2 project images and 1 sketch still, include references)
  4. Assignment D Create a 90-120 seconds music video using your own sound track and a range of coding techniques you have learned so far. Combine at least one of each of the following categories: A algorithmic, generative, interactive, geometric B camera reactive, audio reactive, shaders, C midi, live performance, projection mapping, animated-gifs D mellow, calm, suspense, frantic (sketch format is 1920x1080, sketch and process archived on github, process documentation, project description (elaborate on the techniques used, give examples), title)

All assignments accumulate to one final project. All assignments must be documented on your blog.

Class Preparation

What you need to prepare for the following week, or just to recap what has happened the current week.

Week Prepare for the following week
Week 1 Processing tutorial, Overview of topics by Daniel Shiffman
Review and read through Processing's Tutorials website
Getting Started with Processing
Transformations
Week 2 Objects A brief introduction into Object-oriented programming
ArrayList, a data structure, a collections of variables
Week 3 Submission of Assignment A
Week 8 Submission of Assignment B
Week 10 Submission of Assignment C
Week 15 Submission of Assignment D

Keywords

  • Generative Art
  • Generative Process
  • Data, Parameters
  • Input, Process, Output
  • Systems
  • Code
  • Creative Coding
  • Computational
  • Algorithm
  • Glitch

Resources

Frameworks

In this class we will focus on Processing as our learning tool. Processing comes in various flavors, the most prominent and the original version is written in Java hence the java like syntax, and you can make use of existing Java libraries and code. P5js is the Javascript sister project that allows you to create Processing sketches that can run inside a browser. This project is relatively young and currently supports 2D visuals and only to a certain extend 3D graphics. The syntax is slightly different from the Java version but similar in vocabulary.

Other frameworks for creative coding include

Readings

  • [What is Generative Art] 1, Philip Galanter
  • [The Jacob’s Ladder of coding] 2, Karsten Schmidt
  • [Closed Systems: Generative Art and Software Abstraction] 3, Marius Watz
  • [Ten Questions concerning Generative Computer Art] 4
  • [Vehicles] 5, Valentino Braitenberg

Getting Started

Talks

Inspiration

Sol Lewitt Casey Reas Generator X
Frider Nake Marius Watz Data is Nature
Manfred Mohr Karsten Schmidt Creative Applications
Vera Molnar Memo Akten Generative Design
Carsten Nicolai Joanie Lemercier Triangulation
turux lia Holo Magazine
dextro Reza Ali onformative
Paul Prudence patatap visual complexity

Misc

  • To keep your code organized and in one place, consider to use Github (create an account for free) to host your code repositories. Github offers a GUI desktop app that makes it very easy to create and update repositories. Please read through
    • Getting your project on Github using the github Desktop application
    • Github's Clone to Desktop shows you how to clone a repository to your local desktop using Github's Desktop application. This is very useful to for example keep track of the class repository which will continuously be updated as we proceed.
  • Some exercises require you to write short texts, do consider to write these texts in markdown, a very simple formatting syntax for writing text inside simple text editors like TextEdit, Sublime Text, or Atom. On osx add a markdown quickview (for example qlmarkdown but there are more out there) to see your document rendered in markdown when quick-viewing it.
  • Some insightful tips about being a beginner, intermediate or advanced programmer: A guide on how to be a programmer

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 66.8%
  • Processing 18.9%
  • Java 10.8%
  • CSS 2.3%
  • Other 1.2%