playlist-data-engine 1.1.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 (345) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +352 -0
  3. package/dist/__vite-browser-external-DYxpcVy9.js +4 -0
  4. package/dist/constants/DefaultClasses.d.ts +46 -0
  5. package/dist/constants/DefaultClasses.d.ts.map +1 -0
  6. package/dist/constants/DefaultEnchantments.d.ts +337 -0
  7. package/dist/constants/DefaultEnchantments.d.ts.map +1 -0
  8. package/dist/constants/DefaultEnemies.d.ts +83 -0
  9. package/dist/constants/DefaultEnemies.d.ts.map +1 -0
  10. package/dist/constants/DefaultEquipment.d.ts +23 -0
  11. package/dist/constants/DefaultEquipment.d.ts.map +1 -0
  12. package/dist/constants/DefaultFeatures.d.ts +22 -0
  13. package/dist/constants/DefaultFeatures.d.ts.map +1 -0
  14. package/dist/constants/DefaultRaces.d.ts +102 -0
  15. package/dist/constants/DefaultRaces.d.ts.map +1 -0
  16. package/dist/constants/DefaultSkills.d.ts +26 -0
  17. package/dist/constants/DefaultSkills.d.ts.map +1 -0
  18. package/dist/constants/DefaultSpells.d.ts +41 -0
  19. package/dist/constants/DefaultSpells.d.ts.map +1 -0
  20. package/dist/constants/EncounterBalance.d.ts +208 -0
  21. package/dist/constants/EncounterBalance.d.ts.map +1 -0
  22. package/dist/constants/EnemyEquipment.d.ts +71 -0
  23. package/dist/constants/EnemyEquipment.d.ts.map +1 -0
  24. package/dist/constants/EnemyRarity.d.ts +79 -0
  25. package/dist/constants/EnemyRarity.d.ts.map +1 -0
  26. package/dist/constants/EnemyTemplates/Construct.d.ts +63 -0
  27. package/dist/constants/EnemyTemplates/Construct.d.ts.map +1 -0
  28. package/dist/constants/EnemyTemplates/Dragon.d.ts +68 -0
  29. package/dist/constants/EnemyTemplates/Dragon.d.ts.map +1 -0
  30. package/dist/constants/EnemyTemplates/Elemental.d.ts +64 -0
  31. package/dist/constants/EnemyTemplates/Elemental.d.ts.map +1 -0
  32. package/dist/constants/EnemyTemplates/Fiend.d.ts +62 -0
  33. package/dist/constants/EnemyTemplates/Fiend.d.ts.map +1 -0
  34. package/dist/constants/EnemyTemplates/Monstrosity.d.ts +63 -0
  35. package/dist/constants/EnemyTemplates/Monstrosity.d.ts.map +1 -0
  36. package/dist/constants/EnemyTemplates/Undead.d.ts +61 -0
  37. package/dist/constants/EnemyTemplates/Undead.d.ts.map +1 -0
  38. package/dist/constants/ItemTemplates.d.ts +40 -0
  39. package/dist/constants/ItemTemplates.d.ts.map +1 -0
  40. package/dist/constants/MagicItems.d.ts +30 -0
  41. package/dist/constants/MagicItems.d.ts.map +1 -0
  42. package/dist/constants/SpellSlots.d.ts +30 -0
  43. package/dist/constants/SpellSlots.d.ts.map +1 -0
  44. package/dist/constants/StatScaling.d.ts +113 -0
  45. package/dist/constants/StatScaling.d.ts.map +1 -0
  46. package/dist/core/analysis/AudioAnalyzer.d.ts +599 -0
  47. package/dist/core/analysis/AudioAnalyzer.d.ts.map +1 -0
  48. package/dist/core/analysis/ColorExtractor.d.ts +64 -0
  49. package/dist/core/analysis/ColorExtractor.d.ts.map +1 -0
  50. package/dist/core/analysis/EssentiaPitchDetector.d.ts +282 -0
  51. package/dist/core/analysis/EssentiaPitchDetector.d.ts.map +1 -0
  52. package/dist/core/analysis/LevelSerializer.d.ts +265 -0
  53. package/dist/core/analysis/LevelSerializer.d.ts.map +1 -0
  54. package/dist/core/analysis/MelodyContourAnalyzer.d.ts +283 -0
  55. package/dist/core/analysis/MelodyContourAnalyzer.d.ts.map +1 -0
  56. package/dist/core/analysis/MultiBandAnalyzer.d.ts +214 -0
  57. package/dist/core/analysis/MultiBandAnalyzer.d.ts.map +1 -0
  58. package/dist/core/analysis/MusicClassifier.d.ts +524 -0
  59. package/dist/core/analysis/MusicClassifier.d.ts.map +1 -0
  60. package/dist/core/analysis/PitchAnalyzer.d.ts +266 -0
  61. package/dist/core/analysis/PitchAnalyzer.d.ts.map +1 -0
  62. package/dist/core/analysis/PitchDetector.d.ts +251 -0
  63. package/dist/core/analysis/PitchDetector.d.ts.map +1 -0
  64. package/dist/core/analysis/SpectrumScanner.d.ts +52 -0
  65. package/dist/core/analysis/SpectrumScanner.d.ts.map +1 -0
  66. package/dist/core/analysis/beat/BeatInterpolator.d.ts +477 -0
  67. package/dist/core/analysis/beat/BeatInterpolator.d.ts.map +1 -0
  68. package/dist/core/analysis/beat/BeatMapGenerator.d.ts +170 -0
  69. package/dist/core/analysis/beat/BeatMapGenerator.d.ts.map +1 -0
  70. package/dist/core/analysis/beat/BeatStream.d.ts +316 -0
  71. package/dist/core/analysis/beat/BeatStream.d.ts.map +1 -0
  72. package/dist/core/analysis/beat/BeatSubdivider.d.ts +205 -0
  73. package/dist/core/analysis/beat/BeatSubdivider.d.ts.map +1 -0
  74. package/dist/core/analysis/beat/BeatTracker.d.ts +137 -0
  75. package/dist/core/analysis/beat/BeatTracker.d.ts.map +1 -0
  76. package/dist/core/analysis/beat/CompositeStreamGenerator.d.ts +180 -0
  77. package/dist/core/analysis/beat/CompositeStreamGenerator.d.ts.map +1 -0
  78. package/dist/core/analysis/beat/DensityAnalyzer.d.ts +246 -0
  79. package/dist/core/analysis/beat/DensityAnalyzer.d.ts.map +1 -0
  80. package/dist/core/analysis/beat/DifficultyVariantGenerator.d.ts +1082 -0
  81. package/dist/core/analysis/beat/DifficultyVariantGenerator.d.ts.map +1 -0
  82. package/dist/core/analysis/beat/GrooveAnalyzer.d.ts +192 -0
  83. package/dist/core/analysis/beat/GrooveAnalyzer.d.ts.map +1 -0
  84. package/dist/core/analysis/beat/OnsetStrengthEnvelope.d.ts +133 -0
  85. package/dist/core/analysis/beat/OnsetStrengthEnvelope.d.ts.map +1 -0
  86. package/dist/core/analysis/beat/PhraseAnalyzer.d.ts +230 -0
  87. package/dist/core/analysis/beat/PhraseAnalyzer.d.ts.map +1 -0
  88. package/dist/core/analysis/beat/RhythmQuantizer.d.ts +399 -0
  89. package/dist/core/analysis/beat/RhythmQuantizer.d.ts.map +1 -0
  90. package/dist/core/analysis/beat/RhythmicBalancer.d.ts +262 -0
  91. package/dist/core/analysis/beat/RhythmicBalancer.d.ts.map +1 -0
  92. package/dist/core/analysis/beat/StreamScorer.d.ts +275 -0
  93. package/dist/core/analysis/beat/StreamScorer.d.ts.map +1 -0
  94. package/dist/core/analysis/beat/TempoAwareQuantizer.d.ts +256 -0
  95. package/dist/core/analysis/beat/TempoAwareQuantizer.d.ts.map +1 -0
  96. package/dist/core/analysis/beat/TempoDetector.d.ts +220 -0
  97. package/dist/core/analysis/beat/TempoDetector.d.ts.map +1 -0
  98. package/dist/core/analysis/beat/TransientDetector.d.ts +303 -0
  99. package/dist/core/analysis/beat/TransientDetector.d.ts.map +1 -0
  100. package/dist/core/analysis/beat/beatKeyHelpers.d.ts +180 -0
  101. package/dist/core/analysis/beat/beatKeyHelpers.d.ts.map +1 -0
  102. package/dist/core/analysis/beat/index.d.ts +41 -0
  103. package/dist/core/analysis/beat/index.d.ts.map +1 -0
  104. package/dist/core/analysis/beat/utils/audioUtils.d.ts +204 -0
  105. package/dist/core/analysis/beat/utils/audioUtils.d.ts.map +1 -0
  106. package/dist/core/analysis/beat/utils/beatInterpolationDebug.d.ts +404 -0
  107. package/dist/core/analysis/beat/utils/beatInterpolationDebug.d.ts.map +1 -0
  108. package/dist/core/analysis/beat/utils/subdivideBeatMap.d.ts +61 -0
  109. package/dist/core/analysis/beat/utils/subdivideBeatMap.d.ts.map +1 -0
  110. package/dist/core/analysis/beat/utils/unifyBeatMap.d.ts +33 -0
  111. package/dist/core/analysis/beat/utils/unifyBeatMap.d.ts.map +1 -0
  112. package/dist/core/analysis/index.d.ts +18 -0
  113. package/dist/core/analysis/index.d.ts.map +1 -0
  114. package/dist/core/combat/AI/AICombatRunner.d.ts +108 -0
  115. package/dist/core/combat/AI/AICombatRunner.d.ts.map +1 -0
  116. package/dist/core/combat/AI/CombatAI.d.ts +179 -0
  117. package/dist/core/combat/AI/CombatAI.d.ts.map +1 -0
  118. package/dist/core/combat/AI/CombatMetricsTracker.d.ts +30 -0
  119. package/dist/core/combat/AI/CombatMetricsTracker.d.ts.map +1 -0
  120. package/dist/core/combat/Analysis/BalanceValidator.d.ts +170 -0
  121. package/dist/core/combat/Analysis/BalanceValidator.d.ts.map +1 -0
  122. package/dist/core/combat/Analysis/ComparativeAnalyzer.d.ts +231 -0
  123. package/dist/core/combat/Analysis/ComparativeAnalyzer.d.ts.map +1 -0
  124. package/dist/core/combat/Analysis/DifficultyCalculator.d.ts +203 -0
  125. package/dist/core/combat/Analysis/DifficultyCalculator.d.ts.map +1 -0
  126. package/dist/core/combat/Analysis/ParameterSweep.d.ts +201 -0
  127. package/dist/core/combat/Analysis/ParameterSweep.d.ts.map +1 -0
  128. package/dist/core/combat/AttackResolver.d.ts +220 -0
  129. package/dist/core/combat/AttackResolver.d.ts.map +1 -0
  130. package/dist/core/combat/CombatEngine.d.ts +388 -0
  131. package/dist/core/combat/CombatEngine.d.ts.map +1 -0
  132. package/dist/core/combat/DiceRoller.d.ts +115 -0
  133. package/dist/core/combat/DiceRoller.d.ts.map +1 -0
  134. package/dist/core/combat/InitiativeRoller.d.ts +62 -0
  135. package/dist/core/combat/InitiativeRoller.d.ts.map +1 -0
  136. package/dist/core/combat/PartyAnalyzer.d.ts +215 -0
  137. package/dist/core/combat/PartyAnalyzer.d.ts.map +1 -0
  138. package/dist/core/combat/SeededDiceRoller.d.ts +120 -0
  139. package/dist/core/combat/SeededDiceRoller.d.ts.map +1 -0
  140. package/dist/core/combat/Simulation/CombatSimulator.d.ts +366 -0
  141. package/dist/core/combat/Simulation/CombatSimulator.d.ts.map +1 -0
  142. package/dist/core/combat/SpellCaster.d.ts +113 -0
  143. package/dist/core/combat/SpellCaster.d.ts.map +1 -0
  144. package/dist/core/config/index.d.ts +24 -0
  145. package/dist/core/config/index.d.ts.map +1 -0
  146. package/dist/core/config/progressionConfig.d.ts +73 -0
  147. package/dist/core/config/progressionConfig.d.ts.map +1 -0
  148. package/dist/core/config/sensorConfig.d.ts +134 -0
  149. package/dist/core/config/sensorConfig.d.ts.map +1 -0
  150. package/dist/core/equipment/BoxOpener.d.ts +175 -0
  151. package/dist/core/equipment/BoxOpener.d.ts.map +1 -0
  152. package/dist/core/equipment/EquipmentEffectApplier.d.ts +189 -0
  153. package/dist/core/equipment/EquipmentEffectApplier.d.ts.map +1 -0
  154. package/dist/core/equipment/EquipmentModifier.d.ts +327 -0
  155. package/dist/core/equipment/EquipmentModifier.d.ts.map +1 -0
  156. package/dist/core/equipment/EquipmentSpawnHelper.d.ts +246 -0
  157. package/dist/core/equipment/EquipmentSpawnHelper.d.ts.map +1 -0
  158. package/dist/core/equipment/EquipmentValidator.d.ts +173 -0
  159. package/dist/core/equipment/EquipmentValidator.d.ts.map +1 -0
  160. package/dist/core/extensions/ExtensionManager.d.ts +517 -0
  161. package/dist/core/extensions/ExtensionManager.d.ts.map +1 -0
  162. package/dist/core/extensions/WeightedSelector.d.ts +156 -0
  163. package/dist/core/extensions/WeightedSelector.d.ts.map +1 -0
  164. package/dist/core/extensions/index.d.ts +11 -0
  165. package/dist/core/extensions/index.d.ts.map +1 -0
  166. package/dist/core/extensions/initializeDefaults.d.ts +170 -0
  167. package/dist/core/extensions/initializeDefaults.d.ts.map +1 -0
  168. package/dist/core/features/FeatureEffectApplier.d.ts +102 -0
  169. package/dist/core/features/FeatureEffectApplier.d.ts.map +1 -0
  170. package/dist/core/features/FeatureQuery.d.ts +368 -0
  171. package/dist/core/features/FeatureQuery.d.ts.map +1 -0
  172. package/dist/core/features/FeatureTypes.d.ts +199 -0
  173. package/dist/core/features/FeatureTypes.d.ts.map +1 -0
  174. package/dist/core/features/FeatureValidator.d.ts +149 -0
  175. package/dist/core/features/FeatureValidator.d.ts.map +1 -0
  176. package/dist/core/features/index.d.ts +12 -0
  177. package/dist/core/features/index.d.ts.map +1 -0
  178. package/dist/core/generation/AbilityScoreCalculator.d.ts +83 -0
  179. package/dist/core/generation/AbilityScoreCalculator.d.ts.map +1 -0
  180. package/dist/core/generation/AppearanceGenerator.d.ts +32 -0
  181. package/dist/core/generation/AppearanceGenerator.d.ts.map +1 -0
  182. package/dist/core/generation/BeatConverter.d.ts +127 -0
  183. package/dist/core/generation/BeatConverter.d.ts.map +1 -0
  184. package/dist/core/generation/ButtonMapper.d.ts +346 -0
  185. package/dist/core/generation/ButtonMapper.d.ts.map +1 -0
  186. package/dist/core/generation/ButtonPatternLibrary.d.ts +92 -0
  187. package/dist/core/generation/ButtonPatternLibrary.d.ts.map +1 -0
  188. package/dist/core/generation/CRLevelConverter.d.ts +242 -0
  189. package/dist/core/generation/CRLevelConverter.d.ts.map +1 -0
  190. package/dist/core/generation/CharacterGenerator.d.ts +194 -0
  191. package/dist/core/generation/CharacterGenerator.d.ts.map +1 -0
  192. package/dist/core/generation/ClassSuggester.d.ts +184 -0
  193. package/dist/core/generation/ClassSuggester.d.ts.map +1 -0
  194. package/dist/core/generation/EnemyEquipmentGenerator.d.ts +151 -0
  195. package/dist/core/generation/EnemyEquipmentGenerator.d.ts.map +1 -0
  196. package/dist/core/generation/EnemyGenerator.d.ts +595 -0
  197. package/dist/core/generation/EnemyGenerator.d.ts.map +1 -0
  198. package/dist/core/generation/EquipmentGenerator.d.ts +204 -0
  199. package/dist/core/generation/EquipmentGenerator.d.ts.map +1 -0
  200. package/dist/core/generation/LegendaryGenerator.d.ts +213 -0
  201. package/dist/core/generation/LegendaryGenerator.d.ts.map +1 -0
  202. package/dist/core/generation/LevelGenerator.d.ts +390 -0
  203. package/dist/core/generation/LevelGenerator.d.ts.map +1 -0
  204. package/dist/core/generation/NamingEngine.d.ts +136 -0
  205. package/dist/core/generation/NamingEngine.d.ts.map +1 -0
  206. package/dist/core/generation/PitchBeatLinker.d.ts +150 -0
  207. package/dist/core/generation/PitchBeatLinker.d.ts.map +1 -0
  208. package/dist/core/generation/RaceSelector.d.ts +58 -0
  209. package/dist/core/generation/RaceSelector.d.ts.map +1 -0
  210. package/dist/core/generation/RhythmGenerator.d.ts +597 -0
  211. package/dist/core/generation/RhythmGenerator.d.ts.map +1 -0
  212. package/dist/core/generation/SkillAssigner.d.ts +78 -0
  213. package/dist/core/generation/SkillAssigner.d.ts.map +1 -0
  214. package/dist/core/generation/SpellManager.d.ts +132 -0
  215. package/dist/core/generation/SpellManager.d.ts.map +1 -0
  216. package/dist/core/generation/SpellcastingGenerator.d.ts +255 -0
  217. package/dist/core/generation/SpellcastingGenerator.d.ts.map +1 -0
  218. package/dist/core/generation/index.d.ts +41 -0
  219. package/dist/core/generation/index.d.ts.map +1 -0
  220. package/dist/core/parser/MetadataExtractor.d.ts +66 -0
  221. package/dist/core/parser/MetadataExtractor.d.ts.map +1 -0
  222. package/dist/core/parser/PlaylistParser.d.ts +45 -0
  223. package/dist/core/parser/PlaylistParser.d.ts.map +1 -0
  224. package/dist/core/playback/SubdivisionPlaybackController.d.ts +333 -0
  225. package/dist/core/playback/SubdivisionPlaybackController.d.ts.map +1 -0
  226. package/dist/core/playback/index.d.ts +5 -0
  227. package/dist/core/playback/index.d.ts.map +1 -0
  228. package/dist/core/progression/CharacterUpdater.d.ts +203 -0
  229. package/dist/core/progression/CharacterUpdater.d.ts.map +1 -0
  230. package/dist/core/progression/LevelUpProcessor.d.ts +234 -0
  231. package/dist/core/progression/LevelUpProcessor.d.ts.map +1 -0
  232. package/dist/core/progression/PrestigeSystem.d.ts +217 -0
  233. package/dist/core/progression/PrestigeSystem.d.ts.map +1 -0
  234. package/dist/core/progression/RhythmXPCalculator.d.ts +182 -0
  235. package/dist/core/progression/RhythmXPCalculator.d.ts.map +1 -0
  236. package/dist/core/progression/SessionTracker.d.ts +169 -0
  237. package/dist/core/progression/SessionTracker.d.ts.map +1 -0
  238. package/dist/core/progression/XPCalculator.d.ts +128 -0
  239. package/dist/core/progression/XPCalculator.d.ts.map +1 -0
  240. package/dist/core/progression/stat/StatIncreaseStrategy.d.ts +97 -0
  241. package/dist/core/progression/stat/StatIncreaseStrategy.d.ts.map +1 -0
  242. package/dist/core/progression/stat/StatManager.d.ts +179 -0
  243. package/dist/core/progression/stat/StatManager.d.ts.map +1 -0
  244. package/dist/core/sensors/EnvironmentalSensors.d.ts +301 -0
  245. package/dist/core/sensors/EnvironmentalSensors.d.ts.map +1 -0
  246. package/dist/core/sensors/GamingPlatformSensors.d.ts +162 -0
  247. package/dist/core/sensors/GamingPlatformSensors.d.ts.map +1 -0
  248. package/dist/core/sensors/GeolocationProvider.d.ts +156 -0
  249. package/dist/core/sensors/GeolocationProvider.d.ts.map +1 -0
  250. package/dist/core/sensors/MotionDetector.d.ts +58 -0
  251. package/dist/core/sensors/MotionDetector.d.ts.map +1 -0
  252. package/dist/core/sensors/SteamAPIClient.d.ts +108 -0
  253. package/dist/core/sensors/SteamAPIClient.d.ts.map +1 -0
  254. package/dist/core/sensors/WeatherAPIClient.d.ts +360 -0
  255. package/dist/core/sensors/WeatherAPIClient.d.ts.map +1 -0
  256. package/dist/core/sensors/schemas/weather.schema.d.ts +144 -0
  257. package/dist/core/sensors/schemas/weather.schema.d.ts.map +1 -0
  258. package/dist/core/skills/SkillQuery.d.ts +159 -0
  259. package/dist/core/skills/SkillQuery.d.ts.map +1 -0
  260. package/dist/core/skills/SkillTypes.d.ts +233 -0
  261. package/dist/core/skills/SkillTypes.d.ts.map +1 -0
  262. package/dist/core/skills/SkillValidator.d.ts +146 -0
  263. package/dist/core/skills/SkillValidator.d.ts.map +1 -0
  264. package/dist/core/skills/index.d.ts +11 -0
  265. package/dist/core/skills/index.d.ts.map +1 -0
  266. package/dist/core/spells/SpellQuery.d.ts +194 -0
  267. package/dist/core/spells/SpellQuery.d.ts.map +1 -0
  268. package/dist/core/spells/SpellTypes.d.ts +71 -0
  269. package/dist/core/spells/SpellTypes.d.ts.map +1 -0
  270. package/dist/core/spells/SpellValidator.d.ts +129 -0
  271. package/dist/core/spells/SpellValidator.d.ts.map +1 -0
  272. package/dist/core/spells/index.d.ts +11 -0
  273. package/dist/core/spells/index.d.ts.map +1 -0
  274. package/dist/core/types/AudioProfile.d.ts +143 -0
  275. package/dist/core/types/AudioProfile.d.ts.map +1 -0
  276. package/dist/core/types/BeatMap.d.ts +1825 -0
  277. package/dist/core/types/BeatMap.d.ts.map +1 -0
  278. package/dist/core/types/ButtonMapping.d.ts +345 -0
  279. package/dist/core/types/ButtonMapping.d.ts.map +1 -0
  280. package/dist/core/types/Character.d.ts +397 -0
  281. package/dist/core/types/Character.d.ts.map +1 -0
  282. package/dist/core/types/ChartedBeatMap.d.ts +169 -0
  283. package/dist/core/types/ChartedBeatMap.d.ts.map +1 -0
  284. package/dist/core/types/Combat.d.ts +268 -0
  285. package/dist/core/types/Combat.d.ts.map +1 -0
  286. package/dist/core/types/CombatAI.d.ts +143 -0
  287. package/dist/core/types/CombatAI.d.ts.map +1 -0
  288. package/dist/core/types/Enemy.d.ts +447 -0
  289. package/dist/core/types/Enemy.d.ts.map +1 -0
  290. package/dist/core/types/Environmental.d.ts +213 -0
  291. package/dist/core/types/Environmental.d.ts.map +1 -0
  292. package/dist/core/types/Equipment.d.ts +309 -0
  293. package/dist/core/types/Equipment.d.ts.map +1 -0
  294. package/dist/core/types/ISessionTracker.d.ts +48 -0
  295. package/dist/core/types/ISessionTracker.d.ts.map +1 -0
  296. package/dist/core/types/LevelExport.d.ts +366 -0
  297. package/dist/core/types/LevelExport.d.ts.map +1 -0
  298. package/dist/core/types/Playlist.d.ts +70 -0
  299. package/dist/core/types/Playlist.d.ts.map +1 -0
  300. package/dist/core/types/Prestige.d.ts +94 -0
  301. package/dist/core/types/Prestige.d.ts.map +1 -0
  302. package/dist/core/types/Progression.d.ts +214 -0
  303. package/dist/core/types/Progression.d.ts.map +1 -0
  304. package/dist/core/types/RhythmXP.d.ts +398 -0
  305. package/dist/core/types/RhythmXP.d.ts.map +1 -0
  306. package/dist/core/utils/AbilityConstants.d.ts +31 -0
  307. package/dist/core/utils/AbilityConstants.d.ts.map +1 -0
  308. package/dist/core/utils/EffectApplierUtils.d.ts +56 -0
  309. package/dist/core/utils/EffectApplierUtils.d.ts.map +1 -0
  310. package/dist/core/utils/ImageValidator.d.ts +66 -0
  311. package/dist/core/utils/ImageValidator.d.ts.map +1 -0
  312. package/dist/core/utils/PrerequisiteValidator.d.ts +88 -0
  313. package/dist/core/utils/PrerequisiteValidator.d.ts.map +1 -0
  314. package/dist/essentia-wasm.es-BUEnKUts.js +2990 -0
  315. package/dist/essentia.js-model.es-CGA0xotH.js +306 -0
  316. package/dist/index.d.ts +176 -0
  317. package/dist/index.d.ts.map +1 -0
  318. package/dist/playlist-data-engine.js +124 -0
  319. package/dist/playlist-data-engine.mjs +49251 -0
  320. package/dist/utils/EnchantmentLibrary.d.ts +378 -0
  321. package/dist/utils/EnchantmentLibrary.d.ts.map +1 -0
  322. package/dist/utils/arweaveGatewayManager.d.ts +485 -0
  323. package/dist/utils/arweaveGatewayManager.d.ts.map +1 -0
  324. package/dist/utils/arweaveUtils.d.ts +118 -0
  325. package/dist/utils/arweaveUtils.d.ts.map +1 -0
  326. package/dist/utils/constants.d.ts +439 -0
  327. package/dist/utils/constants.d.ts.map +1 -0
  328. package/dist/utils/equipmentConstants.d.ts +60 -0
  329. package/dist/utils/equipmentConstants.d.ts.map +1 -0
  330. package/dist/utils/hash.d.ts +33 -0
  331. package/dist/utils/hash.d.ts.map +1 -0
  332. package/dist/utils/logger.d.ts +192 -0
  333. package/dist/utils/logger.d.ts.map +1 -0
  334. package/dist/utils/magicItemExamples.d.ts +46 -0
  335. package/dist/utils/magicItemExamples.d.ts.map +1 -0
  336. package/dist/utils/playlistUtils.d.ts +149 -0
  337. package/dist/utils/playlistUtils.d.ts.map +1 -0
  338. package/dist/utils/random.d.ts +34 -0
  339. package/dist/utils/random.d.ts.map +1 -0
  340. package/dist/utils/sensorDashboard.d.ts +60 -0
  341. package/dist/utils/sensorDashboard.d.ts.map +1 -0
  342. package/dist/utils/validators.d.ts +189 -0
  343. package/dist/utils/validators.d.ts.map +1 -0
  344. package/dist/vite.svg +1 -0
  345. package/package.json +82 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PitchBeatLinker.d.ts","sourceRoot":"","sources":["../../../src/core/generation/PitchBeatLinker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Race Selector - Deterministic race selection with extensibility support
3
+ * Based on specs/001-core-engine/SPEC.md
4
+ */
5
+ import type { Race } from '../types/Character.js';
6
+ import { SeededRNG } from '../../utils/random.js';
7
+ /**
8
+ * Select character races deterministically from seeded random selection
9
+ *
10
+ * Supports the extensibility system:
11
+ * - Custom races can be registered via ExtensionManager
12
+ * - Spawn rates can be customized per race
13
+ * - Relative and absolute selection modes supported
14
+ */
15
+ export declare class RaceSelector {
16
+ /**
17
+ * Select a random race deterministically from seeded RNG
18
+ *
19
+ * Selects from available races (default 9 D&D 5e races plus any custom races):
20
+ * - Default: Dwarf, Elf, Halfling, Human, Dragonborn, Gnome, Half-Elf, Half-Orc, Tiefling
21
+ * - Custom: Any races registered via ExtensionManager
22
+ *
23
+ * Uses weighted selection with spawn rate control:
24
+ * - Equal weights by default (all races equally likely)
25
+ * - Custom weights can be set via ExtensionManager.setWeights('races', weights)
26
+ *
27
+ * Same seed always selects the same race.
28
+ *
29
+ * @param {SeededRNG} rng - Seeded random number generator
30
+ * @returns {Race} Selected race
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const rng = new SeededRNG('my-seed-123');
35
+ * const race = RaceSelector.select(rng); // Always selects same race for same seed
36
+ * ```
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * // With custom spawn weights
41
+ * const manager = ExtensionManager.getInstance();
42
+ * manager.setWeights('races', { 'Human': 2, 'Elf': 1.5 }); // Make humans more common
43
+ * const race = RaceSelector.select(rng);
44
+ * ```
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * // With custom races
49
+ * manager.register('races', ['Dragonkin', 'Fairy'], {
50
+ * mode: 'relative',
51
+ * weights: { 'Dragonkin': 0.5, 'Fairy': 0.3 } // Rare races
52
+ * });
53
+ * const race = RaceSelector.select(rng);
54
+ * ```
55
+ */
56
+ static select(rng: SeededRNG): Race;
57
+ }
58
+ //# sourceMappingURL=RaceSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RaceSelector.d.ts","sourceRoot":"","sources":["../../../src/core/generation/RaceSelector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKlD;;;;;;;GAOG;AACH,qBAAa,YAAY;IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;CAatC"}
@@ -0,0 +1,597 @@
1
+ /**
2
+ * Rhythm Generator - Orchestrator for Procedural Rhythm Generation
3
+ *
4
+ * This is the main entry point for generating procedural rhythm patterns from audio.
5
+ * It orchestrates all phases of the pipeline:
6
+ *
7
+ * Phase 1: Multi-band analysis, transient detection, quantization
8
+ * Phase 2: Phrase analysis, density analysis
9
+ * Phase 3: Stream scoring, composite generation, difficulty variants
10
+ *
11
+ * Part of the Procedural Rhythm Generation pipeline - Phase 3.4
12
+ */
13
+ import { type MultiBandResult } from '../analysis/MultiBandAnalyzer.js';
14
+ import { type TransientAnalysis, type BandTransientConfigOverrides } from '../analysis/beat/TransientDetector.js';
15
+ import { type TempoAwareQuantizerConfig } from '../analysis/beat/TempoAwareQuantizer.js';
16
+ import { type QuantizedBandStreams, type GeneratedRhythmMap, type DensityValidationConfig } from '../analysis/beat/RhythmQuantizer.js';
17
+ import { type PhraseAnalysisResult, type PhraseAnalyzerConfig } from '../analysis/beat/PhraseAnalyzer.js';
18
+ import { type DensityAnalysisResult } from '../analysis/beat/DensityAnalyzer.js';
19
+ import { type StreamScoringResult, type StreamScorerConfig } from '../analysis/beat/StreamScorer.js';
20
+ import { type CompositeStream } from '../analysis/beat/CompositeStreamGenerator.js';
21
+ import { type DifficultyVariant, type DifficultyLevel, type PresetDifficultyLevel } from '../analysis/beat/DifficultyVariantGenerator.js';
22
+ import { type RhythmicBalanceConfig, type BalanceStats } from '../analysis/beat/RhythmicBalancer.js';
23
+ import type { UnifiedBeatMap, DifficultyPreset } from '../types/BeatMap.js';
24
+ /**
25
+ * Output mode for rhythm generation
26
+ */
27
+ export type OutputMode = 'composite' | 'low' | 'mid' | 'high';
28
+ /**
29
+ * Band identifier
30
+ */
31
+ export type Band = 'low' | 'mid' | 'high';
32
+ /**
33
+ * Phase identifier for caching
34
+ */
35
+ export type CachePhase = 'multiBand' | 'transients' | 'quantization' | 'phrases' | 'density' | 'scoring' | 'composite' | 'variants';
36
+ /**
37
+ * Configuration options for rhythm generation
38
+ */
39
+ export interface RhythmGenerationOptions {
40
+ /** Which difficulty preset to use for output (default: 'medium') */
41
+ difficulty?: DifficultyPreset;
42
+ /** Which stream to use as primary output (default: 'composite') */
43
+ outputMode?: OutputMode;
44
+ /** Offset in beats for "Beat 1" (downbeat alignment, default: 0) */
45
+ measureStartOffset?: number;
46
+ /** Filter weak transients (0.0 = catch all, default: 0.0) */
47
+ minimumTransientIntensity?: number;
48
+ /**
49
+ * Per-band transient detection configuration.
50
+ * Allows customizing threshold, minimum interval, and adaptive thresholding for each frequency band.
51
+ * @example
52
+ * ```typescript
53
+ * transientConfig: {
54
+ * low: { threshold: 0.5, minInterval: 0.1 }, // Higher threshold for bass
55
+ * high: { threshold: 0.2 }, // Lower threshold for hi-hats
56
+ * }
57
+ * ```
58
+ */
59
+ transientConfig?: BandTransientConfigOverrides;
60
+ /**
61
+ * Density validation configuration for quantization.
62
+ * When enabled, if transients are too dense, the system will automatically
63
+ * increase thresholds and retry detection.
64
+ * @default undefined (disabled by default)
65
+ * @example
66
+ * ```typescript
67
+ * densityValidation: {
68
+ * maxRetries: 5, // Enable with 5 retries per band
69
+ * baseSensitivityReduction: 0.1,
70
+ * maxCumulativeReduction: 0.5,
71
+ * }
72
+ * ```
73
+ */
74
+ densityValidation?: DensityValidationConfig;
75
+ /**
76
+ * Stream scoring configuration.
77
+ * Allows customizing factor weights and band bias for composite stream selection.
78
+ * @example
79
+ * ```typescript
80
+ * scoringConfig: {
81
+ * // Favor syncopation and high frequencies
82
+ * syncopationWeight: 0.4,
83
+ * bandBiasWeights: { low: 0.3, mid: 1.0, high: 1.5 }
84
+ * }
85
+ * ```
86
+ */
87
+ scoringConfig?: Partial<StreamScorerConfig>;
88
+ /**
89
+ * Phrase analyzer configuration.
90
+ * Controls phrase detection behavior including minimum phrase size and occurrences.
91
+ * @example
92
+ * ```typescript
93
+ * phraseAnalyzerConfig: {
94
+ * minOccurrences: 3,
95
+ * minNotesPerPhrase: (size) => 1 + size,
96
+ * }
97
+ * ```
98
+ */
99
+ phraseAnalyzerConfig?: Partial<PhraseAnalyzerConfig>;
100
+ /**
101
+ * BPM-aware quantization rules config. When undefined, default rules apply
102
+ * (HighBpmGridRestrictionRule: 16th notes restricted at 160 BPM, triplets
103
+ * at 200 BPM). Set `{ enabled: false }` to disable.
104
+ */
105
+ tempoQuantizationConfig?: TempoAwareQuantizerConfig;
106
+ /**
107
+ * Rhythmic balance configuration for enforcing metric structure on the
108
+ * composite stream before difficulty variants are generated.
109
+ *
110
+ * Controls downbeat anchoring, empty measure filling, and which beats
111
+ * are considered "strong" for density reduction priority.
112
+ *
113
+ * @default DEFAULT_RHYTHMIC_BALANCE_CONFIG
114
+ * @example
115
+ * ```typescript
116
+ * rhythmicBalanceConfig: {
117
+ * strongBeatEmphasis: 'natural', // or 'backbeat', 'neutral'
118
+ * fillEmptyMeasures: true,
119
+ * downbeatProximityRange: 2,
120
+ * }
121
+ * ```
122
+ */
123
+ rhythmicBalanceConfig?: Partial<RhythmicBalanceConfig>;
124
+ /** Seed for reproducibility (optional) */
125
+ seed?: string;
126
+ /** Whether to log progress information (default: false) */
127
+ verbose?: boolean;
128
+ /** Whether to enable caching of intermediate results (default: true) */
129
+ enableCache?: boolean;
130
+ /** Maximum age of cache entries in milliseconds (default: 30 minutes) */
131
+ cacheMaxAge?: number;
132
+ /**
133
+ * When true, skip generating preset difficulty variants (easy/medium/hard/natural).
134
+ * The composite stream and all analysis results are still produced.
135
+ * Used by density-based generation where preset variants are not needed.
136
+ * @default false
137
+ */
138
+ skipDifficultyVariants?: boolean;
139
+ }
140
+ /**
141
+ * Statistics about the cache
142
+ */
143
+ export interface CacheStats {
144
+ /** Number of entries currently cached */
145
+ entryCount: number;
146
+ /** Total size estimate in bytes (approximate) */
147
+ estimatedSize: number;
148
+ /** Phases that have cached results */
149
+ cachedPhases: CachePhase[];
150
+ /** Oldest entry timestamp (ms) */
151
+ oldestEntry: number | null;
152
+ /** Number of cache hits during this session */
153
+ hits: number;
154
+ /** Number of cache misses during this session */
155
+ misses: number;
156
+ }
157
+ /**
158
+ * Progress callback for long-running generation
159
+ */
160
+ export type ProgressCallback = (phase: string, progress: number, message: string) => void;
161
+ /**
162
+ * Complete result of rhythm generation
163
+ */
164
+ export interface GeneratedRhythm {
165
+ /** 4 difficulty variants of the composite stream (including natural/unedited). Null when skipDifficultyVariants was set. */
166
+ difficultyVariants: {
167
+ easy: DifficultyVariant;
168
+ medium: DifficultyVariant;
169
+ hard: DifficultyVariant;
170
+ natural: DifficultyVariant;
171
+ } & Record<PresetDifficultyLevel, DifficultyVariant> | null;
172
+ /** Individual band streams (for reference/advanced use) */
173
+ bandStreams: {
174
+ low: GeneratedRhythmMap;
175
+ mid: GeneratedRhythmMap;
176
+ high: GeneratedRhythmMap;
177
+ };
178
+ /** The composite stream (unedited baseline) */
179
+ composite: CompositeStream;
180
+ /** Analysis results */
181
+ analysis: {
182
+ transientAnalysis: TransientAnalysis;
183
+ quantizationResult: QuantizedBandStreams;
184
+ phraseAnalysis: PhraseAnalysisResult;
185
+ densityAnalysis: DensityAnalysisResult;
186
+ scoringResult: StreamScoringResult;
187
+ };
188
+ /** Metadata about the generation */
189
+ metadata: RhythmMetadata;
190
+ }
191
+ /**
192
+ * Metadata about rhythm generation
193
+ */
194
+ export interface RhythmMetadata {
195
+ /** Difficulty preset used for output */
196
+ difficulty: DifficultyPreset;
197
+ /** Bands that were analyzed */
198
+ bandsAnalyzed: Band[];
199
+ /** Total transients detected */
200
+ transientsDetected: number;
201
+ /** Transients filtered by intensity threshold */
202
+ transientsFilteredByIntensity: number;
203
+ /** Number of density validation retries */
204
+ densityValidationRetries: number;
205
+ /** Number of phrases detected */
206
+ phrasesDetected: number;
207
+ /** Average density across all bands */
208
+ averageDensity: number;
209
+ /** Natural difficulty of the composite */
210
+ naturalDifficulty: DifficultyLevel;
211
+ /** Configuration used for generation */
212
+ generationConfig: ResolvedOptions;
213
+ /** Duration of the audio in seconds */
214
+ duration: number;
215
+ /** Total beats in the unified beat map */
216
+ totalBeats: number;
217
+ /** Statistics from the rhythmic balancing step */
218
+ balanceStats?: BalanceStats;
219
+ }
220
+ /**
221
+ * Preset name for rhythm generation configurations
222
+ */
223
+ export type RhythmPresetName = 'casual' | 'standard' | 'challenge' | 'bass';
224
+ /**
225
+ * A preset configuration for rhythm generation
226
+ */
227
+ export interface RhythmPresetConfig {
228
+ /** Which difficulty preset to use for output */
229
+ difficulty: DifficultyPreset;
230
+ /** Which stream to use as primary output */
231
+ outputMode: OutputMode;
232
+ /** Optional description of what this preset is designed for */
233
+ description?: string;
234
+ }
235
+ /**
236
+ * Built-in preset configurations for common use cases
237
+ *
238
+ * - **casual**: Easy difficulty, composite output - for relaxed gameplay
239
+ * - **standard**: Medium difficulty, composite output - balanced experience
240
+ * - **challenge**: Hard difficulty, composite output - for skilled players
241
+ * - **bass**: Medium difficulty, low-frequency band - focus on bass rhythms
242
+ *
243
+ * @example
244
+ * ```typescript
245
+ * // Get a preset configuration
246
+ * const preset = getRhythmPreset('standard');
247
+ * console.log(preset.description); // "Balanced experience for most players"
248
+ *
249
+ * // Use preset with RhythmGenerator
250
+ * const generator = new RhythmGenerator({
251
+ * ...preset,
252
+ * minimumTransientIntensity: 0.2,
253
+ * });
254
+ *
255
+ * // List all available presets
256
+ * const presetNames = getRhythmPresetNames();
257
+ * console.log('Available presets:', presetNames); // ['casual', 'standard', 'challenge', 'bass']
258
+ *
259
+ * // Select bass-focused preset for rhythm games
260
+ * const bassPreset = getRhythmPreset('bass');
261
+ * const bassGenerator = new RhythmGenerator(bassPreset);
262
+ * ```
263
+ */
264
+ export declare const RHYTHM_PRESETS: Record<RhythmPresetName, RhythmPresetConfig>;
265
+ /**
266
+ * Get a preset configuration by name
267
+ *
268
+ * @param name - The preset name to retrieve
269
+ * @returns The preset configuration, or undefined if not found
270
+ */
271
+ export declare function getRhythmPreset(name: RhythmPresetName): RhythmPresetConfig | undefined;
272
+ /**
273
+ * Get all available preset names
274
+ *
275
+ * @returns Array of preset names
276
+ */
277
+ export declare function getRhythmPresetNames(): RhythmPresetName[];
278
+ /**
279
+ * Internal type for resolved options (seed remains optional)
280
+ */
281
+ type ResolvedOptions = {
282
+ difficulty: DifficultyPreset;
283
+ outputMode: OutputMode;
284
+ measureStartOffset: number;
285
+ minimumTransientIntensity: number;
286
+ transientConfig: BandTransientConfigOverrides | undefined;
287
+ densityValidation?: DensityValidationConfig;
288
+ scoringConfig?: Partial<StreamScorerConfig>;
289
+ phraseAnalyzerConfig?: Partial<PhraseAnalyzerConfig>;
290
+ tempoQuantizationConfig?: TempoAwareQuantizerConfig;
291
+ rhythmicBalanceConfig: RhythmicBalanceConfig;
292
+ seed: string | undefined;
293
+ verbose: boolean;
294
+ enableCache: boolean;
295
+ cacheMaxAge: number;
296
+ skipDifficultyVariants: boolean;
297
+ };
298
+ /**
299
+ * Main orchestrator for procedural rhythm generation.
300
+ *
301
+ * Takes an audio buffer and a beat map, then generates:
302
+ * - 3 difficulty variants (easy/medium/hard)
303
+ * - Individual band streams (low/mid/high)
304
+ * - A composite stream combining the best sections from each band
305
+ * - Rich analysis results and metadata
306
+ *
307
+ * ## Usage
308
+ *
309
+ * ```typescript
310
+ * const generator = new RhythmGenerator({
311
+ * difficulty: 'medium',
312
+ * outputMode: 'composite',
313
+ * minimumTransientIntensity: 0.3,
314
+ * });
315
+ *
316
+ * const result = await generator.generate(audioBuffer, unifiedBeatMap, (phase, progress, message) => {
317
+ * console.log(`[${phase}] ${Math.round(progress * 100)}%: ${message}`);
318
+ * });
319
+ *
320
+ * // Access difficulty variants
321
+ * const easyBeats = result.difficultyVariants.easy.beats;
322
+ * const mediumBeats = result.difficultyVariants.medium.beats;
323
+ * const hardBeats = result.difficultyVariants.hard.beats;
324
+ *
325
+ * // Access individual band streams
326
+ * const lowBandBeats = result.bandStreams.low.beats;
327
+ *
328
+ * // Access analysis results
329
+ * const phrases = result.analysis.phraseAnalysis.phrases;
330
+ * const density = result.analysis.densityAnalysis.combinedMetrics;
331
+ * ```
332
+ */
333
+ export declare class RhythmGenerator {
334
+ private options;
335
+ private multiBandAnalyzer;
336
+ private transientDetector;
337
+ private rhythmQuantizer;
338
+ private phraseAnalyzer;
339
+ private densityAnalyzer;
340
+ private streamScorer;
341
+ private compositeGenerator;
342
+ private variantGenerator;
343
+ private tempoAwareQuantizer;
344
+ private rhythmicBalancer;
345
+ private cache;
346
+ private cacheHits;
347
+ private cacheMisses;
348
+ /**
349
+ * Create a new RhythmGenerator
350
+ *
351
+ * @param options - Configuration options (all optional, defaults provided)
352
+ */
353
+ constructor(options?: RhythmGenerationOptions);
354
+ /**
355
+ * Generate a cache key for a specific phase and inputs
356
+ */
357
+ private generateCacheKey;
358
+ /**
359
+ * Create a config fingerprint for cache invalidation
360
+ */
361
+ private createConfigFingerprint;
362
+ /**
363
+ * Get a cached result if available and not expired
364
+ */
365
+ private getFromCache;
366
+ /**
367
+ * Store a result in the cache
368
+ */
369
+ private setCache;
370
+ /**
371
+ * Clear all cached results
372
+ */
373
+ clearCache(): void;
374
+ /**
375
+ * Clear expired cache entries
376
+ */
377
+ pruneExpiredCache(): void;
378
+ /**
379
+ * Get cache statistics
380
+ */
381
+ getCacheStats(): CacheStats;
382
+ /**
383
+ * Check if a phase result is cached for the given audio ID
384
+ */
385
+ isCached(audioId: string, phase: CachePhase): boolean;
386
+ /**
387
+ * Get the current configuration
388
+ *
389
+ * @returns The current configuration
390
+ */
391
+ getOptions(): ResolvedOptions;
392
+ /**
393
+ * Generate rhythm patterns from audio and beat map
394
+ *
395
+ * This is the main entry point that orchestrates all phases of the pipeline.
396
+ * Results are cached by audioId and configuration for efficient reuse.
397
+ *
398
+ * @param audioBuffer - Web Audio API AudioBuffer to analyze
399
+ * @param unifiedBeatMap - Unified beat map from beat detection
400
+ * @param signal - Optional AbortSignal for cancellation
401
+ * @param onProgress - Optional progress callback
402
+ * @returns Complete rhythm generation result
403
+ * @throws {DOMException} If the operation is cancelled via signal
404
+ */
405
+ generate(audioBuffer: AudioBuffer, unifiedBeatMap: UnifiedBeatMap, signal?: AbortSignal, onProgress?: ProgressCallback): Promise<GeneratedRhythm>;
406
+ /**
407
+ * Phase 1.1: Multi-band audio analysis
408
+ *
409
+ * Splits audio into frequency bands and analyzes each for transients.
410
+ *
411
+ * @param audioBuffer - Audio buffer to analyze
412
+ * @returns Multi-band analysis result
413
+ */
414
+ analyzeMultiBand(audioBuffer: AudioBuffer): MultiBandResult;
415
+ /**
416
+ * Phase 1.2: Transient detection
417
+ *
418
+ * Detects transients in each frequency band using band-specific strategies.
419
+ *
420
+ * @param multiBandResult - Multi-band analysis from Phase 1.1
421
+ * @returns Transient analysis with per-band results
422
+ */
423
+ detectTransients(multiBandResult: MultiBandResult): TransientAnalysis;
424
+ /**
425
+ * Phase 1.3: Rhythm quantization with BPM-aware grid decisions
426
+ *
427
+ * Quantizes transients to the beat map grid with density validation.
428
+ * When tempo-aware quantization is enabled (default), BPM-based rules
429
+ * constrain grid decisions before quantization (e.g., restricting 16th
430
+ * notes at high BPMs).
431
+ *
432
+ * Flow: density validation → grid decisions (BPM-aware) → quantize → deduplicate
433
+ *
434
+ * @param transientAnalysis - Transient analysis from Phase 1.2
435
+ * @param unifiedBeatMap - Unified beat map
436
+ * @returns Quantized band streams
437
+ */
438
+ quantizeTransients(transientAnalysis: TransientAnalysis, unifiedBeatMap: UnifiedBeatMap): QuantizedBandStreams;
439
+ /**
440
+ * Phase 2.1: Phrase analysis
441
+ *
442
+ * Detects rhythmic phrases in each band stream.
443
+ *
444
+ * @param streams - Quantized band streams
445
+ * @returns Phrase analysis result
446
+ */
447
+ analyzePhrases(streams: {
448
+ low: GeneratedRhythmMap;
449
+ mid: GeneratedRhythmMap;
450
+ high: GeneratedRhythmMap;
451
+ }): PhraseAnalysisResult;
452
+ /**
453
+ * Phase 2.2: Density analysis
454
+ *
455
+ * Analyzes density and determines natural difficulty.
456
+ *
457
+ * @param quantizedStreams - Quantized band streams
458
+ * @returns Density analysis result
459
+ */
460
+ analyzeDensity(quantizedStreams: QuantizedBandStreams, bpm: number, trackDurationSeconds?: number): DensityAnalysisResult;
461
+ /**
462
+ * Phase 3.1: Stream scoring
463
+ *
464
+ * Scores each band stream section for rhythmic interest.
465
+ *
466
+ * @param streams - Quantized band streams
467
+ * @param phraseAnalysis - Phrase analysis from Phase 2.1
468
+ * @param densityAnalysis - Density analysis from Phase 2.2
469
+ * @param bpm - BPM for tempo-aware density scoring
470
+ * @returns Stream scoring result
471
+ */
472
+ scoreStreams(streams: QuantizedBandStreams, phraseAnalysis: PhraseAnalysisResult, densityAnalysis: DensityAnalysisResult, bpm: number): StreamScoringResult;
473
+ /**
474
+ * Phase 3.2: Composite stream generation
475
+ *
476
+ * Creates a composite stream from the highest-scoring sections.
477
+ *
478
+ * @param streams - Quantized band streams
479
+ * @param scoringResult - Scoring result from Phase 3.1
480
+ * @param densityAnalysis - Density analysis from Phase 2.2
481
+ * @returns Composite stream
482
+ */
483
+ generateComposite(streams: QuantizedBandStreams, scoringResult: StreamScoringResult, densityAnalysis: DensityAnalysisResult, trackDurationSeconds?: number): CompositeStream;
484
+ /**
485
+ * Phase 3.3: Difficulty variant generation
486
+ *
487
+ * Generates easy/medium/hard variants from the composite stream.
488
+ *
489
+ * @param composite - Composite stream from Phase 3.2
490
+ * @param phraseAnalysis - Phrase analysis from Phase 2.1
491
+ * @param quantizationResult - Quantization result for grid decisions
492
+ * @returns Difficulty variants
493
+ */
494
+ generateDifficultyVariants(composite: CompositeStream, phraseAnalysis: PhraseAnalysisResult, quantizationResult: QuantizedBandStreams, unifiedBeatMap: UnifiedBeatMap): {
495
+ easy: DifficultyVariant;
496
+ medium: DifficultyVariant;
497
+ hard: DifficultyVariant;
498
+ natural: DifficultyVariant;
499
+ };
500
+ /**
501
+ * Collect grid decisions from all band streams
502
+ *
503
+ * Merges grid decisions from all bands into a single map.
504
+ * When multiple bands have decisions for the same beat index,
505
+ * the decision with higher confidence is used.
506
+ */
507
+ private collectGridDecisions;
508
+ /**
509
+ * Quick generate rhythm patterns with default options
510
+ *
511
+ * Convenience method for simple use cases.
512
+ *
513
+ * @param audioBuffer - Audio buffer to analyze
514
+ * @param unifiedBeatMap - Unified beat map
515
+ * @returns Generated rhythm result
516
+ */
517
+ static quickGenerate(audioBuffer: AudioBuffer, unifiedBeatMap: UnifiedBeatMap): Promise<GeneratedRhythm>;
518
+ /**
519
+ * Generate rhythm patterns for a specific difficulty
520
+ *
521
+ * Convenience method for generating a single difficulty variant.
522
+ * For custom density generation, use LevelGenerator.generateAtDensity() instead.
523
+ *
524
+ * @param audioBuffer - Audio buffer to analyze
525
+ * @param unifiedBeatMap - Unified beat map
526
+ * @param difficulty - Target difficulty level (preset only, not 'custom')
527
+ * @returns Difficulty variant for the requested level
528
+ */
529
+ static generateForDifficulty(audioBuffer: AudioBuffer, unifiedBeatMap: UnifiedBeatMap, difficulty: PresetDifficultyLevel): Promise<DifficultyVariant>;
530
+ /**
531
+ * Convert a GeneratedRhythm to JSON string
532
+ *
533
+ * Serializes all data including difficulty variants, band streams, composite,
534
+ * analysis results, and metadata.
535
+ *
536
+ * @param rhythm - Generated rhythm to serialize
537
+ * @returns JSON string
538
+ */
539
+ static toJSON(rhythm: GeneratedRhythm): string;
540
+ /**
541
+ * Parse a GeneratedRhythm from JSON string
542
+ *
543
+ * @param jsonString - JSON string to parse
544
+ * @returns Generated rhythm object
545
+ */
546
+ static fromJSON(jsonString: string): GeneratedRhythm;
547
+ /**
548
+ * Save a GeneratedRhythm to a file (Node.js only)
549
+ *
550
+ * @param rhythm - Generated rhythm to save
551
+ * @param filePath - Path to save to
552
+ */
553
+ static saveToFile(rhythm: GeneratedRhythm, filePath: string): Promise<void>;
554
+ /**
555
+ * Load a GeneratedRhythm from a file (Node.js only)
556
+ *
557
+ * @param filePath - Path to load from
558
+ * @returns Generated rhythm object
559
+ */
560
+ static loadFromFile(filePath: string): Promise<GeneratedRhythm>;
561
+ private static serializeDifficultyVariant;
562
+ private static deserializeDifficultyVariant;
563
+ private static serializeVariantBeat;
564
+ private static deserializeVariantBeat;
565
+ private static serializeGeneratedRhythmMap;
566
+ private static deserializeGeneratedRhythmMap;
567
+ private static serializeGeneratedBeat;
568
+ private static deserializeGeneratedBeat;
569
+ private static serializeCompositeStream;
570
+ private static deserializeCompositeStream;
571
+ private static serializeCompositeBeat;
572
+ private static deserializeCompositeBeat;
573
+ private static serializeTransientAnalysis;
574
+ private static deserializeTransientAnalysis;
575
+ private static serializeTransientResult;
576
+ private static deserializeTransientResult;
577
+ private static serializeQuantizedBandStreams;
578
+ private static serializeDensityValidationResult;
579
+ private static serializeBandDensityValidationResult;
580
+ private static deserializeQuantizedBandStreams;
581
+ private static deserializeDensityValidationResult;
582
+ private static deserializeBandDensityValidationResult;
583
+ private static serializePhraseAnalysisResult;
584
+ private static deserializePhraseAnalysisResult;
585
+ private static serializeRhythmicPhrase;
586
+ private static deserializeRhythmicPhrase;
587
+ private static serializeBandPhraseAnalysis;
588
+ private static deserializeBandPhraseAnalysis;
589
+ private static serializeDensityAnalysisResult;
590
+ private static deserializeDensityAnalysisResult;
591
+ private static serializeBandDensityMetrics;
592
+ private static deserializeBandDensityMetrics;
593
+ private static serializeStreamScoringResult;
594
+ private static deserializeStreamScoringResult;
595
+ }
596
+ export {};
597
+ //# sourceMappingURL=RhythmGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RhythmGenerator.d.ts","sourceRoot":"","sources":["../../../src/core/generation/RhythmGenerator.ts"],"names":[],"mappings":"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"}