head 1.29; access; symbols pkgsrc-2023Q4:1.29.0.2 pkgsrc-2023Q4-base:1.29 pkgsrc-2023Q3:1.28.0.2 pkgsrc-2023Q3-base:1.28 pkgsrc-2023Q2:1.26.0.2 pkgsrc-2023Q2-base:1.26 pkgsrc-2023Q1:1.24.0.2 pkgsrc-2023Q1-base:1.24 pkgsrc-2022Q4:1.23.0.2 pkgsrc-2022Q4-base:1.23 pkgsrc-2022Q3:1.19.0.4 pkgsrc-2022Q3-base:1.19 pkgsrc-2022Q2:1.19.0.2 pkgsrc-2022Q2-base:1.19 pkgsrc-2022Q1:1.16.0.2 pkgsrc-2022Q1-base:1.16 pkgsrc-2021Q4:1.14.0.4 pkgsrc-2021Q4-base:1.14 pkgsrc-2021Q3:1.14.0.2 pkgsrc-2021Q3-base:1.14 pkgsrc-2021Q2:1.12.0.2 pkgsrc-2021Q2-base:1.12 pkgsrc-2021Q1:1.11.0.2 pkgsrc-2021Q1-base:1.11 pkgsrc-2020Q4:1.8.0.2 pkgsrc-2020Q4-base:1.8 pkgsrc-2020Q3:1.6.0.2 pkgsrc-2020Q3-base:1.6 pkgsrc-2020Q2:1.4.0.2 pkgsrc-2020Q2-base:1.4 pkgsrc-2020Q1:1.3.0.2 pkgsrc-2020Q1-base:1.3; locks; strict; comment @# @; 1.29 date 2023.10.28.19.56.55; author wiz; state Exp; branches; next 1.28; commitid jP8MYROLWZ3yJqKE; 1.28 date 2023.08.01.23.20.37; author wiz; state Exp; branches; next 1.27; commitid lyjXpsSeA6xpH8zE; 1.27 date 2023.06.26.23.33.33; author gutteridge; state Exp; branches; next 1.26; commitid eSR3oiAhCIOgVvuE; 1.26 date 2023.05.16.16.46.06; author gutteridge; state Exp; branches; next 1.25; commitid XZYtCvrbKKcuZcpE; 1.25 date 2023.05.15.22.05.11; author wiz; state Exp; branches; next 1.24; commitid PHyRUgCfuCSXM6pE; 1.24 date 2023.03.12.02.49.45; author gutteridge; state Exp; branches; next 1.23; commitid NJXX7240dtjWrMgE; 1.23 date 2022.11.14.22.06.02; author wiz; state Exp; branches; next 1.22; commitid 8yXJD7pysI2WDI1E; 1.22 date 2022.10.10.11.27.28; author wiz; state Exp; branches; next 1.21; commitid UDbkVuieRJZDeaXD; 1.21 date 2022.10.07.22.09.31; author gutteridge; state Exp; branches; next 1.20; commitid 6uOTi81K6AxASPWD; 1.20 date 2022.10.07.03.54.06; author gutteridge; state Exp; branches; next 1.19; commitid 1xF1vESOmkVMOJWD; 1.19 date 2022.05.11.23.34.04; author gutteridge; state Exp; branches; next 1.18; commitid 1ESRXSYtZ6SH7HDD; 1.18 date 2022.04.09.21.55.17; author gutteridge; state Exp; branches; next 1.17; commitid O2QrHhqldPZLBzzD; 1.17 date 2022.04.04.01.51.59; author gutteridge; state Exp; branches; next 1.16; commitid YdDaxbVdCrM97PyD; 1.16 date 2022.01.04.20.52.34; author wiz; state Exp; branches; next 1.15; commitid CYyhdK9qtoffkmnD; 1.15 date 2021.12.30.13.05.27; author adam; state Exp; branches; next 1.14; commitid w23rFuQ4pTWhUFmD; 1.14 date 2021.09.16.00.23.52; author gutteridge; state Exp; branches; next 1.13; commitid H7FBkXziz9Hk379D; 1.13 date 2021.08.09.04.46.26; author gutteridge; state Exp; branches; next 1.12; commitid irYnofPvfwyLIf4D; 1.12 date 2021.04.06.02.45.26; author gutteridge; state Exp; branches; next 1.11; commitid Th6oWOduf3Su5bOC; 1.11 date 2021.02.24.23.19.15; author gutteridge; state Exp; branches; next 1.10; commitid qjUodOb4ToOje1JC; 1.10 date 2021.02.11.03.17.19; author gutteridge; state Exp; branches; next 1.9; commitid EbH4PFnqSqWVZeHC; 1.9 date 2021.01.06.01.17.50; author gutteridge; state Exp; branches; next 1.8; commitid ZOZ8698buM4GuBCC; 1.8 date 2020.11.30.06.11.02; author gutteridge; state Exp; branches; next 1.7; commitid nnPC8T7HhLpZiSxC; 1.7 date 2020.10.12.21.51.58; author bacon; state Exp; branches; next 1.6; commitid 568C66J21E1N0FrC; 1.6 date 2020.09.05.00.07.17; author gutteridge; state Exp; branches; next 1.5; commitid C4O6F6eSAfoI3NmC; 1.5 date 2020.09.04.01.11.31; author gutteridge; state Exp; branches; next 1.4; commitid z8v3isdnpabFrFmC; 1.4 date 2020.03.30.23.21.41; author gutteridge; state Exp; branches; next 1.3; commitid ukl9VCcCW2S3Tt2C; 1.3 date 2020.01.27.22.36.45; author gutteridge; state Exp; branches; next 1.2; commitid OvBXaZw1uXkqDnUB; 1.2 date 2020.01.17.07.11.55; author wiz; state Exp; branches; next 1.1; commitid aWIwsqxcLyaVR0TB; 1.1 date 2020.01.17.05.41.44; author gutteridge; state Exp; branches; next ; commitid k7IGPv1MvsEHm0TB; desc @@ 1.29 log @python/wheel.mk: simplify a lot, and switch to 'installer' for installation This follows the recommended bootstrap method (flit_core, build, installer). However, installer installs different files than pip, so update PLISTs for all packages using wheel.mk and bump their PKGREVISIONs. @ text @# $NetBSD: Makefile,v 1.28 2023/08/01 23:20:37 wiz Exp $ DISTNAME= music21-noCorpus-9.1.0 PKGNAME= ${PYPKGPREFIX}-${DISTNAME:S/-noCorpus//} PKGREVISION= 1 CATEGORIES= audio python MASTER_SITES= ${MASTER_SITE_GITHUB:=cuthbertLab/} GITHUB_PROJECT= music21 GITHUB_RELEASE= v${PKGVERSION_NOREV} MAINTAINER= gutteridge@@NetBSD.org HOMEPAGE= https://github.com/cuthbertLab/music21 COMMENT= Python toolkit for computer-aided musical analysis LICENSE= modified-bsd TOOL_DEPENDS+= ${PYPKGPREFIX}-hatchling-[0-9]*:../../devel/py-hatchling DEPENDS+= ${PYPKGPREFIX}-chardet-[0-9]*:../../converters/py-chardet DEPENDS+= ${PYPKGPREFIX}-joblib-[0-9]*:../../devel/py-joblib DEPENDS+= ${PYPKGPREFIX}-more-itertools-[0-9]*:../../devel/py-more-itertools DEPENDS+= ${PYPKGPREFIX}-requests-[0-9]*:../../devel/py-requests DEPENDS+= ${PYPKGPREFIX}-matplotlib-[0-9]*:../../graphics/py-matplotlib DEPENDS+= ${PYPKGPREFIX}-scipy-[0-9]*:../../math/py-scipy DEPENDS+= ${PYPKGPREFIX}-Levenshtein-[0-9]*:../../textproc/py-Levenshtein DEPENDS+= ${PYPKGPREFIX}-jsonpickle-[0-9]*:../../textproc/py-jsonpickle DEPENDS+= ${PYPKGPREFIX}-webcolors>=1.11:../../www/py-webcolors # Many tests will fail because they depend on the score files that # are part of the full music21 distribution. TEST_DEPENDS+= ${PYPKGPREFIX}-guppy3-[0-9]*:../../devel/py-guppy3 USE_LANGUAGES= # none # Only the latest two major versions of released Python are supported, # per policy on feature use. PYTHON_VERSIONS_INCOMPATIBLE= 27 38 39 # NB lilypond must be installed in order to run the full test suite. do-test: PYTHONPATH=${WRKSRC} ${PYTHONBIN} -c 'from music21.test.testSingleCoreAll import ciMain as ci; ci()' .include "options.mk" .include "../../lang/python/wheel.mk" .include "../../math/py-numpy/buildlink3.mk" .include "../../mk/bsd.pkg.mk" @ 1.28 log @*: remove more references to Python 3.7 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.27 2023/06/26 23:33:33 gutteridge Exp $ d3 3 a5 3 VERSION= 9.1.0 DISTNAME= music21-noCorpus-${VERSION} PKGNAME= ${PYPKGPREFIX}-music21-${VERSION} d9 1 a9 1 GITHUB_RELEASE= v${VERSION} @ 1.27 log @py-music21: update to 9.1.0 Music21 v9 (June 2023) is the latest release of music21, a toolkit for computational music research. Version 9 contains about 600 new commits and features from the version 8 release from September 2022. It is the latest and best release in the industry standard toolkit for doing music research and composition ("traditional" computation and AI/ML) with musical scores. As a new Version X release, music21 gains a lot of its power with a few non-backwards compatible changes that make the system easier to use, faster, and more up to date. People using music21 in existing environments should read the change logs to make sure their systems work with it before upgrading. A big change in music21 is that v9 is compatible with Python 3.10 and 3.11 only. The version 9 release will be updated to be compatible with at least Python 3.12 when it is released. Users on Python 3.8 and 3.9 should stick with v8 and those on older versions should look at the README to see what version will be installed for their systems. Two weeks from the release of version 9 (July 1, 2023), Michael Asato Cuthbert, the lead developer of music21 will take a 6-12-month sabbatical from monitoring the mailing list, answering questions/issues, and merging PRs in order to focus on what he does best and what is best for the community: developing core parts of the system and documenting what already exists. Working with the user community has been amazing, but given that he only has about 10-15 hours per week to devote to the project, it often means deviating from efforts that help a large number of people to instead work through PRs and issues that are important to a smaller community. This news will probably not be welcomed by some, but the results should be better for the larger community. What's Changed Music21 v9 is for Python 3.10 and 3.11 only and uses tools and speedups only available to those versions. Music21 drops its prior policy of supporting previous 3 versions and now supports the latest 2 versions only (to improve developer experience). Notebook/Jupyter: All pages are now shown on .show(). Compatible with Jupyter 7.0beta and JupyterLab. MIDI improvements (@@mscuthbert in #1592) Added to corpus: (1) Queen Liliuokalani’s Aloha Oe, (2) J.R. Johnson’s Lift Every Voice And Sing (3) Vincente Lusitano’s madrigal Allor che Ignuda – part of a larger project to make the music21 corpus more representative. Lots more typing! Use music21 in a modern IDE to see it. Uses Python 3.10 TypeGuards. Add common.classTools.holdsType([‘a’, ‘b’], str) which asserts that everything in a collection has the same type. (@@mscuthbert in #1447). converter and corpus are fully typed. Docs! Documentation of equality explained better. braille, corpus, converter much improved. (1) Much better aesthetics and utility @@mscuthbert in #1455 and #1452). (2) Add “developerReference/startingOver” – mistakes made in designing music21 that are too late to fix, but the next generation of software should not emulate. (3) add docs about abcFormat support (@@mscuthbert in #1484). (4) coreInsert (@@mscuthbert in #1549). (5) layout (@@mscuthbert in #1554). (6) clercqTemperley (RS100 dataset) format (#1558) RomanText and related formats: (1) Repeats in RT and TSV are improved (@@malcolmsailor in #1434, #1435, #1503) (2) anacrusis support (@@mscuthbert in #1532) (3) measure numbers on ClercqTemperley (@@mscuthbert in #1558) harmony: (1) RomanNumerals and ChordSymbols with front accidentals (flat II, sharp IV, etc.) now take their 7ths, 9ths, etc. from the underlying keys (@@mscuthbert w/ thanks to @@malcolmsailor in #1439), (2) RomanNumeral’s writeAsChord works properly (@@mscuthbert in #1445) and (3) transpose properly (@@malcolmsailor in #1414). (4) roman.RomanNumeral(2, ‘C’) will now give d-minor, not d-major (@@jacobtylerwalls in #1481), (5) preferSecondaryDominants implements V/x (@@MarkGotham in #796). MusicXML improvements: (1) TempoText is exported (@@gregchapman-dev in #1437) (2) harmony/numeral figures are MusicXML 4.0 compatible (@@mscuthbert in #1445) (3) Preserve multiple fingerings on chords in musicxml import (@@jacobtylerwalls in #1475) (4) Translate "implicit" attribute of MusicXML measures (@@jacobtylerwalls in #1493) (5) Synchronize Measure IDs on Musicxml out (@@rigaux in #1490) (6) MusicXML sound tag finds metronome marks (@@TimFelixBeyer in #1579) (7) Add MusicXML security warning (@@mscuthbert in #1584) Speed/Performance improvements on (1) deepcopy (@@mscuthbert in #1464) (2) ABC (@@mscuthbert in #1461) (3) LanguageDetector (@@mscuthbert in #1456) (4) quantize() (@@TimFelixBeyer in #1594) (5) use deques instead of pop(0) #1466, (6) searching/MetadataBundles cache in tests (@@mscuthbert in #1511) (7) findGaps() on gapless streams (@@jacobtylerwalls in #1515) (8) ChordSymbols (@@jacobtylerwalls in #1527) Braille – add segment.BrailleElementGrouping. Good amount of refactoring. (@@mscuthbert in #1495) Converter/Corpus: converter.toData – like .write or .show but gives the raw data as a string or byte by @@mscuthbert in #1451 Frozen/Immutable objects can be created now; this will allow for creating, for instance, one default 4/4 meter that cannot be changed but used as a default in many places. common.FrozenObject and duration.FrozenDuration (@@mscuthbert in #1460) New subConverters register above default subConverters, so it is now possible to develop a subConverter like Greg’s converter21 project that handles a format music21 supports but do it differently or better. (@@mscuthbert in #1520) Ornaments/Expressions (all by @@gregchapman-dev) – (1) ornament accidentals have a great new system and are aware of their measure and key context (#1545) (2) Mordents get placement like Turn and Trill (#1516) (3) Support for delayed turns (#1533) Spanners: (1) Spanner.fill() – say you’ve set a slur to just include the first and last notes. .fill() will find all the intermediate notes. (@@gregchapman-dev in #1486) (2) spanner.SpannerAnchor class allows a spanner to start and stop at a point where there is no other Music21Object at the offset (like a whole note crescendo that begins on beat 2 and ends on beat 3) (@@gregchapman-dev in #1479). (3) Guitar: Hammer-on and Pull-off as Spanners (@@louisbigo in #1142) Streams – (1) new module stream.tools and stream.tools.removeDuplicates (e.g. keys, clefs, by @@MarkGotham in #1454) . (2) stream.makeNotation.saveAccidentalDisplayStatus() context manager for restoring pitches’ accidentalDisplayStatus after a manipulation (like transposition by octave) @@gregchapman-dev. (3) stream.makeNotation.makeOrnamentalAccidentals (#1545) Percussion: (1) Implement useful PercussionChord.pitches property (@@jacobtylerwalls in #1547), (2) Ignore Unpitched objects in key analysis (@@jacobtylerwalls in #1543, (3) Search support (@@mscuthbert in #1597) MIDI: (1) Minimize gaps produced by quantization algorithm (@@jacobtylerwalls in #1540) (2) fix jupyter/colab MIDI (@@mscuthbert in #1565) (3) Increase default MIDI ticksPerQuarter for higher accuracy of tuplets (@@TimFelixBeyer in #1577) ABC: set version from I:abc-version information (@@mscuthbert in #1589) pitch module gets: isValidAccidentalName, standardizeAccidentalName. Bug fixes Ottava transposition bugs (in m21 and in musicxml output) (@@gregchapman-dev in #1486) diminished and half-diminished 11th chord types were incorrect (@@jacobtylerwalls in #1497) Avoid creating duplicative ChordStepModifications (@@jacobtylerwalls in #1509) Zero quarterLengths will not be represented as Fraction(0, 1) MIDI: (1) Don't set status byte on Meta Message (@@TimFelixBeyer in #1575) (2) unknown meta message still parses (@@TimFelixBeyer in #1573) Fix stripTies when accidentals are natural & none (@@TimFelixBeyer in #1556) Scores could previously change after .write()(@@TimFelixBeyer in #1560) requests should have been in the minimum requirements (@@jacobtylerwalls in #1568) Prevent doubly-flatted sevenths in chord symbols (@@jacobtylerwalls in #1572) Incompatible Changes not mentioned above: Equality: == or __eq__ comparison on many objects has changed. – it is now based on a class hierarchy where the object needs to be equal in all of its super-classes (@@mscuthbert in #1466 and #1459). For time signatures: (@@MarkGotham in #1457). For ChordStepModification (@@jacobtylerwalls in #1482). An exception is made for RomanNumerals which do not need to have pitches in the same octave (like their chord.Chord superclass requires) schumann folder is moved to schumann_robert to match (equally amazing) schumann_clara. subConverter is consistently spelled with capital C in all contexts. Before it was a mismash of capital C and lowercase C. (in #1592) Full Measure Rests taken into account Finale usage of the measure=”yes” tag on pickups (@@mscuthbert in #1595) All Music21Objects must be hashable and default instantiate (@@mscuthbert in #1467) Duration, volume, and StreamStatus all keep string references to clients (major change if you were playing with _client private variables. Only a public change if you were counting on garbage collection to run more often) contextSites that are derived fixes a bug. Developers using the private _deepcopySubclassable should know that “removeFromIgnore” has been removed for performance reasons. Spanner.prePostObjectSpanners is renamed “relatedSpanners()” A number of cases where an attribute which is usually a string started with None now start with ‘’ instead (typing improvement) Refactors to ipython21 and the IPython (now Jupyter), MIDI, MusicXML subconverters in #1592. Removals Music21Exception subclasses not used in the system are removed. Reduce 172 Exceptions to 154 (@@mscuthbert in #1465) musicxml.xmlToM21.textNotNone – use new strippedText() and check for False. Already marked for deprecation and removed: common.cleanupFloat() (use opFrac), common.euclidGCD (use math.gcd), Metadata.setWorkId (use md.uniqueName = value), VoiceLeadingQuartet.color() (assign colors to individual notes with .style.color), (#1440) Deprecations Spanner.numberRange replaces Spanner.getNumberList() — they do the same thing. (#1447) romanText.clercqTemperley – toScore() – call toPart() instead since that is what it does. scale.next() – use scale.nextPitch() instead – since it shadows Music21Object.next() New Contributors @@sararocks made her first contribution in #1472 @@rigaux made their first contribution in #1490 @@TimFelixBeyer made his first contribution in #1560 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.26 2023/05/16 16:46:06 gutteridge Exp $ d35 1 a35 1 PYTHON_VERSIONS_INCOMPATIBLE= 27 37 38 39 @ 1.26 log @py-music21: update to 8.3.0 Music21 v8.3 is a maintenance release that fixes a few bugs in romanText/translate (thanks @@malcolmsailor) already in v9alpha, but also fixes a change in the Github.io version of music21j that broke .show('midi') inside Jupyter notebooks. What's Changed Fixes bug in repeat tests in romanText/translate.py; handles empty measures by @@malcolmsailor in #1434 Fix mypy with github by @@mscuthbert in #1438 Romantext writer handle repeat bars and measure suffixes like m1a by @@malcolmsailor in #1435 No transpose altered 7,9,11,13 in bII7; chord.tools by @@mscuthbert in #1439 Backport 1565 to m21 v8 by @@mscuthbert in #1567 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.25 2023/05/15 22:05:11 wiz Exp $ d3 1 a3 1 VERSION= 8.3.0 d33 3 a35 1 PYTHON_VERSIONS_INCOMPATIBLE= 27 37 @ 1.25 log @py-music21: py-guppy3 now supports python 3.11, so this might too @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.24 2023/03/12 02:49:45 gutteridge Exp $ d3 1 a3 1 VERSION= 8.1.0 @ 1.24 log @py-music21: s/BUILD_DEPENDS/TOOL_DEPENDS/ @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.23 2022/11/14 22:06:02 wiz Exp $ d33 1 a33 3 # This package now only supports >= 3.8. (Same with its scipy dependency.) # no 3.11 support in py-guppy3 as of 3.1.2 PYTHON_VERSIONS_INCOMPATIBLE= 27 37 311 @ 1.23 log @py-guppy3: does not support python 3.11 as of 3.1.2 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.22 2022/10/10 11:27:28 wiz Exp $ d16 1 a16 1 BUILD_DEPENDS+= ${PYPKGPREFIX}-hatchling-[0-9]*:../../devel/py-hatchling @ 1.22 log @py-music21: add missing build dependency on py-hatchling @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.21 2022/10/07 22:09:31 gutteridge Exp $ d34 2 a35 1 PYTHON_VERSIONS_INCOMPATIBLE= 27 37 @ 1.21 log @py-music21: add a test target @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.20 2022/10/07 03:54:06 gutteridge Exp $ d16 1 @ 1.20 log @py-music21: update to 8.1.0 music21 v8 I'm proud to release v8 of music21, the toolkit for computer-aided music analysis, score manipulation, computational musicology, etc. This release (technically 8.1) builds on 12.5 months of work from v7, and like all new big number releases has a few backwards incompatible changes from before, in exchange for cool new features. Version 8 supports Python 3.8+, if you need Python 3.7 (such as on Google Colab which is now 3+ Python versions behind) stick to music21 v7. V8 is the first to fully support Python 3.10 and will receive patches to support Python 3.11 in the future. As Python 3.11 is due to be released any day now, keeping with the m21 policy of supporting three versions of Python, music21 v9 (work starts tomorrow!) will support Python 3.9 and above only. Big Changes The biggest new improvement in v8 is an all new Dublin-Core / MARC based metadata system that allows for encoding a huge amount of information about a score. Look at the new docs for music21.metadata for more information. Thanks to Greg Chapman for the big amount of work on this. (@@gregchapman-dev in #1266) Modern installation system, based on Hatch. If you have problems, please let me know -- I expect some growing pains on this. ArpeggioMark and ArpeggioMarkSpanner classes. by @@gregchapman-dev in #1337 Adding DCML v2 parsing to tsvConverter.py by @@malcolmsailor in #1267 Explicit Keywords on all music21 objects by @@mscuthbert in #1377 Continued Major improvements in Typing across music21. by @@mscuthbert and @@jacobtylerwalls. If you are using a modern IDE, you will find the number of music21-related bugs you create will go down hugely. Ever more docs and more relevant (and diverse examples) @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.19 2022/05/11 23:34:04 gutteridge Exp $ d35 4 @ 1.19 log @py-music21: update to 7.3.3 This update doesn't add much for pkgsrc users, given the focus was on a Python 3.7-only component, but keeps us up to date with code changes. Change log: Music21 7.3.3 adds support for showing MIDI inside a Google Colaboratory (colab) notebook, via music21j. Since m21 v8 will be Python 3.8+ only, and Google Colab is still on Python 3.7, a back-port to v7 was needed. 7.3.2 was internal development only and not released @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.18 2022/04/09 21:55:17 gutteridge Exp $ d3 1 a3 1 VERSION= 7.3.3 d14 1 a14 5 LICENSE= modified-bsd OR gnu-lgpl-v3 PYTHON_VERSIONS_INCOMPATIBLE= 27 37 # py-scipy EGG_NAME= music21-${VERSION} d19 1 d32 3 d37 1 a37 1 .include "../../lang/python/egg.mk" @ 1.18 log @py-music21: Python 3.7 is now incompatible due to py-scipy 1.8 Upstream will be removing Python 3.7 support in their next significant release, anyway. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.17 2022/04/04 01:51:59 gutteridge Exp $ d3 1 a3 1 VERSION= 7.3.1 d9 1 a9 2 # A bug fix 7.3.1 release was made, but tagged as release 7.3.0. GITHUB_RELEASE= v${VERSION:R}.0 @ 1.17 log @py-music21: update to 7.3.1 The full upstream change log can't be condensed easily, highlights are: Version 7.3 is a bug-fix, improvement, and maintenance release of music21. Aside from a few obscure corners of the code, it is designed to be fully backwards compatible with the previous v7 releases (7.1). It represents half a year's work since the original v7.1 release. Thanks go especially to Jacob Tyler Walls who really steered the contributions to this release. Among the major improvements in this branch are: Full support for Python 3.10. I've been doing all my recent dev on 3.10 taking advantage of new features, and it's great, and plays well with numpy, tensorflow, and so many other cutting edge analysis tools. In keeping with music21's policy of supporting the last three versions of Python, music21 v7.3 will be the last version of music21 to support Python 3.7. A decision on whether 3.8 or 3.9 will be the minimum version for music21 v8 will come later, depending on its release date; we may also update policy somewhat and raise the minimum version to 3.9 during the v8 cycle. (7.3.0 had an installation bug -- replacing with 7.3.1) For full details, please refer to https://github.com/cuthbertLab/music21/releases/tag/v7.3.0 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.16 2022/01/04 20:52:34 wiz Exp $ d17 1 a17 1 PYTHON_VERSIONS_INCOMPATIBLE= 27 # py-scipy @ 1.16 log @*: bump PKGREVISION for egg.mk users They now have a tool dependency on py-setuptools instead of a DEPENDS @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.15 2021/12/30 13:05:27 adam Exp $ d3 1 a3 1 VERSION= 7.1.0 a5 1 PKGREVISION= 1 d9 2 a10 1 GITHUB_RELEASE= v${VERSION} @ 1.15 log @Forget about Python 3.6 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.14 2021/09/16 00:23:52 gutteridge Exp $ d6 1 @ 1.14 log @py-music21: update to 7.1.0 The upstream change log can't be summarized easily. There are no security updates or the like. Interested parties should consult the upstream change log at: https://github.com/cuthbertLab/music21/releases/tag/v7.1.0 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.13 2021/08/09 04:46:26 gutteridge Exp $ d16 1 a16 1 PYTHON_VERSIONS_INCOMPATIBLE= 27 36 # py-scipy @ 1.13 log @py-music21: remove print/lilypond from default options Lilypond is seemingly universally broken in pkgsrc builds at present. (music21 upstream had considered removing it as a dependency for another reason, but seem to have reversed course.) @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.12 2021/04/06 02:45:26 gutteridge Exp $ d3 1 a3 1 VERSION= 6.7.1 a5 1 PKGREVISION= 1 @ 1.12 log @py-music21: add to PYTHON_VERSIONS_INCOMPATIBLE due to py-scipy Upstream will be removing Python 3.6 support in their next significant release, anyway. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.11 2021/02/24 23:19:15 gutteridge Exp $ d6 1 @ 1.11 log @py-music21: update to 6.7.1 Fixes bugs in lyric.search for working with "composite" lyrics, in the export of piano scores with key signatures, and a bug in piano scores and other part staffs that (a) prevented them from being flattened properly and (b) did not allow flattened piano scores to call .show() @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.10 2021/02/11 03:17:19 gutteridge Exp $ d16 1 a16 1 PYTHON_VERSIONS_INCOMPATIBLE= 27 @ 1.10 log @py-music21: update to 6.7.0 Change log: Important bug fix: if you’ve had trouble loading music21 with an “importlib” error, this is fixed. Composite lyrics changes to the implementation in 6.5: multiple syllables on one note in a single verse (like in Italian, “Il bianco e dolce cigno”) now are imported to MusicXML property, stored in a Lyric.components object, and export to MusicXML properly. Lyrics searching finds all lyrics in all verses (and composite lyrics too) More major improvements to piano staff imports (thanks to Jacob Tyler Walls = JTW) RomanNumeral.isMixture() shows whether a chord is borrowed from the other mode (Mark Gotham) Several improvements in chord symbols (JTW + Alexandre Papadopoulos) More improvements to finding instrument names from MIDI (JTW) Duration marks in chords in ABC import properly (Marian Schultz) Documentation improvements. MusicXML parse failures now more often give the part and measure context (JTW) Substantial bug fixes in Stream.setElementOffset. Adds a new Stream.coreSetElementOffset for the dangerous but super fast version, and makes the original version safer. (JTW) Bug fixes in MEI articulations (heinzer) and accidentals (JTW) Bug fixes in external tools in windows including spaces (JTW) Channels handle better in MIDI (bearpelican) Humdrum files with positioned rests no longer crash (Phil Kirlin) OctaveRepeatingScale and CyclicalScale now usable as abstract classes (JTW) Articulations and expressions musicxml does not support are exported as (JTW) Better support for .musicxml as a file name within compressed .mxl files. Beaming in pickup measures is fixed. Stem directions can now be set automatically to coincide with beam groups. This is very useful if you are creating your own notation from scratch (as in VexFlow output; m21j gets the same routines) Spanner endHeight and startHeight are processed correctly (JTW) NoChord objects (in Chord Symbols) now retain their text (like “N.C.”) in more situations (JTW) All NotRest objects get a .pitches function – a small thing, but will be helpful in the future. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.9 2021/01/06 01:17:50 gutteridge Exp $ d3 1 a3 1 VERSION= 6.7.0 @ 1.9 log @py-music21: update to version 6.5 Change log: Version 6.5 adds several important new features since the bug-fix version 6.3 (from mid-November 2020) while squashing many bugs and speeding up a number of parts of the system. Many of the contributions were made by members of the open source community, including major contributions by Jacob Tyler Walls (JTW), Mark Gotham (MG), Néstor Nápoles López (NNL), and Paula Muñoz Lago. Highlights include: PartStaff objects such as a staff of a piano part now export properly back to MusicXML as one part with tags. Huge work by JTW! RomanText is now a valid output format in addition to input! Save your analyses for later! Thanks Mark Gotham! search/lyrics now finds second and subsequent lyrics (thanks to Paula ML and DIDONE project) Improvements to VI and VII roman numerals in minor (JTW) MIDI tries to import part names from instruments (JTW) MIDI properly reads and writes conductor tracks (JTW) Doc improvements for many places including RomanNumerals, insertIntoNoteOrChord, chordify with GraceNote (MSC) Major speedups for many chord actions including getLeadingTone, isTriad, isMajorTriad, etc. (NNL + MSC w/ JTW) music21 loads or starts up in 1/3 the time as before. (MSC) Opus.write() improvements -- now all filenames of an Opus write call have similar names and only the last filename is returned (JTW) All properties in music21 are readable without raising an exception. This will help inspection/debugging software. (MSC) Staff-type is imported and exported properly to/from musicxml as the .staffType attribute on layout.StaffLayout objects. .staffLines is now settable on all Stream types (not just Parts) as a shortcut to manipulating layout.StaffLayout().staffLines at the start of the Stream. (MSC) roman.RomanNumeral.isNeapolitan() (MG) Smaller features and bug fixes: midi.realtime.StreamPlayer now allows for non-blocking playing and for stopping at various points. (antran22) If scratch/temp directory is not writable or does not exist, use backup directories (JTW + Tanchihpin0517 ) Use subprocess.run() for launching external tools (JTW) Deprecated method Environment.launch() is removed. (JTW) MusicXML reader selection improved, especially on Windows (MSC) Refactor of the musicxml subpackage for smaller files and more expandability (MSC) Default readers set for Unix (Thomas Wilson). RomanNumeral parsing improvements, esp. for chords like V7b5. (MSC) testing is moved to Github Actions for faster responses. Thanks to Travis-CI for years of support (MSC) works on Python 3.9 -- v6 is likely the last version to support py 3.6. (MSC) Instruments outside of voices are retained when making measures (JTW) all tests pass on Windows for windows developers. (JTW) better installation on conda-forge w/ a webcolors change (JTW) unmeasured scores export to MusicXML better (JTW) MIDI instruments no longer get incorrect durations (JTW) MIDI pitch bends are easier to understand (JTW) Improved tuplet brackets when number is not shown (JTW) Coverage improved (MSC + JTW) Better commonName for 0, 1, 2 note chords, and microtonal chords (MSC) .show('scala') works on more scales. (JTW) More XML Chord symbols import (JTW) Fixes for aadd6 and other chord symbols where the name of the note ("A") is also present in the modifier ("Add") (JTW) Chord.quality returns "other" for C C# E G (MG) An empty degree-alter now matches MusicXML spec (JTW) ABC and MIDI parsing cleanups to make it easier for developers to extend (MSC) Very old musicxml files with empty "tie" elements parse better. (JTW) Improved handling of omitted pitches in RomanNumerals (JTW) instrument.deduplicate() removes duplicate instruments at the same offset in a stream (JTW) Repeat endings with no number displayed now export to musicxml properly (JTW) Several routines such as findGaps were leaving Streams in corrupt states -- fixed (MSC) partitionByInstrument() no longer leaves instruments with non-zero durations (MSC) MuseData reading works properly on zip files created on an OS with different line breaks (MSC) @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.8 2020/11/30 06:11:02 gutteridge Exp $ d3 1 a3 1 VERSION= 6.5.0 @ 1.8 log @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. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.7 2020/10/12 21:51:58 bacon Exp $ d3 1 a3 1 VERSION= 6.3.0 @ 1.7 log @math/blas, math/lapack: Install interchangeable BLAS system Install the new interchangeable BLAS system created by Thomas Orgis, currently supporting Netlib BLAS/LAPACK, OpenBLAS, cblas, lapacke, and Apple's Accelerate.framework. This system allows the user to select any BLAS implementation without modifying packages or using package options, by setting PKGSRC_BLAS_TYPES in mk.conf. See mk/blas.buildlink3.mk for details. This commit should not alter behavior of existing packages as the system defaults to Netlib BLAS/LAPACK, which until now has been the only supported implementation. Details: Add new mk/blas.buildlink3.mk for inclusion in dependent packages Install compatible Netlib math/blas and math/lapack packages Update math/blas and math/lapack MAINTAINER approved by adam@@ OpenBLAS, cblas, and lapacke will follow in separate commits Update direct dependents to use mk/blas.buildlink3.mk Perform recursive revbump @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.6 2020/09/05 00:07:17 gutteridge Exp $ d3 1 a3 1 VERSION= 6.1.0 a5 1 PKGREVISION= 2 d25 1 @ 1.6 log @py-music21: add py-jsonpickle as a dependency py-jsonpickle is one of two choices available to serialize py-music21 objects. Add it by default, since it's a very small dependency. While here, add another explanatory comment to options.mk. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.5 2020/09/04 01:11:31 gutteridge Exp $ d6 1 a6 1 PKGREVISION= 1 @ 1.5 log @py-music21: update to 6.1.0 Change log: Music21 v6 is OUT as v6.1.0! This represents over 500 commits over the past 14 months since v5.7 was released. Many thanks to Jacob Tyler Walls (JTW below) who made so many contributions to the v6 branch, both big and small. Mad props and round of applause! v6 fully supports Python 3.8 and removes support for Python 3.5. v6 will be the last major release to support Python 3.6 and we will work on Python 3.9 support immediately. As with all new v.X releases of music21 there are improvements and some backwards incompatible changes (not too many) In no particular order, here are the things to look for in the new music21 v6: Type hints throughout music21 -- when you program with a sophisticated IDE you will be able to see what is returned and required as attributes in much of music21. music21 is no longer packaged with external modules; these will be installed when installing music21 via pip (otherwise run pip install -r requirements.txt). Speed and security improvements come with this. converter.parse('file.mid', quantizePost=False) will let you load in a MIDI file without any quantizing. (Thanks JTW) Lots more values cached = faster music21; RomanNumerals in particular are over an order of magnitude faster, and Chords are faster too. If you ever have a problem, all Music21Objects have a .clearCache() function. Just add @@cacheMethod as a decorator to a method and it will use the caching routine. Intervals have been rewritten to use properties entirely. So whatever happens to an Interval, its semiSimpleNiceName (to take one of dozens of examples) will always be up to date. Intervals use Specifiers that are enums like interval. Specifier.PERFECT instead of inscrutable numbers. (those inscrutable numbers still work though) Specifiers are more than just standard enums -- they can invert themselves, do semitonesAboveMajor() etc. Interval geeks rejoice. Intervals given a noteStart and a name will generate noteEnd automagically. They also get transposePitch() improvements along the way. KeySignature gets transposePitchFromC() which takes a pitch in C major and returns the pitch in the same scale degree in this key.. Voices with gaps in them work way better in MusicXML. Repeat endings with multiple numbers like 1,2 r/t with musicxml (JTW) TSV files which encode harmonic analysis can now be parsed (Thanks Mark Gotham) Humdrum harm spines parse now, giving another way of encoding harmonic analysis. (Thanks Néstor Nápoles López) MIDI refactor: easier to subclass and extend and with many docs -- keeps a clear distinction between strings and bytes. MIDI values are all Enum classes (but IntEnums so they compare well with pure numbers) StripTies works much better thanks to JTW -- and does not filter out non-Notes anymore (technically an incompatibility, but really a bug fix). Voices, etc. don't faze .stripTies() any more. Stream.voicesToParts() also preserves more elements. Chords with some notes tied and some don't no longer get merged. Note that stripTies retainContainers defaults to True now, because getting the opposite behavior is as easy as a .flat Internal but important: lots of parts of music21 code that used abbreviations now spell out the whole word. This is important for our friends using screen readers. While music21 will (for historical/compatibility reasons) still use camelCase for all method names, attribute names, etc., internal variables may now use underscore_case which helps with screen readers. Stream().write('mxl') will write compressed musicxml (JTW). Or write('...', format='musicxml', compress=True) Improvements to VoiceLeadingQuartets (thanks Ryaan Ahmed), including finding parallel intervals with octave displacement. voiceCrossing and voiceOverlap detection. Substantial improvements to RomanText: see https://dmitri.mycpanel.princeton.edu/romantext.pdf RomanNumerals can specify how they represent ^6 and ^7 in minor with sixthMinor and seventhMinor keywords) OMR fixers can recognize Turns and other ornaments. More merging here to come. Thanks Janelle Sands! Substantial improvements to beaming routines and tests (thanks Almog Cohen!) Keys now have .deriveByDegree() like Scales, so "What minor key has scale degree 3 as B-flat?" can easily be answered. Improvements to dotted tuplets (Almog Cohen) Chord.name/fullName now gives better names for common chords like Major/Minor triads -- no longer relies entirely on chord.tables. But even there many improvements and spelling corrections. Chords expose .notes to get at the notes that make up a chord, in a different way than Chord[0] or for n in Chord -- I'm still an old Perl guy, sometimes There's More Than One Way to Do It, and this way makes some things conceptually much easier and faster. More Bach Chorale fixes from Doctor Schmidt (thanks!) Stream.replace(recurse=True) finally works! StringIndication, FretIndication work in musicxml (thanks Peter Mitrano) For those who are adventurous -- intervalNetworks are now exposed on scales. prebase.ProtoM21Object -- an idea ported back from music21j: nearly every object in music21, including all Music21Objects, inherits from this super-lightweight base class which allows for querying classes and giving consistent representations. It makes working in music21 a lot more fun. Incompatible Changes Stream filters now return a new StreamIterator. So old code like: s = stream.Stream() sIter = s.iter sIter.getElementsByClass('Chord') list(sIter) should now be written as: s = stream.Stream() sIter = s.iter sIter2 = sIter.getElementsByClass('Chord') list(sIter2) For most people using filters within a for-loop, nothing will appear to have changed. if element in stream now only returns True if the element is actually in the Stream, not if element is equal to something in the Stream. This is not normal Python behavior for __contains__ but it is something music21 users have counted on for a decade, and now it is assured. MIDI has been completely refactored, so if you are mucking with MIDI internals, it's going to be completely different. If you're just using converter.parse and .write('midi') it won't have changed much. Also Setting a pitch's accidental to a number is deprecated and to be removed soon. use b = pitch.Pitch('B4'); b.accidental = pitch.Accidental(-1). some long deprecated functions removed, such as Stream.restoreActiveSites, Stream. _yieldReverseUpwardsSearch, common.standardDeviation (use statistics.stdev instead). Chord sort methods no longer return the chord itself if inPlace=True interval.convertSemitoneToSpecifierGenericMicrotone, convertSemitoneToSpecifierGeneric now return a Specifier Enum as their first value Spelling corrections that are technically incompatible: Interval.perfectable replaces typo Interval.prefectable. Appoggiatura is spelled correctly with two-gs everywhere it's used (JTW) stripTies(retainContainers=True) is now the default. Half-diminished chords have ø7 etc. as their default representation. MIDI.intsToHexString has become MIDI.intsToHexBytes which does what is says it does. Small Changes/Bugs squashed: A malformed spanner in musicxml will no longer crash parsing. Tuplets are equal if their durations are equal. Better docs for duration equality. contextSites, next, previous, and getContextByClass have a priorityTargetOnly or activeSiteOnly keyword for searching activeSite only. Speed! From music21.X import * works much more reliably. Bugs fixed in feature extraction of keys. serial allows "P" or "T" to be used for transpositions Tone-Rows give their row in the repr. Historical tone-rows no longer have Row in their name. For instance: serial.getHistoricalRowByName('SchoenbergOp37').matrix() -- the old form still works though. Feature extraction on empty streams (or ones that don't have instruments or something else) works properly (JTW) Feature output formats can set .ext directly, in case you need a different extension. viio7 can be specified as vii07 Interval: reverse=True works properly subprocess.run is used instead of os.system for PNG generation. Thanks Uğur Güney. Fixes using musescore with music21 in Jupyter when spaces appear in filenames. (also thanks to Frank Zalkow) Better representation for many objects Error handling for incorrect chord abbreviation is improved. Thanks Vikram Natarajan Librettists and lyricists can be searched in metadata. .age() works properly for living composers. MIDI plays back properly in Jupyter again BUT also does not add a delay when writing out a file. Voice numbers in generated musicxml are now low numbers pitch.Accidental gets . setAttributeIndependently() in case you want something to look like a flat but only alter 0.8 semitones. (This appeared in v.5 at some point but was never announced) Note gets a pitchChanged() method which is called by its attached pitch anytime it changes so that caches can be used. Pitch gets an informClient() method which is called anytime the pitch itself changes. There is something similar in Chords too. This squashes a lot of bugs where pitches were changing but notes/chords/scales/etc. did not act like they had changed. makeAccidentals works properly in Voices (JTW) MIDI parsing gets more instrument objects from more places (JTW) zero-length objects at the end of streams were being ignored by makeNotation (JTW) Show formats: MuseScore 3.5 compatibility. (JTW). Preview is found by default on macOS Catalina/Big Sur -- still works for older OSes. No more 'is your doc > 999 pages?' bugs! Some Neo-Riemannian docs weren't showing (thanks Adam Spiers) Tone profiles for key analysis have been corrected. (thanks Micah Walter) scaleDegreeWithAlteration on Augmented 6th chords works. .musicxml is fully recognized as a suffix. Improvements to analysis.windowed (thanks Sandro Luck) RepeatExpander now does nothing on a score with no repeats. Before, it crashed. Sousa example couldn't show before (thanks David H. Gutteridge) Verticality.removeVerticalDissonances now works (also thanks to Gutteridge) Z-relation for 5Z37 (5Z17) was incorrect (thanks Rodrigo Balthar Furman for spotting this) Power-users who subclass Stream to be standard storage variants: Stream().coreSelfActiveSite(el) allows for subclassing what happens when an element should normally have its activeSite set to the stream. Lilypond output with UTF-8 works. Grace notes no longer crash Lilypond. Now that there is a 64-bit binary Mac version of Lilypond, it will not be removed from music21. RomanNumerals compare with each other. __eq__ logically defined. Modest performance improvements in sorting (Thanks Alexander Morgan) Documentation and test improvements and a few bugs squashed in ABC parsing. f-strings used throughout music21 allowing for more detailed error messages and many bugs to be detected and removed. Deprecations interval.Interval.convertSpecifier() deprecated. use parseSpecifier instead. Humdrum parseData() and parseFile() are deprecated. use the general converter.parse() instead. .editorial.misc is deprecated, just stick whatever you want on the .editorial object itself. Gratitude As always, I want to thank MIT, the NEH, and the Seaver Institute for supporting music21 over the years along with the community of developers who use and give back to music21. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.4 2020/03/30 23:21:41 gutteridge Exp $ d6 1 d26 1 @ 1.4 log @py-music21: update a comment @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.3 2020/01/27 22:36:45 gutteridge Exp $ d3 1 a3 1 VERSION= 5.7.2 a5 1 PKGREVISION= 1 a15 1 # 5.7.2 has partial support for Python 3.8. d20 3 a22 1 DEPENDS+= ${PYPKGPREFIX}-game-[0-9]*:../../devel/py-game d25 1 d28 1 a28 3 # are part of the full music21 distribution. The entire test suite # will also fail to run with Python < 3.8 as of 5.7.2, due to: # https://github.com/cuthbertLab/music21/issues/507 @ 1.3 log @py-music21: fix non-3.7 builds (trim PLIST) The upstream distribution was including a file cache with a hard-coded Python version embedded in it. This content isn't required for distribution. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.2 2020/01/17 07:11:55 wiz Exp $ d27 3 a29 1 # are part of the full music21 distribution. @ 1.2 log @py-music21: set EGG_NAME to simplify PLIST @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.1 2020/01/17 05:41:44 gutteridge Exp $ d6 1 @ 1.1 log @py-music21: add new package music21 is a set of tools for helping scholars and other active listeners answer questions about music quickly and simply. If you've ever asked yourself a question like, "I wonder how often Bach does that" or "I wish I knew which band was the first to use these chords in this order," or "I'll bet we'd know more about Renaissance counterpoint (or Indian ragas or post-tonal pitch structures or the form of minuets) if I could write a program to automatically write more of them," then music21 can help you with your work. @ text @d1 1 a1 1 # $NetBSD$ d19 2 @