Goals

In this assignment, you will practice the following computer science concepts:

Computer Science Principles Curriculum

Common Core Standards

Overview

In this assignment, you will write a program that simulates the sounds of a 3D environment. You will play sounds associated with a jungle, setting their positions in 3D space in order to create an "audio scene." Download this zip folder for a template to help you get started.

Goal 1: Creating and Using Objects

Open the provided template and navigate to the main.quorum file. There are five different sound files included in the project template. They contain sounds that represent birds, crickets, frogs, water, and wind. We will use these sounds and position them in 3D space to create the illusion of standing in the middle of a jungle.

Since there are five audio files, we need to create five Audio objects. Before we can create the Audio objects, though, we must tell Quorum that we want access to the Audio library by adding the use statement for that library. Create the five Audio objects and use the Load action to load the audio files to those objects. Some of the audio files are louder than the others. We may want to adjust the volumes of the audio objects based on this. Adjusting the volume can also help make the sounds appear to be coming from further away. Experiment with different volumes to discover what sounds best.

In order to make the sounds appear to be coming from different points in space, we need to set their positions in a virtual 3D space that the Quorum Audio Library supports. Quorum Audio objects have variables that help determine their positions in a virtual 3D space, including the x, y, and z coordinates of the sound. We can set the x, y, and z coordinates of the Audio objects by using the SetX, SetY and SetZ actions on each of our Audio objects.


Example: Using the SetX, SetY, and SetZ action on an Audio Object

// this line sets the x position of our birds audio object.
// the sound will be coming from our right
birds:SetX(0.60)

// this line sets the y position of our birds audio object.
// the sound will be coming from above our heads
birds:SetY(0.9)

// this line sets the z position of our birds audio object
// the sound will be coming from slightly behind us
birds:SetZ(-0.2)

In the above example, we set the position of the bird sound. With respect to the x-axis, where a value of 0 represents the "middle" of the scene, our bird sound will originate from the right of us, the listeners, in the scene. With respect to the y-axis, the bird sounds originate from near the top of the scene. This makes sense for birds, because birds live in trees and fly around, so bird chirping noises will come from above our head. With respect to the z-axis, our bird sounds will come from slightly behind us.

Activity: Set the x, y, and z positions for the other Audio objects

Set the 3D positions for the audio objects representing the crickets, frogs, water, and wind sounds. Set the positions in a way that makes sense for the scene. For example, the water sound should be coming from below us while the wind sound should be heard above our heads. The frogs sound may come from close to the water sound. Play around with different positions.

Sample Output

Each student may position his or her sounds differently, so each program will produce a unique overall sound.

Next Tutorial

In the next tutorial, we will discuss Challenge 2.3, which describes how work Animation Sheets in Quorum..