Sonic Pi Composition Lesson Plan #2: Scales and samples

Music makes everything have more emotional resonance.” –Chris Milk

Lesson Overview:

The aim of this lesson is for each student to create their own scale (ladder of notes) or tonal mood for their group’s chosen film. Composers Hans Zimmer (repetition and layering in film music) and Brian Eno (music systems or generative music) should be discussed in small groups and as a class. Students will also reflect on their project’s process and progress through giving short standups.

Download a PDF version of this lesson

Contents:

Introduction: What did we cover in the last lesson?

5 minutes

Activity 1: Write efficient code to ‘Time’ by Hans Zimmer from the film ‘Inception’

20 minutes

Activity 2: Create your own tonal mood

40 minutes

Activity 3: Listening and reflecting

20 minutes

Wrap-up Activity: Quiz and reflection

15 minutes

Learning Outcomes:

Key concepts

Sonic Pi syntax to be taught this lesson

Interdisciplinary Curriculum Links

Learning Outcomes

Computational Thinking

Programming

Music

(strands)

Music:

-tonality

-scale

-pentatonic

-octave

-melody

Programming:

-pattern recognition

-functions

-lists

-naming conventions

Activity #1

using note names e.g. :C4

Activity #2

sample

play [:A, :E, :D, :G] 

notes = (ring :E4, :Fs4, :B4, :Cs5, :D5, :Fs4, :E4, :Cs5, :B4, :Fs4, :D5, :Cs5)” 

using the .tick, .choose and .shuffle methods

Debugging, iteration, abstraction, making algorithms, patterns

Functions, loops, arguments,, data types (lists), methods, naming conventions

PK, DI, UC

Music:

-All students will recognise basic composition repetition/variation in ‘Time’ by Hans Zimmer

-All students will layer three sounds on top of one another

-All students will create their own scale to find a tonality that suits their chosen video

-All students will discuss the characteristics of generative or systems based music

Programming:

-All students make a musical algorithm that plays the chord sequence of Hans Zimmer’s ‘Time’ 

-All students will develop strategies to make an algorithm more efficient through using iteration (loops)

-All students will create and debug algorithms for a loop of a series of notes (scale) they have created

Introduction: What did we cover in Lesson #1 (5 minutes)

Activity Overview: Every lesson in this unit of work starts with refreshing knowledge and identifying gaps in understanding from the previous lesson.

Student Activity:

  1. For three minutes, students are to reflect on the code they saved at the end of the previous lesson
  2. The teacher should roam the room, quickly surveying the code produced and ask a sample of students about key music and programming concepts covered in the previous lesson
  3. If the teacher deems necessary, have a 2-3 minute discussion on identified concepts that need to be reinforced

Notes to the Teacher:

  • Reflection will begin each lesson in this unit and the teacher should try to get around to all groups every two lessons

Activity 1: Write efficient code to the chords of ‘Time’ by Hans Zimmer (20 minutes)

Activity Overview: Students will attempt to code the repeating chord sequence of ‘Time’ from the film Inception.

New Sonic Pi syntax to introduce in this activity (click for example code):

using note names e.g. “:C4”

Suggested Teacher Instruction Sequence:

  1. Discuss for 1 minute the quote of the day for this lesson and what it means: “Music makes everything have more emotional resonance.” –Chris Milk
  2. Listen to Time from Inception and ask students to identify as many instruments and repeating elements as they can
  3. Write answers up on the board
  4. If they haven’t already identified the repeating chord sequence underlying this composition, draw their attention to listen to it (chord sequence below)

Student Activity (10 minutes):

  1. Give the chords (below) to students and ask them to write efficient code so that it plays the chord sequence in approximately the correct time
  2. Discuss a few solutions as a class using various types of loops
  3. Discuss naming conventions for functions and stored information in Sonic Pi [video needed/info]

Chords to ‘Time’ from the film Inception:

Chord 1: A4, C5

Chord 2: E4, G5

Chord 3: G4, B4

Chord 4: D4, F#5

Chord 5: A4, C5 (repeat)

Chord 6: C4, B5

Chord 7: G4, B4 (repeat)

Chord 8: D4, F#5 (repeat)

Notes to the Teacher:

  • Time is just one of many potential examples of how repetition can be used in music. Because this unit of work is about making music for films, ‘Time’ is a good choice because it is cinematic and simple

  • Note that chords 5, 7, 8 are repeats of chords 1, 2 and 4. An advanced student might know how to code an efficient solution so that chords 5, 7 and 8 are only written once. However at this level, it is ok to repeat a few lines of code as necessary as long as they’re using loops to repeat the whole chord sequence

Activity 2: Create your own tonal mood and use audio samples (40 minutes)

Activity Overview: Students will create their own scale or ladder of notes to create a harmonic mood. While Sonic Pi has the most common scales already stored (major, minor, pentatonic, and many others), students should explore and discover a collection of notes (perhaps over more than one octave) to help create a personalised and novel harmonic bed for their project. Additionally, students should experiment with adding samples of audio over their pieces with the Sonic Pi command “sample”.

New Sonic Pi syntax to introduce in this activity (click for example code):

sample

play [:A, :E, :D, :G]

notes = (ring :E4, :Fs4, :B4, :Cs5, :D5, :Fs4, :E4, :Cs5, :B4, :Fs4, :D5, :Cs5)”

using the .tick, .choose and .shuffle methods 

Suggested Teacher Instruction Sequence:

  1. Reflect on the collection of notes Hans Zimmer used for inception; prompt What mood do these collection of notes bring to this piece?
  2. Play video example of pentatonics scale from around the world Howard Goodall on Pentatonic Music
  3. Demonstrate how to store notes in a list e.g. play [:A, :E, :D, :G] or “notes = (ring :E4, :Fs4, :B4, :Cs5, :D5, :Fs4, :E4, :Cs5, :B4, :Fs4, :D5, :Cs5)” and iterate through these in various ways using the .tick, .choose and .shuffle methods
  4. Listen to Brian Eno’s ‘Music for Airports’ at 18.12 and discuss the collection of notes used (F4, Ab4, C5, Dd5, Eb5, F5, Ab5). Note: there is a fantastic visualisation of Brina Eno’s music system of each note travelling at different speeds in this link under the subheading “Music for Airports” here: https://teropa.info/blog/2016/07/28/javascript-systems-music.html
  5. Explain that the musical system in Brian Eno’s piece was recorded with tape machines playing at different speeds. The same idea can be achieved easily in Sonic Pi through using different values for sleep within each loop
  6. Demonstrate use of the Sonic Pi command ‘sample’ for playing and manipulating audio samples of music to introduce ‘layering’ of sounds

Suggested links and resources to facilitate activities:


  • Brian Eno – Ambient 1: Music for Airports https://www.youtube.com/watch?v=vNwYtllyt3Q&t=1100s → you can code the same music system in Sonic Pi using the same notes (F4, Ab4, C5, Dd5, Eb5, F5, Ab5).  The musical system in Brian Eno’s piece was recorded with tape machines playing at different speeds. The same idea can be achieved easily in Sonic Pi through using different values for sleep within each loop



Student Activity (20 minutes):

  1. Students make up their own scale to give a desired mood which can be more than one octave → emphasise that students should primarily consider the mood they want to bring out in their chosen film. Music students who know about traditional music scales should avoid using this knowledge and use their intuition to find what they think sounds appropriate
  2. Students are to explore samples in Sonic Pi and experiment using them in their music
  3. Students should aim to get at-least three sounds layered on-top of one another by the end of the lesson

Notes to the Teacher:

  • The teacher could inform students that the overlapping of single notes is how modern Western harmony started → in churches, the natural reverberation and would cause sung notes of Gregorian chants to overlap and dovetail resulting in harmonic consonance and dissonance; composers eventually started to use this idea in their compositions as chords

Activity 3: Listening and reflecting (20 minutes)

Activity Overview: Students are to take turns giving a 30-45 second standup of (1) what they’re currently working on (2) what problems they’re encountering (3) how they’re trying to solve these.

Suggested Teacher Instruction Sequence:

  1. Give an introduction to stand-ups: a simple way for everyone to reflect and hear how everyone else is doing

Student Activity (10 minutes):

  1. Give students 2 minutes to think of what to say and who is going to go first (these will be conducted every lesson)
  2. Commence standups. Tell students that they will be completing a reflection diary at the end of each lesson and they can use the information they report in their stand-ups

Notes to the teacher:

  • Conducting ‘standups’ is not intended to introduce students to the agile methodology of building software → it is intended only to help students get used to communicating both musically and computationally to each other; communication is a key skill to develop in the future and standups provide an opportunity for teachers to observe development of subject specific vocabulary and computational thinking skills

  • It is not necessary to ‘stand-up’ but it can help to make these sessions brief in order to ‘check-in’ and share

Wrap-up activity: Quiz and reflection (15 minutes)

Activity Overview: All students to complete a quiz containing 10 questions on music and programming -  as well as a few reflective questions on this lesson (all students will complete this each lesson).

Student Activity (10 minutes):

  • Students individually complete the quiz and reflection on the key concepts in this lesson within 10 minutes linked here.

Administrative Details

Contact info

petriechris@gmail.com 

Credits

Developed by Chris Petrie.

Last updated on

27/06/2018

Copyright info

The content of this page is licensed under the Creative Commons Attribution 3.0 License, and code samples are licensed under the Apache 2.0 License.