Difference between revisions of "Mmc-august-2012/Lab1"

From CCRMA Wiki
Jump to: navigation, search
(Created page with '= Lab 1 - "Vel-Oscilla-raptor" = In this lab, we will experiment with a variety of oscillators, both by themselves and in combination as FM operators. == Part 1 ==')
 
Line 1: Line 1:
= Lab 1 - "Vel-Oscilla-raptor" =
+
= Lab 1 - Oscillators =
  
 
In this lab, we will experiment with a variety of oscillators, both by themselves and in combination as FM operators.  
 
In this lab, we will experiment with a variety of oscillators, both by themselves and in combination as FM operators.  
  
== Part 1 ==
+
== Audio Bootup ==
 +
Make sure you are up-to-date with your Xcode install, and that you are able to load code onto your iOS device. Create a new project ("single-view application"), and add MoAudio as described in the audioStuff download (found here: [https://github.com/downloads/markcerqueira/mobile-music/audioStuff.zip audioStuff.zip]). To test everything out, write an audio callback that generates a sine wave at a fixed frequency, making sure that it runs in both the simulator and your device.
 +
 
 +
== Basic Oscillators ==
 +
Implement sine wave, triangle wave, sawtooth, and square wave oscillators using the phase-increment method shown in class. For each of these, structure the oscillator as a function that accepts a phase between [0,1] and returns the value at that phase, like this:
 +
float exampleOsc(float p)
 +
{
 +
    return ???; // <-- fancy math goes here to figure out value for phase
 +
}
 +
Call this function from your callback, incrementing the phase after each frame. Software engineers may recognize this basic design pattern as '''modularity''': the structuring of code into reusable blocks. As we will see later, we can and will reuse these oscillators for more than simple waveform generation.

Revision as of 02:50, 12 August 2012

Lab 1 - Oscillators

In this lab, we will experiment with a variety of oscillators, both by themselves and in combination as FM operators.

Audio Bootup

Make sure you are up-to-date with your Xcode install, and that you are able to load code onto your iOS device. Create a new project ("single-view application"), and add MoAudio as described in the audioStuff download (found here: audioStuff.zip). To test everything out, write an audio callback that generates a sine wave at a fixed frequency, making sure that it runs in both the simulator and your device.

Basic Oscillators

Implement sine wave, triangle wave, sawtooth, and square wave oscillators using the phase-increment method shown in class. For each of these, structure the oscillator as a function that accepts a phase between [0,1] and returns the value at that phase, like this:

float exampleOsc(float p)
{
    return ???; // <-- fancy math goes here to figure out value for phase
}

Call this function from your callback, incrementing the phase after each frame. Software engineers may recognize this basic design pattern as modularity: the structuring of code into reusable blocks. As we will see later, we can and will reuse these oscillators for more than simple waveform generation.