Selecting Multiple Categories in Preset Browser
@getdunne, shouldn't selecting multiple categories (by command-clicking) be an AND search rather than an OR search? I want to be able to select "Keyboard" and "BPM" and have the browser display only presets that match both criteria rather than all presets that match either criteria. Frankly, I can't imagine a use-case where someone would want to use an OR search.
Ideally, as you select additional categories, it would be nice if the GUI automatically grayed-out all other categories in the list that would yield zero results.
On a related note, I've been cleaning-up the categories in my Unify database using a SQLite editor to reduce some of the clutter, redundancy, misspellings, etc. (and well as satisfy my OCD). Do you know of any way I could batch-write my modified presets.db data back to the *.upf and *.unify preset files? Otherwise, Unify will automatically overwrite any changes I made to the database the next time I load a new library or if I were to choose "Rebuild the Database" from the GUI. I suppose I could write a utility to do this, but was wondering if there was an easier way.
The principle of using OR rather than AND is that each selected category defines a subset of all the patches, so if you select more category, you are selecting more than one subset, i.e., you are selecting their union, not their intersection. The former is simpler to understand, and more commonly used, but I agree that intersection-search could be useful.
In a future version of Unify, I hope to have an expanded patch browser which will offer more search options, including AND vs. OR. For now, since you're comfortable using the SQLite DB Browser, you can query the database any way you wish.
Regarding cleaning up the database:
- Does your Unify/Libraries folder contain a scrub.xml file? If not, it should; this was added with one of the Unify Standard Library updates (I forget which one), and I have attached a copy here. As you can see, it contains a set of rules for automatically rewriting erroneous entries in .unify/.upf files. Drop it into your Unify/Libraries folder and do a full database rebuild.
- There is no automated tool to update .unify and .upf files. .unify files are basically just XML, so you could write one if you want, but .upf files are encrypted, and the encryption is not simple.
If the rewrite-rule types supported by scrub.xml are not sufficient, suggestions for additional ones are welcome.
CAUTION Long and Rambling Post
Thanks for your reply. Like I said, I just can't envision a scenario where one would use categories as a union search rather than an intersection. If the purpose of the browser's filter is to track down a particular sound, the more criteria I provide, the more granular the results should be.
One thing I did with my revised SQLite DB is split up "compound categories" such as "BPM Key" or "Arp + Strings" and divide all Categories into a set of Instruments and Attributes. For example, to find all Omnisphere Multis of a Pad with Piano and Strings and featuring Arp, BPM, Latch, and using MIDIBox looks like this:
*Note that dimmed items indicate instruments and attributes with zero matches based on the current selections. Using just the Instrument and Atrribute properties in combination with using Search Text to search the Comment field makes finding a specific patch way faster and easier.
A similar interface could be used during the save/creation of the patch. It would be easier to pick from a list all the instruments and attributes that match the new patch rather than type them in. Once a set of Instruments and Attributes is well-defined, it should require valid justification to create a new one rather than use an existing one. This would eliminate the runaway nature of creating more and more categories as well as avoid the risk of creating misspelled, plural or redundant versions of existing categories.
Also, thanx for the tip on the scrub.xml file. With it, I was able to fix a few additional quirks, misspellings, and redundancies. You might want to make note of some of these for future versions of Unify:
- BPM Pplit instead of BPM Split
- Brrass instead of Brass
- BPM Gtr, and BPM Guitar
- Ar, Arp, and Arpeggiated
- Electro Percs and Electro Perc
- Electronic, Eletronic, Eletronica, and Electronica
- Flutey, and Flute
- Gtr, Guitars, and Guitar
- High Energ and High Energy
- Key, Keyboards, and Keyboard
- Leads and Lead
- Looping and Loop
- Medatation instead of Meditation
- Orchestral and Orchestra
- Pads, Pad, Pads + Strings, and Pad + Strings
- Pbm Perc instead of BPM Perc
- Rhythmic, Ryhthmic and Rhythm
- FX, Sfx, and Sound FX
- Strings and String
- Synths and Synth
- Textures and Texture
- World Music and World
Finally, regarding "Tags", I'd be curious to know if anyone other than John (@PlugInGuruForums) actually uses this feature to help search for a sound; especially since the Comment field is way more descriptive and useful in learning what a sound does, what inspired it and how macros, modulation, aftertouch, etc. affect it. Seriously, I challenge anyone to explain the difference sonically between some of these tags:
- Airy, Light and Beauty, Meditative, Peaceful, Soft
- Aleatoric, Random
- Aggressive, Big, Huge, Powerful
- Ascending, Rising
- Bright, Celestial, Glassy, Glassy Colors, Icy, Shimmering, Shiny
- Buzz, Fizzy, Fizzle, Fuzzy, Grainy, Harsh, RaspingBusy, Confused, Complex
- Dream, Dreamy, Dreaming, Dreamlike, Reflective, Soft and Warm
- Flutey and Flutey Colors
- Glide, Glides, Gliding, Gliding Synth
- Disturbing, Freaky, Haunting, Menacing, Mysterious, Nightmarish, Ominous, Primal, Scary, Suspense
- High Energy, Punchy
- Heavy, Insistent, Intense, Powerful
- Long Fade, Long Release
- Magical, Majestic, Regal, Triumphant
- Melancholic, Moody, Sad, Somber
- Picked, Plucked
- Pulsing, Pumping
- Quirky, Weird
- Soundtrack, Film Scoring, Cinematic
I suspect that a lot of time and energy is wasted during patch creation and SW development for the Tag feature. There would be no love lost from this Unify fan if the Tags were to mysteriously disappear. 😉 I, for one, would rather have a Comment field larger than 2 text lines in the UI so that we don't have to scroll or click the Save button just to read it.
A few minor additional notes:
From the Unify Manual:
The patch browser consists of two main sections:
- The top section (outlined in red in the picture above) is called the Selector, and contains controls to allow you to narrow down the available choices in the bottom section.
"Narrow Down" implies an Intersection search.
Also, in the "Using the Patch Selector" section it states:
Click any list item to select only patches which match it. Click again to revert.
On my Mac, I have to Cmd-Click on a list item or click on different item to deselect it. Cmd-Click also allows you to select multiple items (as it should). I suspect the manual just needs updating.
I have updated the manual pages very slightly, to correct the inconsistencies you noted.
I have started experimenting with OR vs. AND for the patch database queries, and am thinking about how to get this cleanly into the GUI.
BTW, in case anyone is wondering, since Unify doesn't currently have a separate Instrument and Attribute field, I accomplished what I mentioned above by adding the prefixes "instr: ", "attr: " and "vst: " to existing all my cleaned-up categories. Because Unify lists categories alphabetically, adding the prefix helps group them all together in the browser so they're easier to find. Below is a list of the newly re-purposed Categories I created as well as a sample of what they look like in Unify interface. Also, I keep a backup copy of my presets.db file so I can replace it in the event that Unify overwrites it.
@getdunne, this is why I was looking for an intersection search capability.