Difference between revisions of "Music 254/CS 275b Spring 2022 Syllabus"
(Created page with "<font size=+1><b>Music 254/CS 275b "Computational Music Analysis " <br> Stanford University (Spring 2021).</b></font> This music information retrieval course (previously lis...") |
|||
(96 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | <font size=+1><b>Music 254/CS 275b "Computational Music Analysis " <br> Stanford University (Spring | + | |
+ | |||
+ | <font size=+1><b>Music 254/CS 275b "Computational Music Analysis " <br> Stanford University (Spring 2022).</b></font> | ||
This music information retrieval course (previously listed as "Music Query, Analysis, and Style Simulation") builds on the foundation of [[Music 253|Music 253/CS 275A]] (Symbolic Musical Information). 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 (previously listed as "Music Query, Analysis, and Style Simulation") builds on the foundation of [[Music 253|Music 253/CS 275A]] (Symbolic Musical Information). 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 49: | Line 51: | ||
<td> | <td> | ||
25% class participation, 75% project | 25% class participation, 75% project | ||
− | <ul> <li> Project proposal: 2+ pages, due | + | <ul> <li> Project proposal: 2+ pages, due Thursday. 15 April 2022 |
− | <li> Project progress report: | + | <li> Project progress report: 2+ pages, Thurs. 5 May 2022 |
− | <li> Project presentation in class: Thursday 4 June | + | <li> Project presentation in class: Thursday 4 June 2022 |
<li> Project writeup: 10–20 pages | <li> Project writeup: 10–20 pages | ||
− | * <b>Graduating</b> | + | * <b>Graduating</b> in June 2022: Due on <b>?? June 2022</b> 11:59pm. |
− | * <b> | + | * <b>Not graduating</b>: Due on <b>?? June</b> 2022 11:59pm. |
</ul> | </ul> | ||
</td> | </td> | ||
Line 89: | Line 91: | ||
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]] | ||
− | See also [[Music 253/ | + | See also [[Music 253/CS_275a_Winter_2022_Syllabus | Music 253/CS 275a Syllabus]] |
=== Week 1 === | === Week 1 === | ||
Line 99: | Line 101: | ||
! scope="col" width="500px" | Topics | ! scope="col" width="500px" | Topics | ||
|- | |- | ||
− | | 1<div id="week1"></div> || | + | | 1<div id="week1"></div> || 27 March, 29 March 2022 || |
<b>Lectures</b> | <b>Lectures</b> | ||
− | * Lecture 1A. [ | + | * Lecture 1A. [https://esf.ccarh.org/CS275B-Mus254/01A_Symbolic_Music_Analysis_2021.ppt Symbolic Musical Analysis] |
− | * Lecture 1B. [ | + | * Lecture 1B. [https://esf.ccarh.org/CS275B-Mus254/01B_MelodicQuery_2022.ppt Melodic Search: Fundamentals] |
* [http://wiki.ccarh.org/wiki/Humdrum_Lab_1 Humdrum Lab 1] | * [http://wiki.ccarh.org/wiki/Humdrum_Lab_1 Humdrum Lab 1] | ||
* [https://docs.google.com/presentation/d/1YmKGR1hfU7XP8kPEbC6yYuCfAJnn_PvlnedTjqSvHWA/edit?usp=sharing Humdrum data] | * [https://docs.google.com/presentation/d/1YmKGR1hfU7XP8kPEbC6yYuCfAJnn_PvlnedTjqSvHWA/edit?usp=sharing Humdrum data] | ||
− | + | * [https://docs.google.com/presentation/d/1KFSNGbIsaXhuVpuapms1eUUrhJU7XPDt2lXMvopMYrY/edit?usp=sharing Composite Rhythm] (29 March 2022) | |
− | + | * [https://docs.google.com/presentation/d/1-3OiSNj-hpSEfJf_O6xOQOqMGtvpLjpe98Hx0tbbQDg/edit#slide=id.g120f92c5e2e_0_0 Computational Style Analysis] (31 March 2022) | |
− | |||
− | * [https://docs.google.com/presentation/d/ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * [https://docs.google.com/presentation/d/ | ||
− | |||
<b> Homework for new students </b> | <b> Homework for new students </b> | ||
Line 137: | Line 126: | ||
! scope="col" width="500px" | Topics | ! scope="col" width="500px" | Topics | ||
|- | |- | ||
− | | 2<div id="week3"></div> || | + | | 2<div id="week3"></div> || 3 Apr 2022 || |
<b>Lectures: Approaches to melodic and other musical-similarity assessment</b> | <b>Lectures: Approaches to melodic and other musical-similarity assessment</b> | ||
− | * [ | + | * [https://esf.ccarh.org/CS275B-Mus254/02x_Melodic_Similarity_2022.ppt Melodic Similarity: Pitch and Duration] |
− | + | |- | |
+ | | 2 || 5 Apr 2022 || | ||
− | + | * [https://esf.ccarh.org/254/02B_TimbralSimilarity.ppt Timbral Similarity] | |
− | * [https:// | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * [https://docs.google.com/presentation/d/1ZuPHnMlSMHHitmYtSvtMRLkVDvFkd1ob82sO5pdLrXs/edit#slide=id.p Humdrum file parsing in C++] | |
− | * [ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|} | |} | ||
Line 179: | Line 147: | ||
! scope="col" width="500px" | Topics | ! scope="col" width="500px" | Topics | ||
|- | |- | ||
− | | 2<div id="week2"></div> || | + | | 2<div id="week2"></div> || 10 & 12 Apr 2022 || |
<b>Cope, Emmy, Emily Howell Lectures (Style Synthesis)</b> | <b>Cope, Emmy, Emily Howell Lectures (Style Synthesis)</b> | ||
− | * [ | + | * [https://esf.ccarh.org/254/03a_Cope1-2022-2.ppt Cope 1: Experiments in Musical Intelligence (Emmy)] |
− | * [ | + | * [https://esf.ccarh.org/254/03b_Emmy-Emily-2022-2.ppt Cope 2: From Emmy to Emily Howell] |
+ | |||
+ | * [https://docs.google.com/presentation/d/1F71dwp-Q467WBL0yBSz6QkEk5fDkTEksYKi5xTfXGR8/edit#slide=id.g4cd0be3fa2_2_75 Sonic Visualiser] | ||
+ | |||
+ | *[https://docs.google.com/presentation/d/1PydXSxNBRelI8frIUGP9UwD7DoZ5r5QUiLZCEupjC2A/edit#slide=id.g5700a91e56_2_18 Performance similarity in Chopin mazurkas] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|} | |} | ||
Line 223: | Line 168: | ||
! scope="col" width="500px" | Topics | ! scope="col" width="500px" | Topics | ||
|- | |- | ||
− | | 4<div id="week4"></div> || | + | | 4<div id="week4"></div> || 17 Apr 2022 || |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <b>Lectures: Practical Realities of Research</b> | ||
+ | * [https://esf.ccarh.org/254/04a_Practical_Realities_Research.ppt 4a. Practical Realities of Research] | ||
+ | * [https://docs.google.com/presentation/d/1jOJa7CTm8O5y-RxXDV9wboGFEgXJifG2O4QxJhtHe_o/edit?usp=sharing Keyscapes] | ||
|- | |- | ||
− | | 4 || | + | | 4 || 19 Apr 2022 || |
− | <b> | + | <b> Audio Similarity</b> |
− | * [ | + | * [https://esf.ccarh.org/254/04b_Audio-similarity.ppt 4b. Audio similarity] |
− | + | *[https://docs.google.com/presentation/d/10f3kKhbv1R5S07Dzh6NBNHpm85BWUzhJBEymqRe2qUA/edit#slide=id.gd0281746a5_2_404 Similarity with Normalized and Unnormalized Correlation] | |
− | |||
− | |||
− | |||
− | |||
− | * [https://docs.google.com/presentation/d/ | ||
− | |||
|- | |- | ||
|} | |} | ||
Line 267: | Line 189: | ||
! scope="col" width="500px" | Topics | ! scope="col" width="500px" | Topics | ||
|- | |- | ||
− | | 5<div id="week5"></div> || | + | | 5<div id="week5"></div> || 26 April 2022 || |
<b>Patterning and Coherence in Music </b> | <b>Patterning and Coherence in Music </b> | ||
− | * [ | + | * [https://esf.ccarh.org/254/05a_Similarity-coherence_2022.ppt 5a. Patterning and Coherence] |
+ | |||
+ | * [https://docs.google.com/presentation/d/1D8dGfuqJK0x6eEYoirkExsP5XCgz7hszNo8IJ_kRTgs/edit#slide=id.gcc08b2512a_0_28 Harmony analysis tools] | ||
+ | |||
+ | |||
+ | |- | ||
+ | | 5 || 28 April 2022 || | ||
+ | * [https://esf.ccarh.org/254/05b_Meter-Rhythm-Expression_2022.ppt 05b. Meter, Rhythm, and Expression] | ||
− | |||
<b> Regular Expressions </b> | <b> Regular Expressions </b> | ||
− | * [ | + | * [https://docs.google.com/presentation/d/1H_bjIvY0tr4XAs0g1fWi1DHARD-YKkOWpi0j5GXNSwc/edit#slide=id.p21 Regular Expressions] |
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|} | |} | ||
Line 294: | Line 217: | ||
! scope="col" width="500px" | Topics | ! scope="col" width="500px" | Topics | ||
|- | |- | ||
− | | 6<div id="week6"></div> || | + | | 6<div id="week6"></div> || 3 May 2022 || |
<b>Compositional schemata</b> | <b>Compositional schemata</b> | ||
− | * [ | + | * [https://esf.ccarh.org/CS275B-Mus254/06A_CompositionalSchemata-2021.ppt Compositional schemata] |
+ | |||
+ | * Quality Control in Research: Heinz Roggenkemper (guest lecture) | ||
+ | * Project report: Adaptive tuning (Shray Alag) | ||
<b>Counterpoint II</b> | <b>Counterpoint II</b> | ||
− | * [ | + | * [https://esf.ccarh.org/CS275B-Mus254/06A_Artificial-Counterpoint_2019.pptx Counterpoint II] |
<b>Rhythm and Meter</b> | <b>Rhythm and Meter</b> | ||
− | * [ | + | * [https://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]] — C++ library for processing Humdrum files | * [[Humdrum Extras]] — C++ library for processing Humdrum files | ||
* [https://ratioscore.humdrum.org Ratioscores: A text-based system for just intervals], Julie Zhu and Craig Sapp | * [https://ratioscore.humdrum.org Ratioscores: A text-based system for just intervals], Julie Zhu and Craig Sapp | ||
|- | |- | ||
− | | 6 || | + | | 6 || 5 May 2022 || |
+ | |||
+ | * Project reports: Leon Bi and Charles Tsai (DJ transitions); Sammy Park (Guqin Digital Scores); Dominic DeMarco (Orchestral Pairings in Band Music) | ||
<b> Sonority distributions by bass-line scale degrees </b> | <b> Sonority distributions by bass-line scale degrees </b> | ||
Line 323: | Line 251: | ||
! scope="col" width="500px" | Topics | ! scope="col" width="500px" | Topics | ||
|- | |- | ||
− | | 7 || | + | | 7 || 10 May 2022 || |
<b>Recent developments in MIR</b> | <b>Recent developments in MIR</b> | ||
− | * [ | + | * [https://esf.ccarh.org/254/06a_CompositionalSchemata-2022.ppt Compositional Schemata] |
+ | 07A_RecentWork_SymbolicMIR_2021.ppt 07A. Recent Work in Symbolic MIR] | ||
|- | |- | ||
− | | 7 || | + | | 7 || 12 May 2022 || |
<b>Recent Work in Harmonic Analysis</b> | <b>Recent Work in Harmonic Analysis</b> | ||
− | * [ | + | * [https://esf.ccarh.org/CS275B-Mus254/07B_HarmonicModels_2021.ppt 07B. Harmonic Models] |
* [https://docs.google.com/presentation/d/1adjEeWXmypmti8HjjqUXBrgrV2RyDG-UP3T7Gcj_mEA/edit?usp=sharing Keyscapes] | * [https://docs.google.com/presentation/d/1adjEeWXmypmti8HjjqUXBrgrV2RyDG-UP3T7Gcj_mEA/edit?usp=sharing Keyscapes] | ||
|- | |- | ||
Line 342: | Line 271: | ||
! scope="col" width="500px" | Topics | ! scope="col" width="500px" | Topics | ||
|- | |- | ||
− | | 8 || | + | | 8 || 17 May 2022 || |
+ | |||
+ | <b>Recent Research (and Challenges) in MIR</b> | ||
+ | * [https://esf.ccarh.org/254/09b_Recent_Results2022.ppt Recent Results] | ||
− | + | <b> Project development</b> | |
− | |||
− | <b> Project development</b> | ||
|- | |- | ||
− | | 8 || | + | | 8 || 19 May 2022 || |
+ | * Music and AI: Julia Mills (guest lecture) | ||
<b> Project development</b> | <b> Project development</b> | ||
− | |||
|- | |- | ||
Line 364: | Line 294: | ||
! scope="col" width="500px" | Topics | ! scope="col" width="500px" | Topics | ||
|- | |- | ||
− | | 9a || | + | | 9a || 24 & 26 May 2022 || |
<b> Counterpoint</b> | <b> Counterpoint</b> | ||
− | * [ | + | * [https://esf.ccarh.org/254-old/09b_Improvisatory%20Counterpoint.pdf Generative approaches to counterpoint] |
<b> MEI</b> | <b> MEI</b> | ||
* MEI (Music Encoding Initiative) Release 2.0 | * MEI (Music Encoding Initiative) Release 2.0 | ||
Line 380: | Line 310: | ||
! scope="col" width="500px" | Topics | ! scope="col" width="500px" | Topics | ||
|- | |- | ||
− | | 10 || | + | | 10 || 31 May 2022 || |
<b> Project presentations in class.</b> | <b> Project presentations in class.</b> | ||
− | |||
|- | |- | ||
− | | 11 || | + | | 11 || 8 June 2022 || |
− | <b> Project write-ups</b> for students <b>taking a degree</b> in June | + | <b> Project write-ups</b> for students <b>taking a degree</b> in June 2022. |
|- | |- | ||
− | | 12 || | + | | 12 || 9 June 2022 || |
<b> Project write-ups</b> for students <b>continuing</b> at Stanford. | <b> Project write-ups</b> for students <b>continuing</b> at Stanford. | ||
|- | |- | ||
Line 393: | Line 322: | ||
=== Other topics/resources === | === Other topics/resources === | ||
+ | |||
+ | <b>Data/Data entry</b> | ||
+ | * [[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). | ||
+ | |||
+ | <b>Humdrum & MIDI</b> | ||
+ | * [[Media:Humdrum2Midi.pdf | Humdrum to MIDI]] (PDF slides) | ||
+ | |||
+ | <b>Harmony II</b> | ||
+ | * [https://docs.google.com/presentation/d/1o2zHVB7VWBbFHdz3-3GOvGl7GDOiyjRdDlvicnfE4vg/edit?usp=sharing Harmony II] Key analysis | ||
+ | ** 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. | ||
+ | |||
+ | |||
+ | <b>Regular Expressions (Text-based searching)</b> | ||
+ | * [https://docs.google.com/presentation/d/1H_bjIvY0tr4XAs0g1fWi1DHARD-YKkOWpi0j5GXNSwc/edit?usp=sharing Introduction to Regular Expressions] | ||
+ | |||
+ | <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. | ||
+ | * [https://docs.google.com/presentation/d/1-zZf8ti35jR4l-wcAdrvD6mP91-6aYvaV12Sf-7YPSM/edit?usp=sharing prange and cint tools] | ||
+ | |||
+ | <b>Rhythm and score manipulation tools</b> | ||
+ | * [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://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. | ||
+ | |||
+ | <b> Performance analysis tool </b> | ||
+ | |||
+ | * [https://docs.google.com/presentation/d/1F71dwp-Q467WBL0yBSz6QkEk5fDkTEksYKi5xTfXGR8/edit#slide=id.g4cd0be3fa2_2_75 Sonic Visualiser] | ||
** Support tools: | ** Support tools: | ||
Line 408: | Line 394: | ||
*** [http://en.wikipedia.org/wiki/Uniq uniq]: Remove/count successively repeated lines of text. | *** [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]] | * [[Media:pitchmix-markov.pdf|Pitchmix and Markov analysis of composite sonorities]] | ||
+ | |||
+ | <b>Melody Lab</b> | ||
+ | * [[Humdrum Lab 2]] | ||
+ | |||
+ | * [https://docs.google.com/presentation/d/1vjQdN2bdK5-YJmkSIcYmnF6Z8v6PkimIV-Jl8ZCmmeQ/edit?usp=sharing Melody Tools available in Humdrum] | ||
+ | ** 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. | ||
+ | ** 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. | ||
== General Policies and University Rules == | == General Policies and University Rules == | ||
Line 415: | Line 430: | ||
# <i>Delivery times</i>: | # <i>Delivery times</i>: | ||
##Assignments: by the start of the class for which they are due. | ##Assignments: by the start of the class for which they are due. | ||
− | ## <i>Project writeup</i>: by 11 p.m. 7 or 11 June | + | ## <i>Project writeup</i>: by 11 p.m. 7 or 11 June 2022 by 11p. |
# <i>Honor code</i>: We will act and expect you to act according to the [http://studentaffairs.stanford.edu/judicialaffairs/policy/honor-code Stanford Honor Code]. | # <i>Honor code</i>: We will act and expect you to act according to the [http://studentaffairs.stanford.edu/judicialaffairs/policy/honor-code Stanford Honor Code]. | ||
# <i>Students with disabilities</i>: 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). | # <i>Students with disabilities</i>: 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). |
Latest revision as of 15:54, 5 April 2023
Music 254/CS 275b "Computational Music Analysis "
Stanford University (Spring 2022).
This music information retrieval course (previously listed as "Music Query, Analysis, and Style Simulation") builds on the foundation of Music 253/CS 275A (Symbolic Musical Information). 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.
For class Zoom link |
---|
Please contact esfield@stanford.edu or craig@ccrma.stanford.edu |
Meeting times: | Tuesdays & Thursdays 1:30–3:00 | ||
Location: | Online | ||
Instructors: | Eleanor Selfridge-Field (esfield@stanford.edu) Craig Sapp(craig@ccrma.stanford.edu) | ||
Office Hours: | after class and by appointment on Zoom/Skype/Google Hangouts | ||
Credits: | 2–4 | ||
Grading: |
25% class participation, 75% project
|
||
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. |
Contents
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 | 27 March, 29 March 2022 |
Lectures
Homework for new students
|
Week 2
Week | Dates | Topics |
---|---|---|
2 | 3 Apr 2022 |
Lectures: Approaches to melodic and other musical-similarity assessment |
2 | 5 Apr 2022 |
Week 3
Week | Dates | Topics |
---|---|---|
2 | 10 & 12 Apr 2022 |
Cope, Emmy, Emily Howell Lectures (Style Synthesis)
|
Week 4
Week | Dates | Topics |
---|---|---|
4 | 17 Apr 2022 |
Lectures: Practical Realities of Research |
4 | 19 Apr 2022 |
Audio Similarity |
Week 5
Week | Dates | Topics |
---|---|---|
5 | 26 April 2022 |
Patterning and Coherence in Music
|
5 | 28 April 2022 |
|
Week 6
Week | Dates | Topics |
---|---|---|
6 | 3 May 2022 |
Compositional schemata
Counterpoint II Rhythm and Meter Programming for Humdrum files
|
6 | 5 May 2022 |
Sonority distributions by bass-line scale degrees
|
Week 7
Week | Dates | Topics |
---|---|---|
7 | 10 May 2022 |
Recent developments in MIR 07A_RecentWork_SymbolicMIR_2021.ppt 07A. Recent Work in Symbolic MIR] |
7 | 12 May 2022 |
Recent Work in Harmonic Analysis |
Week 8
Week | Dates | Topics |
---|---|---|
8 | 17 May 2022 |
Recent Research (and Challenges) in MIR Project development |
8 | 19 May 2022 |
Project development |
Week 9
Week | Dates | Topics |
---|---|---|
9a | 24 & 26 May 2022 |
Counterpoint MEI
|
Week 10
Week | Dates | Topics |
---|---|---|
10 | 31 May 2022 |
Project presentations in class. |
11 | 8 June 2022 |
Project write-ups for students taking a degree in June 2022. |
12 | 9 June 2022 |
Project write-ups for students continuing at Stanford. |
Other topics/resources
Data/Data entry
- Data/Data entry in Humdrum (PDF slides)
- KernScores: digital library of scores in the **kern format
- [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).
Humdrum & MIDI
- Humdrum to MIDI (PDF slides)
Harmony II
- Harmony II Key analysis
Regular Expressions (Text-based searching)
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.
- prange and cint tools
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.
Performance analysis tool
- Support tools:
- assemble: merge separate spines into single data stream.
- serialize: convert Humdrum data into single spine.
- humcat : concatenate multiple scores together (download data from web).
- ridx: remove various components of Humdrum file structure
- ditto: resolve meaning of null tokens.
- humsplit: split segmented Humdrum file streams into separate files.
- Unix tools:
- command line
- list of command-line programs
- sort: sort lines of data alphabetically or numerically.
- uniq: Remove/count successively repeated lines of text.
- Support tools:
- Pitchmix and Markov analysis of composite sonorities
Melody Lab
- Melody Tools available in Humdrum
- melody tools:
- support tools:
- unix:
- graphics (unix):
General Policies and University Rules
General policies and university rules:
- Delivery times:
- Assignments: by the start of the class for which they are due.
- Project writeup: by 11 p.m. 7 or 11 June 2022 by 11p.
- Honor code: We will act and expect you to act according to the Stanford Honor Code.
- 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).
- Students in distress: Stanford offers an abundance of resources for students dealing with problems of a personal nature.
- Confidential support: (650) 736-6933
- Crisis hotline: (650) 725-9955
- Title IX questions: (650) 497-4955