Skip to content

Pathfinder improvements + Code cleanup + Genre additions

Latest

Choose a tag to compare

@regorxxx regorxxx released this 10 Mar 18:58
· 2 commits to main since this release

[3.0.0] - 2026-03-10

Added

  • Cultural Regions: complete integration of cultural regions; all styles on graph are now added.
  • Descriptors: improved debug routines to avoid situations where a substitution term doesn't exist in the graph.
  • Descriptors: improved debug tests to avoid duplicates entries in substitutions, influences, etc.
  • Descriptors: improved pathfinder routines to throw -with a descriptive error- when a path is not found due to some genre not being connected to the graph.
  • Descriptors: updated descriptors with multiple additions: Tishoumaren, Classical Crossover, Psychedelic Techno, Corrido, Corrido Tumbado, Deconstructed Club, Drill, Jersey Club, Tribal House, Digicore, Glitchcore, Drill, Hyperpop, Digicore, Glitchcore, Uptempo Hardcore, Acid Techno, Bachata, Kuduro, Semba, Kizomba, African Ritual-Tribal, Afro-Latin Ritual-Tribal, Asian Ritual-Tribal, Aboriginal Folk, Pre-Columbian Ritual-Tribal, Mbalax, Melodic Techno-House, Kawaii Metal, Branle, Darksynth, Country Rap, Square Dance, Rodeo, Jug Band, K-Pop, J-Pop, Kayokyoku, Rumba Flamenca, Neoperreo, Emo Rap, Symphonic Rap, Cloud Rap, Grime, Dark Techno, Big Room House, Musical, Cabaret, Murga, Gothic XL, Urban Music & Rap XL, Urban R&B XL, Sad Emo XL, Early Progressive Electronic XL, Progressive Electronic XL, Electronic Rap XL, Mainstream Electronic, Contemporary Popular Choral XL.
  • Descriptors: added 'Chamber Music XL', Orchestral Music XL', 'Ballroom Music XL', 'Poetry-Secular Music XL', 'Choral-Spiritual Music XL' and 'Choral-Orchestral Music XL' classical music style clusters.
  • Descriptors: AllMusic support linking their genre/styles to the graph with substitutions.
  • HTML: added buttons to directly go to live version or open the GitHub repository.
  • Minor speed optimizations when looking for similar tracks.

Changed

  • Pathfinder: updated A* pathfinder with latest version from ngraph.path.
  • Pathfinder: getDistanceFromPath() has a new argument 'bJointGraph' which defaults to true, to indicate whether it should throw for disjoint graphs or not when there is no path.
  • Pathfinder: calcGraphDistance() has a new argument 'bJointGraph' which defaults to true, to indicate whether it should throw for disjoint graphs or not when there is no path.
  • Pathfinder: pathfinder method is now set only at calcGraphDistance(), so all debug and tests functions found at 'music_graph_xxx.js' and 'music_graph_test_xxx.js' no longer require setting the same pathfinder.
  • Pathfinder: calcGraphDistance() now outputs {distance, influence, path} as result instead of an array. Since now the path is output, there is no longer need to reuse the pathfinder later for debugging/test purposes.
  • Descriptors: extended debug tests for accents, ASCII compatibility and capitalization for all entries (including AllMusic).
  • Descriptors: updated descriptors with multiple influences.
  • Debug: cleanup of debug routines, added comments about symmetries for distance calculation and better logging.
  • Debug: improved debug tests to avoid duplicates entries in substitutions, influences, etc.
  • HTML: minor UI tweaks.
  • HTML: moved HTML related scripts to its own folder.
  • HTML: updated jquery dependency.
  • Code cleanup.

Removed

Fixed

  • Pathfinder: fix long time bug on A* pathfinder which made it unusable. NBA* was used anyway so it doesn't affect at all current functionality.
  • Pathfinder: fix distances output by getDistanceFromPath() due to incorrect handling of multi-edge graphs on ngraph.graph, where only the first link found was used. As result new values could be lower in some cases.
  • Descriptors: cleanup of duplicates entries and other minor errors in substitutions, influences, etc.