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

From CCARH Wiki
Jump to navigation Jump to search
 
(44 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 2019).</b></font>
 
<font size=+1><b>Music 254/CS 275b "Music Query, Analysis, and Style Simulation"  <br> Stanford University (Spring 2019).</b></font>
 +
 +
This is an old syllabus.  Also, see the most recent [[Music 254/CS 275b Syllabus]].
  
 
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 [https://github.com/humdrum-tools/humdrum-tools Humdrum Toolkit] (unix/bash shell), [[Humdrum Extras]] (C++), or [[Music21]] (Python), or their preferred programming language/environment) students plan and design their own applications involving symbolic musical data.
 
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 [https://github.com/humdrum-tools/humdrum-tools Humdrum Toolkit] (unix/bash shell), [[Humdrum Extras]] (C++), or [[Music21]] (Python), or their preferred programming language/environment) students plan and design their own applications involving symbolic musical data.
Line 43: Line 45:
 
25% class participation, 75% project
 
25% class participation, 75% project
 
<ul>  
 
<ul>  
<li> Project proposal: 3 pages, due Thurs. 18 April 2019
+
<li> Project proposal: 2+ pages, due Thurs. 18 April 2019
 
+
<li> Project progress report: 4+ pages, Thurs. 7 May 2019
 
 
<li> Project writeup draft: 5+ pages, Thurs. 30 May 2019
 
 
<li> Project presentation in class: Tuesday 4 June 2019
 
<li> Project presentation in class: Tuesday 4 June 2019
 
<li> Project writeup: 10&ndash;20 pages  
 
<li> Project writeup: 10&ndash;20 pages  
Line 77: Line 77:
  
 
</table>
 
</table>
 +
 +
 +
  
 
== Syllabus ==
 
== Syllabus ==
Line 82: Line 85:
 
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]]
 
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]]
  
<center>
+
See also [[Music 253/CS_275a_Winter_2019_Syllabus | Music 253/CS 275a Syllabus]]
See also [[Music 253/CS_275a_Winter_2013_Syllabus | Music 253/CS 275a Syllabus]]
+
 
 +
=== Week 1 ===
 +
 
 
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"  
 
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"  
 
|- {{Style|table header}}
 
|- {{Style|table header}}
Line 95: Line 100:
  
 
* [http://esf.ccarh.org/CS275B-Mus254/01A_MusicQuery_Analysis_StyleSimulation_2016.pdf 1a. Music Query, Analysis, and Style Simulation (April 2)]
 
* [http://esf.ccarh.org/CS275B-Mus254/01A_MusicQuery_Analysis_StyleSimulation_2016.pdf 1a. Music Query, Analysis, and Style Simulation (April 2)]
* [http://esf.ccarh.org/CS275B-Mus254/01B_MelodicQuery_2016.pdf 1b. Melodic Query (April 5)]
+
* [http://esf.ccarh.org/CS275B-Mus254/01B_MelodicQuery_2019.pptx 1b. Melodic Query (April 5)] or PDF [http://esf.ccarh.org/CS275B-Mus254/01B_MelodicQuery_2019.pdf]
 +
* [http://wiki.ccarh.org/wiki/Humdrum_Lab_1  Humdrum Lab 1]
 +
* [https://docs.google.com/presentation/d/1YmKGR1hfU7XP8kPEbC6yYuCfAJnn_PvlnedTjqSvHWA/edit?usp=sharing Humdrum data]
 +
 
 +
<b> Harmony-related Humdrum tools </b>
 +
 
 +
* [https://docs.google.com/presentation/d/1D8dGfuqJK0x6eEYoirkExsP5XCgz7hszNo8IJ_kRTgs/edit?usp=sharing Humdrum Harmony I]
 +
 
 +
* [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.
  
* [http://wiki.ccarh.org/wiki/Humdrum_Lab_1  Humdrum Lab 1]
+
<b> Homework for new students </b>
  
<b>Lab: Harmony I</b>
+
* For new students, enter [[Media:KernEncoding.pdf| this music]] in [http://verovio.humdrum.org Verovio Humdrum Viewer].  For extra credit, create a webpage for your examples using the [https://plugin.humdrum.org Humdrum Notation Plugin].  Also useful, see this [http://doc.verovio.humdrum.org/humdrum/getting_started/ introduction to encoding music in Humdrum].
 +
|-
 +
|}
  
*[[Media:Harmony1.pdf| Harmony Tools available in Humdrum]] (PDF slides)
+
=== Week 2 ===
** 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.
 
  
* [[Media:pitchmix-markov.pdf|Pitchmix and Markov analysis of composite sonorities]]
+
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"
 +
|- {{Style|table header}}
 +
! scope="col" width="20px" | Week
 +
! scope="col" width="95px" | Dates
 +
! scope="col" width="500px" | Topics
 
|-
 
|-
 
| 2<div id="week2"></div> || 9 & 11  Apr 2019 ||  
 
| 2<div id="week2"></div> || 9 & 11  Apr 2019 ||  
<b>Melody Lectures</b>
+
<b>Cope, Emmy, Emily Howell Lectures (Style Synthesis)</b>
* [http://esf.ccarh.org/CS275B-Mus254/02B_Melodic%20Similarity_2016.pdf 2a. Melodic Search: Strategies and Formats] (PDF slides)]
+
* [http://esf.ccarh.org/CS275B-Mus254/02B_Cope_EM_I-Emmy-EmilyHowell2019.pptx Cope: Experiments in Musical Intelligence]
* [http://esf.ccarh.org/CS275B-Mus254/03A_MusicalDimensions-Similarity_2016.pdf 2b. Musical_Dimensions_of_Similarity] (PDF slides)]  
+
* [http://esf.ccarh.org/CS275B-Mus254/02_Cope1-2019.pptx From Emmy to Emily Howell]
  
 
<b>Melody Lab</b>
 
<b>Melody Lab</b>
* [[Media:Melody1.pdf|Melody Tools available in Humdrum]] (PDF slides)
+
* [[Humdrum Lab 2]]
 +
 
 +
* [https://docs.google.com/presentation/d/1vjQdN2bdK5-YJmkSIcYmnF6Z8v6PkimIV-Jl8ZCmmeQ/edit?usp=sharing Melody Tools available in Humdrum]
 
** melody tools:
 
** melody tools:
 
*** [http://www.humdrum.org/Humdrum/commands/mint mint]: Melodic intervals
 
*** [http://www.humdrum.org/Humdrum/commands/mint mint]: Melodic intervals
Line 138: Line 145:
 
*** [http://www.humdrum.org/Humdrum/commands/context context]: melodic n-grams
 
*** [http://www.humdrum.org/Humdrum/commands/context context]: melodic n-grams
 
*** [http://extras.humdrum.org/man/prange prange]: Pitch range tool.
 
*** [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:
 
** support tools:
 
*** [http://www.humdrum.org/Humdrum/commands/kern kern]: remove rhythms from note data.
 
*** [http://www.humdrum.org/Humdrum/commands/kern kern]: remove rhythms from note data.
Line 159: Line 161:
 
*** [http://www.imagemagick.org/script/convert.php convert]: Imagemagick tool for manipulating images.
 
*** [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.
 
*** [http://ghostscript.com/doc/current/Ps2pdf.htm ps2pdf]: convert PostScript into PDF files.
 +
|-
 +
|}
 +
 +
=== Week 3 ===
 +
 +
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"
 +
|- {{Style|table header}}
 +
! scope="col" width="20px" | Week
 +
! scope="col" width="95px" | Dates
 +
! scope="col" width="500px" | Topics
 
|-
 
|-
 
| 3<div id="week3"></div> || 15 Apr 2019 ||  
 
| 3<div id="week3"></div> || 15 Apr 2019 ||  
<b>Lectures: Approaches to melodic and rhythmic assessment</b>
+
<b>Lectures: Approaches to melodic and other musical-similarity assessment</b>
* [http://esf.ccarh.org/254/03A_MusicalDimensions-Similarity_2016.pdf 3a. Musical Dimensions of Similarity]
+
* [http://esf.ccarh.org/CS275B-Mus254/03A_Melodic-Similarity_2019.pptx Melodic Similarity]
* [http://esf.ccarh.org/254-old/03b_Aspects%20of%20Rhythm%20and%20Meter.pdf 3b. Aspects of Meter and Rhythm]
+
* [http://esf.ccarh.org/CS275B-Mus254/03B_MorePerspectives-Similarity2019.pptx Musical Similarity: More Perspectives]
  
 
<b>Labs: Rhythm and score manipulation tools</b>
 
<b>Labs: Rhythm and score manipulation tools</b>
* [[Media:Rhythm1.pdf| Rhythm Tools available in Humdrum]] (PDF slides)
+
* [https://docs.google.com/presentation/d/1gynqYYWm9EEBD1PfHS48YuEokeC4VeABOzI3c_RiZWI/edit?usp=sharing Rhythm Tools available in Humdrum]
 
** [http://www.humdrum.org/Humdrum/commands/timebase timebase]: create uniform duration for each Humdrum file data line.
 
** [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/beat beat]: label metric beats in Humdrum file.
Line 178: Line 190:
 
|-
 
|-
 
| 3 || 17 Apr 2019 ||  
 
| 3 || 17 Apr 2019 ||  
<b> Style synthesis</b>
 
* [http://esf.ccarh.org/254/05A_ExpMuInt%20to%20Emily%20Howell_2016.pdf 3b. From Emmy to Emily Howell: The Style Simulation and Generation Work of David Cope]
 
  
 
<b>Data/Data entry</b>
 
<b>Data/Data entry</b>
Line 191: Line 201:
 
** [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).
 
** [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).
 
|-
 
|-
| 4<div id="week4"></div> || 22 Apr 2019 ||  
+
|}
 +
 
 +
=== Week 4 ===
 +
 
 +
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"
 +
|- {{Style|table header}}
 +
! scope="col" width="20px" | Week
 +
! scope="col" width="95px" | Dates
 +
! scope="col" width="500px" | Topics
 +
|-
 +
| 4<div id="week4"></div> || 23 Apr 2019 ||  
 +
 
 +
<b>Lectures: Counterpoint (I), Similarity, Musical Coherence</b>
 +
* [http://esf.ccarh.org/CS275B-Mus254/04A_CounterpointI_2019.pptx Counterpoint (I)]
 +
* [http://esf.ccarh.org/CS275B-Mus254/04BB_Non-melodic-similarity_2019.pptx Non-melodic similarity]
 +
 
 +
[https://docs.google.com/presentation/d/1ZuPHnMlSMHHitmYtSvtMRLkVDvFkd1ob82sO5pdLrXs/edit?usp=sharing Humdrum parsing in C++]
 +
<br/>
 
<b>Harmony II</b>
 
<b>Harmony II</b>
 
* [http://esf.ccarh.org/254/05B_Harmonic%20Models_2016.pdf 4b. Harmonic Models for Analysis (1)]
 
* [http://esf.ccarh.org/254/05B_Harmonic%20Models_2016.pdf 4b. Harmonic Models for Analysis (1)]
Line 206: Line 233:
 
** [http://extras.humdrum.org/man/transpose transpose]: Transpose score to specific key or by interval.
 
** [http://extras.humdrum.org/man/transpose transpose]: Transpose score to specific key or by interval.
 
|-
 
|-
| 4 || 24 Apr 2019 ||  
+
| 4 || 25 Apr 2019 ||  
 
<b> Harmonic Models</b>
 
<b> Harmonic Models</b>
 
* [http://esf.ccarh.org/254/05B_2016.pdf 5a. Harmonic Models for Analysis (2)]
 
* [http://esf.ccarh.org/254/05B_2016.pdf 5a. Harmonic Models for Analysis (2)]
 
<b>Humdrum & MIDI</b>
 
<b>Humdrum & MIDI</b>
 
* [[Media:Humdrum2Midi.pdf | Humdrum to MIDI]] (PDF slides)
 
* [[Media:Humdrum2Midi.pdf | Humdrum to MIDI]] (PDF slides)
 +
|-
 +
|}
 +
 +
=== Week 5 ===
 +
 +
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"
 +
|- {{Style|table header}}
 +
! scope="col" width="20px" | Week
 +
! scope="col" width="95px" | Dates
 +
! scope="col" width="500px" | Topics
 
|-
 
|-
 
| 5<div id="week5"></div> || 29 Apr 2019 ||
 
| 5<div id="week5"></div> || 29 Apr 2019 ||
Line 219: Line 256:
 
* [http://esf.ccarh.org/254/04A_MoreMusicalDimensions-Similarity_2016.pdf 5b. More Musical Dimensions of Similarity]  
 
* [http://esf.ccarh.org/254/04A_MoreMusicalDimensions-Similarity_2016.pdf 5b. More Musical Dimensions of Similarity]  
 
* Performance analysis: [[Media:sonic-visualiser.pdf]]
 
* Performance analysis: [[Media:sonic-visualiser.pdf]]
 +
|-
 +
|}
 +
 +
=== Week 6 ===
 +
 +
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"
 +
|- {{Style|table header}}
 +
! scope="col" width="20px" | Week
 +
! scope="col" width="95px" | Dates
 +
! scope="col" width="500px" | Topics
 
|-
 
|-
 
| 6<div id="week6"></div> || 7 May 2019 ||
 
| 6<div id="week6"></div> || 7 May 2019 ||
<b>Meter and Form</b>
+
<b>Counterpoint II</b>
* [http://esf.ccarh.org/254/06A_Meter%20and%20Form_2016.pdf 6a. Meter and Form]
+
* [http://esf.ccarh.org/CS275B-Mus254/06A_Artificial-Counterpoint_2019.pptx Counterpoint II]
 +
<b>Rhythm and Meter</b>
 +
* [http://esf.ccarh.org/CS275B-Mus254/06B_RhythmMeter_2019.pptx Rhythm and Meter]
 
<b> Programming for Humdrum files </b>
 
<b> Programming for Humdrum files </b>
 
* [[Humdrum Extras]] &mdash; C++ library for processing Humdrum files
 
* [[Humdrum Extras]] &mdash; C++ library for processing Humdrum files
 
|-
 
|-
 
| 6 || 9 May 2019 ||
 
| 6 || 9 May 2019 ||
<b> Inner metric analysis and generative approaches </b>
+
 
* [http://esf.ccarh.org/254/06B_Composite%20Feature%20Theories_2016.pdf 6b. Composite Feature Theories]
 
 
<b> Sonority distributions by bass-line scale degrees </b>
 
<b> Sonority distributions by bass-line scale degrees </b>
 
* [[Media:CorelliBassline.pdf |  Corelli & Rule-of-the-octave data selection]] (PDF slides)
 
* [[Media:CorelliBassline.pdf |  Corelli & Rule-of-the-octave data selection]] (PDF slides)
 +
|-
 +
|}
 +
 +
=== Week 7 ===
 +
 +
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"
 +
|- {{Style|table header}}
 +
! scope="col" width="20px" | Week
 +
! scope="col" width="95px" | Dates
 +
! scope="col" width="500px" | Topics
 
|-
 
|-
 
| 7 || 14 May 2019 ||
 
| 7 || 14 May 2019 ||
<b> Dice</b>
+
<b>Recent developments in MIR</b>
* [http://www.ccarh.org/courses/253/lab/kerndice 7a. Mozart Dice Game]
+
* [http://esf.ccarh.org/CS275B-Mus254/07A_RecentWork_SymbolicMIR.pptx Recent Work in Symbolic MIR]
 
|-
 
|-
 
| 7 || 16 May 2019 ||
 
| 7 || 16 May 2019 ||
<b> Musical Style</b>
+
<b>Recent Work in Harmonic Analysis</b>
* [http://esf.ccarh.org/254-old/08b_Quantitative-Style.pdf 7b. Quantitative Analysis of Musical Style]
+
* [http://esf.ccarh.org/CS275B-Mus254/07B_HarmonicModels_2019.pptx Harmonic Models]
 +
* [https://docs.google.com/presentation/d/1adjEeWXmypmti8HjjqUXBrgrV2RyDG-UP3T7Gcj_mEA/edit?usp=sharing Keyscapes]
 +
|-
 +
|}
 +
 
 +
=== Week 8 ===
 +
 
 +
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"
 +
|- {{Style|table header}}
 +
! scope="col" width="20px" | Week
 +
! scope="col" width="95px" | Dates
 +
! scope="col" width="500px" | Topics
 
|-
 
|-
 
| 8 || 21 May 2019 ||
 
| 8 || 21 May 2019 ||
 
<b> Project development</b>
 
<b> Project development</b>
  
No class meeting
 
 
|-
 
|-
 
| 8 || 23 May 2019 ||
 
| 8 || 23 May 2019 ||
Line 249: Line 317:
 
* [[Media:MazurkaProject.pdf|Performance style analysis]]
 
* [[Media:MazurkaProject.pdf|Performance style analysis]]
  
 +
|-
 +
|}
 +
 +
=== Week 9 ===
 +
 +
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"
 +
|- {{Style|table header}}
 +
! scope="col" width="20px" | Week
 +
! scope="col" width="95px" | Dates
 +
! scope="col" width="500px" | Topics
 
|-
 
|-
 
| 9 || 28 May, 30 May 2019 ||
 
| 9 || 28 May, 30 May 2019 ||
Line 255: Line 333:
 
<b> MEI</b>
 
<b> MEI</b>
 
* MEI (Music Encoding Initiative) Release 2.0
 
* MEI (Music Encoding Initiative) Release 2.0
 +
|-
 +
|}
 +
 +
=== Week 10 ===
 +
 +
{| class="wikitable" cellpadding="5" cellspacing="0" border="1"
 +
|- {{Style|table header}}
 +
! scope="col" width="20px" | Week
 +
! scope="col" width="95px" | Dates
 +
! scope="col" width="500px" | Topics
 
|-
 
|-
 
| 10 || 4 June 2019 ||
 
| 10 || 4 June 2019 ||
Line 267: Line 355:
 
|-
 
|-
 
|}
 
|}
</center>
+
 
 +
=== Other topics/resources ===
 +
 
 +
 
 +
** 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.
 +
* [[Media:pitchmix-markov.pdf|Pitchmix and Markov analysis of composite sonorities]]
  
 
== General Policies and University Rules ==
 
== General Policies and University Rules ==

Latest revision as of 20:36, 22 March 2020

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

This is an old syllabus. Also, see the most recent Music 254/CS 275b Syllabus.

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 (unix/bash shell), Humdrum Extras (C++), or Music21 (Python), or their preferred programming language/environment) students plan and design their own applications involving symbolic musical data.

The first four weeks cover basic areas of music analysis and retrieval and introduce basic principles of using the Humdrum Toolkit. Students may be assigned individual reading assignments pertinent to their research topic areas. The remaining six weeks are spent on individual project development, with weekly reports and discussions. Extensive help is available in the lab during hours allotted to class time. Students give verbal and written reports on their research at the end of the quarter. Some projects may be appropriate for continuation in independent-study modules.


Meeting times: Tuesdays & Thursdays 1:30–2:50
Location: Braun Music Building, Rooms 131 (lectures), 128 (lab entry from Room 129)
Instructors: Eleanor Selfridge-Field (esfield@stanford.edu)
Craig Sapp(craig@ccrma.stanford.edu)
Office Hours: 3:05–4:05 After class and by appointment.
Credits: 2–4
Grading:

25% class participation, 75% project

  • Project proposal: 2+ pages, due Thurs. 18 April 2019
  • Project progress report: 4+ pages, Thurs. 7 May 2019
  • Project presentation in class: Tuesday 4 June 2019
  • Project writeup: 10–20 pages
    • Graduating on 16 June 2019: Due on 9 June 2019 10 p.m.
    • Continuing at Stanford after 16 June 2019: Due on 11 June 2019 10 p.m.
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 1

Week Dates Topics
1
2, 4 April 2019

Lectures

Harmony-related Humdrum tools

  • hint: Harmonic intervals.
  • tntype: twelve-tone chord prototypes.
  • key: Krumhansl-Schmuckler key-finding algorithm.
  • keycor: generalization of key command.
  • sonority: triadic chord descriptions of sonorities.

Homework for new students

Week 2

Week Dates Topics
2
9 & 11 Apr 2019

Cope, Emmy, Emily Howell Lectures (Style Synthesis)

Melody Lab

  • Melody Tools available in Humdrum
    • melody tools:
    • support tools:
      • kern: remove rhythms from note data.
      • myank Yank measures from a full score.
      • extract: extract spines from Humdrum file.
      • extractx: Humdrum Extras version of extract
      • hgrep: Humdrum-aware greep.
      • autostem: automatic stemming of notes.
    • unix:
      • head: show only starting lines of text.
      • grep: search text for generalized regular expressions.
      • egrep: enhanced grep (adds additional wildcards).
      • sed: Stream editor (search and replace).
    • graphics (unix):
      • pstopnm: a converter from PostScript to bitmaps.
      • convert: Imagemagick tool for manipulating images.
      • ps2pdf: convert PostScript into PDF files.

Week 3

Week Dates Topics
3
15 Apr 2019

Lectures: Approaches to melodic and other musical-similarity assessment

Labs: Rhythm and score manipulation tools

  • Rhythm Tools available in Humdrum
    • timebase: create uniform duration for each Humdrum file data line.
    • beat: label metric beats in Humdrum file.
    • gettime: calculate performance time in seconds (according to tempo markings).
    • thrux: expand repeats to performance sequence
    • minrhy: identify minimum integral rhythmic unit in score
    • assemble: merge parts into a single score
    • partjoin: automation script to merge parts into a single score (preserves grace notes, uses minrhy and timebase)
    • ditto/dittox: resolve null tokens
    • hgrep: search for patterns in Humdrum file data.
3 17 Apr 2019

Data/Data entry

  • Data/Data entry in Humdrum (PDF slides)
    • KernScores: digital library of scores in the **kern format
      • [2] introduction to KernScores
      • [3] shortcuts to data in KernScores
      • [4] browse collections in KernScores
    • [5]: 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).

Week 4

Week Dates Topics
4
23 Apr 2019

Lectures: Counterpoint (I), Similarity, Musical Coherence

Humdrum parsing in C++
Harmony II

4 25 Apr 2019

Harmonic Models

Humdrum & MIDI

Week 5

Week Dates Topics
5
29 Apr 2019

Regular Expressions

5 1 May 2019

Week 6

Week Dates Topics
6
7 May 2019

Counterpoint II

Rhythm and Meter

Programming for Humdrum files

6 9 May 2019

Sonority distributions by bass-line scale degrees

Week 7

Week Dates Topics
7 14 May 2019

Recent developments in MIR

7 16 May 2019

Recent Work in Harmonic Analysis

Week 8

Week Dates Topics
8 21 May 2019

Project development

8 23 May 2019

Project development

Week 9

Week Dates Topics
9 28 May, 30 May 2019

Counterpoint

MEI

  • MEI (Music Encoding Initiative) Release 2.0

Week 10

Week Dates Topics
10 4 June 2019

Project presentations in class.

  • Submit to Craig and Eleanor before class starts.
11 9 June 2019

Project write-ups for students taking a degree on June 17, 2019.

12 12 June 2019

Project write-ups for students continuing at Stanford beyond June 17, 2019.

Other topics/resources

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. Writeup: by 11 p.m. 6 June 2019.
  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 accommodations. The OAE is located at 563 Salvatierra Walk (phone 723-1066).