Music Software Projects

Scott Burton

Graduate Division

Computer Science

Did you ever wonder why there are 12 notes in the western music scale? Or how the intervals between notes came to be?
When were the first musical scales developed or "discovered" and how (and why) have they been modified since?
Who were the key innovators of western music theory over the last few centuries?

It is not uncommon for software developers to have an affinity for music.
After all, the creation of both software and music is part art and part science.
Further, music and computing are built upon fundamental mathematical principles. While it is not required to understand
music theory to be a good player, understanding why we are constrained to a certain set of notes is an enlightening
topic - for musicians and non-musicians alike.

This course is for students interested in how both music and software are constructed. Student teams will build software
in phases which will demonstrate the underlying rules in modern western music theory. The beauty of software
is that it can be applied in just about any domain.

Music students are encouraged to apply even though this course is primarily a software development class. The interdisciplinary
product development teams will be composed of at least one engineer and one subject domain exper t who
will work together on the assignments. The software the teams build will be used to demonstrate how music theory
developed as well as give students an intuitive grasp of some fascinating underlying universal truths...


- Curiosity about music theory
- Interest in building software
- Be either a musician, a music lover OR a software developer (or ideally both)
- Performing music IS NOT required

Objectives of course:

- Pair up in interdisciplinary teams of both subject domain expert and engineer (if possible)
- Learn how the twelve tone scale developed as well as other scales with more intervals.
- Develop educational software
- Learn about big bang moments in music history
- Use language of your choice (Python, Java, C/C++, Ruby) to build software in the music domain - Program on UNIX (either LINUX or MacOSX)

Programming Phase
1 (9/7)
Where is the math in music? - Set up dev environment - choose language, sound & GUI kit
- Generate 400hz tone for 5 seconds
2 (9/14)
The Harmonic Series Implement class using "living spec" spreadsheet which shows how the harmonic series can be constructed. Build regression harness around your class using the inputs and expected outputs in the sheet. MSP_lecture2.pptx harmonic_series_sheet_phase1.xlsx
3 (9/21)
The Pythagorean Scale Implement class using "living spec" spreadsheet which shows how the pythagorean scale is constructed Build regression harness around your class using the inputs and expected outputs in the sheet. MSP_lecture3.pptx pythag_sheet_phase2.xlsx
4 (9/28)
The Pythagorean Scale - modes Implement class using "living spec" spreadsheet which shows how to produce "modes". Play every mode using your sound lib. Build modes in two ways. Build regression harness around your class using the inputs and expected outputs in the sheet. MSP_lecture4.pptx pythag_sheet_phase3.xlsx
5 (10/5)
class cancelled class cancelled
6 (10/12)
Measuring steps between intervals - Build the full chromatic Pythagorean scale
- Calculate spacing between intervals in our "interval" class
- Build the even tempered scale - Compare Just scale from Pythagoras to even tempermed scale
MSP_lecture5.pptx pythag_sheet_phase4.xlsx even_temperment_sheet_phase4.xlsx
7 (10/19)
- Even Tempered compared to Just
- The Circle of Fifths
- Harmony
- Play 3 note major chords (aka "triads" - first, third, fifth notes in the Pythag natural scale))
- Build major chords starting with each note in the Circle of Fifths
- Play the chords sequentially (1 second duration, separated by .5 secs of silence)
- Build chords using 2 scales 1) Pythag and 2) Even-tempered!
8 (10/26)
- "Cents" measure
- Naming
- Scale Comparisons
- Implement "Cents"
- Assign interval TYPE
- Assign "LETTER" names
- Support for calculating interval differences between: ET, Pythag, Harmonic Series
MSP_lecture7.pptx DegreeNaming.xlsx
9 (11/2)

Hurricane Sandy - no power lower Manhatten
10 (11/9)
EXAM - 10 questions, open laptop (will require coding and can refer to spreadsheet living specs)
- Comparing Intervals between Harmonic Series, ET, Pythagorean
- Implement a new derived class for the Pythagorean Dodecephonic Scale
MSP_lecture8.pptx pythag_sheet_phase5.xlsx
11 (11/16)
Pythagorean Dodecephonic gets tempered but remains Just - Scale of Ptolemy
- Resolves the ambiguous dim5 problem
- Implement a new derived class for this scale
MSP_lecture9.pptx pythag_ptolemy_sheet_phase6.xlsx
12 (11/23)
NYU closed for Thanksgiving holiday
Mean-tone temperement
- "Meantone" scale living-spec sheet reviewed
- A new derived class that creates a different M3 interval than exists in the Pythagorean scale (but exists in the harmonic series!)
MSP_lecture10.pptx meantone_phase7.xlsx