Music Software Projects - Fall 2017

Graduate Division Computer Science

Scott Burton (

Wednesday 7:10m - 9:00pm

Room: CIWW 312

Office Hours 6:15pm before class in CIWW 328 (adjunct office)

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 (Sep6)
Where is the math in music? - Set up dev environment - choose language, sound & GUI stack (most choose python)
- Generate 400hz tone for 5 seconds
The Harmonic Series Implement using "living spec" spreadsheet which shows how the harmonic series can be constructed. Build regression harness using the inputs and expected outputs in the sheet. MSP_lecture2.pptx harmonic_series_sheet_phase1.xlsx
The Pythagorean Scale Implement using "living spec" spreadsheet which shows how the pythagorean scale is constructed. Build regression harness using the inputs and expected outputs in the sheet. MSP_lecture3.pptx pythag_sheet_phase2.xlsx
The Pythagorean Scale - modes Implement using "living spec" spreadsheet which shows how to produce "modes". Play modes using your sound lib. Build regression harness using the inputs and expected outputs in the sheet.
Introduce ET system.
First phase of UI framework...
MSP_lecture4.pptx pythag_sheet_phase3.xlsx ET_sheet_preview.xlsx
Measuring steps between intervals - Build the full chromatic Pythagorean scale
- Calculate spacing between intervals
- Build the even tempered scale - Compare Just scale from Pythagoras to even tempered scale
MSP_lecture5.pptx pythag_sheet_phase4.xlsx ET_sheet.xlsx rhythm_sheet_nanafly.xlsx
- Intervals relative to Harmonic Series
- First phase of rhythm
- Compare intervals between ET, Pythag, Harmonic Series
- add cents calc
- taxonomy, naming conventions
MSP_lecture6.pptx DegreeNaming.xlsx
Better way to build Pythag scale - to extend our scale to more notes/octave - Pythagorean Dodecaphonic scale
- The Meter component of Rhythm
- Song structure notation
Two programming phases - 2 weeks to complete (test next week)
Oct 18th

Quiz #1

NOTE: Quiz covers up to and incuding lecture 7 (row 7 above)
Continue to work on assignment from prior lecture
Oct 25th

Special Guest!

Continue to work on assignment from prior lecture

Early vocal harmony and the first flat
Early European harmonizing (5th to 15th century)

Adjustments made to improve vocal harmony in the medieval era

The first time an "accidental" was employed (according to recorded European history)
Pythagorean Dodecaphonic gets tempered but remains Just - Scale of Ptolemy
- Resolves the ambiguous dim5 problem
- more "super-particular" ratios
- pure third!
MSP_lecture9.pptx pythag_ptolemy_sheet_phase6.xlsx
Meter 7 modes of a 12 beat pattern - or "wheel"
Use a different percussive sound for each of the 7 "modes"
rhythm_sheet_bembe_wheel.xlsx MSP_lecture_bembe.pptx
Mean-tone temperament
"Meantone" scale living-spec sheet reviewed
Introduce a better M3 interval (the one from the harmonic series!)
MSP_lecture10.pptx meantone_phase7.xlsx
Harmonic series compared to different tuning systems
ET, Ptolemy, Pythag compared to harmonic series
harmonic_series_compared_to_ET.xlsx MSP_lecture11.pptx MSP_final_requirements.pptx
Class lab
Show prototype, alpha -> beta
Final Presentations
Demonstrate final app
Class vote counts for best product/presentation!


- circle_of_fifths.pptx
- zarlino.xlsx
- . rameau_sheet_full.xlsx