Sononymph v1.11: fix Windows similarity search and Sononym-update breakage - #175
Merged
Merged
Conversation
…akage Reported on the Renoise forum: after updating Sononym, the tool reported "invalid paths" after Detect, "Open Path" crashed the notifier, and a similarity search from Renoise was refused by Sononym itself. - do_search / do_browse: convert the argument handed to the Sononym executable to native separators. On Windows we passed the temp file as "C:/Users/.../Renoise_TmpFile.flac" and Sononym answered "Indexing error - Unable to resolve location". Adds App.native_path(). - do_search: quote the file argument (a user or temp folder containing a space broke the launch) and drop duplicated locals. - AppUI Detect: with 2+ Sononym versions installed the button only filled the dropdown and relied on its notifier, which does not fire when the picked index is already the current one - and it starts at index 1. So picking the newest version applied nothing and left ConfigPath unset. Apply the newest immediately, keep the dropdown for older versions. - OpenConfigPath: guard an unset ConfigPath and accept windows separators (this is the reported "attempt to concatenate local 'directory_path' (a nil value)"), and fix the Linux branch assigning its command to os_name instead of command. - check_paths: self-heal a stale ConfigPath. Sononym stores query.json in a version-named folder, so every Sononym update leaves the tool pointing at a file that no longer exists. Adopt the newest detected version. - Persist AppPath / ConfigPath when they are set. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WzMBd9wYDRk4Pu341ggkSv
emuell
reviewed
Sep 5, 2026
emuell
left a comment
Member
There was a problem hiding this comment.
See comments. All no show-steppers, but improvements.
esaruoho
added a commit
to esaruoho/paketti
that referenced
this pull request
Sep 7, 2026
Review feedback from emuell on renoise/tools#175: - Renoise persists tool preferences on its own, so App:save_preferences() and its three call sites are gone. - OpenConfigPath now checks that the config folder actually exists and reports that, instead of a message about the path shape, and opens the folder with renoise.app():open_path() rather than a hand-rolled per-platform shell command. That also removes the broken Linux branch. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WzMBd9wYDRk4Pu341ggkSv
- Renoise persists tool preferences by itself, so App:save_preferences() and its three call sites are removed. - OpenConfigPath checks that the config folder exists and says so when it does not, instead of reporting the path shape, and opens the folder with renoise.app():open_path() rather than a per-platform shell command. This also removes the Linux branch that assigned to os_name instead of command. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WzMBd9wYDRk4Pu341ggkSv
Contributor
Author
|
All three addressed in e5b9bb1:
The changelog entry for 1.11 was updated to match, and the same two changes are in Paketti's copy of Sononymph (esaruoho/paketti@40874459) so the two do not drift apart. Still outstanding from my side: the Windows separator fix in 🤖 Generated with Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #171. All four issues here were reported by a Windows user on the Renoise forum after they updated Sononym and came back to the tool.
Similarity search was refused by Sononym on Windows
Sending a sample from Renoise answered with Sononym's own dialog:
do_searchpasses the temporary.flacthroughcFilesystem.unixslashes(), so on Windows Sononym is handedC:/Users/.../Renoise_TmpFile-0-79.flac, which its crawler cannot resolve. AddedApp.native_path()and applied it to the argument indo_searchanddo_browse. Paths stay unix-style internally; only what we hand to the executable is converted.The file argument was also passed unquoted, so a user or temp folder containing a space broke the launch. Both arguments are quoted now, and the duplicated
path_to_exe/tmp_pathlocals are gone."Detect" applied nothing when several Sononym versions were installed
With one version found, Detect calls
set_path_to_config()directly and works. With two or more it only populated the dropdown and relied on the popup's notifier — but a popup does not fire its notifier when the picked index is already the current one, and the popup starts at index 1. So picking the newest version, which is the entry a user wants, silently applied nothing: the field looked filled while ConfigPath kept its old value and the status stayed "invalid paths".Detect now applies
versions[1]immediately and keeps the dropdown for choosing an older version."Open Path" crashed the tool's notifier
config_path:match("(.*/)")returns nil for an empty ConfigPath and for a hand-typedC:\...\query.json. Both are now reported in the status bar instead. While in there: the Linux branch assigned its command toos_nameinstead ofcommand, so Open Path threw on Linux too.A Sononym update silently broke the configuration
Sononym keeps
query.jsonin a version-named folder, so.../Sononym/1.6.2/query.jsonbecomes.../Sononym/1.6.14/query.jsonthe moment Sononym updates itself. The tool was left pointing at a file that no longer exists and reported only "invalid paths", with nothing pointing at the Sononym update as the cause — this is what the reporter hit, and it will happen to every user on every Sononym update.check_pathsnow notices the stored file is gone, adopts the newest versionfind_sononym_versions()can see, and names it in the status bar. Guarded against re-entry, since writing the preference fires the notifier that callscheck_paths.Preferences are written when set
set_path_to_exe/set_path_to_configonly updated the document in memory. They now write it out, so a configured path survives an unclean shutdown.Version bumped to 1.11 in
manifest.xmlandmain.lua, changelog updated.Testing. The same changes are running in Paketti's copy of Sononymph (esaruoho/paketti@0a9c98c), verified against a live Renoise 3.5.4 on macOS:
find_sononym_versions()returns five installed versions sorted newest-first, andcheck_paths()with a planted dead1.6.5path heals to1.6.2withpaths_are_valid = trueand no re-entry. The Windows separator fix is the reporter's diagnosis from Sononym's own error message and is not yet confirmed on a Windows machine — I would like the reporter to try this build before you merge, and I will report back.🤖 Generated with Claude Code