PolyHarp is a very tag-friendly program.
Tags can be applied to PolyHarps (.polyharp patch files) and Chord types (.phchord files).
As used in many other systems, tags are metadata which help describe the actual data.
Tag searching is often made so that a logical combination of tags is used to winnow down a large list of things.
PolyHarp expands this somewhat by allowing some tags to be parameterized , so that as well as just searching for a combination of tags, you can also make some simple comparisons on tag values.
In the case of patch file tags, you can search on ratings, number of string areas, and how many divisions of an octave it may be using. For example, the search string "edo:>12"
can be used to find PolyHarps that are tagged as using a scale with more than 12 divisions of an octave.
When you want to add or change tags on a PolyHarp file, the keyboard conveniently has a list of the tags in a list over the keyboard. The same is true when searching tags.
PolyHarp also creates a few tags dynamically for more specific searches.
You can also reverse the sense of a tag in a search by prefixing it with "!"
. Tag keys themselves are case insensitive, but the values are not, unless it's for author
, name
, description
, or text
, which is a combo of all three.
PolyHarp also automatically creates tags for "today"
and "yesterday"
if there are patches or chords that were created then.
User-created tags are comma delimited, and case insensitive. If they have a ":" in them, the values will be searched for as an integer. That way, you can make up a parameter tag, and query it.
Each PolyHarp's metadata gets turned into searchable tags with these names:
Tag | What it stands for | Notes |
---|---|---|
name: |
Name | searches for a substring |
desc: |
Description | searches for a substring |
author: |
Author | searches for a substring |
text |
the text of name, description, and author | so you can match on them all |
cdate: |
Creation date | searches as a date |
mdate: |
Modified date | searches as a date |
rating: |
Rating | searches as an integer |
version: |
Version | searches as a string |
sa#: |
String Area Count | searches as an integer |
cb#: |
Chord Bar Count | searches as an integer |
built-in ro |
Built-in PolyHarps (read only) | used in the distributed PolyHarp files |
user-made rw |
PolyHarps saved by the user (read/write) | these are custom PolyHarp files |
hammer |
At least one chord bar is a hammered on chord | a dynamically created tag |
lock |
At least one chord bar is a lock bar | a dynamically created tag |
relative |
At least one chord bar is a relative bar | a dynamically created tag |
additive |
The chords are additive (undamping) | a dynamically created tag |
yesterday |
made since yesterday | a dynamically created tag |
Most of this is self expanatory, but date searches can be tricky. You can specify a complete date like "2015/12/22T12:45:22"
, but that can be cumbersome. You can instead use a shorter form like:
YYYYMMDD
for year, month, day like 20160612 for June 12, 2016YYYYMM
for year, month like 201702 for February 2017YYYY
for just the yearNormally, all the other parts of a date are set to the earliest qualifying date-time, but if you use <
in the query, and one of these shorter dates, it fills out the rest of it with the last second of that period. So cdate:<2017
means to look for objects created before the second before midnight Jan 1, 2018 (which to say, Dec 31, 2017 at 11:59:59). A search seeking the PolyHarps made on a specific day (May 3, 2014) would be:
cd:>20140503,cd:<20140503
The text fields for entering and searching for tags have been enhanced with a list of all possible tags. It's just a faster way to type them in, and also, selecting a few tags will automatically comma delimit them. Parameterized tags like "rating:"
will require you to provide a value, or a test if it's a search. there's a sidebar of buttons that let you clear (X
) or type <
,=
,or >
a little more easily.
These search queries are to be typed into the search area over the list of PolyHarps.
Search query example | Explanation |
---|---|
ro |
show all read-only files |
name:z |
show all files with a 'z' in their name |
author:J H H L |
show files I authored (case insensitive value there) |
today,!just |
files I made today without the 'just' tag |
cdate:<2016 |
files created before the last second of 2016. |