Difference between revisions of "Music 254/CS 275b Spring 2013 Syllabus"

From CCARH Wiki
Jump to navigation Jump to search
 
(42 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
<font size=+1><b>Music 254/CS 275b "Music Query, Analysis, and Style Simulation"  <br> Stanford University (Spring 2013).</b></font>
 
<font size=+1><b>Music 254/CS 275b "Music Query, Analysis, and Style Simulation"  <br> Stanford University (Spring 2013).</b></font>
 +
 +
This is an old syllabus, click  [[Music_254/CS_275b_Syllabus | here ]]  for a more recent one.
  
 
This music information retrieval course builds on the foundation of [[Music 253|Music 253/CS 275A]]. Using an
 
This music information retrieval course builds on the foundation of [[Music 253|Music 253/CS 275A]]. Using an
open-source analysis platform (such as the [[Humdrum Toolkit]], [[Humdrum Extras]] (C++), or [[Music21]](Python), or a preferred programming language/environment) students plan and design their own applications.
+
open-source analysis platform (such as the [[Humdrum Toolkit]], [[Humdrum Extras]] (C++), or [[Music21]](Python), or your preferred programming language/environment) students plan and design their own applications.
  
 
Class time is divided during the first four weeks to cover basic areas of music analysis and retrieval and
 
Class time is divided during the first four weeks to cover basic areas of music analysis and retrieval and
Line 44: Line 46:
 
<td></td>
 
<td></td>
 
<td>
 
<td>
four credits: final project, including oral and written reports-40%, assignments-30%, class
+
25% class participation, 75% project
participation-30%. 2-3 credits: by negotiation.
+
<ul>
 +
<li> Project proposal: 3 pages, due Wed. 17 April 2013
 +
<li> Project presentation, 20&ndash;30 minutes, Wed. 5 June 2013.
 +
<li> Project writeup draft: 5+ pages, Wed. 5 June 2013
 +
<li> Project writeup: 10&ndash;20 pages, Wed. 12 June 2013
 +
</ul>
 
</td>
 
</td>
 
</tr>
 
</tr>
Line 52: Line 59:
 
<td align=right><b>Website:</b></td>
 
<td align=right><b>Website:</b></td>
 
<td></td>
 
<td></td>
<td>[http://music254.stanford.edu music254.stanford.edu] (this page)<br>[http://wiki.ccarh.org/wiki/Music%20254 wiki.ccarh.org/wiki/Music 254]  [[Music 254|Overview]] of topics presented in Music 254.
+
<td>[http://music254.stanford.edu music254.stanford.edu]<br>[http://wiki.ccarh.org/wiki/Music%20254 wiki.ccarh.org/wiki/Music 254]  [[Music 254|Overview]] of topics presented in Music 254.
 
</td>
 
</td>
 
</tr>
 
</tr>
Line 74: Line 81:
 
== Syllabus ==
 
== Syllabus ==
  
[[Media:Harmony1.pdf| Harmony Tools in Humdrum]] (Class one slides)
+
 
<!--
+
Go to week: <font color="gray" size="-1">Harmony</font>  [[#week1|1]] | <font color="gray" size="-1">Melody</font>  [[#week2|2]] <font color="gray" size="-1">Rhythm</font> [[#week3|3]] |  <font color="gray" size="-1">Harmony</font> [[#week4|4]] | <font color="gray" size="-1">RegEx</font>  [[#week5|5]] |    <font color="gray" size="-1">Programming</font> [[#week6|6]] | [[#week7|7]] |  [[#week8|8]]
== Syllabus ==
 
  
  
 
<center>
 
<center>
 +
See also [[Music 253/CS_275a_Winter_2013_Syllabus | Music 253/CS 275a Syllabus]]
 
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"  
 
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"  
 
|- {{Style|table header}}
 
|- {{Style|table header}}
 
! scope="col" width="20px" | Week
 
! scope="col" width="20px" | Week
! scope="col" width="75px" | Dates
+
! scope="col" width="95px" | Dates
! scope="col" | Topics
+
! scope="col" width="500px" | Topics
 
|-
 
|-
| 1 || 8 Jan 2012 ||  
+
| 1<div id="week1"></div> || 1 & 3 Apr 2013 ||  
* Overview of music representation
+
<b>Harmony I</b>
* Malinowski's Music Animation Machine
+
* [http://esf.ccarh.org/254/01_SymbolicMusicAnalysis.pdf 1. Symbolic Music Analysis (Introduction)] (PDF slides)
* [[Rosetta Stone of Musical Data Codes]]
+
*[[Media:Harmony1.pdf| Harmony Tools I in Humdrum]] (PDF slides)
* Assignment #1: Design your own music representation system (due 15 Jan 2012)
+
** Harmony tools:
 +
*** [http://www.humdrum.org/Humdrum/commands/hint.html hint]: Harmonic intervals.
 +
*** [http://extras.humdrum.org/man/tntype tntype]: twelve-tone chord prototypes.
 +
*** [http://www.humdrum.org/Humdrum/commands/key.html key]: Krumhansl-Schmuckler key-finding algorithm.
 +
*** [http://extras.humdrum.org/man/keycor keycor]: generalization of key command.
 +
*** [http://extras.humdrum.org/man/sonority sonority]: triadic chord descriptions of sonorities.
 +
** Support tools:
 +
*** [http://www.humdrum.org/Humdrum/commands/assemble.html assemble]: merge separate spines into single data stream.
 +
*** [http://extras.humdrum.org/man/serialize serialize]: convert Humdrum data into single spine.
 +
*** [http://extras.humdrum.org/man/humcat humcat ]: concatenate multiple scores together (download data from web).
 +
*** [http://extras.humdrum.org/man/ridx ridx]: remove various components of Humdrum file structure
 +
*** [http://www.humdrum.org/Humdrum/commands/ditto.html ditto]: resolve meaning of null tokens.
 +
*** [http://extras.humdrum.org/man/humsplit humsplit]: split segmented Humdrum file streams into separate files.
 +
** Unix tools:
 +
*** [http://en.wikipedia.org/wiki/Command_line command line]
 +
*** [http://en.wikipedia.org/wiki/List_of_Unix_utilities list of command-line programs]
 +
*** [http://en.wikipedia.org/wiki/Sort_(Unix) sort]: sort lines of data alphabetically or numerically.
 +
*** [http://en.wikipedia.org/wiki/Uniq uniq]: Remove/count successively repeated lines of text.
 
|-
 
|-
| 1 || 10 Jan 2012 ||  
+
| 2<div id="week2"></div> || 8 & 10 Apr 2013 ||  
* Music representation and course resources
+
<b>Melody</b>
* Lab #1: Guido
+
* [http://esf.ccarh.org/254/02A_MelodicQuery.pdf 2a. Melodic Search: Strategies and Formats] (PDF slides)
* Assignment #2: Finish lab exercises at home
+
* [http://esf.ccarh.org/254/02B_Melodic%20Similarity.pdf 2b. Melodic Similarity: Cognitive and Perceptual Dimensions] (PDF slides)
 +
* [[Media:Melody1.pdf|Melody Tools in Humdrum]] (PDF slides)
 +
** melody tools:
 +
*** [http://www.humdrum.org/Humdrum/commands/mint mint]: Melodic intervals
 +
*** [http://extras.humdrum.org/man/scaletype scaletype] Simple scale type categorizer
 +
*** [http://extras.humdrum.org/man/tindex tindex]: Thema indexer.
 +
*** [http://extras.humdrum.org/man/themax themax]: Thema search.
 +
*** [http://extras.humdrum.org/man/theloc theloc]: Thema localizer.
 +
*** [http://www.humdrum.org/Humdrum/commands/context context]: melodic n-grams
 +
*** [http://extras.humdrum.org/man/prange prange]: Pitch range tool.
 +
** graphical notation:
 +
*** [http://extras.humdrum.org/man/hum2muse hum2muse]/[http://muse2ps.ccarh.org muse2ps]: print Humdrum files with MuseData printing system.
 +
*** [http://extras.humdrum.org/man/hum2abc hum2abc]/ [http://moinejf.free.fr/ abcm2ps]: print Humdrum files with ABC+ printing system.
 +
*** [http://www.humdrum.org/Humdrum/commands/ms ms]/[http://www.arkkra.com mup]: print Humdrum files with Mup printing system.
 +
*** [http://extras.humdrum.org/man/hum2xml hum2xml]: convert Humdrum files into MusicXML for display in:  [http://www.musescore.org MuseScore] [http://www.noteflight.com  Noteflight] or via [http://lilypond.org/doc/v2.14/Documentation/usage/invoking-musicxml2ly musicxml2ly] in [http://www.lilypond.org lilypond].
 +
** support tools:
 +
*** [http://www.humdrum.org/Humdrum/commands/kern kern]: remove rhythms from note data.
 +
*** [http://extras.humdrum.org/man/myank myank] Yank measures from a full score.
 +
*** [http://www.humdrum.org/Humdrum/commands/extract extract]: extract spines from Humdrum file.
 +
*** [http://extras.humdrum.org/man/extractx extractx]: Humdrum Extras version of extract
 +
*** [http://extras.humdrum.org/man/hgrep hgrep]: Humdrum-aware greep.
 +
*** [http://extras.humdrum.org/man/autostem autostem]: automatic stemming of notes.
 +
** unix:
 +
*** [http://en.wikipedia.org/wiki/Head_(Unix) head]: show only starting lines of text.
 +
*** [http://en.wikipedia.org/wiki/Grep grep]: search text for generalized regular expressions.
 +
*** [http://en.wikipedia.org/wiki/Grep egrep]: enhanced grep (adds additional wildcards).
 +
*** [http://en.wikipedia.org/wiki/Sed sed]: Stream editor (search and replace).
 +
** graphics (unix):
 +
*** [http://netpbm.sourceforge.net/doc/pstopnm.html pstopnm]: a converter from PostScript to bitmaps.
 +
*** [http://www.imagemagick.org/script/convert.php convert]: Imagemagick tool for manipulating images.
 +
*** [http://ghostscript.com/doc/current/Ps2pdf.htm ps2pdf]: convert PostScript into PDF files.
 
|-
 
|-
| 2 || 15 Jan 2012 ||  
+
| 3<div id="week3"></div> || 15 Apr 2013 ||  
* Notation software: input methods
+
<b>Style/Rhythm</b>
* Input methods in Finale and Sibelius (intro)
+
* [http://esf.ccarh.org/254/03A_MusicalDimensions-Similarity.pdf 3a. Similarity: Musical Dimensions]
* Assignment #3: Finale homework (due 22 Jan 2012)
+
* [http://esf.ccarh.org/254/03b_Aspects%20of%20Rhythm%20and%20Meter.pdf 3b. Aspects of Meter and Rhythm]
 +
* [[Media:Rhythm1.pdf| Rhythm Tools in Humdrum]] (PDF slides)
 +
** [http://www.humdrum.org/Humdrum/commands/timebase timebase]: create uniform duration for each Humdrum file data line.
 +
** [http://extras.humdrum.org/man/beat beat]: label metric beats in Humdrum file.
 +
** [http://extras.humdrum.org/man/gettime gettime]: calculate performance time in seconds (according to tempo markings).
 +
** [http://extras.humdrum.org/man/thrux thrux]: expand repeats to performance sequence
 +
** [http://extras.humdrum.org/man/minrhy minrhy]: identify minimum integral rhythmic unit in score
 +
** [http://www.humdrum.org/Humdrum/commands/assemble assemble]: merge parts into a single score
 +
** partjoin: automation script to merge parts into a single score (preserves grace notes, uses minrhy and timebase)
 +
** [http://www.humdrum.org/Humdrum/commands/ditto ditto]/[http://extras.humdrum.org/man/dittox dittox]: resolve null tokens
 +
** [http://extras.humdrum.org/man/hgrep hgrep]: search for patterns in Humdrum file data.
 
|-
 
|-
| 2 || 17 Jan 2012 ||  
+
| 3 || 17 Apr 2013 ||  
* Optical music recognition: SharpEye
+
<b>Data/Data entry</b>
* Data interchange: MusicXML
+
* [[Media:dataentry.pdf | Data/Data entry in Humdrum]] (PDF slides)
 +
** [http://kern.ccarh.org KernScores]: digital library of scores in the **kern format
 +
*** [http://kern.ccarh.org/help/data] introduction to KernScores
 +
*** [http://kern.ccarh.org/cgi-bin/kscuts] shortcuts to data in KernScores
 +
*** [http://kern.ccarh.org/browse] browse collections in KernScores
 +
** [http://jrp.ccarh.org]: Josquin Research Project: digital library of early Renaissance polyphony
 +
** [http://extras.humdrum.org/man/xml2hum xml2hum]: MusicXML to Humdrum converter
 +
** [http://museinfo.sapp.org/examples/humdrum/mid2hum.cpp mid2hum]: MIDI to Humdrum converter (works in many cases, but better to convert MIDI first to MusicXML then import).
 
|-
 
|-
| 3 || 22 Jan 2012 ||  
+
| 4<div id="week4"></div> || 22 Apr 2012 ||  
* Discuss Finale homework
+
<b>Harmony II</b>
* Lab #2: SharpEye
+
* [http://esf.ccarh.org/254/04a_Harmonic%20Models.pdf 4a. Harmonic Models (1)]
* Assignment #4: [[SharpEye]] to [[Finale]]/[[Sibelius]]/[[MuseScore]]/[[Noteflight]]
+
* [http://esf.ccarh.org/254/04b_Harmonic_Models-2.pdf 4b. Harmonic Models (2)]
 +
* [[Media:Harmony2.pdf | Harmony II]] Key analysis (PDF slides)
 +
** Key-cycles:
 +
*** [http://kern.ccarh.org/browse&l=hummel/preludes Hummel Op. 67 preludes]
 +
*** [http://kern.ccarh.org/browse&l=hummel/preludes Chopin Op. 28 preludes]
 +
*** [http://kern.ccarh.org/browse&l=wtc J.S. Bach Well-Tempered Clavier]
 +
** [http://extras.humdrum.org/man/keycor keycor]: harmonic structure plots.
 +
** [http://extras.humdrum.org/man/mkeyscape mkeyscape]: harmonic structure plots.
 +
*** [http://extras.humdrum.org/man/mkeyscape/beet-sonata Beethoven piano sonata keyscapes]
 +
*** [http://extras.humdrum.org/man/mkeyscape/moz-sonata Mozart piano sonata keyscapes]
 +
*** [https://ccrma.stanford.edu/~craig/keyscape/class Lots of keyscapes]
 +
** [http://extras.humdrum.org/man/transpose transpose]: Transpose score to specific key or by interval.
 
|-
 
|-
| 3 || 24 Jan 2012 ||  
+
| 4 || 24 Apr 2012 ||  
SCORE or MIDI?
+
<b>Humdrum & MIDI</b>
 +
* [[Media:Humdrum2Midi.pdf | Humdrum to MIDI]]  (PDF slides)
 
|-
 
|-
| 4 || 29 Jan 2012 ||  
+
| 5<div id="week5"></div> || 29 Apr 2013 ||
 +
<b> Regular Expressions </b>
 +
* [[Media:RegularExpressions.pdf | Regular Expressions]] (PDF slides)
 
|-
 
|-
| 4 || 31 Jan 2012 ||  
+
| 5 || 1 May 2013 ||  
 +
* [http://esf.ccarh.org/254/05A_From%20Emmmy%20to%20Emily%20Howell_v2.pdf 5a. From Emmy to Emily Howell: The Work of David Cope]
 
|-
 
|-
| 5 || 5 Feb 2012 ||  
+
| 6<div id="week6"></div> || 6 May 2013 ||
 +
<b> Programming for Humdrum files </b>
 +
* [[Humdrum Extras]] &mdash; C++ library for processing Humdrum files
 +
* [http://mit.edu/music21 music21] &mdash; Python environment which reads Humdrum files
 
|-
 
|-
| 5 || 7 Feb 2012 ||  
+
| 6 || 8 May 2013 ||
 +
<b> Inner metric analysis </b>
 +
* [[Media:Innermetric-BE.pdf |  Inner Metric Analysis: project update by Bj&ouml;rn]] (PDF slides)
 +
<b> Sonority distributions by bass-line scale degrees </b>
 +
* [[Media:CorelliBassline.pdf |  Corelli & Rule-of-the-octave data selection]] (PDF slides)
 
|-
 
|-
| 6 || 12 Feb 2012 ||  
+
| 7 || 13 May 2013 ||
 +
<b> Dice</b>
 +
* [http://www.ccarh.org/courses/253/lab/kerndice Mozart Dice Game]
 
|-
 
|-
| 6 || 14 Feb 2012 ||  
+
| 7 || 15 May 2013 ||
 +
<b> Musical Style</b>
 +
* [http://esf.ccarh.org/254/08b_Quantitative-Style.pdf Quantitative Analysis of Musical Style]
 
|-
 
|-
| 7 || 19 Feb 2012 ||  
+
| 8 || 20 May 2013 ||
 +
<b> Project development</b>
 +
 
 +
No class meeting
 
|-
 
|-
| 7 || 21 Feb 2012 ||  
+
| 8 || 22 May 2013 ||
|-
+
<b> Project development</b>
| 8 || 26 Feb 2012 ||
+
 
|-
+
No class meeting
| 8 || 28 Feb 2012 ||
 
 
|-
 
|-
| 9 || 5 Jan 2012 ||  
+
| 9 || 29 May 2013 ||
 +
<b> Counterpoint</b>
 +
* [http://esf.ccarh.org/254/09b_Improvisatory%20Counterpoint.pdf Generative approaches to counterpoint]
 +
<b> MEI</b>
 +
* MEI (Music Encoding Initiative) Release 2.0
 
|-
 
|-
| 9 || 7 Jan 2012 ||  
+
| 10 || June 3 ||
 
|-
 
|-
| 10 || 12 Jan 2012 ||  
+
| 10 || June 5 ||
 +
<b> Project presentations</b>
 
|-
 
|-
| 10 || 14 Jan 2012 ||
 
 
|}
 
|}
 
</center>
 
</center>
-->
 
  
 
== General Policies and University Rules ==
 
== General Policies and University Rules ==

Latest revision as of 15:50, 20 March 2014

Music 254/CS 275b "Music Query, Analysis, and Style Simulation"
Stanford University (Spring 2013).

This is an old syllabus, click here for a more recent one.

This music information retrieval course builds on the foundation of Music 253/CS 275A. Using an open-source analysis platform (such as the Humdrum Toolkit, Humdrum Extras (C++), or Music21(Python), or your preferred programming language/environment) students plan and design their own applications.

Class time is divided during the first four weeks to cover basic areas of music analysis and retrieval and to learn some of the basic principles of the Humdrum Toolkit. The remaining six weeks are spent on individual project development, with weekly discussions. Extensive help is available in the lab during hours allotted to class time.


Meeting times: Mondays & Wednesdays 1:15–3:05
Location: Braun Music Building, room 128 (or entry also from room 129)
Instructors: Eleanor Selfridge-Field (esfield@stanford.edu)
Craig Stuart Sapp (craig@ccrma.stanford.edu)
Office Hours: 3:05–4:05 Wednesdays and by appointment.
Credits: 2–4
Grading:

25% class participation, 75% project

  • Project proposal: 3 pages, due Wed. 17 April 2013
  • Project presentation, 20–30 minutes, Wed. 5 June 2013.
  • Project writeup draft: 5+ pages, Wed. 5 June 2013
  • Project writeup: 10–20 pages, Wed. 12 June 2013
Website: music254.stanford.edu
wiki.ccarh.org/wiki/Music 254 Overview of topics presented in Music 254.
Prerequisites: Completion of Music 253/CS 275b, or demonstrated ability to use notation and sound software and associated requirements.
Textbook: E. Selfridge-Field, ed., Beyond MIDI: The Handbook of Musical Codes (MIT Press, 1997). Available online by permission of the publisher.

Syllabus

Go to week: Harmony 1 | Melody 2 | Rhythm 3 | Harmony 4 | RegEx 5 | Programming 6 | 7 | 8


See also Music 253/CS 275a Syllabus

Week Dates Topics
1
1 & 3 Apr 2013

Harmony I

2
8 & 10 Apr 2013

Melody

3
15 Apr 2013

Style/Rhythm

3 17 Apr 2013

Data/Data entry

  • Data/Data entry in Humdrum (PDF slides)
    • KernScores: digital library of scores in the **kern format
      • [1] introduction to KernScores
      • [2] shortcuts to data in KernScores
      • [3] browse collections in KernScores
    • [4]: Josquin Research Project: digital library of early Renaissance polyphony
    • xml2hum: MusicXML to Humdrum converter
    • mid2hum: MIDI to Humdrum converter (works in many cases, but better to convert MIDI first to MusicXML then import).
4
22 Apr 2012

Harmony II

4 24 Apr 2012

Humdrum & MIDI

5
29 Apr 2013

Regular Expressions

5 1 May 2013
6
6 May 2013

Programming for Humdrum files

  • Humdrum Extras — C++ library for processing Humdrum files
  • music21 — Python environment which reads Humdrum files
6 8 May 2013

Inner metric analysis

Sonority distributions by bass-line scale degrees

7 13 May 2013

Dice

7 15 May 2013

Musical Style

8 20 May 2013

Project development

No class meeting

8 22 May 2013

Project development

No class meeting

9 29 May 2013

Counterpoint

MEI

  • MEI (Music Encoding Initiative) Release 2.0
10 June 3
10 June 5

Project presentations

General Policies and University Rules

General policies and university rules:

  1. Delivery times:
    1. Assignments: by the start of the class for which they are due.
    2. Final exam: by 11 p.m. of the assigned date.
  2. Honor code: We will act and expect you to act according to the Stanford Honor Code.
  3. Students with disabilities: Students who may need an academic accommodation based on the impact of a disability must initiate the request with the Student Disability Resource Center (SDRC) located within the Office of Accessible Education (OAE). SDRC staff will evaluate the request with required documentation, recommend reasonable accommodations, and prepare an Accommodation Letter for faculty dated in the current quarter in which the request is being made. Students should contact the SDRC as soon as possible since timely notice is needed to coordinate accommdations. The OAE is located at 563 Salvatierra Walk (phone 723-1066).