Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Portable patch favorites #5810

Closed
mkruselj opened this issue Jan 22, 2022 · 6 comments · Fixed by #5959
Closed

Portable patch favorites #5810

mkruselj opened this issue Jan 22, 2022 · 6 comments · Fixed by #5959
Labels
Milestone

Comments

@mkruselj
Copy link
Collaborator

Currently, favorites saved on one machine under one OS cannot be copied/imported to another machine with a different OS.

Provide an import/export option (only available in Favorites RMB menu, I'd say), and maybe if there's a way to somehow write paths to .db in a relative way so that it ends up portable by just copying the Patches.db file, even better!

@mkruselj mkruselj added this to the Surge XT 1.1 milestone Jan 22, 2022
@DarceyLloyd
Copy link

DarceyLloyd commented Feb 20, 2022

Convert .fxp to a text based preset json/xml and keep on adding params as will, not sure if there is an fxp decoder out there or if there is a reason for encoding the preset (sound embedding?). But turn the thing to json, gzip and un-gzip on the fly if needed then add entry fav=1 || fav=true etc etc (this is how a few other vsts do it, Spire is 1, spf / spf2 are just text files with key value pairs on each line).

spf2-fav

And if you decide to go down this route, create a feature to convert from fxp to the new format (en bulk) or a little utility where we can bulk import and export

@baconpaul
Copy link
Collaborator

That’s a separate issue from this one which is sharing favorites list

there is an fxp decoder in scripts/patch tool. They have a binary header a blob of xml and then optional wavetables

@baconpaul
Copy link
Collaborator

Oh and we don’t mark favorites in the patch we mark them in the sql db

@DarceyLloyd
Copy link

RE: Sharing favourite lists
This should be a simple case of querying the sqlite db and generating a csv at its most basic level. But telling the difference between two presets named the same may be difficult if the CRC is not stored with it.

RE: FXP Decoder
Nice, I've been looking for a FXP decoder/encoder for a while. I've been writing batch scripts in py/node for CRC check, preset classificiation and in the case of serum deleting all presets with 1 or 0 stars. As I get spammed with so many emails with free 30 serum presets here, 10 there, another 20 here etc, it's all added up over the years. So CRC check, delete duplicates, rating read from sqlite db, delete <= 1 and then if no category try and parse name for category and if not able to dump into misc folder for manual sorting and renaming later.

The decoder should help me detect variance in settings, a lot of presets are not a CRC match but sound virtually identical due to a single byte being changed, this will allow me to write a tool to write a tolerance of values of each setting dynamically and if within tolerance range, it will probably sound the same and I can delete it.

@DarceyLloyd
Copy link

RE: RE: Fav' lists
Not quite sure on the full functionality required by the share feature. But maybe a website with mp3 upload (file size limit to 5 seconds, to keep files small) and have a score board / rating system. Preset name, author, vender etc. Could even have click through to product and earn something on that.

@baconpaul
Copy link
Collaborator

This issue really is just about a user migrating from one machine to another. It’s exactly the csv you mentioned with a path resolved

baconpaul added a commit to baconpaul/surge that referenced this issue Mar 8, 2022
A function to export and import favorite lists in a filesystem
independent fashion (namely we replace the factory and user roots
with keys on export and replace them with paths on import)

Closes surge-synthesizer#5810
baconpaul added a commit that referenced this issue Mar 8, 2022
A function to export and import favorite lists in a filesystem
independent fashion (namely we replace the factory and user roots
with keys on export and replace them with paths on import)

Closes #5810
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants