Notifications
Clear all

"My Tags" for any patches

13 Posts
6 Users
7 Reactions
294 Views
Lowell
(@lowell)
Estimable Member
Joined: 4 years ago
Posts: 109
Topic starter  

I often find patches that I especially love. The current Favorite system allows for only one level; favorite or not. There are tags but in order for me to tag a patch that I didn't mod/create I have to now save a duplicate of that patch into a user library and add my own tags. That adds work and unnecessary patches.

I'm imagining a "My Tags" feature that I could use to tag any patch and not have to replicate it. For example, "Best pads" or "Moody vibes." This also empowers users to unify their own custom tags across all libraries not just user libraries.

Thoughts?


   
Nico5 reacted
Quote
Topic Tags
(@getdunne)
Illustrious Member Admin
Joined: 5 years ago
Posts: 4453
 

@lowell

Excellent idea. I've put it on the to-do list.


   
Nico5 and Lowell reacted
ReplyQuote
(@papopap)
Estimable Member
Joined: 4 years ago
Posts: 53
 

I created a personnal tag system to classify my favorites , ie 

### = quality patch  (exceptional)

## = quality patch  (very good quality)
etc ..

you add this in the tag field to any patch then you update the patch, 
and no need to duplicate it
then you use the unify search engine by specifying your own quality tag
ex: ### if you are searching among what you consider to be your favorite level 3 patches and it then works very well.

hope this help you


   
SSquared and getdunne reacted
ReplyQuote
(@getdunne)
Illustrious Member Admin
Joined: 5 years ago
Posts: 4453
 

@papopap

Absolutely brilliant, thank you for sharing!


   
ReplyQuote
Lowell
(@lowell)
Estimable Member
Joined: 4 years ago
Posts: 109
Topic starter  

@papopap I assumed I couldn't update purchased patches. You can?


   
ReplyQuote
(@getdunne)
Illustrious Member Admin
Joined: 5 years ago
Posts: 4453
 

@lowell

Unify's patch database is a SQLite3 file called Presets.db in the main Libraries folder. You can edit it using a program like DB Browser for SQLite, which is excellent, free, and available for both MacOS and Windows. SQLite3 bindings are available for many programming languages, e.g. this one for Python, so you can also write your own programs if you're so inclined.

The database is very simple, consisting of just one table, Presets, defined in SQL as follows:

CREATE TABLE Presets (
    folderPath TEXT,
    fileName TEXT,
    modTime INTEGER,
    name TEXT,
    library TEXT,
    category TEXT,
    tags TEXT,
    genre TEXT,
    author TEXT,
    comment TEXT,
    instPlugins TEXT,
    midiPlugins TEXT,
    audioPlugins TEXT,
    rating INTEGER)

Note the genre field is no longer used, and the rating field is 1 for patches marked as "favorites" or 0 otherwise.

When Unify performs a "database rebuild" operation, it reads the metadata from the patch files (.unify or .upf) in one or more library folders, and writes or overwrites the corresponding database records as follows:

  1. When you load a .guru file, Unify will perform a rebuild only for the specific library folder(s) which are modified.
  2. When you click the lightning-bolt icon, Unify will rebuild:
    • Just the currently-selected library folder, if one is selected, OR
    • All active library folders, if you have selected a defined library subset, but set the library selector to "all", OR
    • ALL library folders.
  3. If you hold down ALT/Option while clicking the lightning-bolt icon, or click the "Full Rebuild" button in Settings, Unify will delete any existing Presets.db file and rebuild it from scratch, by reading metadata from all patch files.

Case #3 will always wipe out any changes you may have made to the patch database, but in the other two "rebuild" cases, Unify will only (over)write patch records if:

  1. No patch record yet exists, i.e., this is a new patch file that isn't yet in the database, OR
  2. If the file has been changed since the record was originally created. (This is done by comparing the file's last-updated timestamp with the value stored in the modTime field of the Presets table.)

Since you can't normally update purchased patches (in encrypted .upf files), the timestamp should never change, and hence any changes you make to the patch record in the Presets table should never get overwritten unless you force a full rebuild. Just the same, I advise the following:

  1. Close all instances of Unify before editing the database.
  2. Make a safe copy of Presets.db before making any changes.

I'm well aware that Unify's patch database is almost trivially simple, but it works, and I have been reluctant to change it until I have a clear idea of what actually works. I encourage all users who are able, to experiment and suggest ideas for changes which are genuinely useful.


   
Nico5 reacted
ReplyQuote
(@steamed)
Eminent Member
Joined: 11 months ago
Posts: 11
 

In the case of a "full rebuild", instead of overwriting 'presets.db', how about first backing it up to 'presets.db.20240123_01' (whatever the current date is, '_', an instance ... in case I do it multiple times today).  The quantity of preset.db backup files could limited in some way.  Obviously, I could do this manually myself, but I'd probably forget as I'd likely have something else on my mind.


   
ReplyQuote
(@getdunne)
Illustrious Member Admin
Joined: 5 years ago
Posts: 4453
 

Posted by: @steamed

In the case of a "full rebuild", instead of overwriting 'presets.db', how about first backing it up to ...

That's a good suggestion, thank you. Note I'll be gathering a collection of such ideas before committing to any of them.

 


   
ReplyQuote
Nico5
(@nico5)
Trusted Member
Joined: 4 years ago
Posts: 52
 

Posted by: @steamed

Obviously, I could do this manually myself, but I'd probably forget as I'd likely have something else on my mind.

Not sure, if you're already doing that, but running fully automated backups can provide very useful for scenarios like this.

On a Mac it's trivial with the most excellent builtin Time Machine software. On a Windows box there's also several options including free and paid one's with varying degrees of functionality and ease of use. I happen to use Macrium Reflect, but it's by no means the only option.

Something in me shudders at the thought that every software developer being asked to re-invent and deliver basic pieces of common functionality, when their time would arguably be better spent working on unique functionality that can't easily be gotten other ways.

This post was modified 5 months ago 2 times by Nico5

Cubase 13 Pro, Win 10 Pro (x64), several different midi controllers


   
ReplyQuote
(@steamed)
Eminent Member
Joined: 11 months ago
Posts: 11
 

If possible with SQLite, it would be nice to be able to select more than one category as a filter.  For instance, "###" and "bass", or "bass" and "split".  While we can currently create combo categories such as "### bass" and "bass split", we ultimately reach a state where there nearly as many categories as patches.  Which defeats the purpose of categories.


   
ReplyQuote
(@getdunne)
Illustrious Member Admin
Joined: 5 years ago
Posts: 4453
 

Posted by: @steamed

... it would be nice to be able to select more than one category as a filter.  For instance, "###" and "bass", or "bass" and "split".

The present patch browser allows you to select more than one item in any list (e.g., categories), but the result is treated as an "OR" combination, rather than "AND". Hence if you highlight "bass" and "split", you get all patches where the category matches either "bass" or "split". I thought users might be confused by seeing the list of patches get smaller as they selected more items to match, but this may have been a bad idea.

In a future version of the patch browser, I'd like to provide the ability to match on combinations of terms, i.e., "AND" rather than "OR", but I'm not sure how to do this without making the GUI (and/or the description in the manual) much more complicated. One possibility would be to add an "AND/OR" selector button somewhere. If anyone has a better suggestion, I'd be happy to hear it.

 


   
ReplyQuote
(@craigr68)
Member
Joined: 4 years ago
Posts: 210
 

I would prefer a multi star rating system for favorites as has been discussed in other posts.  To deal with favorites for instance, I had been creating separate libraries such as "Dune3-Favs" which contained duplicate patches that were in my "Dune3" library. 

I didn't really like that solution.  Recently I did away with that and went back using the standard Unify Fav feature.  After tagging quite a few patches, which took quite a while, I started worrying about losing my favorites.  (That's because I do some things with the database and mess it up, like causing duplicate entries.)  So, I created a autohotkey script to search thru the database and log those rating=1 patches to a text file.  I was thinking it might be nice if you had a utility to backup/restore favorites.  My script is a little unpolished but works for my purposes.  I'm aware that Unify makes a Favs backup on rebuilds and restores them after, but what if it's been a while since a rebuild, and more Favs were created, and then the database gets corrupted?  Anyway, I attached a screenshot of my script gui which shows its very simple purpose.


   
ReplyQuote
(@getdunne)
Illustrious Member Admin
Joined: 5 years ago
Posts: 4453
 

Posted by: @steamed

... it would be nice to be able to select more than one category as a filter.  For instance, "###" and "bass", or "bass" and "split".

The present patch browser allows you to select more than one item in any list (e.g., categories), but the result is treated as an "OR" combination, rather than "AND". Hence if you highlight "bass" and "split", you get all patches where the category matches either "bass" or "split". I thought users might be confused by seeing the list of patches get smaller as they selected more items to match, but this may have been a bad idea.

In a future version of the patch browser, I'd like to provide the ability to match on combinations of terms, i.e., "AND" rather than "OR", but I'm not sure how to do this without making the GUI (and/or the description in the manual) much more complicated. One possibility would be to add an "AND/OR" selector button somewhere. I'm open to other suggestions.


   
Lowell reacted
ReplyQuote
Share: