Online class, January 14th 2019 - February 4th 2019, School of Ma, Berlin
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



Randomness is all around is a class by Aarón Montoya-Moraga.

Randomness is all around was taught at School of Ma, in an online non-presential way, over 4 weeks, one three-hour class every week, between Monday January 14th 2019 and Monday February 4th 2019.


Code of conduct

This class is part of School of Ma, and will be ruled by their code of conduct.


Randomness is all around us and is what drives natural events such as the weather and dice-throwing. Randomness is behind noise, and noise is present in every sensor measurement, including our audiovisual perception of the world. Randomness is what makes vinyls sound different than digital audio and film look different than digital video. Randomness is the lack of pattern and or predictability in patterns.

Computers allows us to create mathematical models of randomness and incorporate to our art practice, rendering new exciting new generative and unpredictable artworks, like it has been done in genres such as aleatoric music and automatic drawing, and by artists like Lillian Schwartz, Max Hawkins and John Cage, and featured by institutions such as the Random Institute.

We will cover math for randomness and probabilities, programming with scripts, programming audio synthesis and manipulation, computer graphics, video manipulation, and web concepts.

Applicants from diverse backgrounds, with varied skillsets and interests are welcome.

Don't feel discouraged if you know nothing about any of these topics, if you can use a computer you will be able to follow and learn in every class.

If you are an expert in any of these topics, you will learn how to incorporate other disciplines to your practice.


Each class includes explanations of theory and concepts, and practical examples with software.

Students are encouraged to ask questions and branch out from the proposed timeline for class.

All the notes and code written is included on this GitHub repository, so that students can focus on following along the coding examples and not worry about taking notes or missing out.

There are also several links for further reading and studying.

All the contents of this repository will be updated during the duration of this class.

Materials for the class

The materials needed include:

  • A computer running either Linux, MacOS, or Windows. (No tablets)
  • Internet connection
  • Headphones

We will use free libre open source software, including:


Refer to the file to install the required free libre open source software we will use in this class.

All the material of this class is free, libre, open-source, and available on the web on a GitHub repository.

It is highly encouraged to use GitHub to share the work you do and the notes you take for this class. If you are not sure what GitHub is, here are some links:

I would love it if everyone would upload the code they write using GitHub to share it with all classmates but it is not mandatory, it is totally OK to not do it.

If you want to start using Git over GitHub, I suggest these resources:

Class videos

Week 1: Introduction to randomness for numbers and text with Python


  • Randomness
  • Randomness and computers
  • Uniform distribution
  • Normal/Gaussian distribution
  • Poisson distribution
  • Markov chains
  • Normalization of signals
  • Python for math and randomness
  • Randomness on the internet:
  • Randomness and text: Tracery for Python

Students introductions

Before starting the class, let's do short introductions 90 seconds timer:

  • Name?
  • Why did you take the class?
  • What are your expectations out of this class?
  • Background in programming?
  • Background in arts/design/music/stuff?

Week 1 notes

Week 1 assignment

Write a Python script that outputs random numbers in a creative way. Write a blog post about the way your Python script works, include your inspiration, your successes, your shortcomings, and failures. Include also your research links, and bibliography, and any doubts you have about randomness, Python, or anything we have seen so far.

Week 2: Introduction to randomness and sound with ChucK and Pure Data


  • Sound art and computer music
  • Human sound perception
  • ChucK
  • Pure Data environment
  • Oscillators
  • Noise
  • Sequencers
  • Sampling

Week 2 notes

Week 2 assignment

Create a sound art piece that uses randomness, using either ChucK or Pure Data.

Week 3: Introduction to randomness and computer graphics


Week 3 notes

Week 3 assignment

Create a visual art piece that uses randomness.

Week 4: Introduction to randomness and video manipulation


  • Human vision temporal sensitivity
  • Introduction to VidPy
  • Video format conversion
  • Frame rate manipulation
  • Stitching videos programmatically

Week 4 notes

Week 4 assignment

Create a video art piece that uses randomness.

Additional resources