Dancing Note Composer

 

 

Jenee Hughes

CPE 471, Spring 2009

Dr. Zoe Wood

 

 

Description:

 

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. ).

 

Goals:

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.

 

System Requirements: 

 

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

 

Provided:

 

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

 

Controls:

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