Mon Nov 30 06:11:02 2020 UTC ()
py-music21: update to 6.3.0

pkgsrc-specific change: add py-Levenshtein as a dependency. Upstream
treats it as optional, but it's very small, should have no issues
building anywhere, and boosts similarity search performance vs. the
fallback of difflib.

Change log:

Bug fixes

    Music21 gets the proper mac version and runs in Big Sur (thanks Daniel F端rst)
    corpus.search() should work on PC now. Sharing music21 scores that have been frozen and thawed should also work across Mac and PC.
    ChordSymbols preserve root and bass (thanks to Jacob Tayler Walls = JTW for this and so much else in this release!)
    Instrument names that cannot be decoded from MIDI do not crash MIDI parsing (JTW)
    Audio searches and other searches on empty streams are improved. (JTW)
    Non existent user scratch directory does not raise major bugs any more (David Garfinkle and JTW)
    New location for System/Preview on macOS since Catalina and musescore on Windows (MSC + JTW)
    remove() now searches endElements as well.
    Corrected octaves on pitches derived in IntervalNetwork.nextPitch() (JTW) -- should fix some weird scale pitch octaves.
    TextExpressions now have correct offsets when derived from a tempo indication or coda (JTW)
    MIDI files parsed multiple times with different quantization settings work properly (JTW)
    MIDI files with zero-length notes now create zero-length GraceNotes and not 1.0 length notes in music21 (JTW)
    All tests pass in Python 3.8 (now on to 3.9!)
    Beethoven Opus 59 no 3 mvmt 4 contained all 4 movements in it. Now it only contains movement 4.
    MIDI's matchedNoteOff was not working properly. Works now (Thanks SunWoong KIM)
    If two keys had the same likelihood in probe-tone analysis then only one appeared in .alterateInterpretations. Now there will always be a 23-element list. (ZM-J + JTW)
    C-version of Python Levenshtein was sometimes not being called even if installed. This will greatly speed up similarity searching.
    Harmony.addChordStepModification gets an updatePitches=True attribute that will immediately apply the chordStepModification to the computed pitches. The default of False remains for now, but will become True in music21 v.7.

Improvements:

    Chordify and Verticality.makeChords gets a new keyword attribute "copyPitches=False" which makes it so that the original pitches (and not deepcopies) from the score appear in the chordified score. This can make it MUCH easier to see which pitches in a chordified score relate to the pitches in the original. However, they are identical objects, so changing one later will change the other. Default behavior is unchanged.
    Repeats play back properly in MIDI (JTW)
    Improved Docs (configuration instructions, typos, examples) (many people but especially JTW)
    Much better typing all around for developers
    math.log2 used instead of math.log(x, 2) for no more floating point confusion in many quarterLengths (JTW)
    Braille keeps its debugging information in Note.editorial instead of custom attributes (backwards incompatible change, but okay)
    Braille/runAllBrailleTests improved for non-sighted developers.
    Incomplete 7th/9th/11th chords find roots better (JTW)
    Legacy code for Python 3.5 removed (JTW)
    Augmented sixth RomanNumerals work w/o needing a key. Also work with secondary numerals (JTW)
    Bach chorales sort by BWV as a number rather than a string (JTW)
    Beethoven quartets from Project Gutenberg had hidden voices w/ incorrect durations to show playback of trills, etc. Those voices have been removed. Speeds up the parsing of those pieces greatly, and gives better feature extractions. Affected pieces are opus 59.1.3, 59.1.4, 59.2.1, 59.2.2, 59.3.2, 59.3.3, 59.3.4, and opus 133.
    Improvements to instrument name lookups (Thanks Mark Gotham)
    Unnecessary list comprehensions are removed.
    For running tests, missing optional modules and Lilypond. will cause import errors.
    ABC module has been partially cleaned up, and made easier for developers to hack new ABC extensions to.

Changes:

as this is a 6.X release, we have tried to keep backwards incompatible changes to a bare minimum, but a few obscure cases are changed:

    .seconds, .beat, .beatStrength on notes without a TimeSignature or MetronomeMark context now return nan instead of raising an exception. .beatStr returns the string "nan". Python 3.8's mock methods iterate through all properties before setting up the mocked object and properties that might raise exceptions cause problems. This seems like a good direction to go in, so please expect that all property getters will switch to never raising an exception but giving nan or another failure indicator in the future.
    KrumhanslSchmucker and KrumhanslKessler probe tone analysis are now identical. The difference before was probably a typo. They are now synonyms for each other.


(gutteridge)
diff -r1.7 -r1.8 pkgsrc/audio/py-music21/Makefile
diff -r1.4 -r1.5 pkgsrc/audio/py-music21/PLIST
diff -r1.3 -r1.4 pkgsrc/audio/py-music21/distinfo

cvs diff -r1.7 -r1.8 pkgsrc/audio/py-music21/Makefile (expand / switch to unified diff)

--- pkgsrc/audio/py-music21/Makefile 2020/10/12 21:51:58 1.7
+++ pkgsrc/audio/py-music21/Makefile 2020/11/30 06:11:02 1.8
@@ -1,38 +1,38 @@ @@ -1,38 +1,38 @@
1# $NetBSD: Makefile,v 1.7 2020/10/12 21:51:58 bacon Exp $ 1# $NetBSD: Makefile,v 1.8 2020/11/30 06:11:02 gutteridge Exp $
2 2
3VERSION= 6.1.0 3VERSION= 6.3.0
4DISTNAME= music21-noCorpus-${VERSION} 4DISTNAME= music21-noCorpus-${VERSION}
5PKGNAME= ${PYPKGPREFIX}-music21-${VERSION} 5PKGNAME= ${PYPKGPREFIX}-music21-${VERSION}
6PKGREVISION= 2 
7CATEGORIES= audio python 6CATEGORIES= audio python
8MASTER_SITES= ${MASTER_SITE_GITHUB:=cuthbertLab/} 7MASTER_SITES= ${MASTER_SITE_GITHUB:=cuthbertLab/}
9GITHUB_PROJECT= music21 8GITHUB_PROJECT= music21
10GITHUB_RELEASE= v${VERSION} 9GITHUB_RELEASE= v${VERSION}
11 10
12MAINTAINER= gutteridge@NetBSD.org 11MAINTAINER= gutteridge@NetBSD.org
13HOMEPAGE= https://github.com/cuthbertLab/music21 12HOMEPAGE= https://github.com/cuthbertLab/music21
14COMMENT= Python toolkit for computer-aided musical analysis 13COMMENT= Python toolkit for computer-aided musical analysis
15LICENSE= modified-bsd OR gnu-lgpl-v3 14LICENSE= modified-bsd OR gnu-lgpl-v3
16 15
17PYTHON_VERSIONS_INCOMPATIBLE= 27 16PYTHON_VERSIONS_INCOMPATIBLE= 27
18 17
19EGG_NAME= music21-${VERSION} 18EGG_NAME= music21-${VERSION}
20 19
21DEPENDS+= ${PYPKGPREFIX}-chardet-[0-9]*:../../converters/py-chardet 20DEPENDS+= ${PYPKGPREFIX}-chardet-[0-9]*:../../converters/py-chardet
22DEPENDS+= ${PYPKGPREFIX}-joblib-[0-9]*:../../devel/py-joblib 21DEPENDS+= ${PYPKGPREFIX}-joblib-[0-9]*:../../devel/py-joblib
23DEPENDS+= ${PYPKGPREFIX}-more-itertools-[0-9]*:../../devel/py-more-itertools 22DEPENDS+= ${PYPKGPREFIX}-more-itertools-[0-9]*:../../devel/py-more-itertools
24DEPENDS+= ${PYPKGPREFIX}-matplotlib-[0-9]*:../../graphics/py-matplotlib 23DEPENDS+= ${PYPKGPREFIX}-matplotlib-[0-9]*:../../graphics/py-matplotlib
25DEPENDS+= ${PYPKGPREFIX}-scipy-[0-9]*:../../math/py-scipy 24DEPENDS+= ${PYPKGPREFIX}-scipy-[0-9]*:../../math/py-scipy
 25DEPENDS+= ${PYPKGPREFIX}-Levenshtein-[0-9]*:../../textproc/py-Levenshtein
26DEPENDS+= ${PYPKGPREFIX}-jsonpickle-[0-9]*:../../textproc/py-jsonpickle 26DEPENDS+= ${PYPKGPREFIX}-jsonpickle-[0-9]*:../../textproc/py-jsonpickle
27DEPENDS+= ${PYPKGPREFIX}-webcolors>=1.11:../../www/py-webcolors 27DEPENDS+= ${PYPKGPREFIX}-webcolors>=1.11:../../www/py-webcolors
28 28
29# Many tests will fail because they depend on the score files that 29# Many tests will fail because they depend on the score files that
30# are part of the full music21 distribution. 30# are part of the full music21 distribution.
31TEST_DEPENDS+= ${PYPKGPREFIX}-guppy3-[0-9]*:../../devel/py-guppy3 31TEST_DEPENDS+= ${PYPKGPREFIX}-guppy3-[0-9]*:../../devel/py-guppy3
32 32
33USE_LANGUAGES= # none 33USE_LANGUAGES= # none
34 34
35.include "options.mk" 35.include "options.mk"
36 36
37.include "../../lang/python/egg.mk" 37.include "../../lang/python/egg.mk"
38.include "../../math/py-numpy/buildlink3.mk" 38.include "../../math/py-numpy/buildlink3.mk"

cvs diff -r1.4 -r1.5 pkgsrc/audio/py-music21/PLIST (expand / switch to unified diff)

--- pkgsrc/audio/py-music21/PLIST 2020/09/04 01:11:31 1.4
+++ pkgsrc/audio/py-music21/PLIST 2020/11/30 06:11:02 1.5
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.4 2020/09/04 01:11:31 gutteridge Exp $ 1@comment $NetBSD: PLIST,v 1.5 2020/11/30 06:11:02 gutteridge Exp $
2${PYSITELIB}/${EGG_INFODIR}/PKG-INFO 2${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
3${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt 3${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
4${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt 4${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
5${PYSITELIB}/${EGG_INFODIR}/not-zip-safe 5${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
6${PYSITELIB}/${EGG_INFODIR}/requires.txt 6${PYSITELIB}/${EGG_INFODIR}/requires.txt
7${PYSITELIB}/${EGG_INFODIR}/top_level.txt 7${PYSITELIB}/${EGG_INFODIR}/top_level.txt
8${PYSITELIB}/music21/LICENSE 8${PYSITELIB}/music21/LICENSE
9${PYSITELIB}/music21/__init__.py 9${PYSITELIB}/music21/__init__.py
10${PYSITELIB}/music21/__init__.pyc 10${PYSITELIB}/music21/__init__.pyc
11${PYSITELIB}/music21/__init__.pyo 11${PYSITELIB}/music21/__init__.pyo
12${PYSITELIB}/music21/_version.py 12${PYSITELIB}/music21/_version.py
13${PYSITELIB}/music21/_version.pyc 13${PYSITELIB}/music21/_version.pyc
14${PYSITELIB}/music21/_version.pyo 14${PYSITELIB}/music21/_version.pyo
@@ -442,26 +442,27 @@ ${PYSITELIB}/music21/midi/testPrimitive/ @@ -442,26 +442,27 @@ ${PYSITELIB}/music21/midi/testPrimitive/
442${PYSITELIB}/music21/midi/testPrimitive/test03.mid 442${PYSITELIB}/music21/midi/testPrimitive/test03.mid
443${PYSITELIB}/music21/midi/testPrimitive/test04.mid 443${PYSITELIB}/music21/midi/testPrimitive/test04.mid
444${PYSITELIB}/music21/midi/testPrimitive/test05.mid 444${PYSITELIB}/music21/midi/testPrimitive/test05.mid
445${PYSITELIB}/music21/midi/testPrimitive/test06.mid 445${PYSITELIB}/music21/midi/testPrimitive/test06.mid
446${PYSITELIB}/music21/midi/testPrimitive/test07.mid 446${PYSITELIB}/music21/midi/testPrimitive/test07.mid
447${PYSITELIB}/music21/midi/testPrimitive/test08.mid 447${PYSITELIB}/music21/midi/testPrimitive/test08.mid
448${PYSITELIB}/music21/midi/testPrimitive/test09.mid 448${PYSITELIB}/music21/midi/testPrimitive/test09.mid
449${PYSITELIB}/music21/midi/testPrimitive/test10.mid 449${PYSITELIB}/music21/midi/testPrimitive/test10.mid
450${PYSITELIB}/music21/midi/testPrimitive/test11.mid 450${PYSITELIB}/music21/midi/testPrimitive/test11.mid
451${PYSITELIB}/music21/midi/testPrimitive/test12.mid 451${PYSITELIB}/music21/midi/testPrimitive/test12.mid
452${PYSITELIB}/music21/midi/testPrimitive/test13.mid 452${PYSITELIB}/music21/midi/testPrimitive/test13.mid
453${PYSITELIB}/music21/midi/testPrimitive/test14.mid 453${PYSITELIB}/music21/midi/testPrimitive/test14.mid
454${PYSITELIB}/music21/midi/testPrimitive/test15.mid 454${PYSITELIB}/music21/midi/testPrimitive/test15.mid
 455${PYSITELIB}/music21/midi/testPrimitive/test16.mid
455${PYSITELIB}/music21/midi/translate.py 456${PYSITELIB}/music21/midi/translate.py
456${PYSITELIB}/music21/midi/translate.pyc 457${PYSITELIB}/music21/midi/translate.pyc
457${PYSITELIB}/music21/midi/translate.pyo 458${PYSITELIB}/music21/midi/translate.pyo
458${PYSITELIB}/music21/musedata/__init__.py 459${PYSITELIB}/music21/musedata/__init__.py
459${PYSITELIB}/music21/musedata/__init__.pyc 460${PYSITELIB}/music21/musedata/__init__.pyc
460${PYSITELIB}/music21/musedata/__init__.pyo 461${PYSITELIB}/music21/musedata/__init__.pyo
461${PYSITELIB}/music21/musedata/base12_26.py 462${PYSITELIB}/music21/musedata/base12_26.py
462${PYSITELIB}/music21/musedata/base12_26.pyc 463${PYSITELIB}/music21/musedata/base12_26.pyc
463${PYSITELIB}/music21/musedata/base12_26.pyo 464${PYSITELIB}/music21/musedata/base12_26.pyo
464${PYSITELIB}/music21/musedata/base40.py 465${PYSITELIB}/music21/musedata/base40.py
465${PYSITELIB}/music21/musedata/base40.pyc 466${PYSITELIB}/music21/musedata/base40.pyc
466${PYSITELIB}/music21/musedata/base40.pyo 467${PYSITELIB}/music21/musedata/base40.pyo
467${PYSITELIB}/music21/musedata/testPrimitive/__init__.py 468${PYSITELIB}/music21/musedata/testPrimitive/__init__.py

cvs diff -r1.3 -r1.4 pkgsrc/audio/py-music21/distinfo (expand / switch to unified diff)

--- pkgsrc/audio/py-music21/distinfo 2020/09/04 01:11:31 1.3
+++ pkgsrc/audio/py-music21/distinfo 2020/11/30 06:11:02 1.4
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
1$NetBSD: distinfo,v 1.3 2020/09/04 01:11:31 gutteridge Exp $ 1$NetBSD: distinfo,v 1.4 2020/11/30 06:11:02 gutteridge Exp $
2 2
3SHA1 (music21-noCorpus-6.1.0.tar.gz) = 9c61eb167f723d49f3e3e5bab4ba2cf0e917eed8 3SHA1 (music21-noCorpus-6.3.0.tar.gz) = 451cc0829cee8cee261ea8aabc73b2a0d9846bc1
4RMD160 (music21-noCorpus-6.1.0.tar.gz) = 6d8e3757b162fa68b14b8ffdeb3ba63092cc3ea1 4RMD160 (music21-noCorpus-6.3.0.tar.gz) = f15ebc7f0a35eab4d58ef346beddd1caa35bddee
5SHA512 (music21-noCorpus-6.1.0.tar.gz) = 69fc5599fa533e8d5f2c25e711b04726ad1d7f3a9543384f8034fa2da962cfe550e0a597f697e9eb10dc7fb77d89682559e8e0a1eeff4a2ccc9f20913480ee48 5SHA512 (music21-noCorpus-6.3.0.tar.gz) = a530927f286e19aea188995822d5ec0130cda8e9e85680faa7962349809783756efe731e931596f20de0d6e1647ee6a6cb0a14ac230b09fd6d1e43aeb9a3e7d3
6Size (music21-noCorpus-6.1.0.tar.gz) = 5269537 bytes 6Size (music21-noCorpus-6.3.0.tar.gz) = 5277568 bytes