Lab 1: Sounds with Wavesynth
Exploring 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.
Reference
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
Use the addNote
function a few times to
add a few notes to your song. Use
climbUp
and/or
climbDown
in between to control the
pitch of each note. You can use
setPitch
beforehand to pick a starting
pitch.
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:
saveTrack("melody.wav")
playTrack()
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
addBeat
and/or
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
notes. The 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
to use 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