After completing this activity, students should feel relatively comfortable:
Reinforce basic coding skills, utilizing playNote and rest
Build a greater intuition about rhythmic values
Experiment with creating a basic drum beat
Introduce a new data structure: Python lists
Warm-up (~5 min)
Main Content - Read through learning content - Ableton Beat Making (~10 min)
Read Lists and Converting to Code cells
Talk through drums 0 -example cell
*optional drill* have your students practice defining a list and setting it to a variable in their chosen cells
Activity - Recreate Ableton beat from previous session in TunePad Ableton Beat Making Jam Session (30+ min)
Choose a Drum cell in TunePad and add your name
Define variables for closed hat, clap, and kick drums
Recommended methodology:
figure out what instruments are playing in a column
if no instruments are playing in a column, write rest(0.25); otherwise, write a playNote
first input: list with the variables of the instruments playing
second input: 0.25 beats
move on to the next column
Make the connection between Ableton’s visual notation and the timeline/piano roll in TunePad
If students need more time recreating, they can continue working next session or finish it over the week
Share (10 min)
Make sure you allow enough time for everyone to have an opportunity to share their beat!
Introduce creative challenge: add another instrument in TunePad to the beat you created
N.B. there’s some flex/buffer time to allow for introducing activities, login, and/or potential slowdowns. Take these timings as recommendations and use your own judgement
NOTE: The content and activity for this lesson are found in the Ableton Beat Making TunePad project. This project is View-Only. Before your session, you should remix this and:
Make sure that there are enough drum cells for your participants
Make your remixed project collaborative and send the new link to your participants (see Jam Session Guide)
If a student is stuck, you can have them talk through each step of the recommended methodology and then tell you what code to write. Once they seem to be getting the hang of it, allow them to take back over
If you’d like to add screenshots of the students’ beats to the TunePad project but students are having trouble screenshotting their beats, you can have them share their screens and take the screenshots yourself
If a student finishes quickly, you can send them the Ableton bassline tool
Try to ground discussions in whatever is relatable for the students in your group. A few ideas are provided below but feel free to come up with your own variations on the same theme.
Strongly recommended: Greet them with enthusiasm, ask about their day, and then take one of the avenues below or whatever you feel is appropriate. Some potential ways to start off:
NOTE: Don’t spend too much time on “icebreaker” activities after you talk to them about their day unless the icebreaker directly ties to the activity. Not only are these usually super contrived and shallow, but they also take away from the very limited time we have to genuinely build rapport and help students learn. Especially this week, make sure to keep this short and sweet and to get started with the activity ASAP so that the students really have time to work on their projects.
Instruction 0: Login to TunePad (~2 min)
Make sure everyone gets logged into their accounts and troubleshoot as needed. If people are having login issues, make a note to inform someone from the dev team after the session.
Instruction 1: Introduce Activity (~3 min)
After everyone is logged into TunePad, send them the activity link and give them a brief overview of what they are about to do.
Instruction 2: Read Lists and Converting to Code cells (~5 min)
Give the students some time to read through the Lists and Converting to Code cells. You can have them read aloud or you can show the cells on the screen as you summarize them for the students. Sometimes talking through the content is easier and makes for better engagement than if you just have them read. Be sure to stop periodically to check if anyone has any questions.
*Optional Instruction*: Practice Defining Lists (~5 min)
If you feel that your group is comfortable with the concepts, feel free to skip this section. However, if you feel that they could benefit from some direct practice making lists (along with your guidance), have them define lists with instrument ids in them before moving on.
Instruction 3: Discuss Example Cell (~5 min)
Before getting started with the process of recreating the students’ Ableton beats, use the example cell to draw a clear connection between the Ableton piano roll UI and TunePad code. This will make them feel more comfortable with writing code and will make the lists easier to understand as well. Check for and answer any questions.
Instruction 4: Choosing Cells & Define Instrument Variables (~5 min)
Have the students write their names on a cell and then prompt them to define variables for each of the instruments they used in their Ableton beat. Be sure to scroll through the Jam Session to check in with anyone who is having trouble here.
***HALFTIME: ~30 MIN MARK HERE***
Instruction 5: Explain Column Method (~5 min)
After your students have defined the instrument variables, give them a brief overview of how they should go about recreation. Harken back to Instruction 3. Expand upon what you told them then and mention that the easiest way for them to proceed will be to look at their Ableton screenshot column by column. Every time they see a yellow square in a column, that is another instrument that should go in their list which will be the first argument they give to their playNotes. The second argument will be 0.25 (sixteenth note). If they see a column with only one instrument playing, they should use the playNote syntax they are familiar with. If they see a column that has no yellow squares, they should write rest(0.25) instead of a playNote statement.
Instruction 6: Start Recreation (~25 min)
Give the students time to work on their beats and as usual be available to them in the Jam Session. Work through issues as needed. Let them know that there is no pressure to finish in this session. They will have the opportunity to continue working on their beats next week if need be.
Troubleshooting
Issue: “name ___ is not defined on line ___”
Check: Check that the spelling of the argument to playNote is correct
Check: Check that any definitions or variables that are used in that line are spelled correctly and defined as needed in the code cell that should be at the top of the file
Issue: “Unable to import ___”
Check: That they renamed their code cell at the top to “beats” and used from beats import * at the beginning of their drum cells
Issue: “bad input on line __”
Check: if line is last line of cell, playNote is likely missing closing parenthesis
Check: otherwise, arguments to playNote could be missing comma in between
Issue: “Error on line ___”
Check: They have copied the code exactly and they aren’t leaving any spaces/tabs between or before words in a function, misspelling words, writing in lowercase where they should be writing uppercase or vice versa. Check that code is on its own line (e.g. playNote is used once per line). Nothing like “playNote(0) playNote(0)” in one line
Issue: Clicking play on the cell but no sound
Check: Make sure the number entered inside “playNote” is a valid number (i.e. it corresponds to one of the TunePad drum sounds)
Solution: Refresh the page and try again.
Issue: Logging into TunePad account problems
Check: Have them share screen and confirm that they are typing in the correct username and password
Workaround: If enough people can’t log in, have a coach share their screen and do the activity as a group on that person’s computer. Use the chat to vote on what genre and which patterns to use