├── .codeclimate.yml ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .idea ├── codeStyles │ ├── Project.xml │ └── codeStyleConfig.xml ├── dictionaries │ └── cuthbert.xml ├── eslintPlugin.xml ├── inspectionProfiles │ └── Project_Default.xml └── jsLibraryMappings.xml ├── .ropeproject └── config.py ├── Gruntfile.js ├── LICENSE ├── README.md ├── build └── README.md ├── css ├── ajax-loader.gif ├── arrow_down.png ├── backward.png ├── basic.css ├── dots.png ├── file.png ├── forward.png ├── m21.css └── midiPlayer.css ├── doc ├── AbstractAscendingMelodicMinorScale.html ├── AbstractDiatonicScale.html ├── AbstractHarmonicMinorScale.html ├── AbstractScale.html ├── AscendingMelodicMinorScale.html ├── ClassFilter.html ├── ClassNotFilter.html ├── ConcreteScale.html ├── Derivation_Derivation.html ├── DiatonicScale.html ├── HarmonicMinorScale.html ├── IsFilter.html ├── IsNotFilter.html ├── LayoutScore.html ├── MajorScale.html ├── MeasureExporter.html ├── MeasureParser_MeasureParser.html ├── MinorScale.html ├── Note_Note.html ├── OffsetFilter.html ├── OffsetIterator.html ├── Page.html ├── PartExporter.html ├── PartParser.html ├── RecursiveIterator.html ├── ScoreExporter.html ├── SiteRef.html ├── SitesException.html ├── Staff.html ├── System.html ├── classes.list.html ├── global.html ├── img │ ├── glyphicons-halflings-white.png │ └── glyphicons-halflings.png ├── index.html ├── module-music21.html ├── module-music21_duration.html ├── module-music21_scale-Scale.html ├── module-music21_scale.AbstractScale.html ├── module-music21_scale.html ├── modules.list.html ├── music21.articulations.Accent.html ├── music21.articulations.Articulation.html ├── music21.articulations.DynamicArticulation.html ├── music21.articulations.LengthArticulation.html ├── music21.articulations.Marcato.html ├── music21.articulations.PitchArticulation.html ├── music21.articulations.Spiccato.html ├── music21.articulations.Staccatissimo.html ├── music21.articulations.Staccato.html ├── music21.articulations.StrongAccent.html ├── music21.articulations.Tenuto.html ├── music21.articulations.TimbreArticulation.html ├── music21.articulations.html ├── music21.audioRecording.exports.Recorder.html ├── music21.audioRecording.html ├── music21.audioSearch.html ├── music21.base.Music21Object.html ├── music21.base.html ├── music21.beam.Beam.html ├── music21.beam.Beams.html ├── music21.beam.html ├── music21.chord.Chord.html ├── music21.chord.html ├── music21.clef.AltoClef.html ├── music21.clef.Bass8vbClef.html ├── music21.clef.BassClef.html ├── music21.clef.Clef.html ├── music21.clef.MezzoSopranoClef.html ├── music21.clef.PercussionClef.html ├── music21.clef.SopranoClef.html ├── music21.clef.TenorClef.html ├── music21.clef.Treble8vaClef.html ├── music21.clef.Treble8vbClef.html ├── music21.clef.TrebleClef.html ├── music21.clef.html ├── music21.common.html ├── music21.derivation.music21.derivation.html ├── music21.duration.Duration.html ├── music21.duration.exports.Tuplet.html ├── music21.dynamics.Dynamic.html ├── music21.dynamics.html ├── music21.exceptions21.ExtendableError.html ├── music21.exceptions21.exports.Music21Exception.html ├── music21.exceptions21.exports.StreamException.html ├── music21.exceptions21.html ├── music21.expressions.Expression.html ├── music21.expressions.Fermata.html ├── music21.expressions.html ├── music21.figuredBass.exports.Figure.html ├── music21.figuredBass.exports.Modifier.html ├── music21.figuredBass.exports.Notation.html ├── music21.fromPython.Converter.html ├── music21.fromPython.html ├── music21.harmony.exports.Harmony.html ├── music21.harmony.html ├── music21.instrument.Instrument.html ├── music21.instrument.html ├── music21.interval.ChromaticInterval.html ├── music21.interval.DiatonicInterval.html ├── music21.interval.GenericInterval.html ├── music21.interval.Interval.html ├── music21.interval.html ├── music21.key.Key.html ├── music21.key.KeySignature.html ├── music21.key.html ├── music21.keyboard.BlackKey.html ├── music21.keyboard.Key.html ├── music21.keyboard.Keyboard.html ├── music21.keyboard.WhiteKey.html ├── music21.keyboard.html ├── music21.layout.html ├── music21.meter.TimeSignature.html ├── music21.meter.html ├── music21.miditools.Event.html ├── music21.miditools.MidiPlayer.html ├── music21.miditools.html ├── music21.module_duration.html ├── music21.module_figuredBass.html ├── music21.module_vfShow.html ├── music21.module_webmidi.html ├── music21.musicxml.html ├── music21.musicxml.m21ToXml.exports.XMLExporterBase.html ├── music21.musicxml.m21ToXml.html ├── music21.note.GeneralNote.html ├── music21.note.Lyric.html ├── music21.note.NotRest.html ├── music21.note.Note.html ├── music21.note.Rest.html ├── music21.note.html ├── music21.pitch.Accidental.html ├── music21.pitch.Pitch.html ├── music21.pitch.html ├── music21.prebase.ProtoM21Object.html ├── music21.prebase.html ├── music21.renderOptions.RenderOptions.html ├── music21.renderOptions.html ├── music21.roman.RomanNumeral.html ├── music21.roman.html ├── music21.scale.AbstractScale.html ├── music21.scale.Scale.html ├── music21.scale.exports.AbstractAscendingMelodicMinorScale.html ├── music21.scale.exports.AbstractDiatonicScale.html ├── music21.scale.exports.AbstractHarmonicMinorScale.html ├── music21.scale.exports.AbstractScale.html ├── music21.scale.exports.AscendingMelodicMinorScale.html ├── music21.scale.exports.ConcreteScale.html ├── music21.scale.exports.DiatonicScale.html ├── music21.scale.exports.HarmonicMinorScale.html ├── music21.scale.exports.MajorScale.html ├── music21.scale.exports.MinorScale.html ├── music21.scale.exports.Scale.html ├── music21.scale.html ├── music21.scale.module_AbstractScale.html ├── music21.scale.module_Scale.html ├── music21.sites.exports.Sites.html ├── music21.sites.html ├── music21.stream.Measure.html ├── music21.stream.Part.html ├── music21.stream.Score.html ├── music21.stream.Stream.html ├── music21.stream.Voice.html ├── music21.stream.filters.exports.StreamFilter.html ├── music21.stream.html ├── music21.stream.iterator.exports.StreamIterator.html ├── music21.tempo.Metronome.html ├── music21.tempo.html ├── music21.tie.Tie.html ├── music21.tie.html ├── music21.tinyNotation.html ├── music21.vfShow.RenderStack.html ├── music21.vfShow.Renderer.html ├── music21.voiceLeading.exports.VoiceLeadingQuartet.html ├── music21.voiceLeading.html ├── music21_articulations.js.html ├── music21_audioRecording.js.html ├── music21_audioSearch.js.html ├── music21_base.js.html ├── music21_beam.js.html ├── music21_chord.js.html ├── music21_clef.js.html ├── music21_common.js.html ├── music21_derivation.js.html ├── music21_duration.js.html ├── music21_dynamics.js.html ├── music21_exceptions21.js.html ├── music21_expressions.js.html ├── music21_figuredBass.js.html ├── music21_fromPython.js.html ├── music21_harmony.js.html ├── music21_instrument.js.html ├── music21_interval.js.html ├── music21_key.js.html ├── music21_keyboard.js.html ├── music21_layout.js.html ├── music21_meter.js.html ├── music21_miditools.js.html ├── music21_modules.js.html ├── music21_musicxml.js.html ├── music21_musicxml_m21ToXml.js.html ├── music21_musicxml_xmlToM21.js.html ├── music21_note.js.html ├── music21_parseLoader.js.html ├── music21_pitch.js.html ├── music21_prebase.js.html ├── music21_renderOptions.js.html ├── music21_roman.js.html ├── music21_scale%0AScale%20module.%20See%20%7B@link%20music21.scale%7D%20namespacemodule_.html ├── music21_scale.js.html ├── music21_sites.js.html ├── music21_stream.js.html ├── music21_stream_filters.js.html ├── music21_stream_iterator.js.html ├── music21_tempo.js.html ├── music21_tie.js.html ├── music21_tinyNotation.js.html ├── music21_vfShow.js.html ├── music21_voiceLeading.js.html ├── music21_webmidi.js.html ├── namespaces.list.html ├── scripts │ ├── URI.js │ ├── bootstrap-dropdown.js │ ├── bootstrap-tab.js │ ├── docstrap.lib.js │ ├── prettify │ │ ├── Apache-License-2.0.txt │ │ ├── jquery.min.js │ │ ├── lang-css.js │ │ └── prettify.js │ ├── sunlight.js │ └── toc.js └── styles │ ├── darkstrap.css │ ├── prettify-tomorrow.css │ ├── site.amelia.css │ ├── site.cerulean.css │ ├── site.cosmo.css │ ├── site.cyborg.css │ ├── site.darkly.css │ ├── site.darkstrap.css │ ├── site.flatly.css │ ├── site.journal.css │ ├── site.lumen.css │ ├── site.paper.css │ ├── site.readable.css │ ├── site.sandstone.css │ ├── site.simplex.css │ ├── site.slate.css │ ├── site.spacelab.css │ ├── site.spruce.css │ ├── site.superhero.css │ ├── site.united.css │ ├── site.yeti.css │ ├── sunlight.dark.css │ └── sunlight.default.css ├── favicon.ico ├── jsdoc-template ├── jsdoc.conf.json ├── moment.js ├── publish.js ├── static │ ├── img │ │ ├── glyphicons-halflings-white.png │ │ └── glyphicons-halflings.png │ ├── scripts │ │ ├── URI.js │ │ ├── bootstrap-dropdown.js │ │ ├── bootstrap-tab.js │ │ ├── docstrap.lib.js │ │ ├── prettify │ │ │ ├── Apache-License-2.0.txt │ │ │ ├── jquery.min.js │ │ │ ├── lang-css.js │ │ │ └── prettify.js │ │ ├── sunlight.js │ │ └── toc.js │ └── styles │ │ ├── darkstrap.css │ │ ├── prettify-tomorrow.css │ │ ├── site.amelia.css │ │ ├── site.cerulean.css │ │ ├── site.cosmo.css │ │ ├── site.cyborg.css │ │ ├── site.darkly.css │ │ ├── site.darkstrap.css │ │ ├── site.flatly.css │ │ ├── site.journal.css │ │ ├── site.lumen.css │ │ ├── site.paper.css │ │ ├── site.readable.css │ │ ├── site.sandstone.css │ │ ├── site.simplex.css │ │ ├── site.slate.css │ │ ├── site.spacelab.css │ │ ├── site.spruce.css │ │ ├── site.superhero.css │ │ ├── site.united.css │ │ ├── site.yeti.css │ │ ├── sunlight.dark.css │ │ └── sunlight.default.css └── tmpl │ ├── augments.tmpl │ ├── container.tmpl │ ├── details.tmpl │ ├── example.tmpl │ ├── examples.tmpl │ ├── exceptions.tmpl │ ├── fires.tmpl │ ├── layout.tmpl │ ├── mainpage.tmpl │ ├── members.tmpl │ ├── method.tmpl │ ├── params.tmpl │ ├── properties.tmpl │ ├── returns.tmpl │ ├── sections.tmpl │ ├── source.tmpl │ ├── tutorial.tmpl │ └── type.tmpl ├── package-lock.json ├── package.json ├── releases ├── music21.debug.js ├── music21.debug.js.map └── src │ ├── articulations.d.ts │ ├── articulations.d.ts.map │ ├── audioRecording.d.ts │ ├── audioRecording.d.ts.map │ ├── audioSearch.d.ts │ ├── audioSearch.d.ts.map │ ├── bar.d.ts │ ├── bar.d.ts.map │ ├── base.d.ts │ ├── base.d.ts.map │ ├── beam.d.ts │ ├── beam.d.ts.map │ ├── chord.d.ts │ ├── chord.d.ts.map │ ├── chordTables.d.ts │ ├── chordTables.d.ts.map │ ├── clef.d.ts │ ├── clef.d.ts.map │ ├── common.d.ts │ ├── common.d.ts.map │ ├── converter.d.ts │ ├── converter.d.ts.map │ ├── debug.d.ts │ ├── debug.d.ts.map │ ├── defaults.d.ts │ ├── defaults.d.ts.map │ ├── derivation.d.ts │ ├── derivation.d.ts.map │ ├── duration.d.ts │ ├── duration.d.ts.map │ ├── dynamics.d.ts │ ├── dynamics.d.ts.map │ ├── editorial.d.ts │ ├── editorial.d.ts.map │ ├── exceptions21.d.ts │ ├── exceptions21.d.ts.map │ ├── expressions.d.ts │ ├── expressions.d.ts.map │ ├── figuredBass.d.ts │ ├── figuredBass.d.ts.map │ ├── fromPython.d.ts │ ├── fromPython.d.ts.map │ ├── harmony.d.ts │ ├── harmony.d.ts.map │ ├── instrument.d.ts │ ├── instrument.d.ts.map │ ├── interval.d.ts │ ├── interval.d.ts.map │ ├── key.d.ts │ ├── key.d.ts.map │ ├── keyboard.d.ts │ ├── keyboard.d.ts.map │ ├── layout.d.ts │ ├── layout.d.ts.map │ ├── main.d.ts │ ├── main.d.ts.map │ ├── meter.d.ts │ ├── meter.d.ts.map │ ├── miditools.d.ts │ ├── miditools.d.ts.map │ ├── musicxml.d.ts │ ├── musicxml.d.ts.map │ ├── musicxml │ ├── m21ToXml.d.ts │ ├── m21ToXml.d.ts.map │ ├── xmlToM21.d.ts │ └── xmlToM21.d.ts.map │ ├── note.d.ts │ ├── note.d.ts.map │ ├── parseLoader.d.ts │ ├── parseLoader.d.ts.map │ ├── pitch.d.ts │ ├── pitch.d.ts.map │ ├── prebase.d.ts │ ├── prebase.d.ts.map │ ├── renderOptions.d.ts │ ├── renderOptions.d.ts.map │ ├── roman.d.ts │ ├── roman.d.ts.map │ ├── scale.d.ts │ ├── scale.d.ts.map │ ├── sites.d.ts │ ├── sites.d.ts.map │ ├── stream.d.ts │ ├── stream.d.ts.map │ ├── stream │ ├── filters.d.ts │ ├── filters.d.ts.map │ ├── iterator.d.ts │ ├── iterator.d.ts.map │ ├── makeNotation.d.ts │ └── makeNotation.d.ts.map │ ├── style.d.ts │ ├── style.d.ts.map │ ├── svgs.d.ts │ ├── svgs.d.ts.map │ ├── tempo.d.ts │ ├── tempo.d.ts.map │ ├── tie.d.ts │ ├── tie.d.ts.map │ ├── tinyNotation.d.ts │ ├── tinyNotation.d.ts.map │ ├── types.d.ts │ ├── types.d.ts.map │ ├── vfShims.d.ts │ ├── vfShims.d.ts.map │ ├── vfShow.d.ts │ ├── vfShow.d.ts.map │ ├── voiceLeading.d.ts │ ├── voiceLeading.d.ts.map │ ├── webmidi.d.ts │ └── webmidi.d.ts.map ├── scripts └── postinstall.bash ├── src ├── articulations.ts ├── audioRecording.ts ├── audioSearch.ts ├── bar.ts ├── base.ts ├── beam.ts ├── chord.ts ├── chordTables.ts ├── clef.ts ├── common.ts ├── converter.ts ├── debug.ts ├── defaults.ts ├── derivation.ts ├── duration.ts ├── dynamics.ts ├── editorial.ts ├── exceptions21.ts ├── expressions.ts ├── figuredBass.ts ├── fromPython.ts ├── harmony.ts ├── instrument.ts ├── interval.ts ├── key.ts ├── keyboard.ts ├── layout.ts ├── main.ts ├── meter.ts ├── miditools.ts ├── musicxml.ts ├── musicxml │ ├── m21ToXml.ts │ └── xmlToM21.ts ├── note.ts ├── parseLoader.ts ├── pitch.ts ├── prebase.ts ├── renderOptions.ts ├── roman.ts ├── scale.ts ├── sites.ts ├── stream.ts ├── stream │ ├── filters.ts │ ├── iterator.ts │ └── makeNotation.ts ├── style.ts ├── svgs.ts ├── tempo.ts ├── tie.ts ├── tinyNotation.ts ├── types.ts ├── vfShims.ts ├── vfShow.ts ├── voiceLeading.ts └── webmidi.ts ├── start_python_server.py ├── testHTML ├── audioSearchGame.html ├── audioSearchTest.html ├── autobeam_m21j_test.html ├── bachOut.xml ├── chord_violin_test.html ├── colorChanger.html ├── crossSiteTest.html ├── delayMic.html ├── demo-Cuthbert.html ├── demo-DragScore.html ├── embedPlayer.html ├── es6.html ├── jsdoctest.js ├── jsonpickleParse.html ├── keyboard.html ├── keyboardJazz.html ├── layout.html ├── m21jSandbox.html ├── midiInChords.html ├── midiInKeyChords.html ├── midiInRequire.html ├── musicxmlTest.html ├── pickleM21.html ├── pitchEditing.html ├── pitchEditing_long_score.html ├── recordAudio.html ├── renderTinyNotationDivs.html ├── roundCanon.html ├── sfElsewhereCDN.html ├── showKeyboard.html ├── streamClone.html └── xyLocation.html ├── tests ├── gruntTest.html ├── index.html ├── loadAll.ts └── moduleTests │ ├── articulations.ts │ ├── base.ts │ ├── beam.ts │ ├── chord.ts │ ├── clef.ts │ ├── common.ts │ ├── duration.ts │ ├── dynamics.ts │ ├── editorial.ts │ ├── figuredBass.ts │ ├── interval.ts │ ├── key.ts │ ├── meter.ts │ ├── note.ts │ ├── pitch.ts │ ├── prebase.ts │ ├── roman.ts │ ├── scale.ts │ ├── sites.ts │ ├── stream.ts │ ├── stream │ └── iterator.ts │ ├── tempo.ts │ ├── tie.ts │ ├── tinyNotation.ts │ ├── vfShow.ts │ └── voiceLeading.ts ├── tsconfig.json ├── uploadDocs.py └── webResources └── midiPlayer ├── pause.png ├── play.png └── stop.png /.codeclimate.yml: -------------------------------------------------------------------------------- 1 | # Save as .codeclimate.yml (note leading .) in project root directory 2 | languages: 3 | Ruby: true 4 | JavaScript: true 5 | PHP: true 6 | exclude_paths: 7 | - "ext/*" 8 | - "src/ext/*" 9 | - "node_modules/*" 10 | - "doc/scripts/*" 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # For details see http://EditorConfig.org 2 | 3 | # Unix-style newlines with a newline ending every file 4 | [*] 5 | end_of_line = lf 6 | insert_final_newline = true 7 | 8 | # Matches multiple files with brace expansion notation 9 | # Set default charset 10 | [*.{js,py,ts}] 11 | charset = utf-8 12 | indent_style = space 13 | indent_size = 4 14 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | ext/* 2 | src/ext/* 3 | node_modules/* 4 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | - '*CI*' 8 | pull_request: 9 | branches: 10 | - '*' 11 | 12 | jobs: 13 | frontend_tests: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/setup-node@v4 17 | with: 18 | node-version: 18 19 | 20 | - uses: actions/checkout@v3 21 | with: 22 | submodules: True 23 | 24 | - name: Install deps 25 | run: npm ci 26 | 27 | - name: Prepare Google Sandbox 28 | run: sudo chown root /opt/google/chrome/chrome-sandbox && sudo chmod 4755 /opt/google/chrome/chrome-sandbox 29 | 30 | - name: Run frontend tests (and Disable AppArmor for Chrome) 31 | run: env CHROME_DEVEL_SANDBOX=/opt/google/chrome/chrome-sandbox grunt test_no_watch 32 | 33 | eslint: 34 | runs-on: ubuntu-latest 35 | steps: 36 | - uses: actions/setup-node@v4 37 | with: 38 | node-version: 18 39 | 40 | - uses: actions/checkout@v3 41 | with: 42 | submodules: True 43 | 44 | - name: Install deps 45 | run: npm ci 46 | 47 | - name: Run eslint 48 | run: grunt eslint 49 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # node 2 | node_modules/ 3 | node_modules/grunt/package.json 4 | 5 | # Build is not committed, just releases/ 6 | build/ 7 | 8 | # Built tests 9 | tests/music21.tests.js 10 | tests/music21.tests.js.map 11 | 12 | # Python files 13 | __pycache__ 14 | *.py[cod] 15 | 16 | .buildpath 17 | 18 | # emacs 19 | .*~ 20 | *~ 21 | 22 | # vim 23 | *.swp 24 | 25 | # Eclipse 26 | /.settings 27 | .settings 28 | 29 | # IDEA 30 | .project 31 | .pydevproject 32 | 33 | 34 | # OSX 35 | .DS_Store 36 | 37 | # C extensions 38 | *.so 39 | 40 | # Packages 41 | *.egg 42 | *.egg-info 43 | dist 44 | parts 45 | bin 46 | var 47 | sdist 48 | develop-eggs 49 | .installed.cfg 50 | lib 51 | lib64 52 | 53 | # Installer logs 54 | pip-log.txt 55 | 56 | # Unit test / coverage reports 57 | .coverage 58 | .tox 59 | nosetests.xml 60 | 61 | # Translations 62 | *.mo 63 | 64 | # Mr Developer 65 | .mr.developer.cfg 66 | 67 | soundfonts/* 68 | 69 | node_modules/grunt-contrib-uglify/package.json 70 | 71 | # PyCharm 72 | .idea/encodings.xml 73 | .idea/misc.xml 74 | .idea/modules.xml 75 | .idea/music21j.iml 76 | .idea/vcs.xml 77 | .idea/workspace.xml 78 | .idea/copilot 79 | 80 | # VSCode 81 | *.code-workspace 82 | /tests/test_compile_out/ 83 | /.idea 84 | -------------------------------------------------------------------------------- /.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/eslintPlugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 35 | -------------------------------------------------------------------------------- /.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Music21j is distributed according to the terms the 2 | BSD license 3 | 4 | --- 5 | BSD License 6 | 7 | Copyright (c) 2013-2025, Michael Scott Asato Cuthbert 8 | All rights reserved. 9 | 10 | Redistribution and use in source and binary forms, with or without 11 | modification, are permitted provided that the following conditions are met: 12 | * Redistributions of source code must retain the above copyright 13 | notice, this list of conditions and the following disclaimer. 14 | * Redistributions in binary form must reproduce the above copyright 15 | notice, this list of conditions and the following disclaimer in the 16 | documentation and/or other materials provided with the distribution. 17 | * Neither the name of Michael Scott Asato Cuthbert nor music21 nor the 18 | names of its contributors may be used to endorse or promote products 19 | derived from this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 22 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 23 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL Cuthbert BE LIABLE FOR ANY 25 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 28 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | -------------------------------------------------------------------------------- /build/README.md: -------------------------------------------------------------------------------- 1 | This directory is where versions of music21 get built to after 2 | running `grunt webpack` (or whatever), but to save space on Git pulls, 3 | only released versions (in `/releases`) are committed. 4 | -------------------------------------------------------------------------------- /css/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/css/ajax-loader.gif -------------------------------------------------------------------------------- /css/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/css/arrow_down.png -------------------------------------------------------------------------------- /css/backward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/css/backward.png -------------------------------------------------------------------------------- /css/dots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/css/dots.png -------------------------------------------------------------------------------- /css/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/css/file.png -------------------------------------------------------------------------------- /css/forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/css/forward.png -------------------------------------------------------------------------------- /css/m21.css: -------------------------------------------------------------------------------- 1 | .loadingSoundfont { 2 | top: 40px; 3 | background-color: #99ff99; 4 | color: black; 5 | font-weight: normal; 6 | position: fixed; 7 | right: 30px; 8 | width: 170px; 9 | font-size: 10px; 10 | opacity: 0.7; 11 | border-radius: 15px; 12 | box-shadow: 0 0 19px #999; 13 | padding: 10px 10px 10px 10px; 14 | z-index: 20; 15 | } 16 | 17 | .streamHolding { 18 | display: inline-block; 19 | } 20 | 21 | .streamHolding > svg { 22 | display: block; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /css/midiPlayer.css: -------------------------------------------------------------------------------- 1 | /* midi player */ 2 | /* adapted from MIDI.js css MIT License*/ 3 | 4 | .midiPlayer { 5 | background-image: linear-gradient( 6 | to bottom, 7 | rgba(66, 66, 66, 1), 8 | rgba(22, 22, 22, 1) 9 | ); 10 | padding: 15px 20px; 11 | border: 1px solid #000; 12 | box-shadow: 0 0 10px #fff; 13 | border-radius: 10px; 14 | color: #ffffff; 15 | color: rgba(255, 255, 255, 0.8); 16 | text-shadow: 1px 1px 2px #000; 17 | margin-bottom: 15px; 18 | height: 42px; 19 | max-width: 700px; 20 | min-height: 70px; 21 | } 22 | 23 | .midiPlayer .capsule { 24 | border: 1px solid #000; 25 | box-shadow: 0 0 10px #555; 26 | background: #000; 27 | background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), #333 0); 28 | overflow: hidden; 29 | border-radius: 5px; 30 | -moz-border-radius: 5px; 31 | -webkit-border-radius: 5px; 32 | width: 420px; 33 | display: inline-block; 34 | height: 30px; 35 | } 36 | 37 | .midiPlayer .capsule .cursor { 38 | border-radius: 5px; 39 | border-top-right-radius: 0; 40 | border-bottom-right-radius: 0; 41 | background: #003b96; 42 | background: linear-gradient(to bottom, #0088e9, #003b96 100%); 43 | width: 0; 44 | display: inline-block; 45 | height: 100%; 46 | } 47 | 48 | .midiPlayer .timePlayed, 49 | .midiPlayer .timeRemaining { 50 | position: relative; 51 | top: -9px; 52 | padding: 0 10px; 53 | width: 40px; 54 | display: inline-block; 55 | text-align: right; 56 | } 57 | 58 | .midiPlayer .timeRemaining { 59 | text-align: left; 60 | } 61 | 62 | .midiPlayer .timeControls { 63 | width: 560px; 64 | margin: 0; 65 | float: left; 66 | position: relative; 67 | top: 5px; 68 | } 69 | 70 | .midiPlayer .positionControls { 71 | position: relative; 72 | top: 5px; 73 | margin: 0 auto; 74 | width: 80px; 75 | float: right; 76 | } 77 | 78 | .midiPlayer .positionControls input[type='image']:hover { 79 | opacity: 1; 80 | } 81 | 82 | .midiPlayer .positionControls input[type='image']:active { 83 | opacity: 0.85; 84 | } 85 | 86 | .midiPlayer .positionControls input[type='image'] { 87 | opacity: 0.7; 88 | outline: none; 89 | vertical-align: middle; 90 | } 91 | -------------------------------------------------------------------------------- /doc/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/doc/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /doc/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/doc/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /doc/scripts/prettify/lang-css.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([ 2 | ["pln", /^[\t\n\f\r ]+/, null, " \t\r\n "] 3 | ], [ 4 | ["str", /^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/, null], 5 | ["str", /^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/, null], 6 | ["lang-css-str", /^url\(([^"')]*)\)/i], 7 | ["kwd", /^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i, null], 8 | ["lang-css-kw", /^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i], 9 | ["com", /^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//], 10 | ["com", /^(?:<\!--|--\>)/], 11 | ["lit", /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i], 12 | ["lit", /^#[\da-f]{3,6}/i], 13 | ["pln", /^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i], 14 | ["pun", /^[^\s\w"']+/] 15 | ]), ["css"]); 16 | PR.registerLangHandler(PR.createSimpleLexer([], [ 17 | ["kwd", /^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i] 18 | ]), ["css-kw"]); 19 | PR.registerLangHandler(PR.createSimpleLexer([], [ 20 | ["str", /^[^"')]+/] 21 | ]), ["css-str"]); -------------------------------------------------------------------------------- /doc/styles/prettify-tomorrow.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* Pretty printing styles. Used with prettify.js. */ 4 | /* SPAN elements with the classes below are added by prettyprint. */ 5 | /* plain text */ 6 | .pln { 7 | color: #4d4d4c; } 8 | 9 | @media screen { 10 | /* string content */ 11 | .str { 12 | color: #718c00; } 13 | 14 | /* a keyword */ 15 | .kwd { 16 | color: #8959a8; } 17 | 18 | /* a comment */ 19 | .com { 20 | color: #8e908c; } 21 | 22 | /* a type name */ 23 | .typ { 24 | color: #4271ae; } 25 | 26 | /* a literal value */ 27 | .lit { 28 | color: #f5871f; } 29 | 30 | /* punctuation */ 31 | .pun { 32 | color: #4d4d4c; } 33 | 34 | /* lisp open bracket */ 35 | .opn { 36 | color: #4d4d4c; } 37 | 38 | /* lisp close bracket */ 39 | .clo { 40 | color: #4d4d4c; } 41 | 42 | /* a markup tag name */ 43 | .tag { 44 | color: #c82829; } 45 | 46 | /* a markup attribute name */ 47 | .atn { 48 | color: #f5871f; } 49 | 50 | /* a markup attribute value */ 51 | .atv { 52 | color: #3e999f; } 53 | 54 | /* a declaration */ 55 | .dec { 56 | color: #f5871f; } 57 | 58 | /* a variable name */ 59 | .var { 60 | color: #c82829; } 61 | 62 | /* a function name */ 63 | .fun { 64 | color: #4271ae; } } 65 | /* Use higher contrast and text-weight for printable form. */ 66 | @media print, projection { 67 | .str { 68 | color: #060; } 69 | 70 | .kwd { 71 | color: #006; 72 | font-weight: bold; } 73 | 74 | .com { 75 | color: #600; 76 | font-style: italic; } 77 | 78 | .typ { 79 | color: #404; 80 | font-weight: bold; } 81 | 82 | .lit { 83 | color: #044; } 84 | 85 | .pun, .opn, .clo { 86 | color: #440; } 87 | 88 | .tag { 89 | color: #006; 90 | font-weight: bold; } 91 | 92 | .atn { 93 | color: #404; } 94 | 95 | .atv { 96 | color: #060; } } 97 | /* Style */ 98 | /* 99 | pre.prettyprint { 100 | background: white; 101 | font-family: Menlo, Monaco, Consolas, monospace; 102 | font-size: 12px; 103 | line-height: 1.5; 104 | border: 1px solid #ccc; 105 | padding: 10px; } 106 | */ 107 | 108 | /* Specify class=linenums on a pre to get line numbering */ 109 | ol.linenums { 110 | margin-top: 0; 111 | margin-bottom: 0; } 112 | 113 | /* IE indents via margin-left */ 114 | li.L0, 115 | li.L1, 116 | li.L2, 117 | li.L3, 118 | li.L4, 119 | li.L5, 120 | li.L6, 121 | li.L7, 122 | li.L8, 123 | li.L9 { 124 | /* */ } 125 | 126 | /* Alternate shading for lines */ 127 | li.L1, 128 | li.L3, 129 | li.L5, 130 | li.L7, 131 | li.L9 { 132 | /* */ } 133 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/favicon.ico -------------------------------------------------------------------------------- /jsdoc-template/jsdoc.conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "tags" : { 3 | "allowUnknownTags" : true, 4 | "dictionaries": ["jsdoc","closure"] 5 | }, 6 | "plugins" : ["plugins/markdown"], 7 | "recurseDepth": 10, 8 | "templates" : { 9 | "cleverLinks" : true, 10 | "monospaceLinks" : false, 11 | "dateFormat" : "ddd MMM Do YYYY", 12 | "outputSourceFiles" : true, 13 | "outputSourcePath" : true, 14 | "systemName" : "Music21j", 15 | "footer" : "", 16 | "copyright" : "Music21j, Copyright © 2013-2021 Michael Scott Cuthbert", 17 | "navType" : "vertical", 18 | "theme" : "spruce", 19 | "linenums" : true, 20 | "collapseSymbols" : false, 21 | "inverseNav" : true, 22 | "highlightTutorialCode" : true, 23 | "protocol": "html://" 24 | }, 25 | "markdown" : { 26 | "parser" : "gfm", 27 | "hardwrap" : true 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /jsdoc-template/static/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/jsdoc-template/static/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /jsdoc-template/static/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/jsdoc-template/static/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /jsdoc-template/static/scripts/prettify/lang-css.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([ 2 | ["pln", /^[\t\n\f\r ]+/, null, " \t\r\n "] 3 | ], [ 4 | ["str", /^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/, null], 5 | ["str", /^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/, null], 6 | ["lang-css-str", /^url\(([^"')]*)\)/i], 7 | ["kwd", /^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i, null], 8 | ["lang-css-kw", /^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i], 9 | ["com", /^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//], 10 | ["com", /^(?:<\!--|--\>)/], 11 | ["lit", /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i], 12 | ["lit", /^#[\da-f]{3,6}/i], 13 | ["pln", /^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i], 14 | ["pun", /^[^\s\w"']+/] 15 | ]), ["css"]); 16 | PR.registerLangHandler(PR.createSimpleLexer([], [ 17 | ["kwd", /^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i] 18 | ]), ["css-kw"]); 19 | PR.registerLangHandler(PR.createSimpleLexer([], [ 20 | ["str", /^[^"')]+/] 21 | ]), ["css-str"]); -------------------------------------------------------------------------------- /jsdoc-template/static/styles/prettify-tomorrow.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* Pretty printing styles. Used with prettify.js. */ 4 | /* SPAN elements with the classes below are added by prettyprint. */ 5 | /* plain text */ 6 | .pln { 7 | color: #4d4d4c; } 8 | 9 | @media screen { 10 | /* string content */ 11 | .str { 12 | color: #718c00; } 13 | 14 | /* a keyword */ 15 | .kwd { 16 | color: #8959a8; } 17 | 18 | /* a comment */ 19 | .com { 20 | color: #8e908c; } 21 | 22 | /* a type name */ 23 | .typ { 24 | color: #4271ae; } 25 | 26 | /* a literal value */ 27 | .lit { 28 | color: #f5871f; } 29 | 30 | /* punctuation */ 31 | .pun { 32 | color: #4d4d4c; } 33 | 34 | /* lisp open bracket */ 35 | .opn { 36 | color: #4d4d4c; } 37 | 38 | /* lisp close bracket */ 39 | .clo { 40 | color: #4d4d4c; } 41 | 42 | /* a markup tag name */ 43 | .tag { 44 | color: #c82829; } 45 | 46 | /* a markup attribute name */ 47 | .atn { 48 | color: #f5871f; } 49 | 50 | /* a markup attribute value */ 51 | .atv { 52 | color: #3e999f; } 53 | 54 | /* a declaration */ 55 | .dec { 56 | color: #f5871f; } 57 | 58 | /* a variable name */ 59 | .var { 60 | color: #c82829; } 61 | 62 | /* a function name */ 63 | .fun { 64 | color: #4271ae; } } 65 | /* Use higher contrast and text-weight for printable form. */ 66 | @media print, projection { 67 | .str { 68 | color: #060; } 69 | 70 | .kwd { 71 | color: #006; 72 | font-weight: bold; } 73 | 74 | .com { 75 | color: #600; 76 | font-style: italic; } 77 | 78 | .typ { 79 | color: #404; 80 | font-weight: bold; } 81 | 82 | .lit { 83 | color: #044; } 84 | 85 | .pun, .opn, .clo { 86 | color: #440; } 87 | 88 | .tag { 89 | color: #006; 90 | font-weight: bold; } 91 | 92 | .atn { 93 | color: #404; } 94 | 95 | .atv { 96 | color: #060; } } 97 | /* Style */ 98 | /* 99 | pre.prettyprint { 100 | background: white; 101 | font-family: Menlo, Monaco, Consolas, monospace; 102 | font-size: 12px; 103 | line-height: 1.5; 104 | border: 1px solid #ccc; 105 | padding: 10px; } 106 | */ 107 | 108 | /* Specify class=linenums on a pre to get line numbering */ 109 | ol.linenums { 110 | margin-top: 0; 111 | margin-bottom: 0; } 112 | 113 | /* IE indents via margin-left */ 114 | li.L0, 115 | li.L1, 116 | li.L2, 117 | li.L3, 118 | li.L4, 119 | li.L5, 120 | li.L6, 121 | li.L7, 122 | li.L8, 123 | li.L9 { 124 | /* */ } 125 | 126 | /* Alternate shading for lines */ 127 | li.L1, 128 | li.L3, 129 | li.L5, 130 | li.L7, 131 | li.L9 { 132 | /* */ } 133 | -------------------------------------------------------------------------------- /jsdoc-template/tmpl/augments.tmpl: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /jsdoc-template/tmpl/example.tmpl: -------------------------------------------------------------------------------- 1 | 2 |
3 | -------------------------------------------------------------------------------- /jsdoc-template/tmpl/examples.tmpl: -------------------------------------------------------------------------------- 1 | 6 |

7 | 8 |
9 | 12 | -------------------------------------------------------------------------------- /jsdoc-template/tmpl/exceptions.tmpl: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 |
7 |
8 | 9 |
10 |
11 |
12 |
13 |
14 | Type 15 |
16 |
17 | 18 |
19 |
20 |
21 |
22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 | -------------------------------------------------------------------------------- /jsdoc-template/tmpl/fires.tmpl: -------------------------------------------------------------------------------- 1 | 2 |
  • 3 | 4 |
  • -------------------------------------------------------------------------------- /jsdoc-template/tmpl/mainpage.tmpl: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 |

    9 | 10 | 11 | 12 |
    13 |
    14 |
    15 | 16 | -------------------------------------------------------------------------------- /jsdoc-template/tmpl/members.tmpl: -------------------------------------------------------------------------------- 1 | 5 |
    6 |

    7 | 8 | 9 |

    10 | 11 |
    12 |
    13 | 14 |
    15 | 16 |
    17 | 18 | 19 | 20 |
    Type:
    21 | 26 | 27 | 28 | 29 | 30 | 31 |
    Example 1? 's':'' ?>
    32 | 33 | 34 |
    35 | -------------------------------------------------------------------------------- /jsdoc-template/tmpl/method.tmpl: -------------------------------------------------------------------------------- 1 | 5 |
    6 |

    7 | 8 | 9 |

    10 | 11 |
    12 |
    13 | 14 | 15 |
    16 | 17 |
    18 | 19 | 20 | 21 |
    Type:
    22 | 27 | 28 | 29 | 30 |
    This:
    31 | 32 | 33 | 34 | 35 |
    Parameters:
    36 | 37 | 38 | 39 | 40 | 41 | 42 |
    Fires:
    43 | 46 | 47 | 48 | 49 |
    Listens to Events:
    50 | 53 | 54 | 55 | 56 |
    Listeners of This Event:
    57 | 60 | 61 | 62 | 63 |
    Throws:
    64 | 1) { ?> 70 | 71 | 73 | 74 | 75 |
    Returns:
    76 | 1) { ?> 82 | 83 | 85 | 86 | 87 |
    Example 1? 's':'' ?>
    88 | 89 | 90 |
    91 | -------------------------------------------------------------------------------- /jsdoc-template/tmpl/returns.tmpl: -------------------------------------------------------------------------------- 1 | 5 |
    6 | 7 |
    8 | 9 | 10 | 11 |
    12 |
    13 | Type 14 |
    15 |
    16 | 17 |
    18 |
    19 | 20 | -------------------------------------------------------------------------------- /jsdoc-template/tmpl/sections.tmpl: -------------------------------------------------------------------------------- 1 | 2 |
    3 | 6 |
    7 | -------------------------------------------------------------------------------- /jsdoc-template/tmpl/source.tmpl: -------------------------------------------------------------------------------- 1 | 4 |
    5 |
    6 |
    8 |
    9 |
    10 | -------------------------------------------------------------------------------- /jsdoc-template/tmpl/tutorial.tmpl: -------------------------------------------------------------------------------- 1 |
    2 | 3 |
    4 | 0) { ?> 5 | 10 | 11 | 12 |

    13 |
    14 | 15 |
    16 | 17 |
    18 | 19 |
    20 | -------------------------------------------------------------------------------- /jsdoc-template/tmpl/type.tmpl: -------------------------------------------------------------------------------- 1 | 5 | 6 | | 7 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "music21j", 3 | "version": "0.17.9", 4 | "description": "A toolkit for computer-aided musicology, Javascript version", 5 | "main": "releases/music21.debug.js", 6 | "typings": "releases/src/main.d.ts", 7 | "files": [ 8 | "/css", 9 | "/releases", 10 | "/scripts", 11 | "/webResources" 12 | ], 13 | "dependencies": { 14 | "jsonpickle": "^1.1.2", 15 | "midicube": "^0.9.1", 16 | "vexflow": "^4.2.3" 17 | }, 18 | "devDependencies": { 19 | "@babel/core": "^7.26.8", 20 | "@babel/eslint-parser": "7.22.15", 21 | "@babel/plugin-proposal-class-properties": "^7.18.6", 22 | "@babel/plugin-proposal-export-namespace-from": "^7.18.9", 23 | "@babel/plugin-transform-object-assign": "^7.25.9", 24 | "@babel/preset-env": "^7.26.8", 25 | "@types/jquery": "^3.5.32", 26 | "@types/qunit": "^2.19.12", 27 | "@typescript-eslint/eslint-plugin": "^6.7.0", 28 | "@typescript-eslint/parser": "^6.7.0", 29 | "ajv": "^8.17.1", 30 | "babel-loader": "^9.2.1", 31 | "browserslist": "^4.24.4", 32 | "core-js": "^3.40.0", 33 | "css-loader": "^6.11.0", 34 | "eslint": "^8.57.1", 35 | "eslint-config-airbnb-base": "^15.0.0", 36 | "eslint-plugin-import": "^2.31.0", 37 | "eslint-webpack-plugin": "^4.2.0", 38 | "exports-loader": "^4.0.0", 39 | "glob": "^10.4.5", 40 | "grunt": "^1.6.1", 41 | "grunt-bump": "0.8.0", 42 | "grunt-cli": "^1.5.0", 43 | "grunt-contrib-copy": "^1.0.0", 44 | "grunt-contrib-qunit": "6.2.1", 45 | "grunt-contrib-watch": "^1.1.0", 46 | "grunt-eslint": "^24.3.0", 47 | "grunt-git": "^1.1.1", 48 | "grunt-webpack": "^6.0.0", 49 | "npm-check-updates": "^16.14.20", 50 | "qunit": "^2.24.1", 51 | "style-loader": "^3.3.4", 52 | "ts-loader": "^9.4.4", 53 | "typescript": "^5.2.2", 54 | "webpack": "^5.97.1" 55 | }, 56 | "directories": { 57 | "test": "tests" 58 | }, 59 | "scripts": { 60 | "prepublishOnly": "rm -rf releases; cp -rp build/ releases/; rm -rf releases/tests; rm releases/README.md", 61 | "postinstall": "sh scripts/postinstall.bash", 62 | "test": "echo \"Error: no test specified\" && exit 1" 63 | }, 64 | "repository": { 65 | "type": "git", 66 | "url": "git+https://github.com/cuthbertLab/music21j.git" 67 | }, 68 | "keywords": [ 69 | "music", 70 | "theory", 71 | "musicology", 72 | "notation" 73 | ], 74 | "author": { 75 | "name": "Michael Scott Asato Cuthbert", 76 | "email": "michael.asato.cuthbert@gmail.com", 77 | "url": "https://www.trecento.com" 78 | }, 79 | "license": "BSD-3-Clause", 80 | "bugs": { 81 | "url": "https://github.com/cuthbertLab/music21j/issues" 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /releases/src/articulations.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"articulations.d.ts","sourceRoot":"","sources":["../../src/articulations.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,IAAI,cAAc,EAA0B,QAAQ,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAGzG,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,oBAAY,qBAAqB;IAC7B,KAAK,UAAU;IACf,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,SAAS,aAAa;IACtB,SAAS,aAAa;CACzB;AAED,eAAO,MAAM,8CAA8C,gEAO1D,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC7C,GAAG,EAAE,cAAc,GAAC,UAAU,EAC9B,SAAS,EAAE,qBAAqB,EAChC,aAAa,EAAE,MAAM,GACtB,IAAI,CAyBN;AAED;;;;;;;;;GASG;AACH,qBAAa,YAAa,SAAQ,OAAO,CAAC,cAAc;IACpD,MAAM,KAAK,SAAS,WAAkD;IAEtE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,qBAAqB,CAAmC;IACnE,eAAe,EAAE,MAAM,CAAM;IAC7B,YAAY,EAAE,MAAM,CAAO;IAC3B,WAAW,EAAE,MAAM,CAAO;IAE1B;;;OAGG;IACH,OAAO,CAAC,EAAC,aAAa,EAAC,GAAE,yBAA8B,GAAG,cAAc,GAAC,IAAI;CAQhF;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAChD,MAAM,KAAK,SAAS,WAAwD;IAEnE,IAAI,SAAyB;CACzC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACjD,MAAM,KAAK,SAAS,WAAyD;IAEpE,IAAI,SAAyB;CACzC;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;IAC/C,MAAM,KAAK,SAAS,WAAuD;IAElE,IAAI,SAAwB;CACxC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAChD,MAAM,KAAK,SAAS,WAAwD;IAEnE,IAAI,SAAyB;CACzC;AAED;;GAEG;AACH,qBAAa,MAAO,SAAQ,mBAAmB;IAC3C,MAAM,KAAK,SAAS,WAA4C;IAEvD,IAAI,SAAY;IAChB,eAAe,SAAQ;IACvB,YAAY,SAAO;CAC/B;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,MAAM;IACpC,MAAM,KAAK,SAAS,WAAkD;IAE7D,IAAI,SAAmB;IACvB,eAAe,SAAQ;IACvB,YAAY,SAAO;CAC/B;AAED,qBAAa,QAAS,SAAQ,kBAAkB;IAC5C,MAAM,KAAK,SAAS,WAA8C;IAEzD,IAAI,SAAc;IAClB,eAAe,SAAQ;IACvB,WAAW,SAAO;CAC9B;AAED,qBAAa,aAAc,SAAQ,QAAQ;IACvC,MAAM,KAAK,SAAS,WAAmD;IAE9D,IAAI,SAAmB;IACvB,eAAe,SAAQ;IACvB,WAAW,SAAO;CAC9B;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,QAAQ;IAClC,MAAM,KAAK,SAAS,WAA8C;IAEzD,IAAI,SAAc;IAClB,eAAe,SAAM;CACjC;AAED;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,mBAAmB;IAC5C,MAAM,KAAK,SAAS,WAA6C;;CASpE;AAED,qBAAa,MAAO,SAAQ,kBAAkB;IAC1C,MAAM,KAAK,SAAS,WAA4C;IAEvD,IAAI,SAAY;IAChB,eAAe,SAAQ;CACnC"} -------------------------------------------------------------------------------- /releases/src/audioRecording.d.ts: -------------------------------------------------------------------------------- 1 | interface RecorderConfig { 2 | bufferLen?: number; 3 | callback?: Function; 4 | type?: string; 5 | } 6 | interface CanvasInfo { 7 | id: string; 8 | width: number; 9 | height: number; 10 | canvasContext: CanvasRenderingContext2D; 11 | animationFrameID?: number; 12 | } 13 | /** 14 | * Adopted from Matt Diamond's recorder.js code MIT License 15 | */ 16 | export declare class Recorder { 17 | bufferLen: number; 18 | config: RecorderConfig; 19 | recording: boolean; 20 | currCallback: any; 21 | audioContext: AudioContext; 22 | frequencyCanvasInfo: CanvasInfo; 23 | waveformCanvasInfo: CanvasInfo; 24 | analyserNode: any; 25 | context: BaseAudioContext; 26 | worker: Worker; 27 | node: ScriptProcessorNode; 28 | constructor(cfg?: RecorderConfig); 29 | /** 30 | * Start here -- polyfills navigator, runs getUserMedia and then sends to audioStreamConnected 31 | */ 32 | initAudio(): void; 33 | /** 34 | * After the user has given permission to record, this method is called. 35 | * It creates a gain point, and then connects the input source to the gain. 36 | * It connects an analyserNode (fftSize 2048) to the gain. 37 | * 38 | * It creates a second gain of 0.0 connected to the destination, so that 39 | * we're not hearing what we're playing in in an infinite loop (SUCKS to turn this off...) 40 | * 41 | * And it calls this.connectSource on the inputPoint so that 42 | * we can do something with all these wonderful inputs. 43 | */ 44 | audioStreamConnected(stream: any): void; 45 | /** 46 | * Creates a worker to receive and process all the messages asynchronously. 47 | */ 48 | connectSource(source: GainNode): void; 49 | /** 50 | * Creates a ScriptProcessorNode (preferably) to allow for direct audio processing. 51 | * 52 | * Sets it to this.node and returns it. 53 | */ 54 | setNode(): ScriptProcessorNode; 55 | /** 56 | * Configure from another source... 57 | */ 58 | configure(cfg: any): void; 59 | record(): void; 60 | stop(): void; 61 | clear(): void; 62 | /** 63 | * Directly get the buffers from the worker and then call cb. 64 | */ 65 | getBuffers(cb: any): void; 66 | /** 67 | * call exportWAV or exportMonoWAV on the worker, then call cb or (if undefined) setupDownload. 68 | */ 69 | exportWAV(cb: any, type: any, isMono: any): void; 70 | exportMonoWAV(cb: any, type: any): void; 71 | setupDownload(blob: any, filename?: string, elementId?: string): void; 72 | setContextForCanvasInfo(canvasInfo: CanvasInfo): void; 73 | /** 74 | * Update the Analysers. 75 | */ 76 | updateAnalysers(time: number): void; 77 | drawWaveformCanvas(buffers: number[][]): void; 78 | /** 79 | * set this as a callback from getBuffers. Returns the source so that a stop() command 80 | * is possible. 81 | */ 82 | playBuffers(buffers: number[][]): AudioBufferSourceNode; 83 | } 84 | export {}; 85 | //# sourceMappingURL=audioRecording.d.ts.map -------------------------------------------------------------------------------- /releases/src/audioRecording.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"audioRecording.d.ts","sourceRoot":"","sources":["../../src/audioRecording.ts"],"names":[],"mappings":"AAEA,UAAU,cAAc;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,UAAU;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,wBAAwB,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,QAAQ;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,OAAO,CAAS;IAC3B,YAAY,MAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,mBAAmB,EAAE,UAAU,CAAC;IAChC,kBAAkB,EAAE,UAAU,CAAC;IAC/B,YAAY,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,mBAAmB,CAAC;gBAEd,GAAG,GAAE,cAAmB;IA6BpC;;OAEG;IACH,SAAS;IAkBT;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,MAAM,KAAA,GAAG,IAAI;IAoBlC;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI;IA4DrC;;;;OAIG;IACH,OAAO;IAWP;;OAEG;IACH,SAAS,CAAC,GAAG,KAAA,GAAG,IAAI;IAQpB,MAAM,IAAI,IAAI;IAId,IAAI,IAAI,IAAI;IAIZ,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,UAAU,CAAC,EAAE,KAAA,GAAG,IAAI;IAKpB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAA,EAAE,IAAI,KAAA,EAAE,MAAM,KAAA,GAAG,IAAI;IAsBjC,aAAa,CAAC,EAAE,KAAA,EAAE,IAAI,KAAA,GAAG,IAAI;IAI7B,aAAa,CACT,IAAI,KAAA,EACJ,QAAQ,GAAE,MAAqB,EAC/B,SAAS,GAAE,MAAe,GAC3B,IAAI;IAOP,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAarD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAiDnC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI;IAkC7C;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,qBAAqB;CAoB1D"} -------------------------------------------------------------------------------- /releases/src/audioSearch.d.ts: -------------------------------------------------------------------------------- 1 | declare class _ConfigSingletonCreator { 2 | fftSize: number; 3 | AudioContextCaller: any; 4 | _audioContext: AudioContext; 5 | animationFrameCallbackId: number; 6 | sampleBuffer: Float32Array; 7 | currentAnalyser: any; 8 | minFrequency: number; 9 | maxFrequency: number; 10 | pitchSmoothingSize: number; 11 | lastPitchClassesDetected: number[]; 12 | lastPitchesDetected: number[]; 13 | lastCentsDeviationsDetected: number[]; 14 | constructor(); 15 | get audioContext(): AudioContext; 16 | set audioContext(ac: AudioContext); 17 | } 18 | export declare const config: _ConfigSingletonCreator; 19 | /** 20 | * Note: audioRecording uses the newer getUserMedia routines, so 21 | * this should be ported to be similar to there. 22 | * 23 | * @param {Object} dictionary - optional dictionary to fill 24 | * @param {function} callback - callback on success 25 | * @param {function} error - callback on error 26 | */ 27 | export declare function getUserMedia(dictionary: any, callback: any, error: any): void; 28 | export declare function userMediaStarted(audioStream: any): void; 29 | export declare const animateLoop: () => void; 30 | export declare function smoothPitchExtraction(frequency: number): [number, number]; 31 | export declare function sampleCallback(frequency: number): number; 32 | export declare function autoCorrelate(buf: any, sampleRate: number, minFrequency?: number, maxFrequency?: number): number; 33 | export declare function midiNumDiffFromFrequency(frequency: number): [number, number]; 34 | export {}; 35 | //# sourceMappingURL=audioSearch.d.ts.map -------------------------------------------------------------------------------- /releases/src/audioSearch.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"audioSearch.d.ts","sourceRoot":"","sources":["../../src/audioSearch.ts"],"names":[],"mappings":"AAWA,cAAM,uBAAuB;IACzB,OAAO,EAAE,MAAM,CAAQ;IACvB,kBAAkB,EAAE,GAAG,CAAC;IACxB,aAAa,EAAE,YAAY,CAAQ;IACnC,wBAAwB,EAAE,MAAM,CAAK;IACrC,YAAY,EAAE,YAAY,CAAQ;IAClC,eAAe,MAAC;IAChB,YAAY,EAAE,MAAM,CAAM;IAC1B,YAAY,EAAE,MAAM,CAAO;IAC3B,kBAAkB,EAAE,MAAM,CAAK;IAC/B,wBAAwB,EAAE,MAAM,EAAE,CAAM;IACxC,mBAAmB,EAAE,MAAM,EAAE,CAAM;IACnC,2BAA2B,EAAE,MAAM,EAAE,CAAM;;IAM3C,IAAI,YAAY,IAmBK,YAAY,CAFhC;IAED,IAAI,YAAY,CAAC,EAAE,EAAE,YAAY,EAEhC;CACJ;AAED,eAAO,MAAM,MAAM,yBAAgC,CAAC;AAEpD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,UAAU,KAAA,EAAE,QAAQ,KAAA,EAAE,KAAK,KAAA,GAAG,IAAI,CAmC9D;AAED,wBAAgB,gBAAgB,CAAC,WAAW,KAAA,GAAG,IAAI,CAclD;AAED,eAAO,MAAM,WAAW,YAmBvB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA+CzE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMxD;AAGD,wBAAgB,aAAa,CACzB,GAAG,KAAA,EACH,UAAU,EAAE,MAAM,EAClB,YAAY,GAAE,MAAU,EACxB,YAAY,GAAE,MAAkB,UAqEnC;AAED,wBAAgB,wBAAwB,CACpC,SAAS,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,CAKlB"} -------------------------------------------------------------------------------- /releases/src/bar.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * music21j -- Javascript reimplementation of Core music21p features. 3 | * music21/bar -- Barline objects 4 | * 5 | * Copyright (c) 2013-24, Michael Scott Asato Cuthbert 6 | * Based on music21 (=music21p), Copyright (c) 2006-24, Michael Scott Asato Cuthbert 7 | * 8 | */ 9 | import * as base from './base'; 10 | import { Music21Exception } from './exceptions21'; 11 | export declare class BarException extends Music21Exception { 12 | } 13 | export declare class Barline extends base.Music21Object { 14 | _type: string; 15 | location: string; 16 | static get className(): string; 17 | constructor(type?: string, location?: string); 18 | get type(): string; 19 | set type(v: string); 20 | musicXMLBarStyle(): string; 21 | } 22 | export default Barline; 23 | //# sourceMappingURL=bar.d.ts.map -------------------------------------------------------------------------------- /releases/src/bar.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"bar.d.ts","sourceRoot":"","sources":["../../src/bar.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAgBlD,qBAAa,YAAa,SAAQ,gBAAgB;CAAG;AAsBrD,qBAAa,OAAQ,SAAQ,IAAI,CAAC,aAAa;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,KAAK,SAAS,WAAoC;gBAE5C,IAAI,SAAU,EAAE,QAAQ,SAAQ;IAO5C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAEjB;IAED,gBAAgB,IAAI,MAAM;CAG7B;AAED,eAAe,OAAO,CAAC"} -------------------------------------------------------------------------------- /releases/src/base.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/base.ts"],"names":[],"mappings":"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"} -------------------------------------------------------------------------------- /releases/src/beam.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"beam.d.ts","sourceRoot":"","sources":["../../src/beam.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AAGpC,eAAO,MAAM,cAAc;;;;;CAK1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAMjC,CAAC;AAGF;;;;;;;;;GASG;AACH,qBAAa,IAAK,SAAQ,OAAO,CAAC,cAAc;IAC5C,MAAM,KAAK,SAAS,WAAkC;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAC,SAAS,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;gBAEb,IAAI,EAAE,MAAM,EAAE,SAAS,MAAU;CAKhD;AAED;;;;;;GAMG;AACH,qBAAa,KAAM,SAAQ,OAAO,CAAC,cAAc;IAC7C,MAAM,KAAK,SAAS,WAAmC;IAEvD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE;IAgBjE,MAAM,CAAC,2BAA2B,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;IAiB/D,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;IAkCxD,MAAM,CAAC,2BAA2B,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;IAoE/D,SAAS,EAAE,IAAI,EAAE,CAAM;IACvB,SAAS,EAAE,OAAO,CAAS;IAE3B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,MAAU,GAAG,IAAI;IAO/C;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAC,MAAM,EAAE,IAAI,GAAE,MAAM,GAAC,SAAqB,GAAG,KAAK;IAoCrE;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAC,SAAS;IAY3C;;;;OAIG;IACH,UAAU,IAAI,MAAM,EAAE;IAQtB;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAC,SAAS;IAajD;;;;OAIG;IACH,QAAQ,IAAI,MAAM,EAAE;IAQpB;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAkB,GAAG,KAAK;IAY1D;;;;;;;OAOG;IACH,WAAW,CACP,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAAM,GAAC,SAAqB,GACxC,KAAK;CAiBX"} -------------------------------------------------------------------------------- /releases/src/chord.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"chord.d.ts","sourceRoot":"","sources":["../../src/chord.ts"],"names":[],"mappings":"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"} -------------------------------------------------------------------------------- /releases/src/chordTables.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"chordTables.d.ts","sourceRoot":"","sources":["../../src/chordTables.ts"],"names":[],"mappings":"AAqTA,eAAO,MAAM,KAAK,SACiC,CAAC;AA46CpD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAalB,CAAC;AAIF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;CAGjB,CAAC;AACF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;CAGlB,CAAC;AAGF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgWjB,CAAC;AAiBF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAibjB,CAAC;AAEF,wBAAgB,+BAA+B,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA,YAc1D;AA8CD,wBAAgB,6BAA6B,CAAC,OAAO,KAAA,OAIpD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,KAAA,OAIzC;AAED,wBAAgB,uBAAuB,CAAC,OAAO,KAAA,OAI9C;AAED,wBAAgB,uBAAuB,CAAC,MAAM,KAAA,SAiB7C;AAED,wBAAgB,iBAAiB,CAAC,OAAO,KAAA;;;;;EAcxC;AAED,wBAAgB,oBAAoB,CAAC,OAAO,KAAA,OAI3C;AAED,wBAAgB,kBAAkB,CAAC,OAAO,KAAA,EAAE,cAAc,GAAE,MAAY,UAevE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,KAAA;;;;;EAkFvC"} -------------------------------------------------------------------------------- /releases/src/clef.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"clef.d.ts","sourceRoot":"","sources":["../../src/clef.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQvC,KAAK,QAAQ,GAAG,QAAQ,GAAC,SAAS,GAAC,eAAe,GAAC,MAAM,GAAC,OAAO,GAAC,MAAM,GAAC,YAAY,CAAC;AAEtF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAQhD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAQ/C,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAQ/C,CAAC;AAEF;;;;;;;;;GASG;AACH,qBAAa,IAAK,SAAQ,IAAI,CAAC,aAAa;IACxC,MAAM,KAAK,SAAS,WAAkC;IAEtD,IAAI,EAAE,MAAM,CAAa;IACzB,IAAI,EAAE,MAAM,CAAa;IACzB,IAAI,EAAE,MAAM,CAAK;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAsB;IACxC,sBAAsB,EAAE,MAAM,CAAK;gBAEvB,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAY,GAAE,MAAU;IAmBrD,UAAU;IAIV;;;;;;OAMG;IACH,oBAAoB,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAajD,0BAA0B,CACtB,SAAS,EAAE,KAAK,CAAC,KAAK,GAAC,KAAK,CAAC,KAAK,EAAE,EACpC,EACI,aAAkB,EAClB,gBAAqB,GACxB,GAAE;QACC,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;KACzB,GACP,MAAM;CAoCZ;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,IAAI;IAChC,MAAM,KAAK,SAAS,WAAwC;;CAO/D;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,IAAI;IACnC,MAAM,KAAK,SAAS,WAA2C;;CAKlE;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,IAAI;IACnC,MAAM,KAAK,SAAS,WAA2C;;CAKlE;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,IAAI;IAC9B,MAAM,KAAK,SAAS,WAAsC;;CAO7D;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,IAAI;IACjC,MAAM,KAAK,SAAS,WAAyC;;CAOhE;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,IAAI;IAC9B,MAAM,KAAK,SAAS,WAAsC;;CAO7D;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,IAAI;IAC/B,MAAM,KAAK,SAAS,WAAuC;;CAO9D;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,IAAI;IACjC,MAAM,KAAK,SAAS,WAAyC;;CAOhE;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,IAAI;IACtC,MAAM,KAAK,SAAS,WAA8C;;CAOrE;AAED;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,IAAI;IACpC,MAAM,KAAK,SAAS,WAA4C;;CAOnE;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;CAWrB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,OAAY,EAAE;;CAAG,GAAG,IAAI,CA6B9D;AAED;GACG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,GAAE,MAAU,GAAG,IAAI,CA2DhF"} -------------------------------------------------------------------------------- /releases/src/common.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":";;AAMA,wBAAgB,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAC,WAAW,GAAG,WAAW,CAUtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAqB1E;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAW9D;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,WAAW,KAAA,EAAE,iBAAiB,KAAA,GAAG,IAAI,CAe1D;AAED;;;;;GAKG;AAsCH;;;;;;GAMG;AAEH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAmB5D;AAED;;GAEG;AAEH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA6B7C;AAED;;GAEG;AAEH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA8B3C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAc,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,UAAU,CAW7F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,MAAM,CAyBlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,SAAM,EAAE,cAAc,SAAG,GACpE;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,GAAG,SAAS,CAUvD;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAC,MAAM,GAAG,MAAM,CAQlD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,OAAO,CAczD;AAMD,qBAAa,gBAAgB;IACzB,IAAI,IAAI,MAAM;CAKjB;AAED,eAAO,MAAM,IAAI;;;;;CAKhB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,MAoC3C,CAAC;AAEF,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE5C;AA4BD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAe1C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAKvD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEjD"} -------------------------------------------------------------------------------- /releases/src/converter.d.ts: -------------------------------------------------------------------------------- 1 | export declare function parse(txt: string): import("./stream").Score; 2 | //# sourceMappingURL=converter.d.ts.map -------------------------------------------------------------------------------- /releases/src/converter.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/converter.ts"],"names":[],"mappings":"AAEA,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,4BAGhC"} -------------------------------------------------------------------------------- /releases/src/debug.d.ts: -------------------------------------------------------------------------------- 1 | export declare const debug: boolean; 2 | //# sourceMappingURL=debug.d.ts.map -------------------------------------------------------------------------------- /releases/src/debug.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/debug.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,EAAE,OAAe,CAAC"} -------------------------------------------------------------------------------- /releases/src/defaults.d.ts: -------------------------------------------------------------------------------- 1 | export declare const defaults: { 2 | appendLocation: string; 3 | }; 4 | export default defaults; 5 | //# sourceMappingURL=defaults.d.ts.map -------------------------------------------------------------------------------- /releases/src/defaults.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;CAEpB,CAAC;AAEF,eAAe,QAAQ,CAAC"} -------------------------------------------------------------------------------- /releases/src/derivation.d.ts: -------------------------------------------------------------------------------- 1 | import { Music21Object } from './base'; 2 | export declare class Derivation { 3 | client: Music21Object; 4 | method: string; 5 | origin: Music21Object; 6 | constructor(client: Music21Object); 7 | clone(): Derivation; 8 | chain(): Generator; 9 | rootDerivation(): Music21Object | undefined; 10 | } 11 | export default Derivation; 12 | //# sourceMappingURL=derivation.d.ts.map -------------------------------------------------------------------------------- /releases/src/derivation.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/derivation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,qBAAa,UAAU;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;gBAEV,MAAM,EAAE,aAAa;IAIjC,KAAK,IAAI,UAAU;IAOjB,KAAK,IAAI,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;IAQ/C,cAAc,IAAI,aAAa,GAAC,SAAS;CAQ5C;AAGD,eAAe,UAAU,CAAC"} -------------------------------------------------------------------------------- /releases/src/duration.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../../src/duration.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;CAkB3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,eAAO,MAAM,kBAAkB,UAiB9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAiBhC,CAAC;AAEF;;;GAGG;AACH,qBAAa,QAAS,SAAQ,OAAO,CAAC,cAAc;IAChD,MAAM,KAAK,SAAS,WAA0C;IAC9D,OAAO,EAAE,OAAO,CAAS;IACzB,MAAM,EAAE,OAAO,CAAQ;IACvB,SAAS,CAAC,cAAc,EAAE,MAAM,CAAO;IACvC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAK;IAC5B,SAAS,CAAC,eAAe,MAAa;IACtC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAU;IACjC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAM;gBAEtB,EAAE,GAAE,MAAM,GAAC,MAAY;IAkBnC,UAAU,IAAI,MAAM;IAIpB;;;;;;;;;;;;OAYG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAKvB;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,aAAa,CAAC,EAAE,EAAE,MAAM,EAS3B;IAED;;;;;;;;;;;;;;;OAeG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAUtB;IAED;;;;;;OAMG;IACH,IAAI,OAAO,IAAI,MAAM,EAAE,CAEtB;IAED;;;;;;;;;;;OAWG;IACH,IAAI,eAAe,IAAI,MAAM,CAS5B;IAED,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAsB7B,oBAAoB;IAkBpB,oBAAoB;IAwCpB;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,GAAG,IAAI;CAQvE;AAED;;;;;;;;;GASG;AACH,qBAAa,MAAO,SAAQ,OAAO,CAAC,cAAc;IAC9C,MAAM,KAAK,SAAS,WAAwC;IAC5D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,QAAQ,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;IACzB,MAAM,EAAE,OAAO,CAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAQ;IACxB,SAAS,EAAE,MAAM,CAAW;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;gBAGrB,iBAAiB,GAAE,MAAU,EAC7B,iBAAiB,GAAE,MAAU,EAC7B,cAAc,GAAE,QAAQ,GAAC,MAAkB,EAC3C,cAAc,GAAE,QAAQ,GAAC,MAAkB;IAmC/C;;;;;OAKG;IACH,IAAI,QAAQ,WAoBX;IAED;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAWvC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAU9C;;;OAGG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;;;;OAKG;IACH,gBAAgB,IAAI,MAAM;CAM7B"} -------------------------------------------------------------------------------- /releases/src/dynamics.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * music21j -- Javascript reimplementation of Core music21p features. 3 | * music21/dynamics -- Dynamics 4 | * 5 | * note that Vex.Flow does not support Dynamics yet and we do not support MIDI dynamics, 6 | * so currently of limited value... 7 | * 8 | * Copyright (c) 2013-24, Michael Scott Asato Cuthbert 9 | * Based on music21 (=music21p), Copyright (c) 2006-24, Michael Scott Asato Cuthbert 10 | * 11 | * Dynamics related objects. 12 | * 13 | * Currently do not export to Vexflow. :-( 14 | */ 15 | import * as base from './base'; 16 | export declare const shortNames: string[]; 17 | export declare const longNames: { 18 | ppp: string[]; 19 | pp: string[]; 20 | p: string[]; 21 | mp: string[]; 22 | mf: string[]; 23 | f: string[]; 24 | fp: string[]; 25 | sf: string[]; 26 | ff: string[]; 27 | fff: string[]; 28 | }; 29 | export declare const englishNames: { 30 | ppp: string[]; 31 | pp: string[]; 32 | p: string[]; 33 | mp: string[]; 34 | mf: string[]; 35 | f: string[]; 36 | ff: string[]; 37 | fff: string[]; 38 | }; 39 | export declare const dynamicStrToScalar: { 40 | None: number[]; 41 | n: number[]; 42 | pppp: number[]; 43 | ppp: number[]; 44 | pp: number[]; 45 | p: number[]; 46 | mp: number[]; 47 | mf: number[]; 48 | f: number[]; 49 | fp: number[]; 50 | sf: number[]; 51 | ff: number[]; 52 | fff: number[]; 53 | ffff: number[]; 54 | }; 55 | /** 56 | * A representation of a dynamic. 57 | * 58 | * @param {number|string} value - either a number between 0 and 1 or a dynamic mark such as "ff" or "mp" 59 | * @property {string|undefined} value - a name such as "pp" etc. 60 | * @property {string|undefined} longName - a longer name such as "pianissimo" 61 | * @property {string|undefined} englishName - a name such as "very soft" 62 | * @property {number} volumeScalar - a number between 0 and 1. 63 | */ 64 | export declare class Dynamic extends base.Music21Object { 65 | static get className(): string; 66 | protected _value: string; 67 | protected _volumeScalar: number; 68 | longName: string; 69 | englishName: string; 70 | constructor(value: string | number); 71 | get value(): string; 72 | set value(value: string | number); 73 | get volumeScalar(): number; 74 | set volumeScalar(value: number); 75 | } 76 | //# sourceMappingURL=dynamics.d.ts.map -------------------------------------------------------------------------------- /releases/src/dynamics.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"dynamics.d.ts","sourceRoot":"","sources":["../../src/dynamics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAG/B,eAAO,MAAM,UAAU,UAiBtB,CAAC;AAGF,eAAO,MAAM,SAAS;;;;;;;;;;;CAWrB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;CASxB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;CAe9B,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,OAAQ,SAAQ,IAAI,CAAC,aAAa;IAC3C,MAAM,KAAK,SAAS,WAAyC;IAE7D,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;gBAGR,KAAK,EAAE,MAAM,GAAC,MAAM;IAKhC,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAC,MAAM,EAuC7B;IAED,IAAI,YAAY,IAAI,MAAM,CAQzB;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,EAI7B;CACJ"} -------------------------------------------------------------------------------- /releases/src/editorial.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * music21j -- Javascript reimplementation of Core music21p features. 3 | * music21/editorial -- Representations of editorial information 4 | * 5 | * Copyright (c) 2013-24, Michael Scott Asato Cuthbert 6 | * Based on music21 (=music21p), Copyright (c) 2006-24, Michael Scott Asato Cuthbert 7 | */ 8 | import { ProtoM21Object } from './prebase'; 9 | export declare class Editorial extends ProtoM21Object implements Record { 10 | static get className(): string; 11 | comments: any[]; 12 | footnotes: any[]; 13 | ficta: any; 14 | harmonicInterval: any; 15 | melodicInterval: any; 16 | } 17 | export default Editorial; 18 | //# sourceMappingURL=editorial.d.ts.map -------------------------------------------------------------------------------- /releases/src/editorial.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"editorial.d.ts","sourceRoot":"","sources":["../../src/editorial.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,qBAAa,SAAU,SAAQ,cAAe,YAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACxE,MAAM,KAAK,SAAS,WAA4C;IAEhE,QAAQ,EAAE,GAAG,EAAE,CAAM;IAErB,SAAS,EAAE,GAAG,EAAE,CAAM;IAItB,KAAK,EAAE,GAAG,CAAa;IAEvB,gBAAgB,EAAE,GAAG,CAAa;IAElC,eAAe,EAAE,GAAG,CAAa;CACpC;AAED,eAAe,SAAS,CAAC"} -------------------------------------------------------------------------------- /releases/src/exceptions21.d.ts: -------------------------------------------------------------------------------- 1 | declare class ExtendableError extends Error { 2 | constructor(message: string); 3 | } 4 | export declare class Music21Exception extends ExtendableError { 5 | } 6 | export declare class StreamException extends Music21Exception { 7 | } 8 | export {}; 9 | //# sourceMappingURL=exceptions21.d.ts.map -------------------------------------------------------------------------------- /releases/src/exceptions21.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"exceptions21.d.ts","sourceRoot":"","sources":["../../src/exceptions21.ts"],"names":[],"mappings":"AACA,cAAM,eAAgB,SAAQ,KAAK;gBACnB,OAAO,EAAE,MAAM;CAgB9B;AAED,qBAAa,gBAAiB,SAAQ,eAAe;CAAG;AAExD,qBAAa,eAAgB,SAAQ,gBAAgB;CAAG"} -------------------------------------------------------------------------------- /releases/src/expressions.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Expressions can be note-attached (`music21.note.Note.expressions[]`) or floating... 3 | * 4 | */ 5 | import { Articulation as VFArticulation, Ornament as VFOrnament } from 'vexflow'; 6 | import * as base from './base'; 7 | import { ArticulationPlacement, VexflowArticulationParams } from './articulations'; 8 | /** 9 | * Expressions can be note-attached (`music21.note.Note.expressions[]`) or floating... 10 | * 11 | * @property {string} name 12 | * @property {string} vexflowModifier 13 | * @property {number} setPosition 14 | */ 15 | export declare class Expression extends base.Music21Object { 16 | static get className(): string; 17 | name: string; 18 | vexflowModifier: string; 19 | placement: ArticulationPlacement; 20 | /** 21 | * Renders this Expression as a Vex.Flow.Articulation 22 | * 23 | * (this is not right for all cases) 24 | */ 25 | vexflow({ stemDirection }?: VexflowArticulationParams): VFArticulation | VFOrnament | null; 26 | } 27 | /** 28 | * A fermata... 29 | * 30 | */ 31 | export declare class Fermata extends Expression { 32 | static get className(): string; 33 | constructor(); 34 | } 35 | export declare class Ornament extends Expression { 36 | static get className(): string; 37 | name: string; 38 | vexflow({ stemDirection }?: VexflowArticulationParams): VFOrnament | null; 39 | } 40 | export declare class Trill extends Ornament { 41 | static get className(): string; 42 | constructor(); 43 | } 44 | export declare class Turn extends Ornament { 45 | static get className(): string; 46 | constructor(); 47 | } 48 | export declare class InvertedTurn extends Turn { 49 | static get className(): string; 50 | constructor(); 51 | } 52 | export declare class GeneralMordent extends Ornament { 53 | static get className(): string; 54 | } 55 | /** 56 | * note that Vexflow's definition of mordent/inverted mordent is backwards 57 | * from music theory. -- see music21p for more details. 58 | */ 59 | export declare class Mordent extends GeneralMordent { 60 | static get className(): string; 61 | constructor(); 62 | } 63 | export declare class InvertedMordent extends GeneralMordent { 64 | static get className(): string; 65 | constructor(); 66 | } 67 | //# sourceMappingURL=expressions.d.ts.map -------------------------------------------------------------------------------- /releases/src/expressions.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/expressions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,IAAI,cAAc,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,EACH,qBAAqB,EAErB,yBAAyB,EAC5B,MAAM,iBAAiB,CAAC;AAEzB;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,IAAI,CAAC,aAAa;IAC9C,MAAM,KAAK,SAAS,WAA+C;IAEnE,IAAI,EAAE,MAAM,CAAgB;IAC5B,eAAe,EAAE,MAAM,CAAM;IAC7B,SAAS,EAAE,qBAAqB,CAA+B;IAE/D;;;;OAIG;IACH,OAAO,CAAC,EAAC,aAAa,EAAC,GAAE,yBAA8B,GAAG,cAAc,GAAG,UAAU,GAAG,IAAI;CAQ/F;AAED;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,UAAU;IACnC,MAAM,KAAK,SAAS,WAA4C;;CAOnE;AAGD,qBAAa,QAAS,SAAQ,UAAU;IACpC,MAAM,KAAK,SAAS,WAA6C;IAEjE,IAAI,EAAE,MAAM,CAAc;IAC1B,OAAO,CAAC,EAAC,aAAa,EAAC,GAAE,yBAA8B,GAAG,UAAU,GAAG,IAAI;CAQ9E;AAGD,qBAAa,KAAM,SAAQ,QAAQ;IAC/B,MAAM,KAAK,SAAS,WAA0C;;CAOjE;AAED,qBAAa,IAAK,SAAQ,QAAQ;IAC9B,MAAM,KAAK,SAAS,WAAyC;;CAOhE;AAED,qBAAa,YAAa,SAAQ,IAAI;IAClC,MAAM,KAAK,SAAS,WAAiD;;CAOxE;AAED,qBAAa,cAAe,SAAQ,QAAQ;IACxC,MAAM,KAAK,SAAS,WAAmD;CAC1E;AAGD;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,cAAc;IACvC,MAAM,KAAK,SAAS,WAA4C;;CAOnE;AAED,qBAAa,eAAgB,SAAQ,cAAc;IAC/C,MAAM,KAAK,SAAS,WAAoD;;CAO3E"} -------------------------------------------------------------------------------- /releases/src/figuredBass.d.ts: -------------------------------------------------------------------------------- 1 | import * as pitch from './pitch'; 2 | /** 3 | * In music21p is in figuredBass.notation -- eventually to be moved there. 4 | */ 5 | export declare class Notation { 6 | notationColumn: string; 7 | figureStrings: string[]; 8 | origNumbers: number[]; 9 | origModStrings: any; 10 | numbers: number[]; 11 | modifierStrings: string[]; 12 | modifiers: Modifier[]; 13 | figures: Figure[]; 14 | /** 15 | * 16 | * @param {string} [notationColumn=''] 17 | * @property {string[]} figureStrings 18 | * @property {int[]} origNumbers 19 | * @property {int[]} numbers 20 | * @property {string[]} modifierStrings 21 | * @property {Modifier[]} modifiers 22 | * @property {Figure[]} figures 23 | */ 24 | constructor(notationColumn?: string); 25 | /** 26 | * _parseNotationColumn - Given a notation column below a pitch, defines both this.numbers 27 | * and this.modifierStrings, which provide the intervals above the 28 | * bass and (if necessary) how to modify the corresponding pitches 29 | * accordingly. 30 | */ 31 | _parseNotationColumn(): void; 32 | _translateToLonghand(): void; 33 | _getModifiers(): void; 34 | _getFigures(): void; 35 | } 36 | export declare class Figure { 37 | number: number; 38 | modifierString: string; 39 | modifier: Modifier; 40 | constructor(number: number, modifierString: string); 41 | } 42 | export declare class Modifier { 43 | modifierString: string; 44 | accidental: pitch.Accidental; 45 | constructor(modifierString: string); 46 | _toAccidental(): pitch.Accidental; 47 | modifyPitchName(pitchNameToAlter: string): string; 48 | modifyPitch(pitchToAlter: pitch.Pitch, inPlace: boolean): pitch.Pitch; 49 | } 50 | //# sourceMappingURL=figuredBass.d.ts.map -------------------------------------------------------------------------------- /releases/src/figuredBass.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"figuredBass.d.ts","sourceRoot":"","sources":["../../src/figuredBass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAejC;;GAEG;AAGH,qBAAa,QAAQ;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAa;IACpC,WAAW,EAAE,MAAM,EAAE,CAAa;IAClC,cAAc,MAAa;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAa;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAa;IACtC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;;;;;;;;OASG;gBACS,cAAc,GAAE,MAAW;IAWvC;;;;;OAKG;IACH,oBAAoB,IAAI,IAAI;IAmC5B,oBAAoB;IA2CpB,aAAa;IAUb,WAAW;CAUd;AAED,qBAAa,MAAM;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;gBAEP,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CAKrD;AAeD,qBAAa,QAAQ;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;gBAEjB,cAAc,EAAE,MAAM;IAKlC,aAAa;IAYb,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAMjD,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,KAAK;CAsBxE"} -------------------------------------------------------------------------------- /releases/src/fromPython.d.ts: -------------------------------------------------------------------------------- 1 | import type * as stream from './stream'; 2 | /** 3 | * 4 | * @property {boolean} debug 5 | * @property {Array} knownUnparsables - list of classes that cannot be parsed 6 | * @property {Object} handlers - object mapping string names of classes to a set of 7 | * function calls to perform when restoring or post-restoring. 8 | * (too complicated to explain; read the code) 9 | */ 10 | export declare class Converter { 11 | debug: boolean; 12 | knownUnparsables: string[]; 13 | handlers: any; 14 | currentPart: any; 15 | lastClef: any; 16 | lastKeySignature: any; 17 | lastTimeSignature: any; 18 | constructor(); 19 | /** 20 | * Fixes up some references that cannot be unpacked from jsonpickle. 21 | * 22 | * s - stream after unpacking from jsonpickle 23 | */ 24 | streamPostRestore(s: stream.Stream): stream.Stream; 25 | /** 26 | * Run the main decoder 27 | */ 28 | run(jss: any): any; 29 | } 30 | //# sourceMappingURL=fromPython.d.ts.map -------------------------------------------------------------------------------- /releases/src/fromPython.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"fromPython.d.ts","sourceRoot":"","sources":["../../src/fromPython.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC;AAMxC;;;;;;;GAOG;AACH,qBAAa,SAAS;IAClB,KAAK,EAAE,OAAO,CAAQ;IACtB,gBAAgB,WAWd;IAEF,QAAQ,EAAE,GAAG,CAAC;IACd,WAAW,MAAa;IACxB,QAAQ,MAAa;IACrB,gBAAgB,MAAa;IAC7B,iBAAiB,MAAa;;IA2C9B;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;IA6ElD;;OAEG;IACH,GAAG,CAAC,GAAG,KAAA;CAIV"} -------------------------------------------------------------------------------- /releases/src/harmony.d.ts: -------------------------------------------------------------------------------- 1 | import * as chord from './chord'; 2 | import * as key from './key'; 3 | export declare class Harmony extends chord.Chord { 4 | static get className(): string; 5 | protected _writeAsChord: boolean; 6 | protected _roman: any; 7 | chordStepModifications: any[]; 8 | protected _degreesList: any[]; 9 | protected _key: key.Key; 10 | protected _figure: string; 11 | constructor(figure: string, { parseFigure, updatePitches, }?: { 12 | parseFigure?: boolean; 13 | updatePitches?: boolean; 14 | }); 15 | _parseFigure(): void; 16 | _updatePitches(): void; 17 | get figure(): string; 18 | set figure(newFigure: string); 19 | get key(): key.Key; 20 | set key(keyOrScale: key.Key); 21 | findFigure(): void; 22 | } 23 | //# sourceMappingURL=harmony.d.ts.map -------------------------------------------------------------------------------- /releases/src/harmony.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"harmony.d.ts","sourceRoot":"","sources":["../../src/harmony.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAE7B,qBAAa,OAAQ,SAAQ,KAAK,CAAC,KAAK;IACpC,MAAM,KAAK,SAAS,WAAwC;IAE5D,SAAS,CAAC,aAAa,EAAE,OAAO,CAAS;IACzC,SAAS,CAAC,MAAM,MAAC;IACjB,sBAAsB,QAAM;IAC5B,SAAS,CAAC,YAAY,QAAM;IAC5B,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC;IACxB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBAGtB,MAAM,EAAE,MAAM,EACd,EACI,WAAgB,EAChB,aAAmB,GACtB;;;KAAG;IAiCR,YAAY;IAEZ,cAAc;IAEd,IAAI,MAAM,IAAI,MAAM,CAKnB;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAM3B;IAED,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAEjB;IAED,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,EAO1B;IAED,UAAU;CACb"} -------------------------------------------------------------------------------- /releases/src/instrument.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * music21j -- Javascript reimplementation of Core music21p features. 3 | * music21/instrument -- instrument objects 4 | * 5 | * Copyright (c) 2013-24, Michael Scott Asato Cuthbert 6 | * Based on music21 (=music21p), Copyright (c) 2006-24, Michael Scott Asato Cuthbert 7 | */ 8 | import * as base from './base'; 9 | import type * as interval from './interval'; 10 | export declare const global_usedChannels: number[]; 11 | export declare const maxMidi: number; 12 | interface InstrumentFileInfo { 13 | fn: string; 14 | name: string; 15 | midiNumber: number; 16 | } 17 | export declare const info: InstrumentFileInfo[]; 18 | /** 19 | * Represents an instrument. instrumentNames are found in the ext/soundfonts directory 20 | * 21 | * Note that unlike music21p -- for now there is only one instrument object: Instrument 22 | * there are no Piano, Flute, etc. objects 23 | * 24 | * See music21.miditools and esp. `loadSoundfont` for a way of loading soundfonts into 25 | * instruments. 26 | */ 27 | export declare class Instrument extends base.Music21Object { 28 | static get className(): string; 29 | partId: string; 30 | partName: string; 31 | partAbbreviation: string; 32 | instrumentId: string; 33 | instrumentName: string; 34 | instrumentAbbreviation: string; 35 | midiProgram: number | undefined; 36 | _midiChannel: number | undefined; 37 | lowestNote: number; 38 | highestNote: number; 39 | transposition: interval.Interval; 40 | inGMPercMap: boolean; 41 | soundfontFn: string; 42 | constructor(instrumentName?: string); 43 | /** 44 | * Assign an instrument to an unused midi channel. 45 | * 46 | * Will use the global list of used channels (`music21.instrument.Instrument.usedChannels`) 47 | * if not given. Assigns up to `music21.instrument.maxMidi` channels (16) 48 | * Skips 10 unless this.inGMPercMap is true 49 | */ 50 | autoAssignMidiChannel(usedChannels?: number[]): number; 51 | get oggSoundfont(): string; 52 | get mp3Soundfont(): string; 53 | get midiChannel(): number; 54 | set midiChannel(ch: number); 55 | } 56 | /** 57 | * Find information for a given instrument (by filename or name) 58 | * and load it into an instrument object. 59 | * 60 | * fn - name or filename of instrument 61 | * [inst] - instrument object to load into 62 | */ 63 | export declare function find(fn: string, inst?: Instrument): Instrument | undefined; 64 | export {}; 65 | //# sourceMappingURL=instrument.d.ts.map -------------------------------------------------------------------------------- /releases/src/instrument.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"instrument.d.ts","sourceRoot":"","sources":["../../src/instrument.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,mBAAmB,EAAE,MAAM,EAAO,CAAC;AAChD,eAAO,MAAM,OAAO,EAAE,MAAW,CAAC;AAElC,UAAU,kBAAkB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,IAAI,EAAE,kBAAkB,EA6JpC,CAAC;AAGF;;;;;;;;GAQG;AACH,qBAAa,UAAW,SAAQ,IAAI,CAAC,aAAa;IAC9C,MAAM,KAAK,SAAS,WAA8C;IAElE,MAAM,EAAE,MAAM,CAAa;IAC3B,QAAQ,EAAE,MAAM,CAAa;IAC7B,gBAAgB,EAAE,MAAM,CAAa;IAErC,YAAY,EAAE,MAAM,CAAa;IACjC,cAAc,EAAE,MAAM,CAAM;IAC5B,sBAAsB,EAAE,MAAM,CAAa;IAC3C,WAAW,EAAE,MAAM,GAAC,SAAS,CAAa;IAC1C,YAAY,EAAE,MAAM,GAAC,SAAS,CAAa;IAE3C,UAAU,EAAE,MAAM,CAAa;IAC/B,WAAW,EAAE,MAAM,CAAa;IAEhC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAEjC,WAAW,EAAE,OAAO,CAAS;IAC7B,WAAW,EAAE,MAAM,CAAa;gBAGpB,cAAc,GAAE,MAAW;IAUvC;;;;;;OAMG;IACH,qBAAqB,CAAC,YAAY,GAAE,MAAM,EAAc,GAAG,MAAM;IAyBjE,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,WAAW,IAAI,MAAM,CAKxB;IAED,IAAI,WAAW,CAAC,EAAE,EAAE,MAAM,EAEzB;CACJ;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAC,SAAS,CAaxE"} -------------------------------------------------------------------------------- /releases/src/key.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/key.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,eAAO,MAAM,eAAe;;;;;;;;CAQ3B,CAAC;AAEF,wBAAgB,kCAAkC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAS7E;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAa,SAAQ,IAAI,CAAC,aAAa;IAChD,MAAM,KAAK,SAAS,WAAyC;IAE7D,SAAS,CAAC,OAAO,EAAE,MAAM,CAAK;IAC9B,SAAS,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAG9C,WAAW,WAIT;IAEF,YAAY,WAIV;gBAEU,MAAM,SAAE;IAQpB,UAAU,IAAI,MAAM;IAcpB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAGnB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAOlB;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,cAAc,IAAI,KAAK,CAAC,KAAK,EAAE,CAoBlC;IAED;;;;;;;;OAQG;IACH,SAAS,IAAI,MAAM;IAQnB;;;OAGG;IACH,SAAS,IAAI,MAAM;IASnB;;;;;;;OAOG;IACH,OAAO,IAAI,MAAM;IAMjB;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,UAAU,GAAC,SAAS;IAc1D;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;CAoBnD;AAED;;;;;;;;GAQG;AACH,qBAAa,GAAI,SAAQ,YAAY;IACjC,MAAM,KAAK,SAAS,WAAgC;IAEpD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC;gBAEhB,OAAO,SAAI,EAAE,IAAI,MAAU;IAgCvC,UAAU;IAIV,IAAI,sBAAsB,WAQzB;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,aAAa;IAoBjD,IAAI,UAAU,YAEb;IAED,UAAU,CAAC,GAAG,IAAI,OAAA;IAIlB,eAAe,CAAC,MAAM,KAAA,EAAE,GAAG,IAAI,OAAA;IAI/B,uBAAuB,CAAC,WAAW,KAAA,EAAE,GAAG,IAAI,OAAA,GAAG,MAAM;CAGxD"} -------------------------------------------------------------------------------- /releases/src/keyboard.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../src/keyboard.ts"],"names":[],"mappings":";;AAsBA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAGjC;;GAEG;AACH,qBAAa,GAAG;IACZ,OAAO,EAAE,MAAM,EAAE,CAAW;IAE5B;;OAEG;IACH,SAAS;;MAEP;IAEF,WAAW,EAAE,MAAM,CAAK;IACxB,MAAM,EAAE,QAAQ,CAAC;IAEjB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAK;IAEf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAM;IAEnB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAO;IAErB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,UAAU,GAAC,SAAS,CAAC;IAE7B;;OAEG;IACH,cAAc,EAAE,UAAU,GAAC,SAAS,CAAC;IAErC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAM;IAEtB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAM;IAEtB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAsBnC;;OAEG;IACH,SAAS,CAAC,WAAW,GAAE,MAAc,GAAG,UAAU;IA2BlD;;;;OAIG;IACH,WAAW,CAAC,YAAY,GAAE,OAAe,GAAG,IAAI;IAkDhD;;OAEG;IACH,cAAc,IAAI,IAAI;CAgBzB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,GAAG;;CAQhC;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,GAAG;;CAQhC;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,QAAQ;IACjB,aAAa,SAAM;IACnB,qBAAqB,SAAM;IAC3B,qBAAqB,SAAM;IAC3B,WAAW,SAAK;IAChB,MAAM,SAAO;IACb,UAAU,gBAAa;IACvB,MAAM,EAAE,UAAU,CAAC;IAEnB,KAAK,UAAQ;IACb,SAAS,UAAS;IAClB,WAAW,UAAS;IAEpB,UAAU,EAAE,MAAM,GAAC,MAAM,GAAC,KAAK,CAAC,KAAK,CAAQ;IAC7C,QAAQ,EAAE,MAAM,GAAC,MAAM,GAAC,KAAK,CAAC,KAAK,CAAQ;IAC3C,SAAS,EAAE,MAAM,CAAM;IACvB,OAAO,EAAE,MAAM,CAAM;IAErB,QAAQ,UAAS;IACjB,UAAU,UAAS;IACnB,SAAS;;MAEP;IAGF,YAAY;;;;;;MAMV;;IAkBF;;OAEG;IACH,SAAS,IAAI,aAAa;IAY1B;;OAEG;IACH,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAC,WAAW,GAAG,IAAI;IAkBhD;;;;;;OAMG;IACH,YAAY,CAAC,OAAO,KAAA,GAAG,IAAI;IAsB3B;;OAEG;IACH,SAAS,IAAI,aAAa;IA6G1B;;OAEG;IACH,WAAW,CAAC,WAAW,GAAE,MAAc;IAOvC;;OAEG;IACH,aAAa,CAAC,YAAY,GAAE,OAAe;IAO3C;;OAEG;IACH,eAAe,IAAI,IAAI;IAOvB;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW;IAkClD;;;;;OAKG;IACH,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,GAAC,WAAW,GAAG,WAAW;CA4BlG;AAGD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,kBA4B7B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,QAuC/C"} -------------------------------------------------------------------------------- /releases/src/layout.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * THIS IS CURRENTLY UNUSED 4 | * Does not work yet, so not documented 5 | * 6 | */ 7 | import * as stream from './stream'; 8 | /** 9 | * Divide a part up into systems and fix the measure 10 | * widths so that they are all even. 11 | * 12 | * Note that this is done on the part level even though 13 | * the measure widths need to be consistent across parts. 14 | * 15 | * This is possible because the system is deterministic and 16 | * will come to the same result for each part. Opportunity 17 | * for making more efficient through this... 18 | */ 19 | export declare function makeLayoutFromScore(score: stream.Score, containerWidth: number): LayoutScore; 20 | export declare class LayoutScore extends stream.Score { 21 | static get className(): string; 22 | scoreLayout: any; 23 | measureStart: number; 24 | measureEnd: number; 25 | protected _width: number; 26 | height: number; 27 | top: number; 28 | left: number; 29 | constructor(); 30 | get pages(): stream.iterator.StreamIterator; 31 | get width(): any; 32 | } 33 | /** 34 | * All music must currently be on page 1. 35 | */ 36 | export declare class Page extends stream.Score { 37 | static get className(): string; 38 | pageNumber: number; 39 | measureStart: number; 40 | measureEnd: number; 41 | systemStart: number; 42 | systemEnd: number; 43 | pageLayout: any; 44 | _width: number; 45 | constructor(); 46 | get systems(): stream.iterator.StreamIterator; 47 | get width(): any; 48 | } 49 | /** 50 | */ 51 | export declare class System extends stream.Score { 52 | static get className(): string; 53 | systemNumber: number; 54 | systemLayout: any; 55 | measureStart: number; 56 | measureEnd: number; 57 | protected _width: number; 58 | height: number; 59 | top: number; 60 | left: number; 61 | constructor(); 62 | get staves(): stream.iterator.StreamIterator; 63 | get width(): any; 64 | } 65 | export declare class Staff extends stream.Part { 66 | static get className(): string; 67 | measureStart: number; 68 | measureEnd: number; 69 | staffNumber: number; 70 | optimized: number; 71 | top: number; 72 | left: number; 73 | protected _width: number; 74 | height: number; 75 | inheritedHeight: number; 76 | staffLayout: any; 77 | constructor(); 78 | get width(): any; 79 | } 80 | //# sourceMappingURL=layout.d.ts.map -------------------------------------------------------------------------------- /releases/src/layout.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/layout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,cAAc,EAAE,MAAM,GACvB,WAAW,CAqFb;AAED,qBAAa,WAAY,SAAQ,MAAM,CAAC,KAAK;IACzC,MAAM,KAAK,SAAS,WAA2C;IAE/D,WAAW,MAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;;IAab,IAAI,KAAK,mEAER;IAED,IAAI,KAAK,QAQR;CAcJ;AAED;;GAEG;AACH,qBAAa,IAAK,SAAQ,MAAM,CAAC,KAAK;IAClC,MAAM,KAAK,SAAS,WAAoC;IAExD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,MAAC;IACX,MAAM,EAAE,MAAM,CAAC;;IAYf,IAAI,OAAO,mEAEV;IAED,IAAI,KAAK,QAQR;CACJ;AAED;GACG;AACH,qBAAa,MAAO,SAAQ,MAAM,CAAC,KAAK;IACpC,MAAM,KAAK,SAAS,WAAsC;IAE1D,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,MAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;;IAab,IAAI,MAAM,mEAET;IAED,IAAI,KAAK,QAQR;CACJ;AAED,qBAAa,KAAM,SAAQ,MAAM,CAAC,IAAI;IAClC,MAAM,KAAK,SAAS,WAAqC;IAEzD,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,MAAC;;IAcZ,IAAI,KAAK,QAQR;CACJ"} -------------------------------------------------------------------------------- /releases/src/main.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"} -------------------------------------------------------------------------------- /releases/src/meter.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"meter.d.ts","sourceRoot":"","sources":["../../src/meter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAGvC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAC;AAIrC;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,IAAI,CAAC,aAAa;IACjD,MAAM,KAAK,SAAS,WAA4C;IAEhE,UAAU,EAAE,MAAM,CAAK;IACvB,YAAY,EAAE,MAAM,CAAK;IACzB,uBAAuB,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAM;IACpB,oBAAoB,EAAE,OAAO,CAAS;IAGtC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAM;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wBAAwB,EAAE,QAAQ,CAAC,QAAQ,CAAC;gBAEhC,KAAK,GAAE,MAAc,EAAE,SAAS,MAAU;IAMtD,UAAU,IAAI,MAAM;IAIpB,WAAW,CAAC,KAAK,GAAE,MAAc,EAAE,SAAS,MAAU;IAatD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,KAAA,GAAG,IAAI;IAiBrC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM,EAEtB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,CAAC,EAAE,MAAM,EAExB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,EAElC;IAED,IAAI,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAMnC;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAEvC;IAED,IAAI,UAAU,IAAI,MAAM,EAAE,EAAE,CAK3B;IAED,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAEnC;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,MAAM,CAetB;IAED;;OAEG;IACH,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,EAE9B;IAED;;;;;OAKG;IACH,IAAI,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAIpC;IAED;;;OAGG;IACH,IAAI,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAE5C;IAED;;;;;OAKG;IACH,iBAAiB,IAAI,MAAM,EAAE,EAAE;IAsC/B,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;IAO9C,wBAAwB,IAAI,MAAM,EAAE,EAAE;IActC,aAAa,CACT,OAAO,EAAE,MAAM,EACf,EAAC,2BAAmC,EAAC,GAAE;QAAC,2BAA2B,CAAC,EAAE,OAAO,CAAA;KAAM,GACpF,MAAM;IA0BT;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAetC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,KAAG;IAgH7C;;;OAGG;IACH,oCAAoC,CAAC,EAAE,EAAE,aAAa;IAWtD;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQ1C;;;;OAIG;IACH,iBAAiB,IAAI,UAAU,EAAE;CAepC"} -------------------------------------------------------------------------------- /releases/src/miditools.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"miditools.d.ts","sourceRoot":"","sources":["../../src/miditools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,IAAI,MAAM,UAAU,CAAC;AAGjC,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAGjC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAG/B,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AAMtC,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,CAAC,KAAA,KAAK,KAAK,CAAC;IAC3B,OAAO,EAAE,QAAQ,GAAC,QAAQ,EAAE,CAAC;IAC7B,YAAY,EAAE,QAAQ,CAAC;CAC1B;AAQD,cAAM,qBAAqB;IACvB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAK;IAC5B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAO;IACvB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAK;IAC1B;;OAEG;IACH,cAAc,EAAE,GAAG,EAAE,CAAa;IAElC;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAc;IAEpC;;;;;OAKG;IACH,WAAW,EAAE,KAAK,CAAC,KAAK,GAAC,IAAI,CAAC,IAAI,CAAa;IAE/C,SAAS,CAAC,UAAU,SAAM;IAC1B;;OAEG;IACH,SAAS,EAAE,KAAK,CAAC,SAAS,CAAa;IAEvC,IAAI,KAAK,IAAI,MAAM,CAMlB;IAED,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAMlB;CACJ;AAED,eAAO,MAAM,MAAM,uBAA8B,CAAC;AAGlD;;;;;GAKG;AACH,qBAAa,KAAK;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAa;gBAEjB,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,CAAC,KAAA,EAAE,CAAC,KAAA;IAgBtB;;;OAGG;IACH,YAAY,IAAI,IAAI;IAepB;;;;OAIG;IACH,WAAW,IAAI,IAAI,CAAC,IAAI;CAK3B;AAGD;;GAEG;AACH,eAAO,MAAM,gBAAgB,IAAK,CAAC;AAKnC;;;;;GAKG;AACH,wBAAgB,cAAc,SAY7B;AACD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAgB9C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,GAAC,KAAK,CAAC,KAAK,CAiB9E;AAOD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAC,SAAS,CAgC3F;AAGD;;;;GAIG;AACH,eAAO,MAAM,YAAY,cAAe,KAAK,KAAG,IAE/C,CAAC;AAIF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC5B,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,UAAU,KAAK,GAAG,GAC1D,IAAI,CAwCN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CACzB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,UAAU,KAAK,GAAG,QAgE5D;AAED;;;GAGG;AACH,qBAAa,UAAU;IACnB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAO;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAM;;IAMnB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAyC1C,UAAU;IAIV,OAAO,IAAI,MAAM;IAIjB,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,MAAM;IAIjB,aAAa,CAAC,IAAI,SAAK;IAmBvB,UAAU,CAAC,OAAO,KAAA,GAAG,IAAI;IAqBzB,YAAY;IAIZ,UAAU;IAIV,cAAc;IAKd,aAAa;CAqDhB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,SAAS,EAAE,iBAIvB,CAAC;AAGF,eAAO,MAAM,SAAS,mBAAY,CAAC"} -------------------------------------------------------------------------------- /releases/src/musicxml.d.ts: -------------------------------------------------------------------------------- 1 | import * as m21ToXml from './musicxml/m21ToXml'; 2 | import * as xmlToM21 from './musicxml/xmlToM21'; 3 | export { m21ToXml, xmlToM21 }; 4 | //# sourceMappingURL=musicxml.d.ts.map -------------------------------------------------------------------------------- /releases/src/musicxml.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"musicxml.d.ts","sourceRoot":"","sources":["../../src/musicxml.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC"} -------------------------------------------------------------------------------- /releases/src/musicxml/m21ToXml.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"m21ToXml.d.ts","sourceRoot":"","sources":["../../../src/musicxml/m21ToXml.ts"],"names":[],"mappings":"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"} -------------------------------------------------------------------------------- /releases/src/parseLoader.d.ts: -------------------------------------------------------------------------------- 1 | export declare function runConfiguration(): void; 2 | export declare function getBasePath(): string; 3 | export declare function fixUrls(conf: any): void; 4 | /** 5 | * @returns undefined 6 | */ 7 | export declare function renderHTML(): void; 8 | export declare function loadDefaultSoundfont(conf: any): void; 9 | /** 10 | * Find the configuration as a JSON-encoded m21conf attribute on the script tag. 11 | */ 12 | export declare function loadConfiguration(): Record; 13 | /** 14 | * 15 | * @param {string} [attribute=m21conf] 16 | * @returns {undefined|*|string} 17 | */ 18 | export declare function getM21attribute(attribute?: string): string; 19 | //# sourceMappingURL=parseLoader.d.ts.map -------------------------------------------------------------------------------- /releases/src/parseLoader.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"parseLoader.d.ts","sourceRoot":"","sources":["../../src/parseLoader.ts"],"names":[],"mappings":"AASA,wBAAgB,gBAAgB,SAuB/B;AAED,wBAAgB,WAAW,WAU1B;AAGD,wBAAgB,OAAO,CAAC,IAAI,KAAA,QAO3B;AAED;;GAEG;AACH,wBAAgB,UAAU,SAWzB;AAGD,wBAAgB,oBAAoB,CAAC,IAAI,KAAA,QAWxC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAcvD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,GAAE,MAAkB,GAAG,MAAM,CAarE"} -------------------------------------------------------------------------------- /releases/src/pitch.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"pitch.d.ts","sourceRoot":"","sources":["../../src/pitch.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAGrC,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AAGpC,UAAU,6BAA6B;IACnC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC;IAC3B,wBAAwB,CAAC,EAAE,KAAK,EAAE,CAAC;IACnC,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAID;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,OAAO,CAAC,cAAc;IAClD,MAAM,KAAK,SAAS,WAAyC;IAE7D,SAAS,CAAC,KAAK,EAAE,MAAM,CAAM;IAC7B,SAAS,CAAC,MAAM,EAAE,MAAM,CAAO;IAC/B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAM;IACjC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAM;IACxC,WAAW,EAAE,MAAM,CAAY;IAC/B,aAAa,EAAE,OAAO,CAAa;gBAEvB,OAAO,EAAE,MAAM,GAAC,MAAM;IAKlC,UAAU,IAAI,MAAM;IAIpB,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAW9B;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAC,MAAM,GAAG,IAAI;IA0FjC;;;;;;OAMG;IACH,IAAI,IAAI,WAEP;IAED,IAAI,IAAI,CAAC,CAAC,QAAA,EAET;IAED;;;;;;OAMG;IACH,IAAI,KAAK,WAER;IAED,IAAI,KAAK,CAAC,KAAK,QAAA,EAEd;IAED;;;;;;OAMG;IACH,IAAI,QAAQ,WAEX;IAED,IAAI,QAAQ,CAAC,QAAQ,QAAA,EAEpB;IAED;;;;;OAKG;IACH,IAAI,eAAe,kDAoBlB;IAED;;;;;;OAMG;IACH,IAAI,eAAe,WAElB;CACJ;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;CAEtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;CAEvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,UAAsC,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,UAAU,UAatB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,KAAM,SAAQ,OAAO,CAAC,cAAc;IAC7C,MAAM,KAAK,SAAS,WAAoC;IACxD,SAAS,CAAC,KAAK,EAAE,MAAM,CAAO;IAC9B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAK;IAC9B,SAAS,CAAC,WAAW,EAAE,UAAU,GAAC,SAAS,CAAC;IAC5C,kBAAkB,EAAE,OAAO,CAAS;IACpC,SAAS,MAAa;gBAEV,EAAE,GAAE,MAAM,GAAC,MAAU;IAgBjC,UAAU,IAAI,MAAM;IAIpB,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAoBzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAajB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAEnB;IAED,IAAI,cAAc,IAAI,MAAM,CAO3B;IAED,IAAI,UAAU,IAAI,UAAU,GAAC,SAAS,CAErC;IAED,IAAI,UAAU,CAAC,CAAC,EAAE,UAAU,GAAC,SAAS,EAGrC;IAED,IAAI,IAAI,IAAI,MAAM,CAOjB;IAED,IAAI,IAAI,CAAC,EAAE,EAAE,MAAM,EASlB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,cAAc,CAAC,EAAE,EAAE,MAAM,EAS5B;IAED;;;;OAIG;IACH,IAAI,UAAU,WAEb;IAED;;;OAGG;IACH,IAAI,eAAe,QAElB;IAED,IAAI,eAAe,CAAC,MAAM,KAAA,EAKzB;IAED;;;;OAIG;IACH,IAAI,SAAS,WAEZ;IAED;;;;OAIG;IACH,IAAI,IAAI,WAEP;IAED;;;OAGG;IACH,IAAI,EAAE,QAUL;IAED,IAAI,EAAE,CAAC,EAAE,KAAA,EAIR;IAED;;;OAGG;IACH,IAAI,WAAW,WAMd;IAED;;;OAGG;IACH,IAAI,qBAAqB,WAMxB;IAED;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,UAAM,EAAE,YAAY,SAAE;IAkClD;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,UAAM;IAIjC;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,UAAM;IAKhC,SAAS,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,EAAE,GAAI,OAAO;IAWhE,SAAS,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,EAAE,GAAI,OAAO;IAUhE,uBAAuB,CACnB,EACI,SAAc,EACd,gBAAqB,EACrB,wBAA6B,EAC7B,cAAmB,EACnB,oBAA2B,EAC3B,aAAqB,EACrB,cAAsB,EACtB,4BAAmC,EACnC,eAAuB,GAC1B,GAAE,6BAAkC;IA6ZzC;;;;;;OAMG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM;CAsB3C"} -------------------------------------------------------------------------------- /releases/src/prebase.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"prebase.d.ts","sourceRoot":"","sources":["../../src/prebase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI,CAC/E,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,KACtB,IAAI,CAAC;AAEV;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACvB,MAAM,KAAK,SAAS,WAA+C;IACnE,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IACnC,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,OAAO,CAAQ;IACjC,eAAe,EAAE,OAAO,CAAS;IAGjC,SAAS,CAAC,eAAe,EACrB,MAAM,CAAC,MAAM,EAAE,OAAO,GAAC,aAAa,GAAC,yBAAyB,CAAC,CAE7D;;IAUN,IAAI,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,CAMvB;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,MAAM,EAAE,CAMtB;IAED;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,IAAI,UAAK,EAAE,IAAI,MAAU,GAAG,IAAI;IAmEtC;;;;;;;;;;OAUG;IACH,iBAAiB,CACb,SAAS,EAAE,MAAM,GAAC,MAAM,EAAE,GAAC,CAAC,UAAU,cAAc,CAAC,GAAC,CAAC,UAAU,cAAc,CAAC,EAAE,GACnF,OAAO;IAeV,QAAQ,IAAI,MAAM;IAQlB,UAAU,IAAI,MAAM;IAIpB,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CAG3B"} -------------------------------------------------------------------------------- /releases/src/renderOptions.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * music21j -- Javascript reimplementation of Core music21p features. 3 | * music21/renderOptions -- an object that defines the render options for a Stream 4 | * 5 | * note: no parallel in music21p except Style 6 | * 7 | * Copyright (c) 2013-24, Michael Scott Asato Cuthbert 8 | * Based on music21 (=music21p), Copyright (c) 2006-24, Michael Scott Asato Cuthbert 9 | * 10 | * Options for rendering a stream 11 | * 12 | */ 13 | import { StaveConnector } from './types'; 14 | interface EventInterface { 15 | click: string | Function | undefined; 16 | dblclick: string | Function | undefined; 17 | resize?: string | Function | undefined; 18 | } 19 | interface ScaleFactor { 20 | x: number; 21 | y: number; 22 | } 23 | /** 24 | * An object that contains information on rendering the current stream 25 | * 26 | * Found on every Stream as `.renderOptions` 27 | */ 28 | export declare class RenderOptions { 29 | displayClef: boolean; 30 | displayTimeSignature: boolean; 31 | displayKeySignature: boolean; 32 | scaleFactor: ScaleFactor; 33 | top: number; 34 | left: number; 35 | width: number; 36 | overriddenWidth: number; 37 | height: number; 38 | marginBottom: number; 39 | lyricsLine: number; 40 | adjustMarginBottomForLyrics: boolean; 41 | systemIndex: number; 42 | partIndex: number; 43 | measureIndex: number; 44 | systemPadding: number; 45 | maxSystemWidth: number; 46 | leftBarline: string; 47 | rightBarline: string; 48 | staffLines: number; 49 | staffConnectors: StaveConnector[]; 50 | staffPadding: number; 51 | events: EventInterface; 52 | useVexflowAutobeam: boolean; 53 | startNewSystem: boolean; 54 | startNewPage: boolean; 55 | showMeasureNumber: boolean; 56 | heightAboveStaff: number; 57 | heightOfStaffProper: number; 58 | heightBelowStaff: number; 59 | get staffAreaHeight(): number; 60 | deepClone(): RenderOptions; 61 | } 62 | export {}; 63 | //# sourceMappingURL=renderOptions.d.ts.map -------------------------------------------------------------------------------- /releases/src/renderOptions.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"renderOptions.d.ts","sourceRoot":"","sources":["../../src/renderOptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAEvC,UAAU,cAAc;IACpB,KAAK,EAAE,MAAM,GAAC,QAAQ,GAAC,SAAS,CAAC;IACjC,QAAQ,EAAE,MAAM,GAAC,QAAQ,GAAC,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,GAAC,QAAQ,GAAC,SAAS,CAAC;CACtC;AAED,UAAU,WAAW;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAGD;;;;GAIG;AACH,qBAAa,aAAa;IACtB,WAAW,EAAE,OAAO,CAAQ;IAC5B,oBAAoB,EAAE,OAAO,CAAQ;IACrC,mBAAmB,EAAE,OAAO,CAAQ;IAEpC,WAAW,EAAE,WAAW,CAGtB;IAEF,GAAG,EAAE,MAAM,CAAK;IAChB,IAAI,EAAE,MAAM,CAAa;IACzB,KAAK,EAAE,MAAM,CAAa;IAC1B,eAAe,EAAE,MAAM,CAAa;IACpC,MAAM,EAAE,MAAM,CAAa;IAI3B,YAAY,EAAE,MAAM,CAAK;IACzB,UAAU,EAAE,MAAM,CAAM;IACxB,2BAA2B,EAAE,OAAO,CAAQ;IAE5C,WAAW,EAAE,MAAM,CAAK;IACxB,SAAS,EAAE,MAAM,CAAK;IACtB,YAAY,EAAE,MAAM,CAAK;IAKzB,aAAa,EAAE,MAAM,CAAK;IAI1B,cAAc,EAAE,MAAM,CAAa;IAEnC,WAAW,EAAE,MAAM,CAAa;IAChC,YAAY,EAAE,MAAM,CAAa;IAEjC,UAAU,EAAE,MAAM,CAAK;IACvB,eAAe,EAAE,cAAc,EAAE,CAAiD;IAClF,YAAY,EAAE,MAAM,CAAM;IAC1B,MAAM,EAAE,cAAc,CAIpB;IAEF,kBAAkB,EAAE,OAAO,CAAS;IAEpC,cAAc,EAAE,OAAO,CAAS;IAEhC,YAAY,EAAE,OAAO,CAAS;IAC9B,iBAAiB,EAAE,OAAO,CAAa;IAEvC,gBAAgB,EAAE,MAAM,CAAM;IAC9B,mBAAmB,EAAE,MAAM,CAAM;IACjC,gBAAgB,EAAE,MAAM,CAAM;IAG9B,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,SAAS,IAAI,aAAa;CAe7B"} -------------------------------------------------------------------------------- /releases/src/roman.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"roman.d.ts","sourceRoot":"","sources":["../../src/roman.ts"],"names":[],"mappings":"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"} -------------------------------------------------------------------------------- /releases/src/scale.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"scale.d.ts","sourceRoot":"","sources":["../../src/scale.ts"],"names":[],"mappings":"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"} -------------------------------------------------------------------------------- /releases/src/sites.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Objects for keeping track of relationships among Music21Objects. 3 | * 4 | * Copyright (c) 2017-2021, Michael Scott Asato Cuthbert 5 | * License: BSD 6 | */ 7 | import { Music21Exception } from './exceptions21'; 8 | import type { Stream } from './stream'; 9 | /** 10 | */ 11 | export declare class SitesException extends Music21Exception { 12 | } 13 | /** 14 | * SiteRef.site is held strongly in Javascript. This is 15 | * actually NOT a problem because of the difference between 16 | * the way JS Garbage Collection works from Python (in all 17 | * browsers since IE6...). They follow reference chains and 18 | * find unreachable references and don't just check reference 19 | * counts. Thus circular references still allow memory to be 20 | * garbage collected. Tested in Chrome on 100000 streams, and 21 | * very small additional memory usage. 22 | * 23 | * https://stackoverflow.com/questions/7347203/circular-references-in-javascript-garbage-collector 24 | */ 25 | export declare class SiteRef { 26 | isDead: boolean; 27 | classString: string; 28 | globalSiteIndex: boolean | number; 29 | siteIndex: number; 30 | site: Stream; 31 | } 32 | export declare function getId(obj: any): number | string; 33 | export declare class Sites { 34 | siteDict: Map; 35 | protected _siteIndex: number; 36 | protected _lastID: number; 37 | constructor(); 38 | get length(): number; 39 | includes(checkSite: Stream): boolean; 40 | protected _keysByTime(newFirst?: boolean): any[]; 41 | add(obj: any, idKey?: any, classString?: string): void; 42 | remove(obj: any): boolean; 43 | clear(): void; 44 | /** 45 | */ 46 | yieldSites(sortByCreationTime?: boolean | string, priorityTarget?: Stream, excludeNone?: boolean): Generator; 47 | get(sortByCreationTime?: boolean, priorityTarget?: Stream, excludeNone?: boolean): Stream[]; 48 | getAttrByName(attrName: string): any; 49 | getObjByClass(className: string, options?: {}): Stream; 50 | } 51 | //# sourceMappingURL=sites.d.ts.map -------------------------------------------------------------------------------- /releases/src/sites.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/sites.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;GACG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;CAAG;AACvD;;;;;;;;;;;GAWG;AACH,qBAAa,OAAO;IAChB,MAAM,EAAE,OAAO,CAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,GAAC,MAAM,CAAS;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AAUD,wBAAgB,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAC,MAAM,CAM7C;AAED,qBAAa,KAAK;IACd,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAK;IACjC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAM;;IAO/B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAUpC,SAAS,CAAC,WAAW,CAAC,QAAQ,GAAE,OAAc,GAAG,GAAG,EAAE;IAatD,GAAG,CAAC,GAAG,KAAA,EAAE,KAAK,MAAU,EAAE,WAAW,GAAE,MAAkB,GAAG,IAAI;IAkChE,MAAM,CAAC,GAAG,KAAA,GAAG,OAAO;IAQpB,KAAK,IAAI,IAAI;IAMb;OACG;IACD,UAAU,CACR,kBAAkB,GAAE,OAAO,GAAC,MAAc,EAC1C,cAAc,GAAE,MAAkB,EAClC,WAAW,GAAE,OAAe,GAC7B,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;IAkChC,GAAG,CACC,kBAAkB,GAAE,OAAe,EACnC,cAAc,GAAE,MAAkB,EAClC,WAAW,GAAE,OAAe,GAC7B,MAAM,EAAE;IAiBX,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG;IAYpC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,KAAG,GAAG,MAAM;CAwCvD"} -------------------------------------------------------------------------------- /releases/src/stream/filters.d.ts: -------------------------------------------------------------------------------- 1 | import { Music21Exception } from '../exceptions21'; 2 | import type { Music21Object } from '../base'; 3 | import type { StreamIteratorBase } from './iterator'; 4 | import type { ClassFilterType } from '../types'; 5 | export declare class FilterException extends Music21Exception { 6 | } 7 | declare class _StopIteration { 8 | } 9 | export declare const StopIterationSingleton: _StopIteration; 10 | export declare class StreamFilter { 11 | static get derivationStr(): string; 12 | reset(): void; 13 | call(_item: Music21Object, _iterator: StreamIteratorBase): boolean | _StopIteration; 14 | } 15 | export declare class IsFilter extends StreamFilter { 16 | static get derivationStr(): string; 17 | target: any[]; 18 | numToFind: number; 19 | constructor(target?: any | any[]); 20 | reset(): void; 21 | call(item: Music21Object, _iterator: StreamIteratorBase): boolean | _StopIteration; 22 | } 23 | export declare class IsNotFilter extends IsFilter { 24 | static get derivationStr(): string; 25 | constructor(target?: any | any[]); 26 | reset(): void; 27 | call(item: Music21Object, iterator: StreamIteratorBase): boolean | _StopIteration; 28 | } 29 | export declare class ClassFilter extends StreamFilter { 30 | static get derivationStr(): string; 31 | classList: string[] | (new () => Music21Object)[]; 32 | constructor(classList?: ClassFilterType); 33 | call(item: Music21Object, _iterator: StreamIteratorBase): boolean; 34 | } 35 | export declare class ClassNotFilter extends ClassFilter { 36 | static get derivationStr(): string; 37 | call(item: Music21Object, iterator: StreamIteratorBase): boolean; 38 | } 39 | export interface OffsetFilterOptions { 40 | includeEndBoundary?: boolean; 41 | mustFinishInSpan?: boolean; 42 | mustBeginInSpan?: boolean; 43 | includeElementsThatEndAtStart?: boolean; 44 | } 45 | export declare class OffsetFilter extends StreamFilter { 46 | static get derivationStr(): string; 47 | offsetStart: number; 48 | offsetEnd: number; 49 | includeEndBoundary: boolean; 50 | mustFinishInSpan: boolean; 51 | mustBeginInSpan: boolean; 52 | includeElementsThatEndAtStart: boolean; 53 | zeroLengthSearch: boolean; 54 | constructor(offsetStart: number, offsetEnd?: number, { includeEndBoundary, mustFinishInSpan, mustBeginInSpan, includeElementsThatEndAtStart, }?: OffsetFilterOptions); 55 | call(item: Music21Object, iterator: StreamIteratorBase): boolean; 56 | isElementOffsetInRange(e: Music21Object, offset: number): boolean; 57 | } 58 | export {}; 59 | //# sourceMappingURL=filters.d.ts.map -------------------------------------------------------------------------------- /releases/src/stream/filters.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/stream/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AAE9C,qBAAa,eAAgB,SAAQ,gBAAgB;CAAG;AAExD,cAAM,cAAc;CAAG;AAEvB,eAAO,MAAM,sBAAsB,gBAAuB,CAAC;AAE3D,qBAAa,YAAY;IACrB,MAAM,KAAK,aAAa,IAAI,MAAM,CAEjC;IAED,KAAK;IAEL,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,GAAG,OAAO,GAAC,cAAc;CAGpF;AAED,qBAAa,QAAS,SAAQ,YAAY;IACtC,WAAoB,aAAa,WAEhC;IAED,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;gBAEN,MAAM,GAAE,GAAG,GAAC,GAAG,EAAM;IASxB,KAAK,IAAI,IAAI;IAIb,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,GAAG,OAAO,GAAC,cAAc;CAW5F;AAED,qBAAa,WAAY,SAAQ,QAAQ;IACrC,WAAoB,aAAa,IAAI,MAAM,CAE1C;gBAEW,MAAM,GAAE,GAAG,GAAC,GAAG,EAAM;IAKxB,KAAK,IAAI,IAAI;IAEb,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,GAAG,OAAO,GAAC,cAAc;CAQ3F;AAID,qBAAa,WAAY,SAAQ,YAAY;IACzC,MAAM,KAAK,aAAa,WAEvB;IAED,SAAS,EAAE,MAAM,EAAE,GAAC,CAAC,UAAS,aAAa,CAAC,EAAE,CAAC;gBAEnC,SAAS,GAAE,eAAoB;IAYlC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,GAAG,OAAO;CAG7E;AAED,qBAAa,cAAe,SAAQ,WAAW;IAC3C,WAAoB,aAAa,IAAI,MAAM,CAE1C;IAEQ,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,GAAG,OAAO;CAG5E;AAGD,MAAM,WAAW,mBAAmB;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6BAA6B,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,qBAAa,YAAa,SAAQ,YAAY;IAC1C,WAAoB,aAAa,IAAI,MAAM,CAE1C;IAED,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,6BAA6B,EAAE,OAAO,CAAC;IACvC,gBAAgB,EAAE,OAAO,CAAS;gBAG9B,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAkB,EAC7B,EACI,kBAAuB,EACvB,gBAAsB,EACtB,eAAoB,EACpB,6BAAkC,GACrC,GAAE,mBAAwB;IAoBtB,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,GAAG,OAAO;IASzE,sBAAsB,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;CAkDpE"} -------------------------------------------------------------------------------- /releases/src/stream/makeNotation.d.ts: -------------------------------------------------------------------------------- 1 | import * as note from '../note'; 2 | import * as stream from '../stream'; 3 | export interface MakeBeamsOptions { 4 | inPlace?: boolean; 5 | setStemDirections?: boolean; 6 | failOnNoTimeSignature?: boolean; 7 | } 8 | export interface StemDirectionBeatGroupOptions { 9 | setNewStems?: boolean; 10 | overrideConsistentStemDirections?: boolean; 11 | } 12 | export interface IterateBeamGroupsOptions { 13 | skipNoBeams?: boolean; 14 | recurse?: boolean; 15 | } 16 | export declare function makeBeams(s: stream.Stream, { inPlace, setStemDirections, failOnNoTimeSignature, }?: MakeBeamsOptions): stream.Stream; 17 | export declare function iterateBeamGroups(s: stream.Stream, { skipNoBeams, recurse, }?: IterateBeamGroupsOptions): Generator; 18 | export declare function setStemDirectionForBeamGroups(s: stream.Stream, { setNewStems, overrideConsistentStemDirections, }?: StemDirectionBeatGroupOptions): void; 19 | /** 20 | * Sets the stem direction for unspecified notes. For beamed notes, 21 | * they should have already had their stem directions set in setBeams 22 | */ 23 | export declare function setStemDirectionForUnspecified(s: stream.Stream): void; 24 | /** 25 | * Set stem directions for all notes in a beam group. 26 | */ 27 | export declare function setStemDirectionOneGroup(group: note.NotRest[], { setNewStems, overrideConsistentStemDirections, }?: StemDirectionBeatGroupOptions): void; 28 | //# sourceMappingURL=makeNotation.d.ts.map -------------------------------------------------------------------------------- /releases/src/stream/makeNotation.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"makeNotation.d.ts","sourceRoot":"","sources":["../../../src/stream/makeNotation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAEhC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAIpC,MAAM,WAAW,gBAAgB;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,6BAA6B;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gCAAgC,CAAC,EAAE,OAAO,CAAC;CAC9C;AAED,MAAM,WAAW,wBAAwB;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,EACxC,OAAa,EACb,iBAAsB,EACtB,qBAA2B,GAC9B,GAAE,gBAAqB,GAAG,MAAM,CAAC,MAAM,CAyEvC;AAED,wBAAkB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,CAAC,MAAM,EAChB,EACI,WAAgB,EAChB,OAAY,GACf,GAAE,wBAA6B,GACjC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAkCvC;AAGD,wBAAgB,6BAA6B,CACzC,CAAC,EAAE,MAAM,CAAC,MAAM,EAChB,EACI,WAAgB,EAChB,gCAAsC,GACzC,GAAE,6BAAkC,GACtC,IAAI,CAON;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC1C,CAAC,EAAE,MAAM,CAAC,MAAM,GACjB,IAAI,CAsCN;AAKD;;GAEG;AACH,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,EACrB,EACI,WAAgB,EAChB,gCAAsC,GACzC,GAAE,6BAAkC,GACtC,IAAI,CAuCN"} -------------------------------------------------------------------------------- /releases/src/style.d.ts: -------------------------------------------------------------------------------- 1 | import * as prebase from './prebase'; 2 | export declare enum Enclosure { 3 | RECTANGLE = "rectangle", 4 | SQUARE = "square", 5 | OVAL = "oval", 6 | CIRCLE = "circle", 7 | BRACKET = "bracket", 8 | TRIANGLE = "triangle", 9 | DIAMOND = "diamond", 10 | PENTAGON = "pentagon", 11 | HEXAGON = "hexagon", 12 | HEPTAGON = "heptagon", 13 | OCTAGON = "octagon", 14 | NONAGON = "nonagon", 15 | DECAGON = "decagon", 16 | NONE = "none" 17 | } 18 | export declare class Style extends prebase.ProtoM21Object { 19 | relativeX: number | undefined; 20 | relativeY: number | undefined; 21 | absoluteX: number | undefined; 22 | absoluteY: number | undefined; 23 | enclosure: Enclosure | undefined; 24 | color: string | undefined; 25 | hideObjectOnPrint: boolean; 26 | } 27 | //# sourceMappingURL=style.d.ts.map -------------------------------------------------------------------------------- /releases/src/style.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,oBAAY,SAAS;IAEjB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;CAChB;AAID,qBAAa,KAAM,SAAQ,OAAO,CAAC,cAAc;IAE7C,SAAS,EAAE,MAAM,GAAC,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAC,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAC,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAC,SAAS,CAAC;IAC5B,SAAS,EAAE,SAAS,GAAC,SAAS,CAAC;IAE/B,KAAK,EAAE,MAAM,GAAC,SAAS,CAAC;IAExB,iBAAiB,EAAE,OAAO,CAAS;CACtC"} -------------------------------------------------------------------------------- /releases/src/svgs.d.ts: -------------------------------------------------------------------------------- 1 | export declare const acc_dbl_flat: SVGElement; 2 | export declare const acc_flat: SVGElement; 3 | export declare const acc_natural: SVGElement; 4 | export declare const acc_sharp: SVGElement; 5 | export declare const acc_dbl_sharp: SVGElement; 6 | export declare const svg_accidentals: Map; 7 | //# sourceMappingURL=svgs.d.ts.map -------------------------------------------------------------------------------- /releases/src/svgs.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"svgs.d.ts","sourceRoot":"","sources":["../../src/svgs.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,YAAY,YAAkvB,CAAC;AAE5wB,eAAO,MAAM,QAAQ,YAAsY,CAAC;AAE5Z,eAAO,MAAM,WAAW,YAAgV,CAAC;AAEzW,eAAO,MAAM,SAAS,YAA+wB,CAAC;AAEtyB,eAAO,MAAM,aAAa,YAA6mB,CAAC;AAExoB,eAAO,MAAM,eAAe,eAAY,CAAC"} -------------------------------------------------------------------------------- /releases/src/tempo.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"tempo.d.ts","sourceRoot":"","sources":["../../src/tempo.ts"],"names":[],"mappings":"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"} -------------------------------------------------------------------------------- /releases/src/tie.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * music21j -- Javascript reimplementation of Core music21p features. 3 | * music21/tie -- ties! 4 | * 5 | * Copyright (c) 2013-24, Michael Scott Asato Cuthbert 6 | * Based on music21 (=music21p), Copyright (c) 2006-24, Michael Scott Asato Cuthbert 7 | * 8 | */ 9 | import * as prebase from './prebase'; 10 | /** 11 | * Tie class. Found in music21.note.GeneralNote `.tie`. 12 | * 13 | * Does not support advanced music21p values `.to` and `.from` 14 | * 15 | * @param {string} type - 'start', 'stop', 'continue', or 'let-ring' 16 | * @property {string} type - the tie type 17 | * @property {string} style - only supports 'normal' for now. 18 | * @property {string|undefined} placement - undefined = unknown or above/below. 19 | * (NB currently does nothing) 20 | */ 21 | export declare class Tie extends prebase.ProtoM21Object { 22 | static get className(): string; 23 | protected _type: string; 24 | style: string; 25 | placement: string; 26 | constructor(type?: string); 27 | stringInfo(): string; 28 | get type(): string; 29 | set type(newType: string); 30 | } 31 | //# sourceMappingURL=tie.d.ts.map -------------------------------------------------------------------------------- /releases/src/tie.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"tie.d.ts","sourceRoot":"","sources":["../../src/tie.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAKrC;;;;;;;;;;GAUG;AACH,qBAAa,GAAI,SAAQ,OAAO,CAAC,cAAc;IAC3C,MAAM,KAAK,SAAS,WAAgC;IAEpD,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAY;IACzB,SAAS,EAAE,MAAM,CAAC;gBAEN,IAAI,GAAE,MAAgB;IAKlC,UAAU,IAAI,MAAM;IAIpB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAOvB;CACJ"} -------------------------------------------------------------------------------- /releases/src/tinyNotation.d.ts: -------------------------------------------------------------------------------- 1 | import * as stream from './stream'; 2 | /** 3 | * Regular expressions object 4 | */ 5 | export declare const regularExpressions: { 6 | [k: string]: RegExp; 7 | }; 8 | /** 9 | * **Function, not class**. 10 | * 11 | * Converts a TinyNotation String into a music21 Stream 12 | * 13 | * See music21p for examples of what can go into tinyNotation. It's an 14 | * adaptation of Lilypond format, by design Extremely simple! 15 | * 16 | * * textIn - a valid tinyNotation string 17 | * 18 | * * returns {music21.stream.Part|music21.stream.Score} - a Part object or Score (if multiple parts) 19 | * 20 | * @example 21 | * var t = "3/4 c4 B8 c d4 e2."; 22 | * var p = music21.tinyNotation.TinyNotation(t); 23 | * p.duration.quarterLength; 24 | * // 6.0 25 | */ 26 | export declare function TinyNotation(textIn: string): stream.Part | stream.Score; 27 | /** 28 | * Render all the TinyNotation classes in the DOM as notation 29 | * 30 | * Called automatically when music21 is loaded. TODO -- stop that! 31 | * 32 | * @param {string} [classTypes='.music21.tinyNotation'] - a JQuery selector to find elements to replace. 33 | * @param {HTMLElement|jQuery} [selector] 34 | */ 35 | export declare function renderNotationDivs(classTypes?: string, selector?: HTMLElement | string): void; 36 | //# sourceMappingURL=tinyNotation.d.ts.map -------------------------------------------------------------------------------- /releases/src/tinyNotation.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"tinyNotation.d.ts","sourceRoot":"","sources":["../../src/tinyNotation.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAGnC;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CA0BrD,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAC,MAAM,CAAC,KAAK,CA+NrE;AAGD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,UAAU,GAAE,MAAgC,EAC5C,QAAQ,GAAE,WAAW,GAAC,MAAkB,GACzC,IAAI,CAsCN"} -------------------------------------------------------------------------------- /releases/src/types.d.ts: -------------------------------------------------------------------------------- 1 | import type { Music21Object } from './base'; 2 | export type ClassFilterType = string | string[] | (new () => Music21Object) | (new () => Music21Object)[]; 3 | export declare enum StaveConnector { 4 | SINGLE = "single", 5 | DOUBLE = "double", 6 | BRACE = "brace", 7 | BRACKET = "bracket" 8 | } 9 | //# sourceMappingURL=types.d.ts.map -------------------------------------------------------------------------------- /releases/src/types.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAC;AAG1C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAC,MAAM,EAAE,GAAC,CAAC,UAAS,aAAa,CAAC,GAAC,CAAC,UAAS,aAAa,CAAC,EAAE,CAAA;AAEjG,oBAAY,cAAc;IACtB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,YAAY;CACtB"} -------------------------------------------------------------------------------- /releases/src/vfShims.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * music21j -- Javascript reimplementation of Core music21p features. 3 | * Copyright (c) 2013-24, Michael Scott Asato Cuthbert 4 | * Based on music21 (music21p), Copyright (c) 2006-24, Michael Scott Asato Cuthbert 5 | * 6 | * The infamous vfShims returns! To fix things that Vexflow makes hard to fix! 7 | * 8 | * These were used in 0.15.x on the new lyrics, but are currently unused, since 9 | * the new lyrics in Vexflow would cause staves to overflow. 10 | */ 11 | import { Annotation, type ModifierContextState } from 'vexflow'; 12 | export declare class VFLyricAnnotation extends Annotation { 13 | static DEBUG: boolean; 14 | fill: string; 15 | static format(annotations: VFLyricAnnotation[], state: ModifierContextState): boolean; 16 | getFill(): string; 17 | setFill(color: string): void; 18 | /** Render text below the note at the given staff line */ 19 | draw(): void; 20 | } 21 | //# sourceMappingURL=vfShims.d.ts.map -------------------------------------------------------------------------------- /releases/src/vfShims.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"vfShims.d.ts","sourceRoot":"","sources":["../../src/vfShims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACH,UAAU,EAIV,KAAK,oBAAoB,EAI5B,MAAM,SAAS,CAAC;AAiEjB,qBAAa,iBAAkB,SAAQ,UAAU;IAC7C,MAAM,CAAC,KAAK,UAAS;IACrB,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO;IAoCrF,OAAO,IAAI,MAAM;IAIjB,OAAO,CAAC,KAAK,EAAE,MAAM;IAIrB,yDAAyD;IACzD,IAAI,IAAI,IAAI;CAqDf"} -------------------------------------------------------------------------------- /releases/src/voiceLeading.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"voiceLeading.d.ts","sourceRoot":"","sources":["../../src/voiceLeading.ts"],"names":[],"mappings":"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"} -------------------------------------------------------------------------------- /releases/src/webmidi.d.ts.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"webmidi.d.ts","sourceRoot":"","sources":["../../src/webmidi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AASH,KAAK,oBAAoB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;AAEhF,OAAO,WAAW,IAAK,SAAQ,iBAAiB;IAE5C,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,KAAK,MAAM,CAAC;IAC/E,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,MAAM,EAAE,CAAC;CAC9B;AAED;;;;;;;;GAQG;AAEH,UAAU,cAAc;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,iBAAiB,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,IAAI,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;CACjC;AAED,eAAO,MAAM,OAAO,EAAE,cAUrB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,OAM3E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,gBAAgB,KAAA,OAiB7C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CACxB,aAAa,GAAE,WAAuB,EACtC,QAAQ,GAAE,OAAe,GAC1B,IAAI,GAAC,SAAS,CA4BhB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,GAAE,mBAAwB,GAAG,WAAW,GAAC,SAAS,CAsEnH;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,WAwBxC;AAGD,UAAU,mBAAmB;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC;IAErB;;OAEG;IACH,cAAc,CAAC,EAAE,QAAQ,CAAC;IAE1B;;OAEG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAID;;;;GAIG;AACH,wBAAgB,cAAc,CAC1B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,mBAAwB,GAClC,iBAAiB,CA2DnB;AAED,wBAAgB,cAAc,SA4B7B"} -------------------------------------------------------------------------------- /scripts/postinstall.bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo 'Downloading orchestral soundfonts (about 90MB)' 4 | 5 | BASEDIR=$(dirname "$(dirname "$0")") 6 | mkdir -p soundfonts 7 | curl https://codeload.github.com/cuthbertLab/midi-js-soundfonts/zip/master > soundfonts/soundfonts.zip 8 | (cd "${BASEDIR}"/soundfonts || exit 1; unzip -o -q soundfonts.zip && rm soundfonts.zip) 9 | 10 | # do not use the double-bracket form -- Ubuntu 16 cannot handle it and is still supported. 11 | # if [ ! -f "${BASEDIR}/src/music21.js" ]; then 12 | # echo 'Symlinking music21.js for use with require' 13 | 14 | # (cd "${BASEDIR}"/src || exit 1; ln -s ../releases/music21.debug.js music21.js) 15 | # fi 16 | -------------------------------------------------------------------------------- /src/bar.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * music21j -- Javascript reimplementation of Core music21p features. 3 | * music21/bar -- Barline objects 4 | * 5 | * Copyright (c) 2013-24, Michael Scott Asato Cuthbert 6 | * Based on music21 (=music21p), Copyright (c) 2006-24, Michael Scott Asato Cuthbert 7 | * 8 | */ 9 | import * as base from './base'; 10 | import { Music21Exception } from './exceptions21'; 11 | 12 | const barTypeList = [ 13 | 'regular', 'dotted', 'dashed', 'heavy', 'double', 'final', 14 | 'heavy-light', 'heavy-heavy', 'tick', 'short', 'none', 15 | ]; 16 | const barTypeDict = { 17 | 'light-light': 'double', 18 | 'light-heavy': 'final', 19 | }; 20 | 21 | const reverseBarTypeDict = { 22 | 'double': 'light-light', 23 | 'final': 'light-heavy', 24 | }; 25 | 26 | export class BarException extends Music21Exception {} 27 | 28 | function typeToMusicXMLBarStyle(value: string): string { 29 | if (reverseBarTypeDict[value] !== undefined) { 30 | return reverseBarTypeDict[value]; 31 | } else { 32 | return value; 33 | } 34 | } 35 | 36 | function standardizeBarType(value: string='regular'): string { 37 | value = value.toLowerCase(); 38 | 39 | if (barTypeList.includes(value)) { 40 | return value; 41 | } 42 | if (barTypeDict[value] !== undefined) { 43 | return barTypeDict[value]; 44 | } 45 | throw new BarException(`cannot process style: ${value}`); 46 | } 47 | 48 | export class Barline extends base.Music21Object { 49 | _type: string; 50 | location: string; 51 | 52 | static get className() { return 'music21.bar.Barline'; } 53 | 54 | constructor(type='regular', location='right') { 55 | super(); 56 | 57 | this.type = type; 58 | this.location = location; // left, right, middle, None 59 | } 60 | 61 | get type(): string { 62 | return this._type; 63 | } 64 | 65 | set type(v: string) { 66 | this._type = standardizeBarType(v); 67 | } 68 | 69 | musicXMLBarStyle(): string { 70 | return typeToMusicXMLBarStyle(this.type); 71 | } 72 | } 73 | 74 | export default Barline; 75 | -------------------------------------------------------------------------------- /src/converter.ts: -------------------------------------------------------------------------------- 1 | import { ScoreParser as MusicXMLScoreParser } from './musicxml/xmlToM21'; 2 | 3 | export function parse(txt: string) { 4 | const sp = new MusicXMLScoreParser(); 5 | return sp.scoreFromText(txt); 6 | } 7 | -------------------------------------------------------------------------------- /src/debug.ts: -------------------------------------------------------------------------------- 1 | export const debug: boolean = false; 2 | -------------------------------------------------------------------------------- /src/defaults.ts: -------------------------------------------------------------------------------- 1 | export const defaults = { 2 | appendLocation: 'body', 3 | }; 4 | 5 | export default defaults; 6 | -------------------------------------------------------------------------------- /src/derivation.ts: -------------------------------------------------------------------------------- 1 | import { Music21Object } from './base'; // just for typing 2 | 3 | export class Derivation { 4 | client: Music21Object; // base.Music21Object 5 | method: string; 6 | origin: Music21Object; // base.Music21Object 7 | 8 | constructor(client: Music21Object) { 9 | this.client = client; 10 | } 11 | 12 | clone(): Derivation { 13 | const newThing = new Derivation(this.client); 14 | newThing.method = this.method; 15 | newThing.origin = this.origin; 16 | return newThing; 17 | } 18 | 19 | * chain(): Generator { 20 | let origin = this.origin; 21 | while (origin !== undefined) { 22 | yield origin; 23 | origin = origin.derivation.origin; 24 | } 25 | } 26 | 27 | rootDerivation(): Music21Object|undefined { 28 | const derivationChain = Array.from(this.chain()); 29 | if (derivationChain.length) { 30 | return derivationChain[derivationChain.length - 1]; 31 | } else { 32 | return undefined; 33 | } 34 | } 35 | } 36 | 37 | 38 | export default Derivation; 39 | -------------------------------------------------------------------------------- /src/editorial.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * music21j -- Javascript reimplementation of Core music21p features. 3 | * music21/editorial -- Representations of editorial information 4 | * 5 | * Copyright (c) 2013-24, Michael Scott Asato Cuthbert 6 | * Based on music21 (=music21p), Copyright (c) 2006-24, Michael Scott Asato Cuthbert 7 | */ 8 | 9 | import { ProtoM21Object } from './prebase'; 10 | 11 | export class Editorial extends ProtoM21Object implements Record { 12 | static get className() { return 'music21.editorial.Editorial'; } 13 | 14 | comments: any[] = []; 15 | // noinspection JSUnusedGlobalSymbols 16 | footnotes: any[] = []; 17 | 18 | // these are already deprecated. 19 | // noinspection JSUnusedGlobalSymbols 20 | ficta: any = undefined; 21 | // noinspection JSUnusedGlobalSymbols 22 | harmonicInterval: any = undefined; 23 | // noinspection JSUnusedGlobalSymbols 24 | melodicInterval: any = undefined; 25 | } 26 | 27 | export default Editorial; 28 | -------------------------------------------------------------------------------- /src/exceptions21.ts: -------------------------------------------------------------------------------- 1 | // this is not completely working properly... 2 | class ExtendableError extends Error { 3 | constructor(message: string) { 4 | super(); 5 | // restore prototype chain 6 | const actualProto = new.target.prototype; 7 | 8 | Object.setPrototypeOf(this, actualProto); 9 | this.name = this.constructor.name; 10 | this.message = message; 11 | this.stack = new Error(message).stack; 12 | // until this lands in Node 13 | // if (typeof Error.captureStackTrace === 'function') { 14 | // Error.captureStackTrace(this, this.constructor); 15 | // } else { 16 | // this.stack = new Error(message).stack; 17 | // } 18 | } 19 | } 20 | 21 | export class Music21Exception extends ExtendableError {} 22 | 23 | export class StreamException extends Music21Exception {} 24 | -------------------------------------------------------------------------------- /src/harmony.ts: -------------------------------------------------------------------------------- 1 | import * as chord from './chord'; 2 | import * as key from './key'; 3 | 4 | export class Harmony extends chord.Chord { 5 | static get className() { return 'music21.harmony.Harmony'; } 6 | 7 | protected _writeAsChord: boolean = false; 8 | protected _roman; 9 | chordStepModifications = []; 10 | protected _degreesList = []; 11 | protected _key: key.Key; 12 | protected _figure: string; 13 | 14 | constructor( 15 | figure: string, 16 | { 17 | parseFigure=true, 18 | updatePitches=false, 19 | }={} 20 | ) { 21 | super(); 22 | // this._updateBasedOnXMLInput(keywords); 23 | figure = figure.replace('/o', 'ø'); 24 | this._figure = figure; 25 | if (parseFigure !== false && this._figure !== undefined) { 26 | this._parseFigure(); 27 | } 28 | if ( 29 | this._overrides.bass === undefined 30 | && this._overrides.root !== undefined 31 | ) { 32 | this.bass(this._overrides.root); 33 | } 34 | if ( 35 | (updatePitches && this._figure !== undefined) 36 | || this._overrides.root !== undefined 37 | || this._overrides.bass !== undefined 38 | ) { 39 | this._updatePitches(); 40 | } 41 | // this._updateBasedOnXMLInput(keywords); 42 | if ( 43 | parseFigure !== false 44 | && this._figure !== undefined 45 | && this._figure.indexOf('sus') !== -1 46 | && this._figure.indexOf('sus2') === -1 47 | ) { 48 | this.root(this.bass()); 49 | } 50 | } 51 | 52 | _parseFigure() {} 53 | 54 | _updatePitches() {} 55 | 56 | get figure(): string { 57 | if (this._figure === undefined) { 58 | this.findFigure(); 59 | } 60 | return this._figure; 61 | } 62 | 63 | set figure(newFigure: string) { 64 | this._figure = newFigure; 65 | if (this._figure !== undefined) { 66 | this._parseFigure(); 67 | this._updatePitches(); 68 | } 69 | } 70 | 71 | get key(): key.Key { 72 | return this._key; 73 | } 74 | 75 | set key(keyOrScale: key.Key) { 76 | if (typeof keyOrScale === 'string') { 77 | this._key = new key.Key(keyOrScale); 78 | } else { 79 | this._key = keyOrScale; 80 | this._roman = undefined; 81 | } 82 | } 83 | 84 | findFigure() {} 85 | } 86 | -------------------------------------------------------------------------------- /src/musicxml.ts: -------------------------------------------------------------------------------- 1 | import * as m21ToXml from './musicxml/m21ToXml'; 2 | import * as xmlToM21 from './musicxml/xmlToM21'; 3 | 4 | export { m21ToXml, xmlToM21 }; 5 | -------------------------------------------------------------------------------- /src/style.ts: -------------------------------------------------------------------------------- 1 | import * as prebase from './prebase'; 2 | 3 | export enum Enclosure { 4 | // noinspection JSUnusedGlobalSymbols 5 | RECTANGLE = 'rectangle', 6 | SQUARE = 'square', 7 | OVAL = 'oval', 8 | CIRCLE = 'circle', 9 | BRACKET = 'bracket', 10 | TRIANGLE = 'triangle', 11 | DIAMOND = 'diamond', 12 | PENTAGON = 'pentagon', 13 | HEXAGON = 'hexagon', 14 | HEPTAGON = 'heptagon', 15 | OCTAGON = 'octagon', 16 | NONAGON = 'nonagon', 17 | DECAGON = 'decagon', 18 | NONE = 'none', // special. sets to undefined 19 | } 20 | 21 | 22 | // noinspection JSUnusedGlobalSymbols 23 | export class Style extends prebase.ProtoM21Object { 24 | // size: number|undefined; 25 | relativeX: number|undefined; 26 | relativeY: number|undefined; 27 | absoluteX: number|undefined; 28 | absoluteY: number|undefined; 29 | enclosure: Enclosure|undefined; 30 | // fontRepresentation 31 | color: string|undefined; 32 | // units: string = 'tenths'; 33 | hideObjectOnPrint: boolean = false; 34 | } 35 | -------------------------------------------------------------------------------- /src/tie.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * music21j -- Javascript reimplementation of Core music21p features. 3 | * music21/tie -- ties! 4 | * 5 | * Copyright (c) 2013-24, Michael Scott Asato Cuthbert 6 | * Based on music21 (=music21p), Copyright (c) 2006-24, Michael Scott Asato Cuthbert 7 | * 8 | */ 9 | 10 | import * as prebase from './prebase'; 11 | import { Music21Exception } from './exceptions21'; 12 | 13 | const VALID_TIE_TYPES = ['start', 'stop', 'continue', 'let-ring', 'continue-let-ring']; 14 | 15 | /** 16 | * Tie class. Found in music21.note.GeneralNote `.tie`. 17 | * 18 | * Does not support advanced music21p values `.to` and `.from` 19 | * 20 | * @param {string} type - 'start', 'stop', 'continue', or 'let-ring' 21 | * @property {string} type - the tie type 22 | * @property {string} style - only supports 'normal' for now. 23 | * @property {string|undefined} placement - undefined = unknown or above/below. 24 | * (NB currently does nothing) 25 | */ 26 | export class Tie extends prebase.ProtoM21Object { 27 | static get className() { return 'music21.tie.Tie'; } 28 | 29 | protected _type: string; 30 | style: string = 'normal'; 31 | placement: string; 32 | 33 | constructor(type: string = 'start') { 34 | super(); 35 | this.type = type; 36 | } 37 | 38 | stringInfo(): string { 39 | return this.type; 40 | } 41 | 42 | get type(): string { 43 | return this._type; 44 | } 45 | 46 | set type(newType: string) { 47 | if (!VALID_TIE_TYPES.includes(newType)) { 48 | throw new Music21Exception( 49 | `Type must be one of ${VALID_TIE_TYPES}, not ${newType}` 50 | ); 51 | } 52 | this._type = newType; 53 | } 54 | } 55 | 56 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | import type {Music21Object} from './base'; 2 | 3 | // note: mixing both string and types in a list is not supported. 4 | export type ClassFilterType = string|string[]|(new() => Music21Object)|(new() => Music21Object)[] 5 | 6 | export enum StaveConnector { 7 | SINGLE = 'single', 8 | DOUBLE = 'double', 9 | BRACE = 'brace', 10 | BRACKET = 'bracket', 11 | } 12 | -------------------------------------------------------------------------------- /start_python_server.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pyhthon 2 | ''' 3 | Starts a very basic python-based webserver for debugging. 4 | 5 | It's very important that this server be started in the main music21j directory, not in just any 6 | directory, so call 7 | 8 | cd ~/git/music21j 9 | python server/start_python_server.py 10 | 11 | ''' 12 | import sys 13 | 14 | try: 15 | from BaseHTTPServer import HTTPServer 16 | from CGIHTTPServer import CGIHTTPRequestHandler 17 | from CGIHTTPServer import _url_collapse_path 18 | except ImportError: # python 3 19 | from http.server import HTTPServer 20 | from http.server import CGIHTTPRequestHandler 21 | from http.server import _url_collapse_path 22 | 23 | 24 | try: 25 | import cgitb; 26 | cgitb.enable() # Error reporting 27 | except ImportError: 28 | pass # deprecated in Python 3.11 to be removed in 3.13. Not necessary. 29 | 30 | 31 | class MykeCGIHTTPServer(CGIHTTPRequestHandler): 32 | def is_cgi(self): 33 | """ 34 | Test whether self.path corresponds to a CGI script. 35 | 36 | Returns True and updates the cgi_info attribute to the tuple 37 | (dir, rest) if self.path requires running a CGI script. 38 | Returns False otherwise. 39 | 40 | If any exception is raised, the caller should assume that 41 | self.path was rejected as invalid and act accordingly. 42 | 43 | The default implementation tests whether the normalized url 44 | path begins with one of the strings in self.cgi_directories 45 | (and the next character is a '/' or the end of the string). 46 | """ 47 | collapsed_path = _url_collapse_path(self.path) 48 | for path in self.cgi_directories: 49 | if path in collapsed_path: 50 | dir_sep_index = collapsed_path.rfind(path) + len(path) 51 | head, tail = collapsed_path[:dir_sep_index], collapsed_path[dir_sep_index + 1:] 52 | self.cgi_info = head, tail 53 | return True 54 | return False 55 | 56 | def main(): 57 | server = HTTPServer 58 | handler = MykeCGIHTTPServer 59 | 60 | # handler.cgi_directories.append("/server/cgi-bin/") 61 | if len(sys.argv) > 1: 62 | port = int(sys.argv[1]) 63 | else: 64 | port = 8000 65 | 66 | server_address = ("", port) 67 | httpd = server(server_address, handler) 68 | print("Beginning HTTP/CGI server at " + str(port)); 69 | httpd.serve_forever() 70 | 71 | if __name__ == '__main__': 72 | main() 73 | -------------------------------------------------------------------------------- /testHTML/autobeam_m21j_test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Title 7 | 8 | 9 |

    Test music21j autobeam

    10 | 11 |
    12 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /testHTML/chord_violin_test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hi 4 | 5 | 6 | 7 |
    Just a single chord that plays with a violin sound when loaded and clicked.
    8 | 9 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /testHTML/crossSiteTest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /testHTML/demo-Cuthbert.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | First music21j demo 4 | 5 | 6 | 7 | 8 | 9 | 10 | This was the oldest/first experiment with music21j, from summer 2013. Updated so it still works.
    11 | Only for historical nostalgia... 12 |
    13 | 14 |
    15 | 16 |
    17 | 18 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /testHTML/es6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Pure ES6 tests 4 | 5 | 6 | 7 | 8 | Pure ES6 test. Click the score and the note will go up one pitch. 9 |
    10 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /testHTML/jsdoctest.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Btw -- NOTHING here works. jsdoc in Eclipse has a LONG way to go... defineProperties, etc. 4 | * 5 | * shows america who is boss 6 | * 7 | * @constructor 8 | */ 9 | var X = function () { 10 | this.y = 7; 11 | /** 12 | * heya 13 | * 14 | * @returns {string} 15 | */ 16 | this.yahoo = function () { 17 | return 'yahoo!'; 18 | }; 19 | }; 20 | 21 | /** 22 | * @constructor 23 | * @property {X} x - returns an X object 24 | */ 25 | var Component = function (options) { 26 | /** 27 | Whether this component is visible or not 28 | 29 | @type Boolean 30 | @default false 31 | */ 32 | this.visible = options.visible; 33 | 34 | this.x = new X(); 35 | /** @type {String} */ 36 | this.name = options.name; 37 | /** 38 | * Returns this.name plus hi 39 | * 40 | * @param {string} hi - a string to say hi to 41 | * @returns string 42 | */ 43 | this.helloIt = function (hi) { 44 | return this.name + hi; 45 | }; 46 | }; 47 | 48 | com = new Component({name: 'hello'}); 49 | xxx = new X(); -------------------------------------------------------------------------------- /testHTML/keyboard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Piano Keyboard! 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |

    A keyboard that can be clicked on.

    12 |
    13 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /testHTML/keyboardJazz.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Piano Keyboard! 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
    12 |
    13 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /testHTML/layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | fancy layout 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    layout tests -- experimental. The ls object has a LayoutScore

    11 |
    12 | 13 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /testHTML/midiInChords.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | MIDI In Chords for Music21j 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 | MIDI Input: 12 |
    13 |
    14 |

    Chord and Duration rendering and Metronome Demo.

    15 |
    16 | Requires MIDI keyboard and Jazz Plugin to work. 17 |
    18 |
    19 |
    20 |
    21 | 22 | 23 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /testHTML/midiInKeyChords.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | MIDI In Chords for Music21j 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 | MIDI Input: 12 |
    13 |
    14 |

    Chord and Duration rendering and Metronome Demo.

    15 |
    16 |
    17 | Requires MIDI keyboard and WebMIDI(Chrome) or Jazz Plugin to work. 18 |
    19 |
    20 |
    21 |
    22 | 23 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /testHTML/midiInRequire.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | MIDI In/Jazz Test for Music21j 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    11 | MIDI Input:
    12 |
    13 |
    14 |
    15 | 16 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /testHTML/musicxmlTest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | MusicXML Parse Test 4 | 5 | 6 | 7 | 8 | 9 |

    MusicXML rendering test

    10 |
    This page should render a four-part Bach chorale (BWV66.6 measures 3-6)
    11 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /testHTML/pickleM21.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Pickle Test 4 | 5 | 6 | 7 | 8 |

    A test of pickling and unpickling with jsonpickleJS

    9 |
    Not currently working in 2019 December
    10 | 11 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /testHTML/pitchEditing.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Pitch Editing 6 | 7 | 8 | 9 | 10 |

    Testing alterable pitches in the score

    11 |
    A bug makes it so that the accidental button does not redraw the systems.
    12 |
    13 |
    14 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /testHTML/pitchEditing_long_score.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Pitch Editing 6 | 7 | 8 | 9 |

    Testing alterable pitches in a long score

    10 |
    11 |
    12 | 13 |

    Testing alterable pitches in a long, scrolling SINGLE PART

    14 |
    15 |
    16 |
    17 |
    18 | 19 | 20 | 21 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /testHTML/recordAudio.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | 13 | 40 |
    41 | 42 | 43 | Download 44 |
    45 |
    46 | 47 | 48 |
    49 |
    50 | After music21 has loaded, click on Record to start 51 | audio recording (you may need to give permissions and you will 52 | need to be running over https if not on localhost). Then after 53 | recording you will see your waveform on the right. Click that 54 | to play back. Click save / download to get a copy. 55 |
    56 |
    57 | Unknown bug -- sometimes does not work a second time if 58 | refresh is hit. 59 |
    60 | 61 | 62 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /testHTML/renderTinyNotationDivs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Render tinyNotation divs 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Just testing down here -- automatic rendering of TinyNotation; 11 |

    12 |
    To use it, install music21 with npm install music21j and then put in your HTML:
    13 |
    14 |         <script src="node_modules/releases/music21.min.js"></script>
    15 |         <script>
    16 |         music21.tinyNotation.renderNotationDivs();
    17 |         </script>
    18 |     
    19 |
    The second script is only necessary if the divs already exist
    20 |
    21 | 22 | 23 | set class=""music21 tinyNotation" or 24 | "music21 tinyNotation noPlayback"

    25 |
    26 |
    27 | <div class="music21 tinyNotation">c4 d8 e8 f2</div> (click me) 28 |
    29 |
    c4 d8 e8 f2
    30 |
    31 |
    32 |
    33 | <div class="music21 tinyNotation noPlayback">3/4 D8. F#16 E8 F Gn A C#2. D2.</div> (clicking does nothing) 34 |
    35 |
    3/4 D8. F#16 36 | E8 F Gn A c#2. d2. 37 |
    38 |
    39 | 40 |
    41 |
    Here is a multipart tinyNotation with the partBreak code
    42 |
    g2 f2 partBreak C4 D8 E8 F2
    43 |
    44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /testHTML/sfElsewhereCDN.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Embed Soundfonts from elsewhere 7 | 8 | 9 | 10 |

    Embed Soundfonts from elsewhere

    11 |

    This script (view source) shows how music21 can be embedded (like in a Fiddle) and 12 | load soundfonts from elsewhere. 13 |

    14 | 15 | 16 | 19 | 22 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /tests/gruntTest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Music21 QUnit Grunt Tests 6 | 7 | 19 | 20 | 21 | 22 |
    23 |
    24 | 25 | 26 | -------------------------------------------------------------------------------- /tests/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Music21 QUnit Tests 6 | 7 | 8 | 9 |
    10 |
    11 |
    12 | 13 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /tests/loadAll.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | 3 | import articulations from './moduleTests/articulations'; 4 | import base from './moduleTests/base'; 5 | import beam from './moduleTests/beam'; 6 | import chord from './moduleTests/chord'; 7 | import clef from './moduleTests/clef'; 8 | import common from './moduleTests/common'; 9 | import duration from './moduleTests/duration'; 10 | import dynamics from './moduleTests/dynamics'; 11 | import editorial from './moduleTests/editorial'; 12 | import figuredBass from './moduleTests/figuredBass'; 13 | import interval from './moduleTests/interval'; 14 | import iterator from './moduleTests/stream/iterator'; 15 | import key from './moduleTests/key'; 16 | import meter from './moduleTests/meter'; 17 | import note from './moduleTests/note'; 18 | import pitch from './moduleTests/pitch'; 19 | import prebase from './moduleTests/prebase'; 20 | import roman from './moduleTests/roman'; 21 | import scale from './moduleTests/scale'; 22 | import sites from './moduleTests/sites'; 23 | import stream from './moduleTests/stream'; 24 | import tempo from './moduleTests/tempo'; 25 | import tie from './moduleTests/tie'; 26 | import tinyNotation from './moduleTests/tinyNotation'; 27 | import vfShow from './moduleTests/vfShow'; 28 | import voiceLeading from './moduleTests/voiceLeading'; 29 | 30 | import * as music21 from '../src/main'; 31 | 32 | const allTests = { 33 | articulations, 34 | base, 35 | beam, 36 | chord, 37 | clef, 38 | common, 39 | duration, 40 | dynamics, 41 | editorial, 42 | figuredBass, 43 | interval, 44 | iterator, 45 | key, 46 | meter, 47 | note, 48 | pitch, 49 | prebase, 50 | roman, 51 | scale, 52 | sites, 53 | stream, 54 | tempo, 55 | tinyNotation, 56 | tie, 57 | vfShow, 58 | voiceLeading, 59 | }; 60 | if (typeof window !== 'undefined') { 61 | (window as any).allTests = allTests; 62 | (window as any).music21 = music21; 63 | (window as any).QUnit = QUnit; 64 | } 65 | // noinspection JSUnusedGlobalSymbols 66 | export default allTests; 67 | -------------------------------------------------------------------------------- /tests/moduleTests/articulations.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | export default function tests() { 7 | test('music21.articulations.Articulation', assert => { 8 | const acc = new music21.articulations.Accent(); 9 | assert.equal(acc.name, 'accent', 'matching names for accent'); 10 | const ten = new music21.articulations.Tenuto(); 11 | assert.equal(ten.name, 'tenuto', 'matching names for tenuto'); 12 | const n = new music21.note.Note('C'); 13 | n.articulations.push(acc); 14 | n.articulations.push(ten); 15 | assert.equal(n.articulations[0].name, 'accent', 'accent in array'); 16 | assert.equal(n.articulations[1].name, 'tenuto', 'tenuto in array'); 17 | }); 18 | 19 | test('music21.articulations.Articulation display', assert => { 20 | // Marcato is a pseudo multiple inheritance 21 | const marc = new music21.articulations.Marcato(); 22 | assert.equal(marc.name, 'marcato', 'matching names for marcato'); 23 | const n = new music21.note.Note('D#5'); 24 | n.articulations.push(marc); 25 | const nBoring = new music21.note.Note('D#5'); 26 | 27 | const measure = new music21.stream.Measure(); 28 | measure.append(n); 29 | measure.append(nBoring); 30 | measure.append(nBoring.clone()); 31 | measure.append(n.clone()); 32 | measure.appendNewDOM(); 33 | assert.ok(true, 'something worked'); 34 | }); 35 | } 36 | -------------------------------------------------------------------------------- /tests/moduleTests/beam.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | 7 | export default function tests() { 8 | test('music21.beam.Beams setAll', assert => { 9 | const a = new music21.beam.Beams(); 10 | a.fill('16th'); 11 | a.setAll('start'); 12 | 13 | assert.equal(a.getTypes()[0], 'start'); 14 | assert.equal(a.getTypes()[1], 'start'); 15 | }); 16 | 17 | test('music21.beam.Beams setByNumber', assert => { 18 | const b = new music21.beam.Beams(); 19 | b.fill('16th'); 20 | b.setAll('start'); 21 | 22 | b.setByNumber(1, 'continue'); 23 | assert.equal(b.beamsList[0].type, 'continue'); 24 | assert.equal(b.getTypeByNumber(1), 'continue'); 25 | 26 | b.setByNumber(2, 'stop'); 27 | assert.equal(b.beamsList[1].type, 'stop'); 28 | assert.equal(b.getTypeByNumber(2), 'stop'); 29 | 30 | b.setByNumber(2, 'partial-right'); 31 | assert.equal(b.beamsList[1].type, 'partial'); 32 | assert.equal(b.getTypeByNumber(2), 'partial-right'); 33 | assert.equal(b.beamsList[1].direction, 'right'); 34 | }); 35 | } 36 | -------------------------------------------------------------------------------- /tests/moduleTests/chord.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | export default function tests() { 7 | test('music21.chord.Chord', assert => { 8 | let c = new music21.chord.Chord(['C5', 'E5', 'G5']); 9 | 10 | assert.equal(c.length, 3, 'Checking length of Chord'); 11 | assert.ok(c.isMajorTriad(), 'C E G should be a major triad'); 12 | assert.equal( 13 | c.isMinorTriad(), 14 | false, 15 | 'C E G should not be minor triad' 16 | ); 17 | assert.equal(c.canBeTonic(), true, 'C E G can be a tonic'); 18 | 19 | // string construction 20 | c = new music21.chord.Chord('C5 E5 G5'); 21 | assert.equal(c.length, 3, 'Checking length of Chord'); 22 | assert.ok(c.isMajorTriad(), 'test chord construction from string'); 23 | 24 | c = new music21.chord.Chord(['B', 'G', 'D', 'F']); 25 | assert.ok(c.isDominantSeventh()); 26 | 27 | // test is sorted: 28 | c = new music21.chord.Chord('C5 E4 G3'); 29 | const pitches = c.pitches; 30 | assert.equal(pitches[0].nameWithOctave, 'G3'); 31 | assert.equal(pitches[2].nameWithOctave, 'C5'); 32 | 33 | const s = new music21.stream.Measure(); 34 | s.append(c); 35 | s.appendNewDOM(); 36 | }); 37 | 38 | test('music21.chord.Chord sortPitches', assert => { 39 | // Same ps, but diatonicNoteNum is out of order. 40 | let c = new music21.chord.Chord(['Bb4', 'A#4']); 41 | let [note1, note2] = c.notes; 42 | assert.equal(note1.pitch.nameWithOctave, 'A#4'); 43 | assert.equal(note2.pitch.nameWithOctave, 'B-4'); 44 | 45 | // Same diatonicNoteNum, but ps is out of order. 46 | c = new music21.chord.Chord(['B4', 'Bb4']); 47 | [note1, note2] = c.notes; 48 | assert.equal(note1.pitch.nameWithOctave, 'B-4'); 49 | assert.equal(note2.pitch.nameWithOctave, 'B4'); 50 | }); 51 | } 52 | -------------------------------------------------------------------------------- /tests/moduleTests/clef.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | export default function tests() { 7 | test('music21.clef.Clef', assert => { 8 | const c1 = new music21.clef.Clef(); 9 | assert.ok(c1.isClassOrSubclass('Clef'), 'clef is a Clef'); 10 | 11 | const ac = new music21.clef.AltoClef(); 12 | assert.equal(ac.lowestLine, 25, 'first line set'); 13 | const n = new music21.note.Note('C#4'); 14 | n.setStemDirectionFromClef(ac); 15 | assert.equal(n.stemDirection, 'down', 'stem direction set to down'); 16 | n.pitch.diatonicNoteNum -= 1; 17 | n.setStemDirectionFromClef(ac); 18 | assert.equal(n.stemDirection, 'up', 'stem direction set'); 19 | n.pitch.diatonicNoteNum += 1; 20 | const p2 = ac.convertPitchToTreble(n.pitch); 21 | assert.equal(p2.nameWithOctave, 'B#4', 'converted to treble'); 22 | }); 23 | test('music21.clef.Clef 8va', assert => { 24 | const ac = new music21.clef.Treble8vaClef(); 25 | assert.equal(ac.lowestLine, 38, 'first line set'); 26 | const n = new music21.note.Note('C#5'); 27 | n.setStemDirectionFromClef(ac); 28 | assert.equal(n.stemDirection, 'up', 'stem direction set'); 29 | const p2 = ac.convertPitchToTreble(n.pitch); 30 | assert.equal(p2.nameWithOctave, 'C#4', 'converted to treble'); 31 | const s = new music21.stream.Stream(); 32 | s.clef = ac; 33 | s.append(n); 34 | s.appendNewDOM(); 35 | }); 36 | test('music21.clef clefFromString', assert => { 37 | const tc = music21.clef.clefFromString('treble'); 38 | assert.ok(tc.isClassOrSubclass('TrebleClef'), 'tc is TrebleClef'); 39 | const tc2 = music21.clef.clefFromString('treble8va'); 40 | assert.ok(tc2.isClassOrSubclass('Treble8vaClef'), 'tc2 is Treble8vaClef'); 41 | const bc = music21.clef.clefFromString('F4'); 42 | assert.ok(bc.isClassOrSubclass('BassClef'), 'bc is BassClef'); 43 | }); 44 | test('music21.clef bestClef', assert => { 45 | const s = new music21.stream.Stream(); 46 | s.append(new music21.note.Note('C5')); 47 | assert.ok(music21.clef.bestClef(s).isClassOrSubclass('TrebleClef'), 'best clef is treble'); 48 | s.append(new music21.chord.Chord(['C2', 'E2', 'G2'])); 49 | assert.ok(music21.clef.bestClef(s).isClassOrSubclass('BassClef'), 'best clef is bass'); 50 | const m = new music21.stream.Measure(); 51 | m.append(new music21.chord.Chord(['E7', 'F7', 'G7', 'A7', 'B7', 'C8'])); 52 | s.append(m); 53 | assert.ok(music21.clef.bestClef(s).isClassOrSubclass('TrebleClef'), 'best clef is treble'); 54 | assert.ok( 55 | music21.clef.bestClef(s, {recurse: false}).isClassOrSubclass('BassClef'), 56 | 'best clef is bass' 57 | ); 58 | }); 59 | } 60 | -------------------------------------------------------------------------------- /tests/moduleTests/common.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const common = music21.common; 5 | 6 | const { test } = QUnit; 7 | 8 | 9 | export default function tests() { 10 | test('music21.common.posMod', assert => { 11 | assert.equal(common.posMod(8, 7), 1, 'positive posMod passed'); 12 | assert.equal(common.posMod(-1, 7), 6, 'negative posMod passed'); 13 | assert.equal(common.posMod(-15, 7), 6, 'big negative posMod passed'); 14 | }); 15 | 16 | test('music21.common.fromRoman', assert => { 17 | assert.equal(common.fromRoman('I'), 1, 'first roman passed'); 18 | assert.equal(common.fromRoman('LX'), 60, 'LX roman passed'); 19 | assert.equal(common.fromRoman('XC'), 90, 'XC subtraction roman passed'); 20 | assert.equal( 21 | common.fromRoman('xc'), 22 | 90, 23 | 'lowercase subtraction roman passed' 24 | ); 25 | assert.equal(common.fromRoman('VIII'), 8, 'max RN passed'); 26 | assert.equal(common.fromRoman('MCDLXXXIX'), 1489, 'big roman passed'); 27 | }); 28 | 29 | test('music21.common.toRoman', assert => { 30 | assert.equal(common.toRoman(1), 'I', 'first roman passed'); 31 | assert.equal(common.toRoman(2), 'II', '2 passed'); 32 | assert.equal(common.toRoman(7), 'VII', '7 passed'); 33 | assert.equal(common.toRoman(1999), 'MCMXCIX', '1999 passed'); 34 | }); 35 | 36 | test('music21.common.opFrac', assert => { 37 | assert.equal(common.opFrac(1), 1); 38 | assert.equal(common.opFrac((1/5 + 1/5 + 1/5) * 5), 3, 'this is not true w/o opFrac'); 39 | assert.notEqual(common.opFrac(0.3333), 1/3); 40 | const n = new music21.note.Note(); 41 | n.offset = 0; 42 | for (let i = 0; i < 3; i++) { 43 | n.offset += 0.333333333333; 44 | } 45 | assert.equal(n.offset, 1, 'offset uses opFrac'); 46 | assert.equal(common.opFrac(0.000001), 0); 47 | }); 48 | } 49 | -------------------------------------------------------------------------------- /tests/moduleTests/dynamics.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | export default function tests() { 7 | test('music21.dynamics.Dynamic', assert => { 8 | let dynamic = new music21.dynamics.Dynamic('pp'); 9 | assert.equal(dynamic.value, 'pp', 'matching dynamic'); 10 | 11 | dynamic = new music21.dynamics.Dynamic(0.98); 12 | assert.equal(dynamic.value, 'fff', 'number conversion successful'); 13 | assert.equal(dynamic.volumeScalar, 0.98, 'correct volume'); 14 | assert.equal(dynamic.longName, 'fortississimo', 'matching long name'); 15 | assert.equal( 16 | dynamic.englishName, 17 | 'extremely loud', 18 | 'matching english names' 19 | ); 20 | 21 | dynamic = new music21.dynamics.Dynamic('other'); 22 | assert.equal(dynamic.value, 'other', 'record non standard dynamic'); 23 | assert.equal( 24 | dynamic.longName, 25 | '', 26 | 'no long name for non standard dynamic' 27 | ); 28 | assert.equal( 29 | dynamic.englishName, 30 | '', 31 | 'no english name for non standard dynamic' 32 | ); 33 | 34 | dynamic.value = 0.18; 35 | assert.equal(dynamic.value, 'pp', 'change in dynamic'); 36 | assert.equal(dynamic.volumeScalar, 0.18, 'change in volume'); 37 | 38 | dynamic.value = 'other'; 39 | assert.equal(dynamic.value, 'other', 'change to non standard'); 40 | assert.equal( 41 | dynamic.longName, 42 | '', 43 | 'change to non standard dynamic' 44 | ); 45 | assert.equal( 46 | dynamic.englishName, 47 | '', 48 | 'change to non standard dynamic' 49 | ); 50 | }); 51 | } 52 | -------------------------------------------------------------------------------- /tests/moduleTests/editorial.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | export default function tests() { 7 | test('music21.editorial.Editorial', assert => { 8 | const n = new music21.note.Note(); 9 | assert.notOk(n.hasEditorialInformation, 'newly created note has no editorialInformation'); 10 | assert.ok(n.editorial instanceof music21.editorial.Editorial); 11 | assert.ok(n.hasEditorialInformation); 12 | const ed = n.editorial; 13 | ed.hello = true; 14 | assert.ok(ed.hello); 15 | }); 16 | } 17 | -------------------------------------------------------------------------------- /tests/moduleTests/figuredBass.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const figuredBass = music21.figuredBass; 5 | 6 | const { test } = QUnit; 7 | 8 | export default function tests() { 9 | test('music21.figuredBass.Notation', assert => { 10 | const n1 = new figuredBass.Notation('4+,2'); 11 | assert.equal(n1.notationColumn, '4+,2'); 12 | }); 13 | } 14 | -------------------------------------------------------------------------------- /tests/moduleTests/interval.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const interval = music21.interval; 5 | const Interval = music21.interval.Interval; 6 | 7 | const { test } = QUnit; 8 | 9 | 10 | export default function tests() { 11 | test('music21.interval.intervalFromGenericAndChromatic', assert => { 12 | const i = interval.intervalFromGenericAndChromatic(2, 2); 13 | assert.equal(i.name, 'M2'); 14 | }); 15 | test('music21.interval.Interval', assert => { 16 | const i = new Interval('P5'); 17 | assert.equal(i.name, 'P5', 'name passed'); 18 | assert.equal(i.niceName, 'Perfect Fifth', 'nice name passed'); 19 | assert.equal(i.generic.simpleDirected, 5); 20 | }); 21 | test('music21.interval.DiatonicInterval', assert => { 22 | const i = new interval.DiatonicInterval('P', 5); 23 | assert.equal(i.specifier, 1); 24 | assert.equal(i.specifierAbbreviation, 'P'); 25 | }); 26 | } 27 | -------------------------------------------------------------------------------- /tests/moduleTests/note.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | export default function tests() { 7 | test('music21.note.Note', assert => { 8 | const n = new music21.note.Note('D#5'); 9 | 10 | assert.equal(n.pitch.name, 'D#', 'Pitch Name set to D#'); 11 | assert.equal(n.pitch.step, 'D', 'Pitch Step set to D'); 12 | assert.equal(n.pitch.octave, 5, 'Pitch octave set to 5'); 13 | }); 14 | 15 | test('music21.note.Note.vexflowNote stems', assert => { 16 | const n1 = new music21.note.Note('C'); 17 | const vfn1 = n1.vexflowNote(); 18 | assert.ok(vfn1.hasStem()); 19 | 20 | const n2 = new music21.note.Note('C'); 21 | n2.stemDirection = 'noStem'; 22 | const vfn2 = n2.vexflowNote(); 23 | assert.notOk(vfn2.hasStem()); 24 | }); 25 | 26 | test('music21.note.Rest.vexflowNote whole rest', assert => { 27 | const r = new music21.note.Rest(); 28 | r.duration.type = 'whole'; 29 | const m = new music21.stream.Measure(); 30 | m.append(r); 31 | 32 | let vfr = r.vexflowNote({}); 33 | assert.equal(vfr.getKeyLine(0), 4); 34 | 35 | m.renderOptions.staffLines = 1; 36 | vfr = r.vexflowNote({}); 37 | assert.equal(vfr.getKeyLine(0), 3); 38 | }); 39 | } 40 | -------------------------------------------------------------------------------- /tests/moduleTests/prebase.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | export default function tests() { 7 | test('music21.prebase.ProtoM21Object.classes', assert => { 8 | const n = new music21.note.Note(); 9 | assert.deepEqual(n.classes, [ 10 | 'Note', 11 | 'NotRest', 12 | 'GeneralNote', 13 | 'Music21Object', 14 | 'ProtoM21Object', 15 | 'object', 16 | ]); 17 | }); 18 | test('music21.prebase.ProtoM21Object.isClassOrSubclass', assert => { 19 | const n = new music21.note.Note(); 20 | assert.ok(n.isClassOrSubclass('Note')); 21 | assert.ok(n.isClassOrSubclass('GeneralNote')); 22 | assert.ok(n.isClassOrSubclass('music21.note.Note')); 23 | assert.ok(n.isClassOrSubclass(music21.note.Note)); 24 | assert.ok(n.isClassOrSubclass([music21.note.Rest, music21.note.Note])); 25 | assert.notOk(n.isClassOrSubclass('Rest')); 26 | }); 27 | test('music21.prebase.ProtoM21Object.classSet', assert => { 28 | const n = new music21.note.Note(); 29 | assert.ok(n.classSet.has('Note')); 30 | assert.ok(n.classSet.has('GeneralNote')); 31 | assert.ok(n.classSet.has('music21.note.GeneralNote')); 32 | assert.ok(n.classSet.has(music21.note.GeneralNote)); 33 | assert.notOk(n.classSet.has('Rest')); 34 | }); 35 | 36 | test('music21.prebase.ProtoM21Object.clone', assert => { 37 | const d = new music21.duration.Duration('half'); 38 | d.dots = 2; 39 | const d2 = d.clone(); 40 | assert.equal(d.quarterLength, d2.quarterLength, 'Prebase duration cloned'); 41 | 42 | const n = new music21.note.Note('D4'); 43 | const n2 = n.clone(); 44 | n.pitch.octave = 5; 45 | assert.equal( 46 | n2.pitch.octave, 47 | 4, 48 | 'Deep Note clone retains separate pitch objects.' 49 | ); 50 | const n3 = n.clone(false); 51 | n.pitch.octave = 6; 52 | assert.equal( 53 | n3.pitch.octave, 54 | 6, 55 | 'Shallow Note clone shares a pitch object.' 56 | ); 57 | }); 58 | } 59 | -------------------------------------------------------------------------------- /tests/moduleTests/scale.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | export default function tests() { 7 | test('music21.scale.Scale', assert => { 8 | const sc = new music21.scale.Scale(); 9 | assert.ok(sc.classes.includes('Scale')); 10 | }); 11 | test('music21.scale.AbstractDiatonicScale', assert => { 12 | const sc = new music21.scale.AbstractDiatonicScale('major'); 13 | // noinspection TypeScriptUnresolvedVariable 14 | // @ts-ignore 15 | const net = sc._net; 16 | assert.equal(net.length, 7); 17 | assert.equal(net[0].name, 'M2'); 18 | const p = new music21.pitch.Pitch('A-'); 19 | const pitches = sc.getRealization(p); 20 | assert.equal(pitches.length, 8); 21 | assert.equal(pitches[3].name, 'D-'); 22 | assert.equal(sc.getPitchFromNodeDegree(p, undefined, 4).name, 'D-'); 23 | }); 24 | 25 | test('music21.scale.MajorScale', assert => { 26 | const sc = new music21.scale.MajorScale('F'); 27 | assert.equal(sc.tonic.name, 'F'); 28 | const pitches = sc.getPitches(); 29 | assert.equal(pitches[0].name, 'F'); 30 | assert.equal(pitches[1].name, 'G'); 31 | assert.equal(pitches[2].name, 'A'); 32 | assert.equal(pitches[3].name, 'B-'); 33 | assert.equal(pitches[4].name, 'C'); 34 | assert.equal(pitches[5].name, 'D'); 35 | assert.equal(pitches[6].name, 'E'); 36 | assert.equal(pitches[7].name, 'F'); 37 | assert.equal(sc.pitchFromDegree(5).name, 'C'); 38 | assert.equal(sc.getScaleDegreeFromPitch(new music21.pitch.Pitch('B-')), 4); 39 | }); 40 | } 41 | -------------------------------------------------------------------------------- /tests/moduleTests/sites.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | 7 | export default function tests() { 8 | test('music21.sites.SiteRef', assert => { 9 | const sr = new music21.sites.SiteRef(); 10 | assert.ok(!sr.isDead); 11 | assert.equal( 12 | sr.site, 13 | undefined, 14 | 'SiteRef should start undefined' 15 | ); 16 | const st = new music21.stream.Measure(); 17 | sr.site = st; 18 | sr.classString = st.classes[0]; 19 | assert.equal(sr.site, st); 20 | assert.equal(sr.classString, 'Measure'); 21 | }); 22 | 23 | test('music21.sites.Sites', assert => { 24 | const s = new music21.sites.Sites(); 25 | assert.equal(s.length, 1, 'empty sites has length 1'); 26 | const st = new music21.stream.Measure(); 27 | st.number = 12; 28 | s.add(st); 29 | assert.equal(s.length, 2, 'should have two sites now'); 30 | assert.ok(s.includes(st)); 31 | // @ts-ignore 32 | const first = s._keysByTime()[0]; 33 | assert.equal(first, music21.sites.getId(st)); 34 | 35 | let af; 36 | af = Array.from(s.yieldSites(false, st)); 37 | assert.equal(af.length, 2); 38 | assert.strictEqual(af[0], st); 39 | af = Array.from(s.yieldSites(false, st, true)); 40 | assert.equal(af.length, 1); 41 | assert.strictEqual(af[0], st); 42 | 43 | const mNum = s.getAttrByName('number'); 44 | assert.equal(mNum, 12, 'measure number should be 12'); 45 | 46 | assert.strictEqual(s.getObjByClass('Measure'), st); 47 | assert.strictEqual(s.getObjByClass('Stream'), st); 48 | assert.notOk(s.getObjByClass('Score')); 49 | 50 | s.clear(); 51 | assert.equal(s.length, 1); 52 | }); 53 | } 54 | -------------------------------------------------------------------------------- /tests/moduleTests/stream/iterator.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | export default function tests() { 7 | test('music21.stream.iterator.OffsetIterator', assert => { 8 | const c = new music21.note.Note('C'); 9 | const d = new music21.note.Note('D'); 10 | const e = new music21.note.Note('E'); 11 | const f = new music21.note.Note('F'); 12 | const g = new music21.note.Note('G'); 13 | const a = new music21.note.Note('A'); 14 | 15 | const s = new music21.stream.Stream(); 16 | // CEG triad moving to DFA 17 | s.insert(0, c); 18 | s.insert(1, d); 19 | s.insert(0, e); 20 | s.insert(1, f); 21 | s.insert(0, g); 22 | s.insert(1, a); 23 | 24 | const iter = new music21.stream.iterator.OffsetIterator(s); 25 | assert.equal(iter.length, 2); 26 | assert.deepEqual(Array.from(iter), [[c, e, g], [d, f, a]]); 27 | }); 28 | } 29 | -------------------------------------------------------------------------------- /tests/moduleTests/tempo.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | 7 | export default function tests() { 8 | test('music21.tempo.MetronomeMark', assert => { 9 | let mark; 10 | mark = new music21.tempo.MetronomeMark(); 11 | assert.strictEqual(mark.text, undefined); 12 | assert.strictEqual(mark.number, undefined); 13 | assert.strictEqual(mark.referent.quarterLength, 1); 14 | 15 | mark = new music21.tempo.MetronomeMark({ text: 'andante' }); 16 | assert.equal(mark.text, 'andante'); 17 | assert.ok(mark.numberImplicit); 18 | assert.notOk(mark.textImplicit); 19 | assert.equal(mark.number, 72); 20 | 21 | mark = new music21.tempo.MetronomeMark({ number: 40 }); 22 | assert.equal(mark.text, 'grave'); 23 | assert.notOk(mark.numberImplicit); 24 | assert.ok(mark.textImplicit); 25 | assert.equal(mark.number, 40); 26 | 27 | mark = new music21.tempo.MetronomeMark({ 28 | referent: new music21.duration.Duration('half'), 29 | }); 30 | assert.strictEqual(mark.referent.quarterLength, 2); 31 | 32 | mark = new music21.tempo.MetronomeMark({ 33 | referent: new music21.duration.Duration(2), 34 | }); 35 | assert.strictEqual(mark.referent.quarterLength, 2); 36 | 37 | mark = new music21.tempo.MetronomeMark({ 38 | text: 'grave', 39 | number: 42, 40 | referent: new music21.duration.Duration('half'), 41 | }); 42 | assert.equal(mark.text, 'grave', 'Expected to find set text'); 43 | assert.notOk(mark.numberImplicit, 'Expected .numberImplicit to be false'); 44 | assert.notOk(mark.textImplicit, 'Expected .textImplicit to be false'); 45 | assert.equal(mark.number, 42); 46 | assert.equal(mark.referent.quarterLength, 2); 47 | 48 | }); 49 | } 50 | -------------------------------------------------------------------------------- /tests/moduleTests/tie.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | 7 | export default function tests() { 8 | test('music21.tie.Tie', assert => { 9 | const t = new music21.tie.Tie('start'); 10 | assert.equal(t.type, 'start', 'Tie type is start'); 11 | }); 12 | } 13 | -------------------------------------------------------------------------------- /tests/moduleTests/tinyNotation.ts: -------------------------------------------------------------------------------- 1 | import * as QUnit from 'qunit'; 2 | import * as music21 from '../../src/main'; 3 | 4 | const { test } = QUnit; 5 | 6 | 7 | export default function tests() { 8 | test('music21.tinyNotation.TinyNotation optional prefix', assert => { 9 | const p = music21.tinyNotation.TinyNotation('tinyNotation: fn1'); 10 | assert.equal(p.recurse().notes.length, 1); 11 | }); 12 | 13 | test('music21.tinyNotation.TinyNotation split space length', assert => { 14 | const tn = (s: string) => { 15 | const p = music21.tinyNotation.TinyNotation(s); 16 | return p.recurse().notes.length; 17 | }; 18 | 19 | assert.equal(tn('C4'), 1); 20 | assert.equal(tn('C4 D'), 2); 21 | assert.equal(tn('C4 D'), 2); 22 | assert.equal(tn('C4_hi there'), 1); 23 | assert.equal(tn('C4_hi there D'), 2); 24 | assert.equal(tn('C4\nD4'), 2); 25 | assert.equal(tn('C4\tD4'), 2); 26 | assert.equal(tn('C4 partBreak D4'), 2); 27 | }); 28 | } 29 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowJs": true, 4 | "allowSyntheticDefaultImports": true, 5 | "lib": ["dom", "dom.iterable", "es2023"], 6 | "experimentalDecorators": true, 7 | "moduleResolution": "node", 8 | "sourceMap": true, 9 | "declaration": true, 10 | "declarationMap": true, 11 | "declarationDir": "build", 12 | "target": "es6" 13 | }, 14 | "include": [ 15 | "src/**/*", 16 | "tests/**/*", 17 | ], 18 | "exclude": [ 19 | "node_modules" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /uploadDocs.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------------------------- 3 | # Name: upload.py 4 | # Purpose: music21j documentation upload utility 5 | # 6 | # Authors: Christopher Ariza 7 | # 8 | # Copyright: Copyright © 2009-2010, 2013, 17 Michael Scott Asato Cuthbert and the music21 Project 9 | # License: BSD, see license.txt 10 | #------------------------------------------------------------------------------- 11 | #pylint: disable=line-too-long 12 | ''' 13 | if you get a 'ssh_askpass' not found error, create this file in 14 | /usr/libexec/ssh-askpass and sudo chmod +x it afterwards: 15 | 16 | ..raw:: 17 | #!/bin/bash 18 | # Script: ssh-askpass 19 | # Author: Mark Carver 20 | # Created: 2011-09-14 21 | # Copyright (c) 2011 Beyond Eden Development, LLC. All rights reserved. 22 | 23 | # A ssh-askpass command for Mac OS X 24 | # Based from author: Joseph Mocker, Sun Microsystems 25 | # http://blogs.oracle.com/mock/entry/and_now_chicken_of_the 26 | # To use this script: 27 | # Install this script running INSTALL as root 28 | # 29 | # If you plan on manually installing this script, please note that you will have 30 | # to set the following variable for SSH to recognize where the script is located: 31 | # export SSH_ASKPASS="/path/to/ssh-askpass" 32 | TITLE="${SSH_ASKPASS_TITLE:-SSH}"; 33 | TEXT="$(whoami)'s password:"; 34 | IFS=$(printf "\n"); 35 | CODE=("on GetCurrentApp()"); 36 | CODE=(${CODE[*]} "tell application \"System Events\" to get short name of first process whose frontmost is true"); 37 | CODE=(${CODE[*]} "end GetCurrentApp"); 38 | CODE=(${CODE[*]} "tell application GetCurrentApp()"); 39 | CODE=(${CODE[*]} "activate"); 40 | CODE=(${CODE[*]} "display dialog \"${@:-$TEXT}\" default answer \"\" with title \"${TITLE}\" with icon caution with hidden answer"); 41 | CODE=(${CODE[*]} "text returned of result"); 42 | CODE=(${CODE[*]} "end tell"); 43 | SCRIPT="/usr/bin/osascript" 44 | for LINE in ${CODE[*]}; do 45 | SCRIPT="${SCRIPT} -e $(printf "%q" "${LINE}")"; 46 | done; 47 | eval "${SCRIPT}"; 48 | 49 | 50 | Otherwise just contact MSC... 51 | ''' 52 | 53 | import getpass, os 54 | 55 | 56 | def main(): 57 | 58 | # this needs to be on level higher then the level of the source 59 | remoteHost = 'trecento.com' 60 | remoteDir = 'music21docs/music21j/doc/' 61 | 62 | user = getpass.getpass('provide user name : ') 63 | 64 | 65 | src = './doc' 66 | # -r flag makes this recursive 67 | cmdStr = 'tar czpf - -C %s . | ssh %s@%s "tar xzpf - -C %s"' % (src, user, remoteHost, remoteDir) 68 | print(cmdStr) 69 | 70 | os.system(cmdStr) 71 | 72 | if __name__ == '__main__': 73 | main() 74 | -------------------------------------------------------------------------------- /webResources/midiPlayer/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/webResources/midiPlayer/pause.png -------------------------------------------------------------------------------- /webResources/midiPlayer/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/webResources/midiPlayer/play.png -------------------------------------------------------------------------------- /webResources/midiPlayer/stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuthbertLab/music21j/f06f2d040cbfa5c2ce18c9baa6d4a810cd371d5a/webResources/midiPlayer/stop.png --------------------------------------------------------------------------------