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