Difference between revisions of "Music 254/CS 275b Spring 2019 Syllabus"
(→Week 1) |
|||
(37 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 98: | 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/ | + | * [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] | * [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> | <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://www.humdrum.org/Humdrum/commands/hint.html hint]: Harmonic intervals. | ||
Line 109: | Line 114: | ||
* [http://extras.humdrum.org/man/sonority sonority]: triadic chord descriptions of sonorities. | * [http://extras.humdrum.org/man/sonority sonority]: triadic chord descriptions of sonorities. | ||
+ | <b> Homework for new students </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]. | ||
|- | |- | ||
|} | |} | ||
Line 122: | Line 129: | ||
|- | |- | ||
| 2<div id="week2"></div> || 9 & 11 Apr 2019 || | | 2<div id="week2"></div> || 9 & 11 Apr 2019 || | ||
− | <b> | + | <b>Cope, Emmy, Emily Howell Lectures (Style Synthesis)</b> |
− | * [http://esf.ccarh.org/CS275B-Mus254/ | + | * [http://esf.ccarh.org/CS275B-Mus254/02B_Cope_EM_I-Emmy-EmilyHowell2019.pptx Cope: Experiments in Musical Intelligence] |
− | * [http://esf.ccarh.org/CS275B-Mus254/ | + | * [http://esf.ccarh.org/CS275B-Mus254/02_Cope1-2019.pptx From Emmy to Emily Howell] |
<b>Melody Lab</b> | <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: | ** melody tools: | ||
*** [http://www.humdrum.org/Humdrum/commands/mint mint]: Melodic intervals | *** [http://www.humdrum.org/Humdrum/commands/mint mint]: Melodic intervals | ||
Line 136: | 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. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
** 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 169: | Line 173: | ||
|- | |- | ||
| 3<div id="week3"></div> || 15 Apr 2019 || | | 3<div id="week3"></div> || 15 Apr 2019 || | ||
− | <b>Lectures: Approaches to melodic and | + | <b>Lectures: Approaches to melodic and other musical-similarity assessment</b> |
− | * [http://esf.ccarh.org/ | + | * [http://esf.ccarh.org/CS275B-Mus254/03A_Melodic-Similarity_2019.pptx Melodic Similarity] |
− | * [http://esf.ccarh.org/ | + | * [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> | ||
− | * [ | + | * [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 186: | Line 190: | ||
|- | |- | ||
| 3 || 17 Apr 2019 || | | 3 || 17 Apr 2019 || | ||
− | |||
− | |||
<b>Data/Data entry</b> | <b>Data/Data entry</b> | ||
Line 209: | Line 211: | ||
! scope="col" width="500px" | Topics | ! scope="col" width="500px" | Topics | ||
|- | |- | ||
− | | 4<div id="week4"></div> || | + | | 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 224: | 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 || | + | | 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)] | ||
Line 259: | Line 268: | ||
|- | |- | ||
| 6<div id="week6"></div> || 7 May 2019 || | | 6<div id="week6"></div> || 7 May 2019 || | ||
− | <b>Meter | + | <b>Counterpoint II</b> |
− | * [http://esf.ccarh.org/ | + | * [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]] — C++ library for processing Humdrum files | * [[Humdrum Extras]] — C++ library for processing Humdrum files | ||
|- | |- | ||
| 6 || 9 May 2019 || | | 6 || 9 May 2019 || | ||
− | + | ||
− | |||
<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) | ||
Line 281: | Line 291: | ||
|- | |- | ||
| 7 || 14 May 2019 || | | 7 || 14 May 2019 || | ||
+ | <b>Recent developments in MIR</b> | ||
+ | * [http://esf.ccarh.org/CS275B-Mus254/07A_RecentWork_SymbolicMIR.pptx Recent Work in Symbolic MIR] | ||
|- | |- | ||
| 7 || 16 May 2019 || | | 7 || 16 May 2019 || | ||
− | <b> | + | <b>Recent Work in Harmonic Analysis</b> |
− | * [http://esf.ccarh.org/ | + | * [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] | ||
|- | |- | ||
|} | |} | ||
Line 342: | Line 355: | ||
|- | |- | ||
|} | |} | ||
+ | |||
+ | === 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
|
||
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 | 2, 4 April 2019 |
Lectures
Harmony-related Humdrum tools
Homework for new students
|
Week 2
Week | Dates | Topics |
---|---|---|
2 | 9 & 11 Apr 2019 |
Cope, Emmy, Emily Howell Lectures (Style Synthesis) Melody Lab
|
Week 3
Week | Dates | Topics |
---|---|---|
3 | 15 Apr 2019 |
Lectures: Approaches to melodic and other musical-similarity assessment Labs: Rhythm and score manipulation tools
|
3 | 17 Apr 2019 |
Data/Data entry
|
Week 4
Week | Dates | Topics |
---|---|---|
4 | 23 Apr 2019 |
Lectures: Counterpoint (I), Similarity, Musical Coherence Humdrum parsing in C++
|
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
|
Week 10
Week | Dates | Topics |
---|---|---|
10 | 4 June 2019 |
Project presentations in class.
|
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
- 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
General Policies and University Rules
General policies and university rules:
- Delivery times:
- Assignments: by the start of the class for which they are due.
- Writeup: by 11 p.m. 6 June 2019.
- 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).