Other

项目介绍

regorxxx/Search-by-Distance-SMP 是一个托管在 GitHub 上的开源项目,主要使用 JavaScript 编写,采用 Other 许可证,目前获得 47 个 Star、6 次 Fork。

仓库全名
regorxxx/Search-by-Distance-SMP
开源许可证
Other
Star 数
47
Fork 数
6
未关闭 Issue
2

README 摘要

Search-by-Distance-SMP This script is now deprecated and integrated into Infinity-Tools-SMP. No further support or releases will be provided. An implementation of Music-Graph for foobar2000 using Spider Monkey Panel/JSplitter, which creates intelligent "spotify-like" playlist using high-level data from tracks and computing their similarity using genres/styles. Features Creates playlists using high-level data from…

完整内容见 GitHub 原始 README 或本页 。

常见问题

Search-by-Distance-SMP 用什么语言开发?

主要使用 JavaScript 编写,采用 Other 许可证,目前有 47 个 Star。

Search-by-Distance-SMP 可以免费商用吗?

仓库标注的许可证为 Other,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 Search-by-Distance-SMP 的源码?

可以直接克隆仓库:git clone https://github.com/regorxxx/Search-by-Distance-SMP.git;安装与运行步骤见仓库 README。

Search-by-Distance-SMP 最近还在维护吗?

仓库最近一次更新为 4月1日,当前有 2 个未关闭 Issue;Star 数为 47,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

An implementation of Music-Graph for foobar2000, using Spider Monkey, which creates intelligent "spotify-like" playlist using high-level data from tracks and computing their similarity using genres/styles.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
106
价值分
34
活跃状态
归档

语言占比

Batchfile
CSS
HTML
JavaScript

README

Search-by-Distance-SMP

This script is now deprecated and integrated into Infinity-Tools-SMP.
No further support or releases will be provided.

version CodeFactor Codacy Badge GitHub
An implementation of Music-Graph for foobar2000 using Spider Monkey Panel/JSplitter, which creates intelligent “spotify-like” playlist using high-level data from tracks and computing their similarity using genres/styles.

Animation11

Features

Creates playlists using high-level data from tracks similar to the currently selected one according to genre, style, key, etc. When their score is over a threshold, they are included in the final pool. After all tracks have been evaluated and the final pool is complete, some of those tracks are chosen to populate the playlist. You can choose whether this final selection is done according to score, randomly, using Harmonic mixing rules, etc. All settings are configurable via button’s menus (on customizable button) or the properties panel (static buttons).

To use this plugin at its best and to benefit the most from your library, you will want to make sure that your songs have the most possible information on genre, style, key, moods, etc.

Graph method

There are 3 methods to calculate similarity between tracks: WEIGHT, GRAPH (see above) and DYNGENRE.

  • WEIGHT: -> Score
    Calculates similarity (score) according to tags. Similarity is calculated by simple string matching (‘Rock’ != ‘Soul’), range comparison for numeric tags and a special algorithm for Key tags (harmonic mixing). This means some coherence in tags is needed to make it work, and the script only works with high level data (tags) which should have been added to files previously using manual or automatic methods (like MusicBrainz Picard, see note at bottom).

  • GRAPH: -> Score + Distance
    Apart from scoring, it compares the genre/styles tags to the ones of the reference track using a graph and calculating their minimum mean distance. Imagine Google maps for genre/styles, and looking for the distance from Rock to Jazz for ex. Note this is totally different to simple string matching, so ‘Acid Rock’ may be similar to ‘Psychedelic Rock’ even if they are totally different tag values (or strings). This method is pretty computational intensive (but tons of optimizations have been taken in place).

  • DYNGENRE: -> Score + Simplifed Distance
    Uses a simplification of the GRAPH method. Let’s say we assign a number to every “big” cluster of points on the music graph, then we can simply put any genre/style point into any of those clusters and give them a value.

Other features

  • Fully configurable tag remapping, weights, etc.
  • The comparison pool can be filtered with multiple filters:
    • Global forced query (for example to always exclude live tracks).
    • Dynamic queries based on the reference track.
    • Genre cultural filters.
    • Artist cultural filters (using World-Map-SMP’s database).
    • Similar artists.
    • Genre influences.
  • The final selection can be choosen from the pool following 4 methods.
  • The final selection (aka playlist) can be sorted following 3 methods:
    • Smart shuffle: like Spotify, intercalating artists with configurable bias.
    • Scattering instrumentals: Intercalate instrumental tracks breaking clusters if possible.
    • By score.
    • Randomly.
  • Recursive playlist creation (where output tracks are used as new references, and so on).
  • Influences and anti-influences playlists.
  • There are some custom buttons which may be set according to user preferences, even its own name: ‘buttons_search_bydistance_customizable.js’.
  • Computing of ‘Similar artist’ tags using tracks from your library (and thus not based on popularity like online sources).
  • Much more…

Animation12

Note about editing ‘helpers/music_graph_descriptors_xxx.js’ or user file

Graph behavior, new genres or substitutions may be tweaked by the user. Changes to the descriptors may be added to an user file instead of editing the original descriptor: ‘helpers/music_graph_descriptors_xxx_user.js’. Check sample for more info.

Also integrates

  1. Music-Graph: An open source graph representation of most genres and styles found on popular, classical and folk music.
  2. Camelot-Wheel-Notation: Javascript implementation of the Camelot Wheel, ready to use “harmonic mixing” rules and translations for standard key notations.

Draw Graph_05

Compatible with (toolbar)

  1. Playlist-Tools-SMP: Offers different pre-defefined examples for intelligent playlist creation.
  2. Device-Priority-SMP: Automatic output device selection.
  3. ListenBrainz-SMP: Integrates Listenbrainz’s feedback and recommendations.
  4. Autobackup-SMP: Automatic saving and backup of configuration and other data in foobar2000.

playlist_tools_menu_05

Requirements (only one host component required)

  1. Spider Monkey Panel: JavaScript host component required to install this. Only x32. (host component)
  2. JSplitter: JavaScript host component required to install this. Both x32 and x64. (host component)
  3. FontAwesome: found at ’.\ resources\fontawesome-webfont.ttf’. See installation notes.

Installation

See Wiki or the _INSTALLATION (txt). Not properly following the installation instructions will result in scripts not working as intended. Please don’t report errors before checking this.

Support

  1. Issues tracker.
  2. Hydrogenaudio forum.
  3. Wiki.

Nightly releases

Zip file from GitHub (using the latest commit).

评论

暂无评论