@libraz/libcantus 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/NOTICE +63 -0
  2. package/README.md +3 -1
  3. package/README_ja.md +13 -11
  4. package/dist/analyze/index.cjs +7 -7
  5. package/dist/analyze/index.cjs.map +1 -1
  6. package/dist/analyze/index.d.cts +14 -12
  7. package/dist/analyze/index.d.ts +14 -12
  8. package/dist/analyze/index.js +6 -6
  9. package/dist/{chunk-NB25P3EH.js → chunk-2G5MCGYU.js} +33 -11
  10. package/dist/chunk-2G5MCGYU.js.map +1 -0
  11. package/dist/{chunk-NM7UAMC3.cjs → chunk-3FDBMIPR.cjs} +64 -64
  12. package/dist/chunk-3FDBMIPR.cjs.map +1 -0
  13. package/dist/{chunk-YFA7X2F6.cjs → chunk-3MDOEFIQ.cjs} +411 -327
  14. package/dist/chunk-3MDOEFIQ.cjs.map +1 -0
  15. package/dist/{chunk-IPEF6NWB.js → chunk-5MWRBYAT.js} +278 -154
  16. package/dist/chunk-5MWRBYAT.js.map +1 -0
  17. package/dist/{chunk-B2PW6EHN.cjs → chunk-6TTBEON3.cjs} +1253 -889
  18. package/dist/chunk-6TTBEON3.cjs.map +1 -0
  19. package/dist/{chunk-UMWZ4ZET.js → chunk-7NQ6AL3H.js} +4 -4
  20. package/dist/chunk-7NQ6AL3H.js.map +1 -0
  21. package/dist/{chunk-PWC4CRWT.cjs → chunk-E3QO3UET.cjs} +31 -23
  22. package/dist/chunk-E3QO3UET.cjs.map +1 -0
  23. package/dist/{chunk-GNVN4PPJ.js → chunk-FJFULJZE.js} +531 -213
  24. package/dist/chunk-FJFULJZE.js.map +1 -0
  25. package/dist/{chunk-CPMB7P75.js → chunk-FK3DGAIZ.js} +608 -244
  26. package/dist/chunk-FK3DGAIZ.js.map +1 -0
  27. package/dist/chunk-GEDTJHAC.cjs.map +1 -1
  28. package/dist/{chunk-RFIBF2RR.js → chunk-H7FVMBUC.js} +138 -65
  29. package/dist/chunk-H7FVMBUC.js.map +1 -0
  30. package/dist/{chunk-4R2LWV7E.cjs → chunk-HYSVSFNI.cjs} +664 -540
  31. package/dist/chunk-HYSVSFNI.cjs.map +1 -0
  32. package/dist/{chunk-35NBV2FT.cjs → chunk-KMYGRFZ6.cjs} +47 -24
  33. package/dist/chunk-KMYGRFZ6.cjs.map +1 -0
  34. package/dist/{chunk-IFZDWIKM.cjs → chunk-LQZQDBCD.cjs} +1048 -730
  35. package/dist/chunk-LQZQDBCD.cjs.map +1 -0
  36. package/dist/{chunk-PM4XJE2Y.cjs → chunk-P3CPXAJ5.cjs} +76 -54
  37. package/dist/chunk-P3CPXAJ5.cjs.map +1 -0
  38. package/dist/{chunk-S5BKZZGM.cjs → chunk-S3QELJUE.cjs} +72 -56
  39. package/dist/chunk-S3QELJUE.cjs.map +1 -0
  40. package/dist/{chunk-PUKJP2Z5.js → chunk-TXFWSU5D.js} +31 -8
  41. package/dist/chunk-TXFWSU5D.js.map +1 -0
  42. package/dist/{chunk-76ZBTRG2.cjs → chunk-U4EQTDGN.cjs} +258 -218
  43. package/dist/chunk-U4EQTDGN.cjs.map +1 -0
  44. package/dist/chunk-UGLFDG7L.cjs.map +1 -1
  45. package/dist/{chunk-MLBPXA4Z.js → chunk-UTE5A36R.js} +198 -114
  46. package/dist/chunk-UTE5A36R.js.map +1 -0
  47. package/dist/{chunk-ZBUROTJQ.js → chunk-UZKQISRF.js} +17 -9
  48. package/dist/chunk-UZKQISRF.js.map +1 -0
  49. package/dist/{chunk-7KG3RTYS.js → chunk-VL5NXVCN.js} +281 -155
  50. package/dist/chunk-VL5NXVCN.js.map +1 -0
  51. package/dist/{chunk-CGBADIO5.cjs → chunk-WOMCXN2W.cjs} +328 -202
  52. package/dist/chunk-WOMCXN2W.cjs.map +1 -0
  53. package/dist/{chunk-3R3QVKY5.cjs → chunk-YDGMWH43.cjs} +397 -324
  54. package/dist/chunk-YDGMWH43.cjs.map +1 -0
  55. package/dist/{chunk-AGOVW7U6.js → chunk-YYVXRV3V.js} +72 -56
  56. package/dist/chunk-YYVXRV3V.js.map +1 -0
  57. package/dist/{chunk-M5RYMAFI.js → chunk-ZLNSH4UL.js} +71 -31
  58. package/dist/chunk-ZLNSH4UL.js.map +1 -0
  59. package/dist/{coerce-DRERzdve.d.cts → coerce-CUhHc3Tu.d.ts} +16 -8
  60. package/dist/{coerce-DP0vYu-x.d.ts → coerce-Ytt2Eiq9.d.cts} +16 -8
  61. package/dist/core/index.cjs +5 -5
  62. package/dist/core/index.cjs.map +1 -1
  63. package/dist/core/index.d.cts +9 -8
  64. package/dist/core/index.d.ts +9 -8
  65. package/dist/core/index.js +4 -4
  66. package/dist/generate/index.cjs +8 -8
  67. package/dist/generate/index.cjs.map +1 -1
  68. package/dist/generate/index.d.cts +28 -18
  69. package/dist/generate/index.d.ts +28 -18
  70. package/dist/generate/index.js +7 -7
  71. package/dist/{index-BMweUlm5.d.cts → index-5VJgKz_Q.d.cts} +6 -2
  72. package/dist/{index-BHIUyjhZ.d.ts → index-BLuDesVG.d.ts} +20 -13
  73. package/dist/{index-B9QLziDe.d.cts → index-BV6APVa6.d.cts} +20 -13
  74. package/dist/{index-CL4b4gUQ.d.ts → index-Bf0Sv8a9.d.ts} +6 -2
  75. package/dist/{index-Dw2DP7vm.d.ts → index-BkT21EMv.d.cts} +3 -2
  76. package/dist/{index-BL5N2Oyz.d.cts → index-C7KCaTRz.d.ts} +3 -2
  77. package/dist/{index-Cy15oTvh.d.ts → index-C9MYbuKS.d.cts} +7 -3
  78. package/dist/{index-Cy15oTvh.d.cts → index-C9MYbuKS.d.ts} +7 -3
  79. package/dist/{index-CY-3NVfy.d.cts → index-DVInzCDS.d.cts} +53 -29
  80. package/dist/{index-9eoQs2C1.d.ts → index-Dg-SAfhz.d.ts} +6 -4
  81. package/dist/{index-zaZdmnU4.d.ts → index-jgeug9EA.d.ts} +53 -29
  82. package/dist/{index-cHvbYgJI.d.cts → index-pQihL4z7.d.cts} +6 -4
  83. package/dist/index.cjs +13 -13
  84. package/dist/index.cjs.map +1 -1
  85. package/dist/index.d.cts +11 -11
  86. package/dist/index.d.ts +11 -11
  87. package/dist/index.js +12 -12
  88. package/dist/{masks-Cc7-MzzY.d.ts → masks-BnzXnBj0.d.cts} +3 -2
  89. package/dist/{masks-pADfTOiD.d.cts → masks-tycmkrgs.d.ts} +3 -2
  90. package/dist/model/index.cjs +12 -12
  91. package/dist/model/index.cjs.map +1 -1
  92. package/dist/model/index.d.cts +63 -48
  93. package/dist/model/index.d.ts +63 -48
  94. package/dist/model/index.js +11 -11
  95. package/dist/{positional-DJgs6ltD.d.ts → positional-CscpxtlE.d.cts} +3 -2
  96. package/dist/{positional-DMZer-FM.d.cts → positional-DLnfUgqG.d.ts} +3 -2
  97. package/dist/{profile-DLdlIpS9.d.ts → profile-B4WqcM4H.d.ts} +25 -17
  98. package/dist/{profile-CQMEqdH9.d.cts → profile-BJd1XkPB.d.cts} +25 -17
  99. package/dist/theory/index.cjs +5 -5
  100. package/dist/theory/index.cjs.map +1 -1
  101. package/dist/theory/index.d.cts +18 -14
  102. package/dist/theory/index.d.ts +18 -14
  103. package/dist/theory/index.js +4 -4
  104. package/dist/{types-D-XgxGvp.d.cts → types-7mGFwvMm.d.ts} +45 -22
  105. package/dist/{types-Dh7C064C.d.ts → types-_ofpb2be.d.cts} +45 -22
  106. package/package.json +13 -13
  107. package/dist/chunk-35NBV2FT.cjs.map +0 -1
  108. package/dist/chunk-3R3QVKY5.cjs.map +0 -1
  109. package/dist/chunk-4R2LWV7E.cjs.map +0 -1
  110. package/dist/chunk-76ZBTRG2.cjs.map +0 -1
  111. package/dist/chunk-7KG3RTYS.js.map +0 -1
  112. package/dist/chunk-AGOVW7U6.js.map +0 -1
  113. package/dist/chunk-B2PW6EHN.cjs.map +0 -1
  114. package/dist/chunk-CGBADIO5.cjs.map +0 -1
  115. package/dist/chunk-CPMB7P75.js.map +0 -1
  116. package/dist/chunk-GNVN4PPJ.js.map +0 -1
  117. package/dist/chunk-IFZDWIKM.cjs.map +0 -1
  118. package/dist/chunk-IPEF6NWB.js.map +0 -1
  119. package/dist/chunk-M5RYMAFI.js.map +0 -1
  120. package/dist/chunk-MLBPXA4Z.js.map +0 -1
  121. package/dist/chunk-NB25P3EH.js.map +0 -1
  122. package/dist/chunk-NM7UAMC3.cjs.map +0 -1
  123. package/dist/chunk-PM4XJE2Y.cjs.map +0 -1
  124. package/dist/chunk-PUKJP2Z5.js.map +0 -1
  125. package/dist/chunk-PWC4CRWT.cjs.map +0 -1
  126. package/dist/chunk-RFIBF2RR.js.map +0 -1
  127. package/dist/chunk-S5BKZZGM.cjs.map +0 -1
  128. package/dist/chunk-UMWZ4ZET.js.map +0 -1
  129. package/dist/chunk-YFA7X2F6.cjs.map +0 -1
  130. package/dist/chunk-ZBUROTJQ.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { e as KeyScale, g as Note, i as NoteLike } from './index-Cy15oTvh.cjs';
1
+ import { e as KeyScale, g as Note, i as NoteLike } from './index-C9MYbuKS.js';
2
2
 
3
3
  /**
4
4
  * The vocabulary a key is described in.
@@ -731,7 +731,8 @@ declare function chordQualities(): ChordQuality[];
731
731
  /**
732
732
  * Build a chord rooted on a diatonic scale degree.
733
733
  *
734
- * The root pitch class is the degree's diatonic pitch class in `key`; the
734
+ * The root pitch class is the degree's diatonic pitch class in `key`, spelled
735
+ * the way the key writes it (a flat key names its degrees with flats); the
735
736
  * quality's interval template is attached unchanged. Degrees beyond the scale
736
737
  * length wrap around, so degree 8 of a heptatonic scale is its degree 1.
737
738
  *
@@ -745,7 +746,7 @@ declare function chordQualities(): ChordQuality[];
745
746
  *
746
747
  * @category Chords
747
748
  */
748
- declare function chordFromDegree(degree: number, ext: ChordQuality, key: KeyLike): Chord;
749
+ declare function chordFromDegree(degree: number, ext: ChordQuality, key: SpelledKeyLike): Chord;
749
750
  /**
750
751
  * Build a chord from an explicit root pitch class and quality.
751
752
  *
@@ -958,6 +959,7 @@ declare function chordToneRole(pitch: number, chord: Chord): ChordToneRole | nul
958
959
  * Unlike {@link chordFromDegree}, the chord quality is derived from the scale
959
960
  * rather than supplied, so degrees yield their scale-correct triads (e.g. a
960
961
  * diminished triad on the leading tone of a major key).
962
+ * The root is spelled the way the key writes it.
961
963
  *
962
964
  * @param degree 1-based scale degree of the chord root: 1 is the tonic.
963
965
  * @param key Key/scale context, as a key name, a key/scale, or a `Key`.
@@ -975,10 +977,12 @@ declare function chordToneRole(pitch: number, chord: Chord): ChordToneRole | nul
975
977
  *
976
978
  * @category Chords
977
979
  */
978
- declare function diatonicTriad(degree: number, key: KeyLike): Chord;
980
+ declare function diatonicTriad(degree: number, key: SpelledKeyLike): Chord;
979
981
  /**
980
982
  * Build the diatonic seventh chord rooted on a scale degree.
981
983
  *
984
+ * The root is spelled the way the key writes it.
985
+ *
982
986
  * @param degree 1-based scale degree of the chord root: 1 is the tonic.
983
987
  * @param key Key/scale context, as a key name, a key/scale, or a `Key`.
984
988
  * @returns The diatonic seventh chord.
@@ -987,7 +991,7 @@ declare function diatonicTriad(degree: number, key: KeyLike): Chord;
987
991
  *
988
992
  * @category Chords
989
993
  */
990
- declare function diatonicSeventh(degree: number, key: KeyLike): Chord;
994
+ declare function diatonicSeventh(degree: number, key: SpelledKeyLike): Chord;
991
995
 
992
996
  /**
993
997
  * Style policy: `strict` counterpoint vs. `pop` voice leading.
@@ -1295,6 +1299,9 @@ declare function enumerateSafePitches(q: Omit<SafetyQuery, 'candidatePitch'>, pi
1295
1299
  * Anything that names a chord: a chord symbol, plain chord data, or a value
1296
1300
  * that serializes to chord data such as the `Chord` class.
1297
1301
  *
1302
+ * A value that also holds its chord as `data`, as the `Chord` class does, is
1303
+ * read through that: the chord as it prints, spelled by the key it carries.
1304
+ *
1298
1305
  * @category Chords
1299
1306
  */
1300
1307
  type ChordLike = string | Chord | {
@@ -1310,8 +1317,8 @@ type ChordLike = string | Chord | {
1310
1317
  * is accepted through its `toJSON` method rather than by its type, so the
1311
1318
  * layers below the model can read a class without importing it.
1312
1319
  *
1313
- * @param value A chord symbol, plain chord data, or a value whose `toJSON`
1314
- * returns chord data.
1320
+ * @param value A chord symbol, plain chord data, or a value whose `data` or
1321
+ * `toJSON` returns chord data.
1315
1322
  * @returns The validated chord data, with root and bass reduced to pitch
1316
1323
  * classes and any spelling hint carried through.
1317
1324
  * @throws If the value names no chord, or an interval, root, or bass is not a
@@ -1326,4 +1333,5 @@ type ChordLike = string | Chord | {
1326
1333
  */
1327
1334
  declare function toChordData(value: ChordLike): Chord;
1328
1335
 
1329
- export { subdominantKeyOf as $, type Alteration as A, chordSpecQuality as B, type ChordBase as C, chordToneRole as D, type EvaluateSafetyOptions as E, diatonicSeventh as F, diatonicTriad as G, dominantKeyOf as H, enharmonicKeyOf as I, enumerateSafePitches as J, type KeyLike as K, evaluateSafety as L, intervalAboveRoot as M, NoteSafety as N, isChordMember as O, PROFILE_WEIGHTS as P, keyRelationBetween as Q, ReasonFlag as R, type SafetyPartner as S, makeChord as T, parallelKeyOf as U, type VoiceSnapshot as V, profileWeights as W, relatedKeysOf as X, relativeKeyOf as Y, spanFromChord as Z, spelledKeyOf as _, type AlteredDegree as a, toChordData as a0, toKeyScale as a1, transposeChord as a2, type Chord as b, type ChordLike as c, type ChordQuality as d, type ChordSegment as e, type ChordSeventh as f, type ChordSpan as g, type ChordSpec as h, type ChordToneRole as i, type KeyRelation as j, type KeyVariant as k, type PitchSpelling as l, type ProfileWeights as m, type ResolvedKey as n, type SafetyProfile as o, type SafetyQuery as p, type SafetyResult as q, type SpelledKeyLike as r, type SpelledKeyScale as s, chordFromDegree as t, chordFromSpan as u, chordFromSpec as v, chordPitchClasses as w, chordQualities as x, chordSpecIntervals as y, chordSpecOf as z };
1336
+ export { subdominantKeyOf as $, chordSpecQuality as B, chordToneRole as D, diatonicSeventh as F, diatonicTriad as G, dominantKeyOf as H, enharmonicKeyOf as I, enumerateSafePitches as J, evaluateSafety as L, intervalAboveRoot as M, NoteSafety as N, isChordMember as O, PROFILE_WEIGHTS as P, keyRelationBetween as Q, ReasonFlag as R, makeChord as T, parallelKeyOf as U, profileWeights as W, relatedKeysOf as X, relativeKeyOf as Y, spanFromChord as Z, spelledKeyOf as _, toChordData as a0, toKeyScale as a1, transposeChord as a2, chordFromDegree as t, chordFromSpan as u, chordFromSpec as v, chordPitchClasses as w, chordQualities as x, chordSpecIntervals as y, chordSpecOf as z };
1337
+ export type { Alteration as A, ChordBase as C, EvaluateSafetyOptions as E, KeyLike as K, SafetyPartner as S, VoiceSnapshot as V, AlteredDegree as a, Chord as b, ChordLike as c, ChordQuality as d, ChordSegment as e, ChordSeventh as f, ChordSpan as g, ChordSpec as h, ChordToneRole as i, KeyRelation as j, KeyVariant as k, PitchSpelling as l, ProfileWeights as m, ResolvedKey as n, SafetyProfile as o, SafetyQuery as p, SafetyResult as q, SpelledKeyLike as r, SpelledKeyScale as s };
@@ -1,4 +1,4 @@
1
- import { e as KeyScale, g as Note, i as NoteLike } from './index-Cy15oTvh.js';
1
+ import { e as KeyScale, g as Note, i as NoteLike } from './index-C9MYbuKS.cjs';
2
2
 
3
3
  /**
4
4
  * The vocabulary a key is described in.
@@ -731,7 +731,8 @@ declare function chordQualities(): ChordQuality[];
731
731
  /**
732
732
  * Build a chord rooted on a diatonic scale degree.
733
733
  *
734
- * The root pitch class is the degree's diatonic pitch class in `key`; the
734
+ * The root pitch class is the degree's diatonic pitch class in `key`, spelled
735
+ * the way the key writes it (a flat key names its degrees with flats); the
735
736
  * quality's interval template is attached unchanged. Degrees beyond the scale
736
737
  * length wrap around, so degree 8 of a heptatonic scale is its degree 1.
737
738
  *
@@ -745,7 +746,7 @@ declare function chordQualities(): ChordQuality[];
745
746
  *
746
747
  * @category Chords
747
748
  */
748
- declare function chordFromDegree(degree: number, ext: ChordQuality, key: KeyLike): Chord;
749
+ declare function chordFromDegree(degree: number, ext: ChordQuality, key: SpelledKeyLike): Chord;
749
750
  /**
750
751
  * Build a chord from an explicit root pitch class and quality.
751
752
  *
@@ -958,6 +959,7 @@ declare function chordToneRole(pitch: number, chord: Chord): ChordToneRole | nul
958
959
  * Unlike {@link chordFromDegree}, the chord quality is derived from the scale
959
960
  * rather than supplied, so degrees yield their scale-correct triads (e.g. a
960
961
  * diminished triad on the leading tone of a major key).
962
+ * The root is spelled the way the key writes it.
961
963
  *
962
964
  * @param degree 1-based scale degree of the chord root: 1 is the tonic.
963
965
  * @param key Key/scale context, as a key name, a key/scale, or a `Key`.
@@ -975,10 +977,12 @@ declare function chordToneRole(pitch: number, chord: Chord): ChordToneRole | nul
975
977
  *
976
978
  * @category Chords
977
979
  */
978
- declare function diatonicTriad(degree: number, key: KeyLike): Chord;
980
+ declare function diatonicTriad(degree: number, key: SpelledKeyLike): Chord;
979
981
  /**
980
982
  * Build the diatonic seventh chord rooted on a scale degree.
981
983
  *
984
+ * The root is spelled the way the key writes it.
985
+ *
982
986
  * @param degree 1-based scale degree of the chord root: 1 is the tonic.
983
987
  * @param key Key/scale context, as a key name, a key/scale, or a `Key`.
984
988
  * @returns The diatonic seventh chord.
@@ -987,7 +991,7 @@ declare function diatonicTriad(degree: number, key: KeyLike): Chord;
987
991
  *
988
992
  * @category Chords
989
993
  */
990
- declare function diatonicSeventh(degree: number, key: KeyLike): Chord;
994
+ declare function diatonicSeventh(degree: number, key: SpelledKeyLike): Chord;
991
995
 
992
996
  /**
993
997
  * Style policy: `strict` counterpoint vs. `pop` voice leading.
@@ -1295,6 +1299,9 @@ declare function enumerateSafePitches(q: Omit<SafetyQuery, 'candidatePitch'>, pi
1295
1299
  * Anything that names a chord: a chord symbol, plain chord data, or a value
1296
1300
  * that serializes to chord data such as the `Chord` class.
1297
1301
  *
1302
+ * A value that also holds its chord as `data`, as the `Chord` class does, is
1303
+ * read through that: the chord as it prints, spelled by the key it carries.
1304
+ *
1298
1305
  * @category Chords
1299
1306
  */
1300
1307
  type ChordLike = string | Chord | {
@@ -1310,8 +1317,8 @@ type ChordLike = string | Chord | {
1310
1317
  * is accepted through its `toJSON` method rather than by its type, so the
1311
1318
  * layers below the model can read a class without importing it.
1312
1319
  *
1313
- * @param value A chord symbol, plain chord data, or a value whose `toJSON`
1314
- * returns chord data.
1320
+ * @param value A chord symbol, plain chord data, or a value whose `data` or
1321
+ * `toJSON` returns chord data.
1315
1322
  * @returns The validated chord data, with root and bass reduced to pitch
1316
1323
  * classes and any spelling hint carried through.
1317
1324
  * @throws If the value names no chord, or an interval, root, or bass is not a
@@ -1326,4 +1333,5 @@ type ChordLike = string | Chord | {
1326
1333
  */
1327
1334
  declare function toChordData(value: ChordLike): Chord;
1328
1335
 
1329
- export { subdominantKeyOf as $, type Alteration as A, chordSpecQuality as B, type ChordBase as C, chordToneRole as D, type EvaluateSafetyOptions as E, diatonicSeventh as F, diatonicTriad as G, dominantKeyOf as H, enharmonicKeyOf as I, enumerateSafePitches as J, type KeyLike as K, evaluateSafety as L, intervalAboveRoot as M, NoteSafety as N, isChordMember as O, PROFILE_WEIGHTS as P, keyRelationBetween as Q, ReasonFlag as R, type SafetyPartner as S, makeChord as T, parallelKeyOf as U, type VoiceSnapshot as V, profileWeights as W, relatedKeysOf as X, relativeKeyOf as Y, spanFromChord as Z, spelledKeyOf as _, type AlteredDegree as a, toChordData as a0, toKeyScale as a1, transposeChord as a2, type Chord as b, type ChordLike as c, type ChordQuality as d, type ChordSegment as e, type ChordSeventh as f, type ChordSpan as g, type ChordSpec as h, type ChordToneRole as i, type KeyRelation as j, type KeyVariant as k, type PitchSpelling as l, type ProfileWeights as m, type ResolvedKey as n, type SafetyProfile as o, type SafetyQuery as p, type SafetyResult as q, type SpelledKeyLike as r, type SpelledKeyScale as s, chordFromDegree as t, chordFromSpan as u, chordFromSpec as v, chordPitchClasses as w, chordQualities as x, chordSpecIntervals as y, chordSpecOf as z };
1336
+ export { subdominantKeyOf as $, chordSpecQuality as B, chordToneRole as D, diatonicSeventh as F, diatonicTriad as G, dominantKeyOf as H, enharmonicKeyOf as I, enumerateSafePitches as J, evaluateSafety as L, intervalAboveRoot as M, NoteSafety as N, isChordMember as O, PROFILE_WEIGHTS as P, keyRelationBetween as Q, ReasonFlag as R, makeChord as T, parallelKeyOf as U, profileWeights as W, relatedKeysOf as X, relativeKeyOf as Y, spanFromChord as Z, spelledKeyOf as _, toChordData as a0, toKeyScale as a1, transposeChord as a2, chordFromDegree as t, chordFromSpan as u, chordFromSpec as v, chordPitchClasses as w, chordQualities as x, chordSpecIntervals as y, chordSpecOf as z };
1337
+ export type { Alteration as A, ChordBase as C, EvaluateSafetyOptions as E, KeyLike as K, SafetyPartner as S, VoiceSnapshot as V, AlteredDegree as a, Chord as b, ChordLike as c, ChordQuality as d, ChordSegment as e, ChordSeventh as f, ChordSpan as g, ChordSpec as h, ChordToneRole as i, KeyRelation as j, KeyVariant as k, PitchSpelling as l, ProfileWeights as m, ResolvedKey as n, SafetyProfile as o, SafetyQuery as p, SafetyResult as q, SpelledKeyLike as r, SpelledKeyScale as s };
@@ -23,7 +23,7 @@
23
23
 
24
24
 
25
25
 
26
- var _chunkNM7UAMC3cjs = require('../chunk-NM7UAMC3.cjs');
26
+ var _chunk3FDBMIPRcjs = require('../chunk-3FDBMIPR.cjs');
27
27
 
28
28
 
29
29
 
@@ -44,10 +44,10 @@ var _chunkNM7UAMC3cjs = require('../chunk-NM7UAMC3.cjs');
44
44
 
45
45
 
46
46
 
47
- var _chunkCGBADIO5cjs = require('../chunk-CGBADIO5.cjs');
47
+ var _chunkWOMCXN2Wcjs = require('../chunk-WOMCXN2W.cjs');
48
48
 
49
49
 
50
- var _chunk35NBV2FTcjs = require('../chunk-35NBV2FT.cjs');
50
+ var _chunkKMYGRFZ6cjs = require('../chunk-KMYGRFZ6.cjs');
51
51
 
52
52
 
53
53
 
@@ -116,7 +116,7 @@ var _chunk35NBV2FTcjs = require('../chunk-35NBV2FT.cjs');
116
116
 
117
117
 
118
118
 
119
- var _chunkS5BKZZGMcjs = require('../chunk-S5BKZZGM.cjs');
119
+ var _chunkS3QELJUEcjs = require('../chunk-S3QELJUE.cjs');
120
120
 
121
121
 
122
122
 
@@ -228,5 +228,5 @@ var _chunkS5BKZZGMcjs = require('../chunk-S5BKZZGM.cjs');
228
228
 
229
229
 
230
230
 
231
- exports.ALGORITHM_VERSION = _chunkCGBADIO5cjs.ALGORITHM_VERSION; exports.ARTICULATIONS = _chunkS5BKZZGMcjs.ARTICULATIONS; exports.BASS_4_STRING = _chunkCGBADIO5cjs.BASS_4_STRING; exports.BASS_5_STRING = _chunkCGBADIO5cjs.BASS_5_STRING; exports.BudgetExceededError = _chunkS5BKZZGMcjs.BudgetExceededError; exports.ConsonanceClass = _chunkS5BKZZGMcjs.ConsonanceClass; exports.DEFAULT_GENERATION_BUDGET = _chunkS5BKZZGMcjs.DEFAULT_GENERATION_BUDGET; exports.GUITAR_DROP_D = _chunkCGBADIO5cjs.GUITAR_DROP_D; exports.GUITAR_STANDARD = _chunkCGBADIO5cjs.GUITAR_STANDARD; exports.InvalidInputError = _chunkS5BKZZGMcjs.InvalidInputError; exports.JUST_RATIOS = _chunkNM7UAMC3cjs.JUST_RATIOS; exports.LIMBS = _chunkCGBADIO5cjs.LIMBS; exports.MIN_ALGORITHM_VERSION = _chunkCGBADIO5cjs.MIN_ALGORITHM_VERSION; exports.NOTE_VALUES = _chunkNM7UAMC3cjs.NOTE_VALUES; exports.NoSolutionError = _chunkS5BKZZGMcjs.NoSolutionError; exports.TWELVE_TET = _chunkNM7UAMC3cjs.TWELVE_TET; exports.assertDegree = _chunkS5BKZZGMcjs.assertDegree; exports.assertFiniteNumber = _chunkS5BKZZGMcjs.assertFiniteNumber; exports.assertFiniteSemitones = _chunkS5BKZZGMcjs.assertFiniteSemitones; exports.assertGenerationBudget = _chunkS5BKZZGMcjs.assertGenerationBudget; exports.assertInteger = _chunkS5BKZZGMcjs.assertInteger; exports.assertMeterMap = _chunkS5BKZZGMcjs.assertMeterMap; exports.assertMidiPitch = _chunkS5BKZZGMcjs.assertMidiPitch; exports.assertNoteEvent = _chunkS5BKZZGMcjs.assertNoteEvent; exports.assertNoteEvents = _chunkS5BKZZGMcjs.assertNoteEvents; exports.assertOneOf = _chunkS5BKZZGMcjs.assertOneOf; exports.assertPositiveInt = _chunkS5BKZZGMcjs.assertPositiveInt; exports.assertRange = _chunkS5BKZZGMcjs.assertRange; exports.assertTimeSignature = _chunkS5BKZZGMcjs.assertTimeSignature; exports.barIndexAt = _chunkS5BKZZGMcjs.barIndexAt; exports.barPositionToBeat = _chunkS5BKZZGMcjs.barPositionToBeat; exports.barPositionToPulse = _chunkS5BKZZGMcjs.barPositionToPulse; exports.barStartBeat = _chunkS5BKZZGMcjs.barStartBeat; exports.beatToBarPosition = _chunkS5BKZZGMcjs.beatToBarPosition; exports.beatsPerBar = _chunkS5BKZZGMcjs.beatsPerBar; exports.beatsPerBarAt = _chunkS5BKZZGMcjs.beatsPerBarAt; exports.beatsToDuration = _chunkNM7UAMC3cjs.beatsToDuration; exports.beatsToSeconds = _chunkNM7UAMC3cjs.beatsToSeconds; exports.beatsToTicks = _chunkNM7UAMC3cjs.beatsToTicks; exports.beatsToTiedDurations = _chunkNM7UAMC3cjs.beatsToTiedDurations; exports.canSound = _chunkCGBADIO5cjs.canSound; exports.centsBetweenFreq = _chunkNM7UAMC3cjs.centsBetweenFreq; exports.centsFromNearestStep = _chunkNM7UAMC3cjs.centsFromNearestStep; exports.centsOfSteps = _chunkNM7UAMC3cjs.centsOfSteps; exports.centsToRatio = _chunkNM7UAMC3cjs.centsToRatio; exports.clampToMidi = _chunkS5BKZZGMcjs.clampToMidi; exports.classifyInterval = _chunkS5BKZZGMcjs.classifyInterval; exports.createNoteEventIndex = _chunk35NBV2FTcjs.createNoteEventIndex; exports.createPositionalRng = _chunkCGBADIO5cjs.createPositionalRng; exports.createRng = _chunkCGBADIO5cjs.createRng; exports.deriveSeed = _chunkCGBADIO5cjs.deriveSeed; exports.detectNoteNameSystem = _chunkS5BKZZGMcjs.detectNoteNameSystem; exports.diatonicLetterOf = _chunkS5BKZZGMcjs.diatonicLetterOf; exports.dropSilentNotes = _chunkS5BKZZGMcjs.dropSilentNotes; exports.durationToBeats = _chunkNM7UAMC3cjs.durationToBeats; exports.durationToSeconds = _chunkNM7UAMC3cjs.durationToSeconds; exports.edo = _chunkNM7UAMC3cjs.edo; exports.fingeringsFor = _chunkCGBADIO5cjs.fingeringsFor; exports.foldIntoRange = _chunkCGBADIO5cjs.foldIntoRange; exports.formatBarPosition = _chunkS5BKZZGMcjs.formatBarPosition; exports.formatKeyName = _chunkS5BKZZGMcjs.formatKeyName; exports.formatNote = _chunkS5BKZZGMcjs.formatNote; exports.formatTimeSignature = _chunkS5BKZZGMcjs.formatTimeSignature; exports.frequencyOf = _chunkNM7UAMC3cjs.frequencyOf; exports.includeAt = _chunkCGBADIO5cjs.includeAt; exports.instrumentRange = _chunkCGBADIO5cjs.instrumentRange; exports.intervalSemitones = _chunkS5BKZZGMcjs.intervalSemitones; exports.isCompound = _chunkS5BKZZGMcjs.isCompound; exports.isConsonantInterval = _chunkS5BKZZGMcjs.isConsonantInterval; exports.isLibcantusError = _chunkS5BKZZGMcjs.isLibcantusError; exports.isPerfectInterval = _chunkS5BKZZGMcjs.isPerfectInterval; exports.isStrongBeat = _chunkS5BKZZGMcjs.isStrongBeat; exports.justDeviationCents = _chunkNM7UAMC3cjs.justDeviationCents; exports.meterAt = _chunkS5BKZZGMcjs.meterAt; exports.metricWeight = _chunkS5BKZZGMcjs.metricWeight; exports.midiToNote = _chunkS5BKZZGMcjs.midiToNote; exports.naturalPitchClassOf = _chunkS5BKZZGMcjs.naturalPitchClassOf; exports.nearestStep = _chunkNM7UAMC3cjs.nearestStep; exports.noteToMidi = _chunkS5BKZZGMcjs.noteToMidi; exports.noteToPitchClass = _chunkS5BKZZGMcjs.noteToPitchClass; exports.parseInterval = _chunkS5BKZZGMcjs.parseInterval; exports.parseKeyName = _chunkS5BKZZGMcjs.parseKeyName; exports.parseNote = _chunkS5BKZZGMcjs.parseNote; exports.parseTimeSignature = _chunkS5BKZZGMcjs.parseTimeSignature; exports.pitchClassOf = _chunkS5BKZZGMcjs.pitchClassOf; exports.playability = _chunkCGBADIO5cjs.playability; exports.pulseBeats = _chunkS5BKZZGMcjs.pulseBeats; exports.pulsesPerBar = _chunkS5BKZZGMcjs.pulsesPerBar; exports.ratioToCents = _chunkNM7UAMC3cjs.ratioToCents; exports.resolveAlgorithmVersion = _chunkCGBADIO5cjs.resolveAlgorithmVersion; exports.resolveMeters = _chunkS5BKZZGMcjs.resolveMeters; exports.secondsToBeats = _chunkNM7UAMC3cjs.secondsToBeats; exports.soundingNotesOnly = _chunkS5BKZZGMcjs.soundingNotesOnly; exports.spelledInterval = _chunkS5BKZZGMcjs.spelledInterval; exports.stepOf = _chunkNM7UAMC3cjs.stepOf; exports.stepsOfCents = _chunkNM7UAMC3cjs.stepsOfCents; exports.tempoAt = _chunkNM7UAMC3cjs.tempoAt; exports.ticksToBeats = _chunkNM7UAMC3cjs.ticksToBeats; exports.toInstrumentProfile = _chunkCGBADIO5cjs.toInstrumentProfile; exports.toMeterData = _chunkS5BKZZGMcjs.toMeterData; exports.toNoteData = _chunkS5BKZZGMcjs.toNoteData; exports.toSpelledInterval = _chunkS5BKZZGMcjs.toSpelledInterval; exports.toStringedProfile = _chunkCGBADIO5cjs.toStringedProfile; exports.transposeByInterval = _chunkS5BKZZGMcjs.transposeByInterval; exports.transposeNote = _chunkS5BKZZGMcjs.transposeNote; exports.tryParseInterval = _chunkS5BKZZGMcjs.tryParseInterval; exports.tryParseKeyName = _chunkS5BKZZGMcjs.tryParseKeyName; exports.tryParseNote = _chunkS5BKZZGMcjs.tryParseNote; exports.tryParseTimeSignature = _chunkS5BKZZGMcjs.tryParseTimeSignature; exports.tuplet = _chunkS5BKZZGMcjs.tuplet;
231
+ exports.ALGORITHM_VERSION = _chunkWOMCXN2Wcjs.ALGORITHM_VERSION; exports.ARTICULATIONS = _chunkS3QELJUEcjs.ARTICULATIONS; exports.BASS_4_STRING = _chunkWOMCXN2Wcjs.BASS_4_STRING; exports.BASS_5_STRING = _chunkWOMCXN2Wcjs.BASS_5_STRING; exports.BudgetExceededError = _chunkS3QELJUEcjs.BudgetExceededError; exports.ConsonanceClass = _chunkS3QELJUEcjs.ConsonanceClass; exports.DEFAULT_GENERATION_BUDGET = _chunkS3QELJUEcjs.DEFAULT_GENERATION_BUDGET; exports.GUITAR_DROP_D = _chunkWOMCXN2Wcjs.GUITAR_DROP_D; exports.GUITAR_STANDARD = _chunkWOMCXN2Wcjs.GUITAR_STANDARD; exports.InvalidInputError = _chunkS3QELJUEcjs.InvalidInputError; exports.JUST_RATIOS = _chunk3FDBMIPRcjs.JUST_RATIOS; exports.LIMBS = _chunkWOMCXN2Wcjs.LIMBS; exports.MIN_ALGORITHM_VERSION = _chunkWOMCXN2Wcjs.MIN_ALGORITHM_VERSION; exports.NOTE_VALUES = _chunk3FDBMIPRcjs.NOTE_VALUES; exports.NoSolutionError = _chunkS3QELJUEcjs.NoSolutionError; exports.TWELVE_TET = _chunk3FDBMIPRcjs.TWELVE_TET; exports.assertDegree = _chunkS3QELJUEcjs.assertDegree; exports.assertFiniteNumber = _chunkS3QELJUEcjs.assertFiniteNumber; exports.assertFiniteSemitones = _chunkS3QELJUEcjs.assertFiniteSemitones; exports.assertGenerationBudget = _chunkS3QELJUEcjs.assertGenerationBudget; exports.assertInteger = _chunkS3QELJUEcjs.assertInteger; exports.assertMeterMap = _chunkS3QELJUEcjs.assertMeterMap; exports.assertMidiPitch = _chunkS3QELJUEcjs.assertMidiPitch; exports.assertNoteEvent = _chunkS3QELJUEcjs.assertNoteEvent; exports.assertNoteEvents = _chunkS3QELJUEcjs.assertNoteEvents; exports.assertOneOf = _chunkS3QELJUEcjs.assertOneOf; exports.assertPositiveInt = _chunkS3QELJUEcjs.assertPositiveInt; exports.assertRange = _chunkS3QELJUEcjs.assertRange; exports.assertTimeSignature = _chunkS3QELJUEcjs.assertTimeSignature; exports.barIndexAt = _chunkS3QELJUEcjs.barIndexAt; exports.barPositionToBeat = _chunkS3QELJUEcjs.barPositionToBeat; exports.barPositionToPulse = _chunkS3QELJUEcjs.barPositionToPulse; exports.barStartBeat = _chunkS3QELJUEcjs.barStartBeat; exports.beatToBarPosition = _chunkS3QELJUEcjs.beatToBarPosition; exports.beatsPerBar = _chunkS3QELJUEcjs.beatsPerBar; exports.beatsPerBarAt = _chunkS3QELJUEcjs.beatsPerBarAt; exports.beatsToDuration = _chunk3FDBMIPRcjs.beatsToDuration; exports.beatsToSeconds = _chunk3FDBMIPRcjs.beatsToSeconds; exports.beatsToTicks = _chunk3FDBMIPRcjs.beatsToTicks; exports.beatsToTiedDurations = _chunk3FDBMIPRcjs.beatsToTiedDurations; exports.canSound = _chunkWOMCXN2Wcjs.canSound; exports.centsBetweenFreq = _chunk3FDBMIPRcjs.centsBetweenFreq; exports.centsFromNearestStep = _chunk3FDBMIPRcjs.centsFromNearestStep; exports.centsOfSteps = _chunk3FDBMIPRcjs.centsOfSteps; exports.centsToRatio = _chunk3FDBMIPRcjs.centsToRatio; exports.clampToMidi = _chunkS3QELJUEcjs.clampToMidi; exports.classifyInterval = _chunkS3QELJUEcjs.classifyInterval; exports.createNoteEventIndex = _chunkKMYGRFZ6cjs.createNoteEventIndex; exports.createPositionalRng = _chunkWOMCXN2Wcjs.createPositionalRng; exports.createRng = _chunkWOMCXN2Wcjs.createRng; exports.deriveSeed = _chunkWOMCXN2Wcjs.deriveSeed; exports.detectNoteNameSystem = _chunkS3QELJUEcjs.detectNoteNameSystem; exports.diatonicLetterOf = _chunkS3QELJUEcjs.diatonicLetterOf; exports.dropSilentNotes = _chunkS3QELJUEcjs.dropSilentNotes; exports.durationToBeats = _chunk3FDBMIPRcjs.durationToBeats; exports.durationToSeconds = _chunk3FDBMIPRcjs.durationToSeconds; exports.edo = _chunk3FDBMIPRcjs.edo; exports.fingeringsFor = _chunkWOMCXN2Wcjs.fingeringsFor; exports.foldIntoRange = _chunkWOMCXN2Wcjs.foldIntoRange; exports.formatBarPosition = _chunkS3QELJUEcjs.formatBarPosition; exports.formatKeyName = _chunkS3QELJUEcjs.formatKeyName; exports.formatNote = _chunkS3QELJUEcjs.formatNote; exports.formatTimeSignature = _chunkS3QELJUEcjs.formatTimeSignature; exports.frequencyOf = _chunk3FDBMIPRcjs.frequencyOf; exports.includeAt = _chunkWOMCXN2Wcjs.includeAt; exports.instrumentRange = _chunkWOMCXN2Wcjs.instrumentRange; exports.intervalSemitones = _chunkS3QELJUEcjs.intervalSemitones; exports.isCompound = _chunkS3QELJUEcjs.isCompound; exports.isConsonantInterval = _chunkS3QELJUEcjs.isConsonantInterval; exports.isLibcantusError = _chunkS3QELJUEcjs.isLibcantusError; exports.isPerfectInterval = _chunkS3QELJUEcjs.isPerfectInterval; exports.isStrongBeat = _chunkS3QELJUEcjs.isStrongBeat; exports.justDeviationCents = _chunk3FDBMIPRcjs.justDeviationCents; exports.meterAt = _chunkS3QELJUEcjs.meterAt; exports.metricWeight = _chunkS3QELJUEcjs.metricWeight; exports.midiToNote = _chunkS3QELJUEcjs.midiToNote; exports.naturalPitchClassOf = _chunkS3QELJUEcjs.naturalPitchClassOf; exports.nearestStep = _chunk3FDBMIPRcjs.nearestStep; exports.noteToMidi = _chunkS3QELJUEcjs.noteToMidi; exports.noteToPitchClass = _chunkS3QELJUEcjs.noteToPitchClass; exports.parseInterval = _chunkS3QELJUEcjs.parseInterval; exports.parseKeyName = _chunkS3QELJUEcjs.parseKeyName; exports.parseNote = _chunkS3QELJUEcjs.parseNote; exports.parseTimeSignature = _chunkS3QELJUEcjs.parseTimeSignature; exports.pitchClassOf = _chunkS3QELJUEcjs.pitchClassOf; exports.playability = _chunkWOMCXN2Wcjs.playability; exports.pulseBeats = _chunkS3QELJUEcjs.pulseBeats; exports.pulsesPerBar = _chunkS3QELJUEcjs.pulsesPerBar; exports.ratioToCents = _chunk3FDBMIPRcjs.ratioToCents; exports.resolveAlgorithmVersion = _chunkWOMCXN2Wcjs.resolveAlgorithmVersion; exports.resolveMeters = _chunkS3QELJUEcjs.resolveMeters; exports.secondsToBeats = _chunk3FDBMIPRcjs.secondsToBeats; exports.soundingNotesOnly = _chunkS3QELJUEcjs.soundingNotesOnly; exports.spelledInterval = _chunkS3QELJUEcjs.spelledInterval; exports.stepOf = _chunk3FDBMIPRcjs.stepOf; exports.stepsOfCents = _chunk3FDBMIPRcjs.stepsOfCents; exports.tempoAt = _chunk3FDBMIPRcjs.tempoAt; exports.ticksToBeats = _chunk3FDBMIPRcjs.ticksToBeats; exports.toInstrumentProfile = _chunkWOMCXN2Wcjs.toInstrumentProfile; exports.toMeterData = _chunkS3QELJUEcjs.toMeterData; exports.toNoteData = _chunkS3QELJUEcjs.toNoteData; exports.toSpelledInterval = _chunkS3QELJUEcjs.toSpelledInterval; exports.toStringedProfile = _chunkWOMCXN2Wcjs.toStringedProfile; exports.transposeByInterval = _chunkS3QELJUEcjs.transposeByInterval; exports.transposeNote = _chunkS3QELJUEcjs.transposeNote; exports.tryParseInterval = _chunkS3QELJUEcjs.tryParseInterval; exports.tryParseKeyName = _chunkS3QELJUEcjs.tryParseKeyName; exports.tryParseNote = _chunkS3QELJUEcjs.tryParseNote; exports.tryParseTimeSignature = _chunkS3QELJUEcjs.tryParseTimeSignature; exports.tuplet = _chunkS3QELJUEcjs.tuplet;
232
232
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/libcantus/libcantus/dist/core/index.cjs"],"names":[],"mappings":"AAAA,0GAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,m3MAAC","file":"/home/runner/work/libcantus/libcantus/dist/core/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/libcantus/libcantus/ts/dist/core/index.cjs"],"names":[],"mappings":"AAAA,0GAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,m3MAAC","file":"/home/runner/work/libcantus/libcantus/ts/dist/core/index.cjs"}
@@ -1,11 +1,11 @@
1
- export { D as DurationData, I as IndexedNoteEvent, J as JUST_RATIOS, N as NOTE_VALUES, a as NoteEventIndex, b as NoteEventIndexOptions, c as NotePlacement, d as NoteValue, O as OnsetTieBreak, P as PlayabilityIssue, e as PlayabilityIssueType, f as PlayabilityLayer, g as PlayabilityReport, S as SpelledDuration, T as TWELVE_TET, h as TempoEvent, i as TempoMap, j as TuningTable, k as Tuplet, l as beatsToDuration, m as beatsToSeconds, n as beatsToTicks, o as beatsToTiedDurations, p as centsBetweenFreq, q as centsFromNearestStep, r as centsOfSteps, s as centsToRatio, t as createNoteEventIndex, u as durationToBeats, v as durationToSeconds, w as edo, x as frequencyOf, y as justDeviationCents, z as nearestStep, A as playability, B as ratioToCents, C as secondsToBeats, E as stepOf, F as stepsOfCents, G as tempoAt, H as ticksToBeats } from '../index-cHvbYgJI.cjs';
2
- import { h as NoteEvent } from '../index-Cy15oTvh.cjs';
3
- export { A as ARTICULATIONS, a as Articulation, B as BudgetExceededError, I as IntervalData, b as IntervalLike, c as IntervalQualityLabel, d as InvalidInputError, K as KeyName, e as KeyScale, L as LibcantusError, f as LibcantusErrorCode, N as NoSolutionError, g as NoteData, i as NoteLike, j as NoteNameOptions, k as NoteNameSystem, P as ParseResult, S as SpelledInterval, l as detectNoteNameSystem, m as diatonicLetterOf, n as formatKeyName, o as formatNote, p as intervalSemitones, q as isLibcantusError, r as midiToNote, s as naturalPitchClassOf, t as noteToMidi, u as noteToPitchClass, v as parseInterval, w as parseKeyName, x as parseNote, y as pitchClassOf, z as spelledInterval, C as toNoteData, D as toSpelledInterval, E as transposeByInterval, F as transposeNote, G as tryParseInterval, H as tryParseKeyName, J as tryParseNote } from '../index-Cy15oTvh.cjs';
4
- import { f as StringedProfile } from '../positional-DMZer-FM.cjs';
5
- export { I as InstrumentProfile, a as InstrumentProfileCommon, b as InstrumentProfileLike, L as LIMBS, c as Limb, P as PercussionProfile, d as PositionalRng, S as SeedPath, e as StringFingering, V as ValidatedPercussionProfile, g as ValidatedProfile, h as ValidatedStringedProfile, i as canSound, j as createPositionalRng, k as deriveSeed, l as fingeringsFor, m as foldIntoRange, n as includeAt, o as instrumentRange, t as toInstrumentProfile, p as toStringedProfile } from '../positional-DMZer-FM.cjs';
1
+ export { D as DurationData, I as IndexedNoteEvent, J as JUST_RATIOS, N as NOTE_VALUES, a as NoteEventIndex, b as NoteEventIndexOptions, c as NotePlacement, d as NoteValue, O as OnsetTieBreak, P as PlayabilityIssue, e as PlayabilityIssueType, f as PlayabilityLayer, g as PlayabilityReport, S as SpelledDuration, T as TWELVE_TET, h as TempoEvent, i as TempoMap, j as TuningTable, k as Tuplet, l as beatsToDuration, m as beatsToSeconds, n as beatsToTicks, o as beatsToTiedDurations, p as centsBetweenFreq, q as centsFromNearestStep, r as centsOfSteps, s as centsToRatio, t as createNoteEventIndex, u as durationToBeats, v as durationToSeconds, w as edo, x as frequencyOf, y as justDeviationCents, z as nearestStep, A as playability, B as ratioToCents, C as secondsToBeats, E as stepOf, F as stepsOfCents, G as tempoAt, H as ticksToBeats } from '../index-pQihL4z7.cjs';
2
+ import { h as NoteEvent } from '../index-C9MYbuKS.cjs';
3
+ export { A as ARTICULATIONS, a as Articulation, B as BudgetExceededError, I as IntervalData, b as IntervalLike, c as IntervalQualityLabel, d as InvalidInputError, K as KeyName, e as KeyScale, L as LibcantusError, f as LibcantusErrorCode, N as NoSolutionError, g as NoteData, i as NoteLike, j as NoteNameOptions, k as NoteNameSystem, P as ParseResult, S as SpelledInterval, l as detectNoteNameSystem, m as diatonicLetterOf, n as formatKeyName, o as formatNote, p as intervalSemitones, q as isLibcantusError, r as midiToNote, s as naturalPitchClassOf, t as noteToMidi, u as noteToPitchClass, v as parseInterval, w as parseKeyName, x as parseNote, y as pitchClassOf, z as spelledInterval, C as toNoteData, D as toSpelledInterval, E as transposeByInterval, F as transposeNote, G as tryParseInterval, H as tryParseKeyName, J as tryParseNote } from '../index-C9MYbuKS.cjs';
4
+ import { f as StringedProfile } from '../positional-CscpxtlE.cjs';
5
+ export { I as InstrumentProfile, a as InstrumentProfileCommon, b as InstrumentProfileLike, L as LIMBS, c as Limb, P as PercussionProfile, d as PositionalRng, S as SeedPath, e as StringFingering, V as ValidatedPercussionProfile, g as ValidatedProfile, h as ValidatedStringedProfile, i as canSound, j as createPositionalRng, k as deriveSeed, l as fingeringsFor, m as foldIntoRange, n as includeAt, o as instrumentRange, t as toInstrumentProfile, p as toStringedProfile } from '../positional-CscpxtlE.cjs';
6
6
  export { C as ConsonanceClass, c as classifyInterval, i as isConsonantInterval, a as isPerfectInterval } from '../index-DInQqT8Q.cjs';
7
- import { c as MeterMap, T as TimeSignature } from '../index-BMweUlm5.cjs';
8
- export { B as BarPosition, M as MeterChange, a as MeterData, b as MeterLike, d as barIndexAt, e as barPositionToBeat, f as barPositionToPulse, g as barStartBeat, h as beatToBarPosition, i as beatsPerBar, j as beatsPerBarAt, k as formatBarPosition, l as formatTimeSignature, m as isCompound, n as isStrongBeat, o as meterAt, p as metricWeight, q as parseTimeSignature, r as pulseBeats, s as pulsesPerBar, t as resolveMeters, u as toMeterData, v as tryParseTimeSignature, w as tuplet } from '../index-BMweUlm5.cjs';
7
+ import { c as MeterMap, T as TimeSignature } from '../index-5VJgKz_Q.cjs';
8
+ export { B as BarPosition, M as MeterChange, a as MeterData, b as MeterLike, d as barIndexAt, e as barPositionToBeat, f as barPositionToPulse, g as barStartBeat, h as beatToBarPosition, i as beatsPerBar, j as beatsPerBarAt, k as formatBarPosition, l as formatTimeSignature, m as isCompound, n as isStrongBeat, o as meterAt, p as metricWeight, q as parseTimeSignature, r as pulseBeats, s as pulsesPerBar, t as resolveMeters, u as toMeterData, v as tryParseTimeSignature, w as tuplet } from '../index-5VJgKz_Q.cjs';
9
9
 
10
10
  /**
11
11
  * Electric bass in standard tuning: E1 A1 D2 G2 over a 24-fret neck.
@@ -286,4 +286,5 @@ type Rng = {
286
286
  */
287
287
  declare function createRng(seed: number): Rng;
288
288
 
289
- export { ALGORITHM_VERSION, BASS_4_STRING, BASS_5_STRING, DEFAULT_GENERATION_BUDGET, GUITAR_DROP_D, GUITAR_STANDARD, MIN_ALGORITHM_VERSION, MeterMap, NoteEvent, type NoteEventAssertOptions, type Rng, StringedProfile, TimeSignature, assertDegree, assertFiniteNumber, assertFiniteSemitones, assertGenerationBudget, assertInteger, assertMeterMap, assertMidiPitch, assertNoteEvent, assertNoteEvents, assertOneOf, assertPositiveInt, assertRange, assertTimeSignature, clampToMidi, createRng, dropSilentNotes, resolveAlgorithmVersion, soundingNotesOnly };
289
+ export { ALGORITHM_VERSION, BASS_4_STRING, BASS_5_STRING, DEFAULT_GENERATION_BUDGET, GUITAR_DROP_D, GUITAR_STANDARD, MIN_ALGORITHM_VERSION, MeterMap, NoteEvent, StringedProfile, TimeSignature, assertDegree, assertFiniteNumber, assertFiniteSemitones, assertGenerationBudget, assertInteger, assertMeterMap, assertMidiPitch, assertNoteEvent, assertNoteEvents, assertOneOf, assertPositiveInt, assertRange, assertTimeSignature, clampToMidi, createRng, dropSilentNotes, resolveAlgorithmVersion, soundingNotesOnly };
290
+ export type { NoteEventAssertOptions, Rng };
@@ -1,11 +1,11 @@
1
- export { D as DurationData, I as IndexedNoteEvent, J as JUST_RATIOS, N as NOTE_VALUES, a as NoteEventIndex, b as NoteEventIndexOptions, c as NotePlacement, d as NoteValue, O as OnsetTieBreak, P as PlayabilityIssue, e as PlayabilityIssueType, f as PlayabilityLayer, g as PlayabilityReport, S as SpelledDuration, T as TWELVE_TET, h as TempoEvent, i as TempoMap, j as TuningTable, k as Tuplet, l as beatsToDuration, m as beatsToSeconds, n as beatsToTicks, o as beatsToTiedDurations, p as centsBetweenFreq, q as centsFromNearestStep, r as centsOfSteps, s as centsToRatio, t as createNoteEventIndex, u as durationToBeats, v as durationToSeconds, w as edo, x as frequencyOf, y as justDeviationCents, z as nearestStep, A as playability, B as ratioToCents, C as secondsToBeats, E as stepOf, F as stepsOfCents, G as tempoAt, H as ticksToBeats } from '../index-9eoQs2C1.js';
2
- import { h as NoteEvent } from '../index-Cy15oTvh.js';
3
- export { A as ARTICULATIONS, a as Articulation, B as BudgetExceededError, I as IntervalData, b as IntervalLike, c as IntervalQualityLabel, d as InvalidInputError, K as KeyName, e as KeyScale, L as LibcantusError, f as LibcantusErrorCode, N as NoSolutionError, g as NoteData, i as NoteLike, j as NoteNameOptions, k as NoteNameSystem, P as ParseResult, S as SpelledInterval, l as detectNoteNameSystem, m as diatonicLetterOf, n as formatKeyName, o as formatNote, p as intervalSemitones, q as isLibcantusError, r as midiToNote, s as naturalPitchClassOf, t as noteToMidi, u as noteToPitchClass, v as parseInterval, w as parseKeyName, x as parseNote, y as pitchClassOf, z as spelledInterval, C as toNoteData, D as toSpelledInterval, E as transposeByInterval, F as transposeNote, G as tryParseInterval, H as tryParseKeyName, J as tryParseNote } from '../index-Cy15oTvh.js';
4
- import { f as StringedProfile } from '../positional-DJgs6ltD.js';
5
- export { I as InstrumentProfile, a as InstrumentProfileCommon, b as InstrumentProfileLike, L as LIMBS, c as Limb, P as PercussionProfile, d as PositionalRng, S as SeedPath, e as StringFingering, V as ValidatedPercussionProfile, g as ValidatedProfile, h as ValidatedStringedProfile, i as canSound, j as createPositionalRng, k as deriveSeed, l as fingeringsFor, m as foldIntoRange, n as includeAt, o as instrumentRange, t as toInstrumentProfile, p as toStringedProfile } from '../positional-DJgs6ltD.js';
1
+ export { D as DurationData, I as IndexedNoteEvent, J as JUST_RATIOS, N as NOTE_VALUES, a as NoteEventIndex, b as NoteEventIndexOptions, c as NotePlacement, d as NoteValue, O as OnsetTieBreak, P as PlayabilityIssue, e as PlayabilityIssueType, f as PlayabilityLayer, g as PlayabilityReport, S as SpelledDuration, T as TWELVE_TET, h as TempoEvent, i as TempoMap, j as TuningTable, k as Tuplet, l as beatsToDuration, m as beatsToSeconds, n as beatsToTicks, o as beatsToTiedDurations, p as centsBetweenFreq, q as centsFromNearestStep, r as centsOfSteps, s as centsToRatio, t as createNoteEventIndex, u as durationToBeats, v as durationToSeconds, w as edo, x as frequencyOf, y as justDeviationCents, z as nearestStep, A as playability, B as ratioToCents, C as secondsToBeats, E as stepOf, F as stepsOfCents, G as tempoAt, H as ticksToBeats } from '../index-Dg-SAfhz.js';
2
+ import { h as NoteEvent } from '../index-C9MYbuKS.js';
3
+ export { A as ARTICULATIONS, a as Articulation, B as BudgetExceededError, I as IntervalData, b as IntervalLike, c as IntervalQualityLabel, d as InvalidInputError, K as KeyName, e as KeyScale, L as LibcantusError, f as LibcantusErrorCode, N as NoSolutionError, g as NoteData, i as NoteLike, j as NoteNameOptions, k as NoteNameSystem, P as ParseResult, S as SpelledInterval, l as detectNoteNameSystem, m as diatonicLetterOf, n as formatKeyName, o as formatNote, p as intervalSemitones, q as isLibcantusError, r as midiToNote, s as naturalPitchClassOf, t as noteToMidi, u as noteToPitchClass, v as parseInterval, w as parseKeyName, x as parseNote, y as pitchClassOf, z as spelledInterval, C as toNoteData, D as toSpelledInterval, E as transposeByInterval, F as transposeNote, G as tryParseInterval, H as tryParseKeyName, J as tryParseNote } from '../index-C9MYbuKS.js';
4
+ import { f as StringedProfile } from '../positional-DLnfUgqG.js';
5
+ export { I as InstrumentProfile, a as InstrumentProfileCommon, b as InstrumentProfileLike, L as LIMBS, c as Limb, P as PercussionProfile, d as PositionalRng, S as SeedPath, e as StringFingering, V as ValidatedPercussionProfile, g as ValidatedProfile, h as ValidatedStringedProfile, i as canSound, j as createPositionalRng, k as deriveSeed, l as fingeringsFor, m as foldIntoRange, n as includeAt, o as instrumentRange, t as toInstrumentProfile, p as toStringedProfile } from '../positional-DLnfUgqG.js';
6
6
  export { C as ConsonanceClass, c as classifyInterval, i as isConsonantInterval, a as isPerfectInterval } from '../index-DInQqT8Q.js';
7
- import { c as MeterMap, T as TimeSignature } from '../index-CL4b4gUQ.js';
8
- export { B as BarPosition, M as MeterChange, a as MeterData, b as MeterLike, d as barIndexAt, e as barPositionToBeat, f as barPositionToPulse, g as barStartBeat, h as beatToBarPosition, i as beatsPerBar, j as beatsPerBarAt, k as formatBarPosition, l as formatTimeSignature, m as isCompound, n as isStrongBeat, o as meterAt, p as metricWeight, q as parseTimeSignature, r as pulseBeats, s as pulsesPerBar, t as resolveMeters, u as toMeterData, v as tryParseTimeSignature, w as tuplet } from '../index-CL4b4gUQ.js';
7
+ import { c as MeterMap, T as TimeSignature } from '../index-Bf0Sv8a9.js';
8
+ export { B as BarPosition, M as MeterChange, a as MeterData, b as MeterLike, d as barIndexAt, e as barPositionToBeat, f as barPositionToPulse, g as barStartBeat, h as beatToBarPosition, i as beatsPerBar, j as beatsPerBarAt, k as formatBarPosition, l as formatTimeSignature, m as isCompound, n as isStrongBeat, o as meterAt, p as metricWeight, q as parseTimeSignature, r as pulseBeats, s as pulsesPerBar, t as resolveMeters, u as toMeterData, v as tryParseTimeSignature, w as tuplet } from '../index-Bf0Sv8a9.js';
9
9
 
10
10
  /**
11
11
  * Electric bass in standard tuning: E1 A1 D2 G2 over a 24-fret neck.
@@ -286,4 +286,5 @@ type Rng = {
286
286
  */
287
287
  declare function createRng(seed: number): Rng;
288
288
 
289
- export { ALGORITHM_VERSION, BASS_4_STRING, BASS_5_STRING, DEFAULT_GENERATION_BUDGET, GUITAR_DROP_D, GUITAR_STANDARD, MIN_ALGORITHM_VERSION, MeterMap, NoteEvent, type NoteEventAssertOptions, type Rng, StringedProfile, TimeSignature, assertDegree, assertFiniteNumber, assertFiniteSemitones, assertGenerationBudget, assertInteger, assertMeterMap, assertMidiPitch, assertNoteEvent, assertNoteEvents, assertOneOf, assertPositiveInt, assertRange, assertTimeSignature, clampToMidi, createRng, dropSilentNotes, resolveAlgorithmVersion, soundingNotesOnly };
289
+ export { ALGORITHM_VERSION, BASS_4_STRING, BASS_5_STRING, DEFAULT_GENERATION_BUDGET, GUITAR_DROP_D, GUITAR_STANDARD, MIN_ALGORITHM_VERSION, MeterMap, NoteEvent, StringedProfile, TimeSignature, assertDegree, assertFiniteNumber, assertFiniteSemitones, assertGenerationBudget, assertInteger, assertMeterMap, assertMidiPitch, assertNoteEvent, assertNoteEvents, assertOneOf, assertPositiveInt, assertRange, assertTimeSignature, clampToMidi, createRng, dropSilentNotes, resolveAlgorithmVersion, soundingNotesOnly };
290
+ export type { NoteEventAssertOptions, Rng };
@@ -23,7 +23,7 @@ import {
23
23
  stepsOfCents,
24
24
  tempoAt,
25
25
  ticksToBeats
26
- } from "../chunk-UMWZ4ZET.js";
26
+ } from "../chunk-7NQ6AL3H.js";
27
27
  import {
28
28
  ALGORITHM_VERSION,
29
29
  BASS_4_STRING,
@@ -44,10 +44,10 @@ import {
44
44
  resolveAlgorithmVersion,
45
45
  toInstrumentProfile,
46
46
  toStringedProfile
47
- } from "../chunk-7KG3RTYS.js";
47
+ } from "../chunk-VL5NXVCN.js";
48
48
  import {
49
49
  createNoteEventIndex
50
- } from "../chunk-PUKJP2Z5.js";
50
+ } from "../chunk-TXFWSU5D.js";
51
51
  import {
52
52
  ARTICULATIONS,
53
53
  BudgetExceededError,
@@ -116,7 +116,7 @@ import {
116
116
  tryParseNote,
117
117
  tryParseTimeSignature,
118
118
  tuplet
119
- } from "../chunk-AGOVW7U6.js";
119
+ } from "../chunk-YYVXRV3V.js";
120
120
  export {
121
121
  ALGORITHM_VERSION,
122
122
  ARTICULATIONS,
@@ -72,13 +72,13 @@
72
72
 
73
73
 
74
74
 
75
- var _chunkB2PW6EHNcjs = require('../chunk-B2PW6EHN.cjs');
76
- require('../chunk-IFZDWIKM.cjs');
77
- require('../chunk-CGBADIO5.cjs');
78
- require('../chunk-35NBV2FT.cjs');
79
- require('../chunk-PM4XJE2Y.cjs');
80
- require('../chunk-3R3QVKY5.cjs');
81
- require('../chunk-S5BKZZGM.cjs');
75
+ var _chunk6TTBEON3cjs = require('../chunk-6TTBEON3.cjs');
76
+ require('../chunk-LQZQDBCD.cjs');
77
+ require('../chunk-WOMCXN2W.cjs');
78
+ require('../chunk-KMYGRFZ6.cjs');
79
+ require('../chunk-P3CPXAJ5.cjs');
80
+ require('../chunk-YDGMWH43.cjs');
81
+ require('../chunk-S3QELJUE.cjs');
82
82
 
83
83
 
84
84
 
@@ -153,5 +153,5 @@ require('../chunk-S5BKZZGM.cjs');
153
153
 
154
154
 
155
155
 
156
- exports.BAR_STEPS = _chunkB2PW6EHNcjs.BAR_STEPS; exports.BASS_LICKS = _chunkB2PW6EHNcjs.BASS_LICKS; exports.BASS_STYLES = _chunkB2PW6EHNcjs.BASS_STYLES; exports.BEAT_STEPS = _chunkB2PW6EHNcjs.BEAT_STEPS; exports.BORROWED_DEGREES = _chunkB2PW6EHNcjs.BORROWED_DEGREES; exports.COMPOSITION_PLAN_VERSION = _chunkB2PW6EHNcjs.COMPOSITION_PLAN_VERSION; exports.DRUM_KIT = _chunkB2PW6EHNcjs.DRUM_KIT; exports.DRUM_NOTES = _chunkB2PW6EHNcjs.DRUM_NOTES; exports.DRUM_PATTERNS = _chunkB2PW6EHNcjs.DRUM_PATTERNS; exports.FILL_ARCHETYPES = _chunkB2PW6EHNcjs.FILL_ARCHETYPES; exports.FILL_TYPES = _chunkB2PW6EHNcjs.FILL_TYPES; exports.GENRES = _chunkB2PW6EHNcjs.GENRES; exports.KICK_FIGURES = _chunkB2PW6EHNcjs.KICK_FIGURES; exports.KICK_STEPS = _chunkB2PW6EHNcjs.KICK_STEPS; exports.MAX_DIFFICULTY = _chunkB2PW6EHNcjs.MAX_DIFFICULTY; exports.MIN_DIFFICULTY = _chunkB2PW6EHNcjs.MIN_DIFFICULTY; exports.ORNAMENT_STYLES = _chunkB2PW6EHNcjs.ORNAMENT_STYLES; exports.PROVENANCE_BASES = _chunkB2PW6EHNcjs.PROVENANCE_BASES; exports.STEP_BEATS = _chunkB2PW6EHNcjs.STEP_BEATS; exports.applyGrooveTemplate = _chunkB2PW6EHNcjs.applyGrooveTemplate; exports.assertCompositionPlan = _chunkB2PW6EHNcjs.assertCompositionPlan; exports.assertVocabulary = _chunkB2PW6EHNcjs.assertVocabulary; exports.classifyMelodyTones = _chunkB2PW6EHNcjs.classifyMelodyTones; exports.deform = _chunkB2PW6EHNcjs.deform; exports.deriveCompositionPlan = _chunkB2PW6EHNcjs.deriveCompositionPlan; exports.developMotif = _chunkB2PW6EHNcjs.developMotif; exports.double = _chunkB2PW6EHNcjs.double; exports.doubleTime = _chunkB2PW6EHNcjs.doubleTime; exports.drumVoiceOf = _chunkB2PW6EHNcjs.drumVoiceOf; exports.evaluateComposition = _chunkB2PW6EHNcjs.evaluateComposition; exports.extractGrooveTemplate = _chunkB2PW6EHNcjs.extractGrooveTemplate; exports.fitsQuery = _chunkB2PW6EHNcjs.fitsQuery; exports.generateBassLine = _chunkB2PW6EHNcjs.generateBassLine; exports.generateCounterMelody = _chunkB2PW6EHNcjs.generateCounterMelody; exports.generateDrums = _chunkB2PW6EHNcjs.generateDrums; exports.generateMelody = _chunkB2PW6EHNcjs.generateMelody; exports.generateMotif = _chunkB2PW6EHNcjs.generateMotif; exports.generateProgression = _chunkB2PW6EHNcjs.generateProgression; exports.generateRhythm = _chunkB2PW6EHNcjs.generateRhythm; exports.gridMetricWeight = _chunkB2PW6EHNcjs.gridMetricWeight; exports.halfTime = _chunkB2PW6EHNcjs.halfTime; exports.harmonizeMelody = _chunkB2PW6EHNcjs.harmonizeMelody; exports.humanize = _chunkB2PW6EHNcjs.humanize; exports.imitate = _chunkB2PW6EHNcjs.imitate; exports.isDrumPattern = _chunkB2PW6EHNcjs.isDrumPattern; exports.isFillArchetype = _chunkB2PW6EHNcjs.isFillArchetype; exports.isLickMaterial = _chunkB2PW6EHNcjs.isLickMaterial; exports.mergeVocabulary = _chunkB2PW6EHNcjs.mergeVocabulary; exports.modalInterchangePalette = _chunkB2PW6EHNcjs.modalInterchangePalette; exports.motifToNoteEvents = _chunkB2PW6EHNcjs.motifToNoteEvents; exports.negativeHarmonyMirror = _chunkB2PW6EHNcjs.negativeHarmonyMirror; exports.onsetWeightCurve = _chunkB2PW6EHNcjs.onsetWeightCurve; exports.ornament = _chunkB2PW6EHNcjs.ornament; exports.ornamentBy = _chunkB2PW6EHNcjs.ornamentBy; exports.pickProgressionPreset = _chunkB2PW6EHNcjs.pickProgressionPreset; exports.pickVocabulary = _chunkB2PW6EHNcjs.pickVocabulary; exports.placeDrumPattern = _chunkB2PW6EHNcjs.placeDrumPattern; exports.placeLicks = _chunkB2PW6EHNcjs.placeLicks; exports.planTimeline = _chunkB2PW6EHNcjs.planTimeline; exports.progressions = _chunkB2PW6EHNcjs.progressions; exports.progressionsByStyle = _chunkB2PW6EHNcjs.progressionsByStyle; exports.resolveContext = _chunkB2PW6EHNcjs.resolveContext; exports.rhythmDensity = _chunkB2PW6EHNcjs.rhythmDensity; exports.rhythmToNoteEvents = _chunkB2PW6EHNcjs.rhythmToNoteEvents; exports.selectVocabulary = _chunkB2PW6EHNcjs.selectVocabulary; exports.substituteChord = _chunkB2PW6EHNcjs.substituteChord; exports.sustainsShift = _chunkB2PW6EHNcjs.sustainsShift; exports.sustainsStrokes = _chunkB2PW6EHNcjs.sustainsStrokes; exports.syncopate = _chunkB2PW6EHNcjs.syncopate; exports.thin = _chunkB2PW6EHNcjs.thin; exports.transformMotif = _chunkB2PW6EHNcjs.transformMotif; exports.vocabularyOfKind = _chunkB2PW6EHNcjs.vocabularyOfKind; exports.withinCeiling = _chunkB2PW6EHNcjs.withinCeiling;
156
+ exports.BAR_STEPS = _chunk6TTBEON3cjs.BAR_STEPS; exports.BASS_LICKS = _chunk6TTBEON3cjs.BASS_LICKS; exports.BASS_STYLES = _chunk6TTBEON3cjs.BASS_STYLES; exports.BEAT_STEPS = _chunk6TTBEON3cjs.BEAT_STEPS; exports.BORROWED_DEGREES = _chunk6TTBEON3cjs.BORROWED_DEGREES; exports.COMPOSITION_PLAN_VERSION = _chunk6TTBEON3cjs.COMPOSITION_PLAN_VERSION; exports.DRUM_KIT = _chunk6TTBEON3cjs.DRUM_KIT; exports.DRUM_NOTES = _chunk6TTBEON3cjs.DRUM_NOTES; exports.DRUM_PATTERNS = _chunk6TTBEON3cjs.DRUM_PATTERNS; exports.FILL_ARCHETYPES = _chunk6TTBEON3cjs.FILL_ARCHETYPES; exports.FILL_TYPES = _chunk6TTBEON3cjs.FILL_TYPES; exports.GENRES = _chunk6TTBEON3cjs.GENRES; exports.KICK_FIGURES = _chunk6TTBEON3cjs.KICK_FIGURES; exports.KICK_STEPS = _chunk6TTBEON3cjs.KICK_STEPS; exports.MAX_DIFFICULTY = _chunk6TTBEON3cjs.MAX_DIFFICULTY; exports.MIN_DIFFICULTY = _chunk6TTBEON3cjs.MIN_DIFFICULTY; exports.ORNAMENT_STYLES = _chunk6TTBEON3cjs.ORNAMENT_STYLES; exports.PROVENANCE_BASES = _chunk6TTBEON3cjs.PROVENANCE_BASES; exports.STEP_BEATS = _chunk6TTBEON3cjs.STEP_BEATS; exports.applyGrooveTemplate = _chunk6TTBEON3cjs.applyGrooveTemplate; exports.assertCompositionPlan = _chunk6TTBEON3cjs.assertCompositionPlan; exports.assertVocabulary = _chunk6TTBEON3cjs.assertVocabulary; exports.classifyMelodyTones = _chunk6TTBEON3cjs.classifyMelodyTones; exports.deform = _chunk6TTBEON3cjs.deform; exports.deriveCompositionPlan = _chunk6TTBEON3cjs.deriveCompositionPlan; exports.developMotif = _chunk6TTBEON3cjs.developMotif; exports.double = _chunk6TTBEON3cjs.double; exports.doubleTime = _chunk6TTBEON3cjs.doubleTime; exports.drumVoiceOf = _chunk6TTBEON3cjs.drumVoiceOf; exports.evaluateComposition = _chunk6TTBEON3cjs.evaluateComposition; exports.extractGrooveTemplate = _chunk6TTBEON3cjs.extractGrooveTemplate; exports.fitsQuery = _chunk6TTBEON3cjs.fitsQuery; exports.generateBassLine = _chunk6TTBEON3cjs.generateBassLine; exports.generateCounterMelody = _chunk6TTBEON3cjs.generateCounterMelody; exports.generateDrums = _chunk6TTBEON3cjs.generateDrums; exports.generateMelody = _chunk6TTBEON3cjs.generateMelody; exports.generateMotif = _chunk6TTBEON3cjs.generateMotif; exports.generateProgression = _chunk6TTBEON3cjs.generateProgression; exports.generateRhythm = _chunk6TTBEON3cjs.generateRhythm; exports.gridMetricWeight = _chunk6TTBEON3cjs.gridMetricWeight; exports.halfTime = _chunk6TTBEON3cjs.halfTime; exports.harmonizeMelody = _chunk6TTBEON3cjs.harmonizeMelody; exports.humanize = _chunk6TTBEON3cjs.humanize; exports.imitate = _chunk6TTBEON3cjs.imitate; exports.isDrumPattern = _chunk6TTBEON3cjs.isDrumPattern; exports.isFillArchetype = _chunk6TTBEON3cjs.isFillArchetype; exports.isLickMaterial = _chunk6TTBEON3cjs.isLickMaterial; exports.mergeVocabulary = _chunk6TTBEON3cjs.mergeVocabulary; exports.modalInterchangePalette = _chunk6TTBEON3cjs.modalInterchangePalette; exports.motifToNoteEvents = _chunk6TTBEON3cjs.motifToNoteEvents; exports.negativeHarmonyMirror = _chunk6TTBEON3cjs.negativeHarmonyMirror; exports.onsetWeightCurve = _chunk6TTBEON3cjs.onsetWeightCurve; exports.ornament = _chunk6TTBEON3cjs.ornament; exports.ornamentBy = _chunk6TTBEON3cjs.ornamentBy; exports.pickProgressionPreset = _chunk6TTBEON3cjs.pickProgressionPreset; exports.pickVocabulary = _chunk6TTBEON3cjs.pickVocabulary; exports.placeDrumPattern = _chunk6TTBEON3cjs.placeDrumPattern; exports.placeLicks = _chunk6TTBEON3cjs.placeLicks; exports.planTimeline = _chunk6TTBEON3cjs.planTimeline; exports.progressions = _chunk6TTBEON3cjs.progressions; exports.progressionsByStyle = _chunk6TTBEON3cjs.progressionsByStyle; exports.resolveContext = _chunk6TTBEON3cjs.resolveContext; exports.rhythmDensity = _chunk6TTBEON3cjs.rhythmDensity; exports.rhythmToNoteEvents = _chunk6TTBEON3cjs.rhythmToNoteEvents; exports.selectVocabulary = _chunk6TTBEON3cjs.selectVocabulary; exports.substituteChord = _chunk6TTBEON3cjs.substituteChord; exports.sustainsShift = _chunk6TTBEON3cjs.sustainsShift; exports.sustainsStrokes = _chunk6TTBEON3cjs.sustainsStrokes; exports.syncopate = _chunk6TTBEON3cjs.syncopate; exports.thin = _chunk6TTBEON3cjs.thin; exports.transformMotif = _chunk6TTBEON3cjs.transformMotif; exports.vocabularyOfKind = _chunk6TTBEON3cjs.vocabularyOfKind; exports.withinCeiling = _chunk6TTBEON3cjs.withinCeiling;
157
157
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/libcantus/libcantus/dist/generate/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4qIAAC","file":"/home/runner/work/libcantus/libcantus/dist/generate/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/libcantus/libcantus/ts/dist/generate/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4qIAAC","file":"/home/runner/work/libcantus/libcantus/ts/dist/generate/index.cjs"}
@@ -1,16 +1,16 @@
1
- import { b as MeterLike } from '../index-BMweUlm5.cjs';
2
- export { M as MeterChange, c as MeterMap, T as TimeSignature } from '../index-BMweUlm5.cjs';
3
- import { h as NoteEvent, a as Articulation, b as IntervalLike } from '../index-Cy15oTvh.cjs';
4
- export { I as IntervalData, c as IntervalQualityLabel, e as KeyScale, g as NoteData, S as SpelledInterval } from '../index-Cy15oTvh.cjs';
5
- import { e as ChordSegment, c as ChordLike, K as KeyLike } from '../coerce-DRERzdve.cjs';
6
- export { b as ChordData, d as ChordQuality, g as ChordSpan, i as ChordToneRole, k as KeyVariant, l as PitchSpelling, m as ProfileWeights, n as ResolvedKey, r as SpelledKeyLike, s as SpelledKeyScale } from '../coerce-DRERzdve.cjs';
7
- import { h as ChordTimeline } from '../types-D-XgxGvp.cjs';
8
- export { B as BarPositionProfile, b as BorrowedSource, e as CadenceType, F as FormSection, o as HarmonicFunction, v as MelodicContourShape, y as MotifGraph, z as MotifGraphEdge, G as MotifGraphNode, P as MotifRelationSummary, X as ReductionLevel, Y as ReferenceCadence, Z as ReferenceChord, _ as ReferenceForm, $ as ReferenceHarmony, a0 as ReferenceKeyRegion, a1 as ReferenceMelody, a2 as ReferenceMotif, a3 as ReferencePhrase, a4 as ReferencePhraseMelody, a5 as ReferenceProfile, a7 as RhythmAnalysis } from '../types-D-XgxGvp.cjs';
9
- import { f as StringedProfile, P as PercussionProfile, c as Limb } from '../positional-DMZer-FM.cjs';
10
- export { I as InstrumentProfile, a as InstrumentProfileCommon, d as PositionalRng, S as SeedPath } from '../positional-DMZer-FM.cjs';
11
- export { H as HarmonyRole } from '../index-BL5N2Oyz.cjs';
12
- import { x as Genre, w as GenerationContextInput, ah as Vocabulary, y as GridEvent, r as DrumStyle, ac as Section, s as DrumVoice, z as GrooveFeel, p as DrumHit, I as HarmonizeOptions, K as HarmonizeResult, j as CompositionPlan } from '../index-CY-3NVfy.cjs';
13
- export { B as BAR_STEPS, a as BASS_STYLES, b as BEAT_STEPS, c as BORROWED_DEGREES, d as BassLineOptions, e as BassSegment, f as BassStyle, g as BorrowedChord, C as COMPOSITION_PLAN_VERSION, h as Complexity, i as CompositionEvaluation, k as CompositionPlanOptions, l as CompositionViolation, m as CounterMelodyOptions, D as DRUM_NOTES, n as DeformOptions, o as Draw, q as DrumRole, t as DrumsOptions, E as EuclideanKick, u as EvaluateCompositionOptions, G as GENRES, v as GenerationContext, A as GrooveSlot, F as GrooveStyle, H as GrooveTemplate, J as HarmonizePlacement, L as HumanizeOptions, M as MelodyNote, N as MelodyOptions, O as MotifCell, P as MotifContour, Q as MotifNote, R as MotifOptions, S as MotifTransform, T as ORNAMENT_STYLES, U as OrnamentOptions, V as OrnamentStyle, W as PROVENANCE_BASES, X as PlannedChord, Y as PlannedMotif, Z as PlannedPhrase, _ as PlannedRhythm, $ as PlannedSection, a0 as PreserveWeights, a1 as ProgFunction, a2 as ProgStyle, a3 as ProgressionDegree, a4 as ProgressionOptions, a5 as ProgressionPreset, a6 as Provenance, a7 as ProvenanceBasis, a8 as ResolvedContext, a9 as RhythmEvent, aa as RhythmOptions, ab as STEP_BEATS, ad as SubstituteOptions, ae as Substitution, af as SubstitutionType, ag as SyncopateOptions, ai as VocabularyQuery, aj as applyGrooveTemplate, ak as assertVocabulary, al as deform, am as deriveCompositionPlan, an as developMotif, ao as double, ap as doubleTime, aq as drumVoiceOf, ar as evaluateComposition, as as extractGrooveTemplate, at as fitsQuery, au as generateBassLine, av as generateCounterMelody, aw as generateDrums, ax as generateMelody, ay as generateMotif, az as generateProgression, aA as generateRhythm, aB as gridMetricWeight, aC as halfTime, aD as humanize, aE as mergeVocabulary, aF as modalInterchangePalette, aG as motifToNoteEvents, aH as negativeHarmonyMirror, aI as onsetWeightCurve, aJ as ornament, aK as ornamentBy, aL as pickProgressionPreset, aM as pickVocabulary, aN as progressions, aO as progressionsByStyle, aP as resolveContext, aQ as rhythmDensity, aR as rhythmToNoteEvents, aS as selectVocabulary, aT as substituteChord, aU as syncopate, aV as thin, aW as transformMotif, aX as vocabularyOfKind, aY as withinCeiling } from '../index-CY-3NVfy.cjs';
1
+ import { b as MeterLike } from '../index-5VJgKz_Q.cjs';
2
+ export { M as MeterChange, c as MeterMap, T as TimeSignature } from '../index-5VJgKz_Q.cjs';
3
+ import { h as NoteEvent, a as Articulation, b as IntervalLike } from '../index-C9MYbuKS.cjs';
4
+ export { I as IntervalData, c as IntervalQualityLabel, e as KeyScale, g as NoteData, S as SpelledInterval } from '../index-C9MYbuKS.cjs';
5
+ import { e as ChordSegment, c as ChordLike, K as KeyLike } from '../coerce-Ytt2Eiq9.cjs';
6
+ export { b as ChordData, d as ChordQuality, g as ChordSpan, i as ChordToneRole, k as KeyVariant, l as PitchSpelling, m as ProfileWeights, n as ResolvedKey, r as SpelledKeyLike, s as SpelledKeyScale } from '../coerce-Ytt2Eiq9.cjs';
7
+ import { h as ChordTimeline } from '../types-_ofpb2be.cjs';
8
+ export { B as BarPositionProfile, b as BorrowedSource, e as CadenceType, F as FormSection, o as HarmonicFunction, v as MelodicContourShape, y as MotifGraph, z as MotifGraphEdge, G as MotifGraphNode, P as MotifRelationSummary, X as ReductionLevel, Y as ReferenceCadence, Z as ReferenceChord, _ as ReferenceForm, $ as ReferenceHarmony, a0 as ReferenceKeyRegion, a1 as ReferenceMelody, a2 as ReferenceMotif, a3 as ReferencePhrase, a4 as ReferencePhraseMelody, a5 as ReferenceProfile, a7 as RhythmAnalysis } from '../types-_ofpb2be.cjs';
9
+ import { f as StringedProfile, P as PercussionProfile, c as Limb } from '../positional-CscpxtlE.cjs';
10
+ export { I as InstrumentProfile, a as InstrumentProfileCommon, d as PositionalRng, S as SeedPath } from '../positional-CscpxtlE.cjs';
11
+ export { H as HarmonyRole } from '../index-BkT21EMv.cjs';
12
+ import { x as Genre, w as GenerationContextInput, ah as Vocabulary, y as GridEvent, r as DrumStyle, ac as Section, s as DrumVoice, z as GrooveFeel, p as DrumHit, I as HarmonizeOptions, K as HarmonizeResult, j as CompositionPlan } from '../index-DVInzCDS.cjs';
13
+ export { B as BAR_STEPS, a as BASS_STYLES, b as BEAT_STEPS, c as BORROWED_DEGREES, d as BassLineOptions, e as BassSegment, f as BassStyle, g as BorrowedChord, C as COMPOSITION_PLAN_VERSION, h as Complexity, i as CompositionEvaluation, k as CompositionPlanOptions, l as CompositionViolation, m as CounterMelodyOptions, D as DRUM_NOTES, n as DeformOptions, o as Draw, q as DrumRole, t as DrumsOptions, E as EuclideanKick, u as EvaluateCompositionOptions, G as GENRES, v as GenerationContext, A as GrooveSlot, F as GrooveStyle, H as GrooveTemplate, J as HarmonizePlacement, L as HumanizeOptions, M as MelodyNote, N as MelodyOptions, O as MotifCell, P as MotifContour, Q as MotifNote, R as MotifOptions, S as MotifTransform, T as ORNAMENT_STYLES, U as OrnamentOptions, V as OrnamentStyle, W as PROVENANCE_BASES, X as PlannedChord, Y as PlannedMotif, Z as PlannedPhrase, _ as PlannedRhythm, $ as PlannedSection, a0 as PreserveWeights, a1 as ProgFunction, a2 as ProgStyle, a3 as ProgressionDegree, a4 as ProgressionOptions, a5 as ProgressionPreset, a6 as Provenance, a7 as ProvenanceBasis, a8 as ResolvedContext, a9 as RhythmEvent, aa as RhythmOptions, ab as STEP_BEATS, ad as SubstituteOptions, ae as Substitution, af as SubstitutionType, ag as SyncopateOptions, ai as VocabularyQuery, aj as applyGrooveTemplate, ak as assertVocabulary, al as deform, am as deriveCompositionPlan, an as developMotif, ao as double, ap as doubleTime, aq as drumVoiceOf, ar as evaluateComposition, as as extractGrooveTemplate, at as fitsQuery, au as generateBassLine, av as generateCounterMelody, aw as generateDrums, ax as generateMelody, ay as generateMotif, az as generateProgression, aA as generateRhythm, aB as gridMetricWeight, aC as halfTime, aD as humanize, aE as mergeVocabulary, aF as modalInterchangePalette, aG as motifToNoteEvents, aH as negativeHarmonyMirror, aI as onsetWeightCurve, aJ as ornament, aK as ornamentBy, aL as pickProgressionPreset, aM as pickVocabulary, aN as progressions, aO as progressionsByStyle, aP as resolveContext, aQ as rhythmDensity, aR as rhythmToNoteEvents, aS as selectVocabulary, aT as substituteChord, aU as syncopate, aV as thin, aW as transformMotif, aX as vocabularyOfKind, aY as withinCeiling } from '../index-DVInzCDS.cjs';
14
14
 
15
15
  /**
16
16
  * The playing-difficulty ceiling, as the generators apply it.
@@ -294,7 +294,8 @@ type ImitationOptions = {
294
294
  * `interval`: literally for a real answer, by scale degree for a tonal one, and
295
295
  * upside down first when `invert` is set. Inversion mirrors about the first note
296
296
  * of the copied span, so the answer starts where the transposition puts that
297
- * note either way. In a tonal answer a pitch outside the key keeps its distance
297
+ * note either way, whether or not it is in the key. In a tonal answer a pitch
298
+ * outside the key keeps its distance
298
299
  * from the scale tone below it, and inversion mirrors that distance too — a
299
300
  * chromatic passing note stays a chromatic passing note, on the other side.
300
301
  * Where a mirrored chromatic note falls into a diatonic semitone the key leaves
@@ -333,6 +334,8 @@ declare function imitate(lead: readonly NoteEvent[], opts: ImitationOptions): No
333
334
  declare const FILL_TYPES: readonly ["snareRoll", "tomDescend", "tomAscend", "snareTomCombo", "simpleCrash", "linearFill", "ghostToAccent", "bdSnareAlternate", "hiHatChoke", "tomShuffle", "breakdownFill", "flamsAndDrags", "halfTimeFill"];
334
335
  /** The thirteen fill archetypes for section transitions. */
335
336
  type FillType = (typeof FILL_TYPES)[number];
337
+ /** The bases a fill stroke's velocity is read against, in declaration order. */
338
+ declare const FILL_VELOCITY_BASES: readonly ["fill", "accent"];
336
339
  /**
337
340
  * How loud one stroke of a fill is.
338
341
  *
@@ -343,7 +346,7 @@ type FillType = (typeof FILL_TYPES)[number];
343
346
  * arithmetic at every beat line falls back in the middle of itself.
344
347
  */
345
348
  type FillVelocity = {
346
- base: 'fill' | 'accent';
349
+ base: (typeof FILL_VELOCITY_BASES)[number];
347
350
  /** Factor on the base, for a crescendo or a ghosted stroke. */
348
351
  scale?: number;
349
352
  /** Fixed offset in MIDI velocity, for a stroke a little above or below. */
@@ -652,7 +655,11 @@ type ClassifiedMelodyTone = {
652
655
  * predecessor and successor has no figure to belong to and stays structural, so
653
656
  * the first and last notes of a phrase are always structural.
654
657
  *
655
- * @param melody The melody, in ascending onset order.
658
+ * The notes are read in onset order, ties by pitch, whatever order they are
659
+ * listed in. A note of zero length sounds nothing: it is structural and is no
660
+ * other note's neighbour.
661
+ *
662
+ * @param melody The melody, in any order.
656
663
  * @param ts Time signature used to weight metric accents.
657
664
  * @returns One classification per input note, in input order.
658
665
  * @example
@@ -688,7 +695,9 @@ declare function classifyMelodyTones(melody: readonly NoteEvent[], ts: MeterLike
688
695
  * the grid.
689
696
  *
690
697
  * With `placement.transposeSearch` the melody is moved into the key it is
691
- * harmonized in, and `transposeSemitones` reports how far; with
698
+ * harmonized in, and `transposeSemitones` reports how far: the shifts that
699
+ * leave the fewest beats of the melody outside the key are kept, and the
700
+ * harmonization cost and the register choose among them; with
692
701
  * `placement.octaveSearch` it is moved by octaves into a comfortable register,
693
702
  * which leaves the key and the chords untouched. Both may be set, and the
694
703
  * reported shift is their sum.
@@ -795,4 +804,5 @@ declare function planTimeline(plan: CompositionPlan): ChordTimeline;
795
804
  */
796
805
  declare function assertCompositionPlan(value: unknown, name?: string): CompositionPlan;
797
806
 
798
- export { Articulation, BASS_LICKS, type BassLick, ChordLike, ChordSegment, ChordTimeline, type ClassifiedMelodyTone, CompositionPlan, DRUM_KIT, DRUM_PATTERNS, DrumHit, type DrumPattern, type DrumPatternOptions, type DrumStroke, DrumStyle, type DrumVocabulary, DrumVoice, FILL_ARCHETYPES, FILL_TYPES, type FillArchetype, type FillStroke, type FillType, type FillVelocity, GenerationContextInput, Genre, GridEvent, GrooveFeel, HarmonizeOptions, HarmonizeResult, type ImitationAnswer, type ImitationOptions, IntervalLike, KICK_FIGURES, KICK_STEPS, KeyLike, type KickFigure, type KickPattern, type KickSlot, type LickMaterial, type LickNote, Limb, MAX_DIFFICULTY, MIN_DIFFICULTY, type MelodyToneRole, MeterLike, NoteEvent, PercussionProfile, type PlaceLicksOptions, Section, StringedProfile, Vocabulary, assertCompositionPlan, classifyMelodyTones, harmonizeMelody, imitate, isDrumPattern, isFillArchetype, isLickMaterial, placeDrumPattern, placeLicks, planTimeline, sustainsShift, sustainsStrokes };
807
+ export { Articulation, BASS_LICKS, ChordLike, ChordSegment, ChordTimeline, CompositionPlan, DRUM_KIT, DRUM_PATTERNS, DrumHit, DrumStyle, DrumVoice, FILL_ARCHETYPES, FILL_TYPES, GenerationContextInput, Genre, GridEvent, GrooveFeel, HarmonizeOptions, HarmonizeResult, IntervalLike, KICK_FIGURES, KICK_STEPS, KeyLike, Limb, MAX_DIFFICULTY, MIN_DIFFICULTY, MeterLike, NoteEvent, PercussionProfile, Section, StringedProfile, Vocabulary, assertCompositionPlan, classifyMelodyTones, harmonizeMelody, imitate, isDrumPattern, isFillArchetype, isLickMaterial, placeDrumPattern, placeLicks, planTimeline, sustainsShift, sustainsStrokes };
808
+ export type { BassLick, ClassifiedMelodyTone, DrumPattern, DrumPatternOptions, DrumStroke, DrumVocabulary, FillArchetype, FillStroke, FillType, FillVelocity, ImitationAnswer, ImitationOptions, KickFigure, KickPattern, KickSlot, LickMaterial, LickNote, MelodyToneRole, PlaceLicksOptions };