Skip to content

Commit ff16dc2

Browse files
authored
Merge pull request #1754 from cuthbertLab/v9.5
Release music21 v9.5
2 parents 8ae2ae7 + 32ddbad commit ff16dc2

File tree

16 files changed

+511
-159
lines changed

16 files changed

+511
-159
lines changed

dist/dist.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@
1717
1. update the VERSION in _version.py and the single test case in base.py.
1818
2. run `corpus.corpora.CoreCorpus().cacheMetadata()`.
1919
for a major change that affects parsing run corpus.corpora.CoreCorpus().rebuildMetadataCache()
20-
(20 min on IntelMacbook Air) -- either of these MAY change a
20+
(2 min on M4) -- either of these MAY change a
2121
lot of tests in corpus, metadata, etc. so don't skip the next step!
2222
3. IMPORTANT: run python documentation/testDocumentation.py and afterwards fix errors [*]
2323
2424
[*] you will need pytest, docutils, nbval installed (along with ipython and jupyter),
2525
you cannot check to see if fixed tests work while it is running.
2626
This takes a while and runs single core, and then almost always needs code patches
27-
so allocate time. Start working on the announcement while it's running.
27+
so allocate time (2 min on M4). Start working on the announcement while it's running.
2828
2929
3030
4. run test/warningMultiprocessTest.py for lowest and highest Py version -- fix all warnings!
@@ -36,8 +36,10 @@
3636
(normally not necessary, because it's slower and mostly duplicates multiprocessTest,
3737
but should be done before making a release).
3838
39-
7. run documentation/make.py clean (skip on minor version changes)
40-
8. run documentation/make.py linkcheck [*]
39+
7. run documentation/make.py clean (skip on minor version changes) -- you may need to make a
40+
documentation/build directory first.
41+
8. run documentation/make.py linkcheck [*] - missing http://www.musicxml.org/dtds/partwise.dtd
42+
and code-of-conduct links are both okay.
4143
9. run documentation/make.py [*]
4244
4345
[*] you will need sphinx, Jupyter (pip or easy_install), markdown, and pandoc (.dmg) installed
@@ -46,15 +48,16 @@
4648
via Amazon S3 (contact MSAC for authentication if need be)
4749
4850
11. zip up documentation/build/html and get ready to upload/delete it.
49-
Rename to music21.v.7.1.0-docs.zip (skip for Alpha/Beta)
51+
Rename to music21.v.9.5.0-docs.zip (skip for Alpha/Beta)
5052
51-
12. From the music21 main folder (not the sub folder) run "hatch build" --
52-
requires hatch to be installed "brew install hatch"
53+
12. From the music21 main folder (not subfolder) run "hatch build" --
54+
requires hatch to be installed "pip install hatch" -- brew version of hatch
55+
was giving Environment `default` is incompatible messages recently. (mysql? why relevant?)
5356
5457
This builds the dist/music21-9.3.0.tar.gz and dist/music21-9.3.0-py3-none-any.whl
5558
files. That used to be what *this* script did, but now hatch does it better!
5659
57-
13. Run this file: it builds the no-corpus version of music21.
60+
13. Run this file: it builds the no-corpus version of music21. (need Python 3.12 or higher)
5861
DO NOT RUN THIS ON A PC or the Mac .tar.gz might have an incorrect permission if you do.
5962
6063
14. PR and Commit to GitHub at this point w/ commit comment of the new version,
@@ -76,7 +79,7 @@
7679
7780
Finish this before doing the next step, even though it looks like it could be done in parallel.
7881
79-
19a. Upload the new file to PyPI with "twine upload music21-9.3.0.tar.gz" [*]
82+
19a. Upload the tar.gz file to PyPI with "twine upload music21-9.3.0.tar.gz" [*]
8083
8184
19b. Do the same for the whl file (but not for the no-corpus file) [*]
8285
@@ -92,6 +95,10 @@
9295
username:__token__
9396
password:pypi-the_gibberish_generated_in_create_api_token_at_the_bottom_of_account_settings
9497
98+
The "password" is under "Account Settings" -> "API Token" -> "Options" -> "View Unique
99+
Identifier" -- the Copy button doesn't work at least on Mac.
100+
(or you can use the "password" field in the [pypi] section, but that's not recommended)')
101+
95102
FYI -- PyPI is apparently uninterested in having contributions from smaller projects
96103
which haven't been following their internal security discussions for years. All of this
97104
is super mysterious and not well documented. sigh. But they did mail out USB sticks to
@@ -133,7 +140,7 @@ def removeCorpus():
133140
fpDstDir = os.path.join(fpDir, fnDstDir)
134141

135142
file = tarfile.open(fp)
136-
file.extractall(fpDir)
143+
file.extractall(fpDir, filter='data') # note -- this requires 3.12+ but that's okay
137144
file.close()
138145

139146
os.rename(fpDstDir.replace('-noCorpus', ''), fpDstDir)
Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
.. _about:
2+
3+
4+
Authors, Acknowledgments, Contributing, and Licensing
5+
=====================================================
6+
7+
`Music21` is an open-source toolkit for Computer-aided musicology. It is licensed under
8+
the BSD license (see below).
9+
10+
About the Authors
11+
-----------------------
12+
13+
**Michael Cuthbert**, the creator of `music21`, is co-founder and chief music officer of
14+
`Artusi`_ and former tenured professor of music at M.I.T. where he created the Mellon-Funded
15+
Digital Humanities lab and taught computational music theory and musicology.
16+
He received his A.B. *summa cum laude*, A.M. and Ph.D. degrees from Harvard University.
17+
Cuthbert spent 2004-05 at the American Academy as a Rome Prize winner in Medieval Studies,
18+
2009-10 as Fellow at Harvard's Villa I Tatti Center for Italian Renaissance Studies
19+
in Florence, and 2012-13 at the Radcliffe Institute.
20+
21+
Prior to joining the M.I.T. faculty, Cuthbert was on the faculties of Smith
22+
and Mount Holyoke Colleges. He has worked extensively on computer-aided musical analysis,
23+
fourteenth-century music, and the music since 1960.
24+
25+
**Christopher Ariza** is Emeritus Lead Programmer of `music21` and was
26+
Visiting Assistant Professor of Music
27+
at M.I.T. from 2010 to 2013. Prior to joining the `music21` project,
28+
Ariza was Assistant Professor of Music
29+
Technology at Towson University in Baltimore. He has published and
30+
presented numerous articles
31+
and papers on algorithmic composition and generative music systems.
32+
Ariza received his A.B.
33+
degree from Harvard University and his M.A. and Ph.D. degrees from New York University.
34+
35+
**Benjamin Hogue** is Former Lead Programmer of `music21` for 2013.
36+
37+
**Josiah Wolf Oberholtzer** is Former Lead Programmer of `music21` for 2014-15.
38+
39+
Additional contributions by many MIT students and visitors and the
40+
Open Source software community.
41+
42+
.. _Artusi: https://www.artusimusic.com/
43+
44+
45+
Acknowledgements
46+
----------------
47+
48+
Funding
49+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
50+
51+
`music21` was made possible by generous research funding
52+
from the **Seaver Institute** and
53+
the **National Endowment for the Humanities**/Digging into Data research fund.
54+
55+
In addition, we acknowledge previous support from `M.I.T.`_, the
56+
`School of Humanities Arts and Social Sciences`_, and the
57+
`Music and Theater Arts`_ section.
58+
59+
.. _M.I.T.: https://web.mit.edu/
60+
.. _School of Humanities Arts and Social Sciences: https://shass.mit.edu/
61+
.. _Music and Theater Arts: https://mta.mit.edu/
62+
63+
Colleagues and Institutions
64+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65+
66+
Music21 is unthinkable without our colleagues and friends
67+
working on other music and technology projects, in particular:
68+
69+
* `David Huron`_, inventor of `Humdrum`_ (the link refers to a changed version of the project),
70+
the inspiration for music21.
71+
72+
* `Michael Good`_ and Recordare.com for creating MusicXML and many
73+
discussions about the project.
74+
75+
* The `Center for Computer-Assisted Research in the Humanities`_ at Stanford University,
76+
contributing to the knowledge of music since 1984, and
77+
publishers of *Computing in Musicology*.
78+
79+
.. _David Huron: https://music.osu.edu/people/david-huron
80+
.. _Humdrum: https://www.humdrum.org
81+
.. _Michael Good: https://www.musicxml.com
82+
.. _Center for Computer-Assisted Research in the Humanities: http://www.ccarh.org/
83+
84+
Contributors
85+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
86+
87+
Additionally, the following individuals have contributed materials or knowledge
88+
to this project. Their contributions and generosity are greatly appreciated.
89+
90+
* Thomas Bonte, Nicholas Froment, and Werner Schweer of `MuseScore`_ for their
91+
support and for their contributions to the open source music notation projects,
92+
including the Bach Goldberg Variations and the Handel Arias included.
93+
94+
* `Jacob Walls`_, contributed greatly to the type-safety, speed, and test coverage
95+
of `music21`. If your music21 program "just works" without needing to guess what
96+
any argument goes where, Jacob is to thank.
97+
98+
* `Donald Byrd`_, researcher on University of Indiana who created
99+
a schema for computer-aided musicology (along with the source of all sorts of
100+
examples of how music notation is difficult).
101+
102+
* `Jack Campin`_ has kindly given permission to distribute his ABC editions of the Aird
103+
Collection, the Northumbrian Minstrelsy, and the Colonial and Civil War American
104+
Fife Music Collection.
105+
106+
* `John Chambers`_ has provided ABC editions to distribute with music21, including the
107+
Aird Collection, the O'Neill's Music of Ireland Collection, and Ryan's Mammoth Collection
108+
of fiddle tunes.
109+
110+
* `Laura E. Conrad`_ has kindly given permission to distribute her ABC editions of
111+
renaissance polyphony from Serpent Publications.
112+
113+
* `Ewa Dahlig-Turek`_ has kindly given permission to distribute the
114+
Essen folksong database with music21.
115+
116+
* `Margaret Greentree` kindly gave permission for distribution of her edited
117+
collection of the Bach chorales in MusicXML format as part of the music21 corpus.
118+
Her website contains all these chorales in additional formats.
119+
Any discoveries we make regarding these chorales are done in her memory.
120+
121+
* Bret Aarden for kindly contributing his conversions of Palestrina Mass corpus to `music21`.
122+
123+
* Walter B. Hewlett and Craig Sapp of Stanford's CCARH for support.
124+
125+
* `Justin London` compiled and maintained the list of Second-Viennese
126+
row forms that form the original backbone of serial.py.
127+
128+
* `McGill University`_ ELVIS project for including the MEI parser. Special thanks to Julie
129+
Cumming, Andrew Hankinson, Ichiro Fujinaga, and especially Christopher Antila for contributing.
130+
131+
* `Manuel Op de Coul`_ has kindly gave permission to use the Scala
132+
scale archive of nearly 4000 scales in music21.
133+
134+
* `Seymour Shlien`_ has kindly given permission to distribute his ABC
135+
encodings of the Essen folksong database with music21.
136+
137+
* `Bryen Travis`_ has kindly gave permission to use his collection of
138+
Bach MIDI data in `music21`. It is no longer included in the Corpus, but we
139+
continue to thank him for his generosity.
140+
141+
* `Project Gutenberg`_ houses public domain music, including the quartets of Beethoven,
142+
Haydn, and Mozart, in musicxml format which we have been able to include in music21.
143+
144+
.. _Donald Byrd: https://web.archive.org/web/20220610200930/https://homes.luddy.indiana.edu/donbyrd/CMNExtremes.htm
145+
.. _Jacob Walls: https://jacobtylerwalls.com/
146+
.. _Laura E. Conrad: http://www.serpentpublications.org/drupal7/
147+
.. _MuseScore: https://musescore.com/
148+
.. _Bryen Travis: http://www.bachcentral.com/
149+
.. _Ewa Dahlig-Turek: http://www.esac-data.org
150+
.. _Seymour Shlien: https://ifdo.ca/~seymour/runabc/esac/esacdatabase.html
151+
.. _Manuel Op de Coul: https://www.huygens-fokker.org/scala
152+
.. _John Chambers: http://trillian.mit.edu/~jc/music/book
153+
.. _Jack Campin: http://www.campin.me.uk/
154+
.. _McGill University: https://works.hcommons.org/records/c6ew2-tth07
155+
.. _Project Gutenberg: https://www.gutenberg.org/browse/categories/4
156+
157+
158+
How to Contribute
159+
-----------------
160+
161+
We are always interested in working with interested musicologists,
162+
programmers, psychologists, composers, game-designers,
163+
performers, amateur music enthusiasts, etc. In particular, we're interested
164+
in hearing about how `music21` helped you
165+
advance your work ... or in problems with `music21` itself or contributions you've made.
166+
167+
You can contact the larger `music21` community through the `music21 list`_.
168+
169+
.. _music21 list: https://groups.google.com/g/music21list
170+
171+
In particular, if you are interested in contributing documentation, tests,
172+
or new features to music21, please contact the lead author on GitHub or through the
173+
list.
174+
175+
176+
Licensing and Copyright
177+
---------------------------------
178+
179+
The `music21` Toolkit
180+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
181+
182+
Music21 is Copyright © 2006-2024 Michael Scott Asato Cuthbert.
183+
Music21 code (excluding content encoded in the corpus) is
184+
free and open-source software, licensed under the BSD License.
185+
186+
The `music21` Corpus
187+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
188+
189+
The BSD-licensed `music21` software is distributed with a corpus of encoded
190+
compositions which are distributed
191+
with the permission of the encoders (and, where needed, the composers
192+
or arrangers) and where permitted
193+
under United States copyright law. Some encodings included in the corpus
194+
may not be used for commercial uses
195+
or have other restrictions: please see the licenses embedded in individual
196+
compositions or directories for more details.
197+
198+
To the best of our knowledge, the music (if not the encodings)
199+
in the corpus are either out of copyright
200+
in the United States and/or are licensed for non-commercial use. We also
201+
aim to have all files out of copyright in the EU and Canada as well.
202+
These works, along with any works linked
203+
to in the virtual corpus, may or may not be free in your jurisdiction.
204+
If you believe this message to be in
205+
error regarding one or more works please contact Michael Cuthbert at
206+
the address provided on the contact page.
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
.. _applications:
2+
3+
4+
Applications and Extensions of `music21`
5+
=============================================
6+
7+
`Music21` has been used in numerous research tasks already, and will continue
8+
to offer researchers many tools with which to explore new domains.
9+
10+
11+
Papers, Presentations, and Publications
12+
---------------------------------------------------
13+
14+
The following papers and publications make extensive use of `music21`. Start here:
15+
16+
Cuthbert, Michael Scott Cuthbert and Christopher Ariza. 2010. "`music21`: A
17+
Toolkit for Computer-Aided Musicology and Symbolic Music Data." In
18+
*Proceedings of the International Society for Music Information Retrieval*.
19+
https://www.academia.edu/243058/music21_A_Toolkit_for_Computer_Aided_Musicology_and_Symbolic_Music_Data
20+
21+
22+
Then continue with:
23+
24+
Church, Maura and Michael Scott Cuthbert. 2014. "Improving Rhythmic
25+
Transcriptions via Probability Models Applied Post-OMR." In *Proceedings of the
26+
International Society for Music Information Retrieval*.
27+
https://www.academia.edu/7709124/Improving_Rhythmic_Transcriptions_via_Probability_Models_Applied_Post_OMR
28+
29+
Cuthbert, Michael Scott, Beth Hadley, Lars Johnson, and Christopher Reyes. 2012.
30+
"Interoperable Digital Musicology Research via `music21` Web Applications."
31+
From *Joint CLARIN-D/DARIAH Workshop at Digital Humanities Conference Hamburg*.
32+
https://www.academia.edu/1787946/Interoperable_Digital_Musicology_Research_via_music21_Web_Applications
33+
34+
Cuthbert, Michael Scott, Chris Ariza, Jose Cabal-Ugaz, Beth Hadley, and Neena Parikh. 2011.
35+
"Hidden Beyond MIDI’s Reach:Feature Extraction and Machine Learning with Rich Symbolic Formats
36+
in `music21`" In *Proceedings of the Neural Information Processing Systems Conference*.
37+
https://www.academia.edu/1256513/Hidden_Beyond_MIDI_s_Reach_Feature_Extraction_and_Machine_Learning_with_Rich_Symbolic_Formats_in_music21
38+
39+
Cuthbert, Michael Scott, Chris Ariza, and Lisa D. Friedland. 2011. "Feature Extraction and
40+
Machine Learning on Symbolic Music using the `music21` Toolkit" In
41+
*Proceedings of the International Symposium on Music Information Retrieval*
42+
https://www.academia.edu/1256514/Feature_Extraction_and_Machine_Learning_on_Symbolic_Music_using_the_music21_Toolkit
43+
44+
Jordi Barthomé Guillen and Michael Scott Cuthbert. 2011. "Score Following from
45+
Inaccurate Score and Audio Data using OMR and `music21`." In *Proceedings of the Neural
46+
Information Processing Systems Conference (Music and Machine Learning, Workshop 4*.
47+
https://www.academia.edu/1256512/Score_Following_from_Inaccurate_Score_and_Audio_Data_using_OMR_and_music21
48+
49+
Ariza, C. and Michael Scott Cuthbert. 2011. "The `music21` Stream: A New Object
50+
Model for Representing, Filtering, and Transforming Symbolic Musical
51+
Structures." In *Proceedings of the International Computer Music Conference*.
52+
San Francisco: International Computer Music Association, pp. 61-68.
53+
Available online at https://www.flexatone.net/static/docs/music21Stream.pdf
54+
55+
Ariza, C. and Michael Scott Cuthbert. 2011. "Analytical and Compositional
56+
Applications of a Network-Based Scale Model in `music21`." In *Proceedings of the
57+
International Computer Music Conference*. San Francisco: International Computer
58+
Music Association, pp. 701-708. Available online at
59+
https://www.flexatone.net/static/docs/scaleNetwork.pdf
60+
61+
Ariza, C. and Michael Scott Cuthbert. 2010. "Modeling Beats, Accents, Beams, and
62+
Time Signatures Hierarchically with `music21` Meter Objects." In *Proceedings of the
63+
International Computer Music Conference*. San Francisco: International Computer Music
64+
Association. 216-223. Available online at
65+
https://www.academia.edu/243059/Modeling_Beats_Accents_Beams_and_Time_Signatures_Hierarchically_with_music21_Meter_Objects
66+
67+
68+
Future Goals and Potential Applications
69+
---------------------------------------------------
70+
71+
There are numerous applications for music21 that we anticipate, yet simply have not had
72+
time to implement. Consider taking on one of these projects, or write us with new and
73+
interesting suggestions. To contact the authors, visit :ref:`about`.
74+
75+
- Piano-key-visualization
76+
77+
- Slonimsky scale types
78+
79+
- Automatic clarinet fingering generation via ClarFinger font (link: www.trecento.com/fonts/)
80+
81+
- Automatic string fingerings.
82+
83+
- Indian Raga encoding: including ascending, descending, and typical presentations,
84+
microtonal inflections, common associations, historical context.
85+
86+
- Multiple-simultaneous-tempi to a single tempo conversion (via tuplets).
87+
88+
- Palestrina counterpoint generation (via algorithms of Mary Farbood and others.).
89+
90+
- Beneventan chant similarity indices (thanks to the work of Thomas Forrest Kelly and the
91+
Exultet encodings made available in `**kern` by Elsa De Luca).
92+
93+
- Identify potential clefs for fragmentary Renaissance and Medieval pieces that are
94+
missing their clefs. (Use their staff-lines and minimizing number of melodic and
95+
harmonic tritones).
96+
97+
98+
99+

documentation/source/about/about.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ to this project. Their contributions and generosity are greatly appreciated.
151151
.. _Manuel Op de Coul: https://www.huygens-fokker.org/scala
152152
.. _John Chambers: http://trillian.mit.edu/~jc/music/book
153153
.. _Jack Campin: http://www.campin.me.uk/
154-
.. _McGill University: https://hcommons.org/deposits/item/hc:12359/
154+
.. _McGill University: https://works.hcommons.org/records/c6ew2-tth07
155155
.. _Project Gutenberg: https://www.gutenberg.org/browse/categories/4
156156

157157

0 commit comments

Comments
 (0)