{ "name": "AudioMuse-AI Instant Mix", "id": "audiomuseai", "author": "AudioMuse", "website": "https://github.com/NeptuneHub/AudioMuse-AI-NV-plugin", "version": "1.0.0", "description": "Replaces the Instant Mix button with AudioMuse-AI recommendations for similar tracks", "config": { "schema": { "type": "object", "properties": { "apiUrl": { "type": "string", "title": "AudioMuse-AI API URL", "description": "Base URL for the AudioMuse-AI server (e.g., http://192.168.3.203:8000).", "default": "http://192.168.3.203:8000" }, "apiToken": { "type": "string", "title": "API Token", "description": "Optional Bearer token for AudioMuse-AI API authentication. Leave blank if not required." }, "server": { "type": "string", "title": "Server Name", "description": "Server name as configured in AudioMuse-AI multi-server setup (e.g. 'Navidrome'). Leave blank if multi-server is not used; the parameter will not be sent." }, "artistSimilarCount": { "type": "integer", "title": "Number of Similar Artists", "description": "Maximum number of similar artists to request from AudioMuse-AI. Default: 10", "default": 10, "minimum": 1, "maximum": 100 }, "instantMixSource": { "type": "string", "title": "Instant Mix Functionality", "description": "Which AudioMuse-AI similarity engine powers Instant Mix. 'Lyrics by Song' needs the SemGrove index, 'Hyperbolic Similarity' needs the hyperbolic projection and 'DCLAP' needs the CLAP index built in AudioMuse-AI. Default: Similar Song.", "default": "similarSong", "oneOf": [ { "const": "similarSong", "title": "Similar Song" }, { "const": "lyricsBySong", "title": "Lyrics by Song" }, { "const": "hyperbolic", "title": "Hyperbolic Similarity" }, { "const": "dclap", "title": "DCLAP" }, { "const": "songAlchemy", "title": "Song Alchemy" } ] }, "alchemyTemperature": { "type": "number", "title": "Temperature", "description": "Song Alchemy randomness: 0 returns the closest songs, higher values pick more varied songs. Default: 1", "default": 1, "minimum": 0, "maximum": 10 }, "eliminateDuplicates": { "type": "boolean", "title": "Eliminate Duplicates", "description": "Remove duplicate tracks from results. Default: true", "default": true }, "radiusSimilarity": { "type": "boolean", "title": "Use Radius Similarity", "description": "Use radius-based similarity algorithm. Default: true", "default": true } } }, "uiSchema": { "type": "VerticalLayout", "elements": [ { "type": "Group", "label": "General Configuration", "elements": [ { "type": "Control", "scope": "#/properties/apiUrl" }, { "type": "Control", "scope": "#/properties/apiToken", "options": { "format": "password" } }, { "type": "Control", "scope": "#/properties/server" } ] }, { "type": "Group", "label": "Song Instant Mix", "elements": [ { "type": "Control", "scope": "#/properties/instantMixSource" }, { "type": "Control", "scope": "#/properties/alchemyTemperature", "rule": { "effect": "SHOW", "condition": { "scope": "#/properties/instantMixSource", "schema": { "const": "songAlchemy" } } } }, { "type": "HorizontalLayout", "rule": { "effect": "HIDE", "condition": { "scope": "#/properties/instantMixSource", "schema": { "enum": [ "lyricsBySong", "hyperbolic", "songAlchemy" ] } } }, "elements": [ { "type": "Control", "scope": "#/properties/eliminateDuplicates" }, { "type": "Control", "scope": "#/properties/radiusSimilarity", "rule": { "effect": "HIDE", "condition": { "scope": "#/properties/instantMixSource", "schema": { "const": "dclap" } } } } ] } ] }, { "type": "Group", "label": "Artist Radio", "elements": [ { "type": "Control", "scope": "#/properties/artistSimilarCount" } ] } ] } }, "permissions": { "config": { "reason": "To read plugin configuration in Navidrome UI" }, "http": { "reason": "To call AudioMuse-AI API for similar tracks", "requiredHosts": [ "*" ] } } }