Jenee Hughes
CPE 471, Spring 2009
Dr. Zoe Wood
Dancing Note Composer (DNC) is a program that allows the
user to use their computer keyboard as a proxy to the on-screen keyboard, to
compose music. It then allows them
to play back their music. As it
plays each note, the note ÒdancesÓ (which, as my roommate so kindly stated,
looks like the notes are popping out of the screen to punch you in the face. ).
Create hierarchical models for a bar of music, including the
treble clef, and all composed notes
Create hierarchical models for whole, half, quarter, eighth,
and sixteenth notes, including sharps.
Create an interactive hierarchical model of a single octave
of a piano keyboard, complete with white and black keys
Allow a user to compose a piece using the virtual piano and
input from the computer keyboard.
Allow a user to playback a composed piece, and make the keys
press and the notes dance as you do so
Create different materials for different pitches, to
differentiate them.
You must be running an Intel Mac (which should have the afplay command-line audio player) (The program will work, but it wonÕt play music if you donÕt have afplay)
You must the folder ~/Desktop/CPE471/Final_Project_Files/note_waves_short/ , and then fill that folder with the provided WAV files
The Xcode Project ÒKeyboardÓ.
To run the program, open this in XCode and press the ÒBuild and goÓ button.
Source Files:
BASEPROG_Prefix.pch
generalFuncs.cpp
generalFuncs.h
lab9_5.cpp
lab9_5.h
mainKey.cpp
myLighting.cpp
myLighting.h
myTransforms.cpp
myTransforms.h
myVector3f.cpp
myVector3f.h
Note.cpp
Note.h
OneOctavePiano.cpp
OneOctavePiano.h
SingleKey.cpp
SingleKey.h
Staff.cpp
Staff.h
Textures.cpp
Textures.h
WAV files
A.wav
A#.wav
B.wav
B#.wav
C.wav
C#.wav
D.wav
D#.wav
E.wav
F.wav
F#.wav
G.wav
G#.wav
Key Pressed |
Debug Mode |
Compose/Play Mode |
1 or ! |
switches into compose mode |
switches into debug mode |
a or A |
translate camera to left |
push C piano key |
w or W |
translate camera forward |
push C# piano key |
s or S |
translate camera backward |
push D piano key |
d or D |
translate camera to right |
push E piano key |
u or U |
translate camera up |
push F# piano key |
j or J |
translate camera down |
push G piano key |
q or Q |
quit |
quit |
Ô or Ò |
moves light outward |
n/a |
; or ; |
moves light inward |
n/a |
+ or = |
moves light up |
change pitch up |
- or _ |
moves light down |
change pitch down |
} or ] |
moves light right |
lengthen duration of note |
{ or [ |
moves light left |
shortens duration of note |
v or V |
toggle ortho/perspective |
n/a |
r or R |
Reset debug stuff |
n/a |
e or E |
n/a |
push D# piano key |
f or F |
n/a |
push F piano key |
i or I |
n/a |
push G# piano key |
k or K |
n/a |
push A piano key |
o or O |
n/a |
push A# piano key |
l or L |
n/a |
push B piano key |
SPACE |
n/a |
plays entire composition |