After completing this activity, students should feel relatively comfortable:
Navigating the TunePad interface to complete basic tasks (e.g. creating a project, adding a cell, playing a project, opening the Library)
Using the playSound function to play a sound sample
Understand that "tempo" is the speed of a song and is measured in BPM ("Beats Per Minute")
Warm-Up Discussion (~5-10 min)
Talk about their day, transition to discussion ideas provided below
Main Content (~10min)
Demo: this introduces all of the steps students will have to take in the activity
If you feel comfortable, rather than having students watch the demo, you could walk through this with them instead
Activity Section (~25 min)
Log into TunePad and create new TunePad Projects (~5min)
Find two samples in the Library at the same BPM (~10min)
Adjust the project tempo to match the BPM of these samples (~5min)
Add playSound code (~5min)
Share (~5-10 min)
Give a quick recap and then allow students to share what they made with each other
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
The goal of the activity is to make TunePad more approachable. To that end, the manner in which you introduce the activity should also be approachable and relatable. The following are some ideas for how you might introduce the activity.
Strongly recommended: Greet them with enthusiasm, ask about their day, and then take one of the avenues below or whatever you feel is appropriate. Keep in mind that your energy rubs off on them
Ask people about their favorite artists, what songs they’re listening to, what kinds of music they like. Transition from that discussion to explaining how making something that sounds something like those artists/songs is possible with TunePad
Pose the following question and discuss: “how do you know if something sounds good?”
Likely response: Something about intuition/gut feeling/vibe/sixth sense
You can then transition from that into explaining the activity and how all they’ll get to listen to some sounds and make something that sounds good
Poll them on their favorite genre from the 4 categories of loops (Afrobeat, Hip Hop, Latin/Reggaeton, EDM/Trance). Can have them type 1-4 in chat to vote. Transition from there to explaining activity
Before having people watch the following demo of the activity or sharing your screen and presenting it yourself, explain that the activity they’ll be doing is using their musical tastes to create a simple beat. A line like, “Okay so now I’m going to show you how you can make a beat like Bad Bunny in 2 lines of code” might be effective.
After the demo, give them some version of the following instructions so that they can make their own beat. These instructions are basically walking them through what the demo below showcases.
Instruction 0: Login to TunePad
Make sure everyone gets logged into their accounts and troubleshoot as needed. If an engaged student is having login issues, you might just wanna share your screen for the duration of the session and do the activity yourself for them to follow along or choose to do it entirely as one big group.
Instruction 1: Set Up TunePad Project
Make sure they all can successfully create a new TunePad project. Guide them through adding two “Keyboard” cells and explain that this is where they’ll be writing code. One cell will hold the code that plays the drums and the other will hold the code that plays the melody. Tell them to name one of the cells “drums loop” and the other “melody loop” or something similar.
Instruction 2: Library Exploration
Have them individually pick a genre out of the Afrobeat, Hip Hop, Latin/Reggaeton, or EDM/Trance and tell them to explore the Library and find loops in that genre by looking for the genre at the beginning of the sound names in the library. You can tell them to ignore the rest of the sound name for now. Show them how to access the TunePad Library if they’re having trouble (might want to even do this before this instruction if it’s not clear enough in the demo).
Instruction 3: Loop Selection
After they’ve had a chance to listen through some of the sounds, tell them that they’ll be picking two sounds from their favorite genre but the first has to be a drum sound and the second has to be a melody sound both in the same genre. Explain that once they find a drum sound they like, they should note down the number before “bpm” in the name of the sound and the number at the end in parentheses which tells TunePad which sound to play. After that, they should look for a melody sound they like that has the same number before the “bpm” and they should also note down the number at the end of that sound name that’s in parentheses. You can briefly mention that BPM stands for “beats per minute” and that it just means how fast a certain sound or beat is playing.
Instruction 4: Adjust Project BPM
The only step remaining before they can enter in their code is to adjust the project bpm to match that of the loops. Direct their attention to the top right of the screen where the BPM setting is located and tell them to use the +/- buttons to make the project BPM match the BPM they wrote down in Instruction 2.
Instruction 5: Adding Code
Now remind them of the playSound function. You don’t need to and probably shouldn’t use the word “function” but can say something like, “Alright, so you can type the following to play your sounds.” Explain that the first thing inside the parentheses tells TunePad what sound it should play and the second tells it how many beats/how long it should play for. Tell them to start with their drums and write: playSound(the ID of the drum loop they chose, the number of beats). Point out to them that most of the loops are 8 or 16 beats but some may be 32 or even 4 so they should experiment with those 4 values and try playing those cells. Tell them that they’ll learn more about what a beat or measure is soon but not to worry too much about it for now and just to make sure their sounds are playing correctly. After they’ve added drums, have them repeat this process with their melody loop in the other cell of the project.
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
Issue: Green play button in library doesn’t play sounds
Solution: Have them refresh the page and keep trying to click that button to preview the sound until it works
Issue: Beat sounds out of sync (e.g. drums and melody play at different speeds)
Check: Ensure that both the loops they’ve chosen are actually at the same speed (check sound names in library and look for the number before “bpm”)
Check: Ensure that the project BPM has been set to match the loops’ BPM
Check: If they did not use the +/- to set their project’s BPM and refreshed the page afterwards, the project automatically BPM got reset to 120 (just a TunePad bug) and if their loops are not at 120, things will sound off.
Issue: Loops sound like they’re cutting off/not playing fully
Solution: Try testing different values in the second argument of the playSound function (i.e. different multiples of 4 like 8, 16, or 32). Have them try those different values and try playing that cell again to see if the loop properly...loops.
Issue: Loop plays but then goes silent for a bit before looping again (variant of above)
Solution: Make sure that the second argument of playSound isn’t too big. For example, if they’ve typed in 16 but the loop is an 8 beat loop, it’ll play for 8 beats and be silent for the other 8. The fix in that example would be to change 16 to 8.
Issue: “name ___ is not defined on line ___”
Check: Check that the spelling of the arguments 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: “Error on line ___”
Check: They have typed the code correctly 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