Lab 1: Sounds with Wavesynth
For this part of the lab, work through as many steps as you have time for. We don't expect you to get all the way to the end!
To explore more of the possibilities of the
wavesynth library we can
make a simple melody. Below is one possibility. You and your partner have
creative freedom in this task. The goal is to learn how to arrange notes
and beats; their precise pitches/volumes/durations are up to you.
When working with
wavesynth, our quick-reference
page provides a description of the key
concepts and an overview of the functions available. You don't need to
read through it all now, but you can refer back to it when you have
questions about how something works.
Step 0: Start a new file and imports
For this task, create a new file named
tune.py (make sure to save
it in your
lab01 folder where
wavesynth.py is, or else importing
wavesynth will not work).
As we did in the previous part, we'll need to import
wavesynth to use
music commands. At the top of your new file, start with a comment
indicating your names and the purpose of the file, and then add code to
import those libraries, like this:
# Authors: Peter and Sohie # Purpose: CS 111 lab 1 musical tune from wavesynth import *
Step 1: Add some notes
addNote function a few times to
add a few notes to your song. Use
climbDown in between to control the
pitch of each note. You can use
setPitch beforehand to pick a starting
For example, here's a melody with four 1/4 second notes, which go up one step, up one more step, and then back down to the starting pitch (C4):
To get your song to play (and save it), you'll also need to add these lines of code to the end of your file:
Step 2: Add some beats
To make our melody sound nicer, we can add some drum beats in time with
the notes. First, use
rewind to back up
to the beginning of the song, and then use
addRest to add some beats that happen at
the same time as some of the notes. You may want to use
quieter to make the beats a bit quieter
than the notes.
Here's the same tune with beats on the first and third notes:
Step 3: Add a chord
For a finishing touch, we can add a chord to compliment the melody. A chord is when multiple notes are played at once, and these often last longer than individual notes of a melody. You can try different things, but we've added a chord of three 1-second notes that play together, at the same time as the four melody notes play in sequence. To do this, we rewound to the beginning, then added one note of the chord, then rewound again, added the second note, and finally rewound a third time and added the last note.
To create a nice-sounding chord, you can start by picking a pitch that's
one octave below your first note. In this case, we used C4 for the first
note of the melody, we use
setPitch(C3) to set the base pitch of the
chord one octave below that. For a "major" chord (which sounds "bright"
or "cheerful") we can set the pitches using half-steps: four half steps
between the first two notes, and three between the second and third
halfStepUp function lets
us change pitch in half-step increments.
Here's what the result sounds like (feel free to ask for help figuring out how to get this working with code).
Step 4: Continue
If you've gotten this far and there's still time left, you've figured out
all of the basics of
wavesynth, but feel free to experiment further,
and if you want, make your tune longer. Just remember to keep track of
how far to
rewind if you start adding notes to the melody. You may want
setTime instead in some cases,
which jumps to a particular point in time.
Table of Contents
- Lab 1 Home
- Part 1: Thonny intro
- Part 2: How to work on projects
- Part 3: Your first program
- Part 4: Multimedia exercises
- Part 5: Save your work