👋Introduction to Unit 1

p5.Sound Library Curriculum by Liam Baum

What this Curriculum is

This curriculum is meant to work as a continuation for the Introduction to Computational Media. These lessons are meant to be accessible for beginners and provide detailed steps and instructions for all the concepts covered. However, there is some basic foundational programming knowledge and understanding of working in p5.js that is assumed. It does not cover things like navigating the canvas, making shapes and colors, creating and using variables and most other programming concepts that are covered in the ICM curriculum. If you or your students are unfamiliar with any concepts that you come across in these lessons, it is recommended to go and check the available lessons/resources in the ICM. Links for the relevant lessons will be provided for any concepts covered.

This curriculum was also designed with care in mind for CS teachers. It takes into consideration that CS teachers come from all different backgrounds and therefore may not have the same level of understanding in regards to teaching CS content. Some teachers may come from a CS background but be new to teaching, others may have many years of experience in the classroom but are new to CS. These lessons make an effort to err on the side of providing more information and explanation with the idea that it is better to have it and not need it than need it and not have it. Teachers who are more confident with their understanding of certain concepts are welcomed to parse out and extract the content they feel is valuable to incorporate into their instructions. However, teachers who may need more guidance and explanation will hopefully find that support by reading through the explanations provided in each lesson.

Curriculum Focus

This curriculum focuses on introducing students to the p5.Sound Library which is an extension of p5.js that provides audio functionality to their sketches. This allows them to add an aural dimension to p5 which is more often used for visual output. There are different ways that sound can be incorporated into a sketch using the p5.Sound library. One way is to upload an audio file (mp3, Wav etc) Another is to make our own sound using sound synthesis.

The sounds used in these lessons are create through sound synthesis which means they are generated through the program itself.

Sound synthesis: the technique of generating sound, using electronic hardware or software, from scratch. (https://en.wikibooks.org/wiki/Sound_Synthesis_Theory/Introduction)

Previous curriculum for p5.js that include lessons for the p5.Sound library primarily focus on the p5.Soundfile object. There is a lesson in the ICM curriculum which covers the basics of how to use this functionality in p5.js. If you are interested in exploring this in more detail, take a look at the Interactive Sonic Art curriculum developed by 2019 Processing teaching Fellow Layla Quinones.

While there are many creative things that can be done, there is one key aspect of using this method that can be a hurdle for teachers and students trying this in the classroom. In order to use this method, you need to acquire separate audio files that need to be uploaded into your p5 sketch. The different ways to acquire these audio files can each pose their own set of challenges: Downloading from the internet (Finding a site that is free and reputable, possibly needing students to make an account, finding the right sounds, dealing with licensing) or recording your own audio files (having software for audio recording, time needed to learn the software, transferring files to make them accessible.)

"Finding the sounds students want, reliably and for free. (They will not be able to put in whole songs as the files are too large for the editor to support, or for copyright restrictions.)"

- ICM curriculum, U3LA5.1: Loading & Playing Sound Files

The mentioning of these issues is in no way meant to discourage or deter from trying this method out, but to give teachers a realistic understanding of what to expect when using this part of the p5.Sound library. These challenges themselves can be used as learning opportunities and can give students a more well rounded experience both in the area of working with sound and as digital citizens.

Using Sound and Music to teach CS

The main content of these lessons is to build student knowledge about how to program using this library as well as reinforcing concepts they have previously learned. Since the focus of this curriculum is the p5.Sound Library, it uses sound and, by extension, music as an entry point and a vehicle in which to understand these CS concepts. Because of this, there are certain concepts related to how sound and music work that come up. However, the lessons have been structured in a way where it does not assume students have any experience with concepts related to sound and/or music nor is it necessary that much time be put into teaching these concepts in order to do the coding projects. Some basic introductory information is provided along with additional resources.

If you and your students are interested, the option is there to delve deeper into these concepts to get a broader understanding of what this library is capable of. This could also be a great opportunity to connect with other teachers at your school in different content areas (Science, Physics, Music etc) to make cross curricular connections where they are providing the content instruction for the sound and music content in their class, allowing you to focus on the programming concepts knowing that the students also have a solid foundation to understand the sound component.

Working with Sound in the classroom

Working with sound in the classroom can pose a challenge because it creates more possibilities for distractions. Now in addition to the students making noise, their sketches can also make noise. It is important to make it clear to students that there will be times to make noise and times not to make noise and it is important they understand the difference or else it is going to be difficult to accomplish everything we want to get done.

You may also choose to allow students to use headphones. However, be clear that there are times where students need to have headphones off so they can give their undivided attention to what is being discussed in class (One headphone on will only be half of their attention.)

Coding With Care

From a coding point of view, this unit only gets into one object and a few methods. It also reinforces some general coding concepts (conditional statements, for loops, arrays) But its aim is to also add depth to what coding can be. It aims to have students start to consider things like accessibility and design choices through creating seemingly small projects but it also aims to show that code is more than just code. It is about people. The people who write the code and the decisions that they make and the people using what is made with the resulting code and the experience they have with it. As the people writing the code, we want to approach this decision making process with Care to make sure that the people what is made with the code can have an enjoyable experience.

Coding is about decision making. Within the confines of a classroom, these decisions can seem trivial and unimportant beyond getting the correct solution and in turn getting a good grade and moving on to the next topic. However, in the real world, the decisions made by people who write code that other people are going to interact with can have real impact and consequences. More and more, we are becoming aware of the impact of people working in technology and it can sometimes seem that the people who write the code are more concerned about being able to get the right (or right now) solution without really considering how the choices they are making can impact real people. They are not always approaching this process with Care in mind. This curriculum looks to make students consider their choices and the impact from very early on in their coding journey, teaching them that their choices can have consequences. Sometimes these are unintended consequences but that makes it that much more important to be thinking about your choices from the very beginning so we can look to mitigate these unintended consequences by using Care in our approach

Last updated