Compose-key definitions for easy typing of Sagittals

Post Reply
User avatar
Dave Keenan
Site Admin
Posts: 1071
Joined: Tue Sep 01, 2015 2:59 pm
Location: Brisbane, Queensland, Australia
Contact:

Compose-key definitions for easy typing of Sagittals

Post by Dave Keenan »

There is a wonderful keyboard mapping utility for Microsoft Windows called WinCompose, written by Sam Hocevar. Similar Compose-key products are available for Linux and MacOS.

When used with the Bravura font and the definitions below, it will allow you to type Sagittal characters as easily-remembered key sequences. In this case the ASCII longhand. Just precede it with two presses of the right Alt key and follow it with a space if necessary. e.g. the 5-comma-up or pai symbol :/|: can be typed as this sequence:
<Alt> <Alt> / | <space>

Definitions could just as easily be set up to use the ASCII shorthand, the sagispeak name, or the ratio. And the ratio could generate a single symbol if terminated with a <space>, and generate multiple symbols (one per prime) if terminated with a right <Alt>. Also, definitions could be added for the multi-shaft Sagittals. If anyone develops any such definitions please post them here to share.

Download and install the Bravura font.
Download and install WinCompose.
Right-click on the WinCompose icon on the right of the task bar and choose Options, then click the Edit button. This will open a text file for user-defined key sequences.
Copy and paste the following definitions at the end of the file. Close and save the file, then click the Reload and Close buttons.
You can then go to a word-processor or music notation software, choose the Bravura font, and type single-shaft Sagittal symbols to your heart's content.
 
# Sagittal-compatible accidentals in the Bravura font
<Multi_key> <Multi_key> <b> <space>        : ""    UE260    # Conventional flat
<Multi_key> <Multi_key> <h>            : ""    UE261    # Natural
<Multi_key> <Multi_key> <#>            : ""    UE262    # Conventional sharp
<Multi_key> <Multi_key> <x>            : ""    UE47D    # Large double sharp
<Multi_key> <Multi_key> <b> <b>            : ""    UE264    # Conventional double flat

# Spartan Sagittal single-shaft symbols in the Bravura font
<Multi_key> <Multi_key> <|> <(>            : ""    UE300    # Sagittal |(
<Multi_key> <Multi_key> <!> <(>            : ""    UE301    # Sagittal !(
<Multi_key> <Multi_key> </> <|> <space>        : ""    UE302    # Sagittal /|
<Multi_key> <Multi_key> <\> <!> <space>        : ""    UE303    # Sagittal \!
<Multi_key> <Multi_key> <\> <|> <space>        : ""    UE303    # Sagittal \!
<Multi_key> <Multi_key> <|> <)>            : ""    UE304    # Sagittal |)
<Multi_key> <Multi_key> <!> <)>            : ""    UE305    # Sagittal !)
<Multi_key> <Multi_key> </> </> <|>        : ""    UE306    # Sagittal //|
<Multi_key> <Multi_key> <\> <\> <!>        : ""    UE307    # Sagittal \\!
<Multi_key> <Multi_key> <\> <\> <|>        : ""    UE307    # Sagittal \\!
<Multi_key> <Multi_key> </> <|> <)>        : ""    UE308    # Sagittal /|)
<Multi_key> <Multi_key> <\> <!> <)>        : ""    UE309    # Sagittal \!)
<Multi_key> <Multi_key> <\> <|> <)>        : ""    UE309    # Sagittal \!)
<Multi_key> <Multi_key> </> <|> <\>        : ""    UE30A    # Sagittal /|\
<Multi_key> <Multi_key> <\> <!> </>        : ""    UE30B    # Sagittal \!/
<Multi_key> <Multi_key> <\> <|> </>        : ""    UE30B    # Sagittal \!/
<Multi_key> <Multi_key> <(> <|> <)>        : ""    UE30C    # Sagittal (|)
<Multi_key> <Multi_key> <(> <!> <)>        : ""    UE30D    # Sagittal (!)
<Multi_key> <Multi_key> <(> <|> <\>        : ""    UE30E    # Sagittal (|\
<Multi_key> <Multi_key> <(> <!> </>        : ""    UE30F    # Sagittal (!/
<Multi_key> <Multi_key> <(> <|> </>        : ""    UE30F    # Sagittal (!/

# Athenian Sagittal extension single-shaft symbols in the Bravura font
<Multi_key> <Multi_key> <)> <|> <(>        : ""    UE340    # Sagittal )|(
<Multi_key> <Multi_key> <)> <!> <(>        : ""    UE341    # Sagittal )!(
<Multi_key> <Multi_key> <~> <|> <(>        : ""    UE342    # Sagittal ~|(
<Multi_key> <Multi_key> <~> <!> <(>        : ""    UE343    # Sagittal ~!(
<Multi_key> <Multi_key> <|> <\> <space>        : ""    UE344    # Sagittal |\
<Multi_key> <Multi_key> <!> </> <space>        : ""    UE345    # Sagittal !/
<Multi_key> <Multi_key> <|> </> <space>        : ""    UE345    # Sagittal !/
<Multi_key> <Multi_key> <(> <|> <space>        : ""    UE346    # Sagittal (|
<Multi_key> <Multi_key> <(> <!> <space>        : ""    UE347    # Sagittal (!
<Multi_key> <Multi_key> <(> <|> <(>        : ""    UE348    # Sagittal (|(
<Multi_key> <Multi_key> <(> <!> <(>        : ""    UE349    # Sagittal (!(

# Trojan Sagittal extension single-shaft symbols in the Bravura font
<Multi_key> <Multi_key> <|> <~>            : ""    UE370    # Sagittal |~
<Multi_key> <Multi_key> <!> <~>            : ""    UE371    # Sagittal !~
<Multi_key> <Multi_key> <)> </> <|> <space>    : ""    UE372    # Sagittal )/|
<Multi_key> <Multi_key> <)> <\> <!> <space>    : ""    UE373    # Sagittal )\!
<Multi_key> <Multi_key> <)> <\> <|> <space>    : ""    UE373    # Sagittal )\!
<Multi_key> <Multi_key> </> <|> <~>        : ""    UE374    # Sagittal /|~
<Multi_key> <Multi_key> <\> <!> <~>        : ""    UE375    # Sagittal \!~
<Multi_key> <Multi_key> <\> <|> <~>        : ""    UE375    # Sagittal \!~

# Promethean Sagittal extension single-shaft symbols in the Bravura font
<Multi_key> <Multi_key> <)> <|> <space>        : ""    UE390    # Sagittal )|
<Multi_key> <Multi_key> <)> <!> <space>        : ""    UE391    # Sagittal )!
<Multi_key> <Multi_key> <~> <|> <space>        : ""    UE392    # Sagittal ~|
<Multi_key> <Multi_key> <~> <!> <space>        : ""    UE393    # Sagittal ~!
<Multi_key> <Multi_key> <)> <~> <|> <space>    : ""    UE394    # Sagittal )~|
<Multi_key> <Multi_key> <)> <~> <!> <space>    : ""    UE395    # Sagittal )~!
<Multi_key> <Multi_key> <~> <~> <|> <space>    : ""    UE396    # Sagittal ~~|
<Multi_key> <Multi_key> <~> <~> <!> <space>    : ""    UE397    # Sagittal ~~!
<Multi_key> <Multi_key> <)> <|> <~>        : ""    UE398    # Sagittal )|~
<Multi_key> <Multi_key> <)> <!> <~>        : ""    UE399    # Sagittal )!~
<Multi_key> <Multi_key> <)> <|> <)>        : ""    UE39A    # Sagittal )|)
<Multi_key> <Multi_key> <)> <!> <)>        : ""    UE39B    # Sagittal )!)
<Multi_key> <Multi_key> <~> <|> <)>        : ""    UE39C    # Sagittal ~|)
<Multi_key> <Multi_key> <~> <!> <)>        : ""    UE39D    # Sagittal ~!)
<Multi_key> <Multi_key> <~> <|> <\>        : ""    UE39E    # Sagittal ~|\
<Multi_key> <Multi_key> <~> <!> </>        : ""    UE39F    # Sagittal ~!/
<Multi_key> <Multi_key> <~> <|> </>        : ""    UE39F    # Sagittal ~!/
<Multi_key> <Multi_key> <)> </> </> <|> <space>    : ""    UE3A0    # Sagittal )//|
<Multi_key> <Multi_key> <)> <\> <\> <!> <space>    : ""    UE3A1    # Sagittal )\\!
<Multi_key> <Multi_key> <)> <\> <\> <|> <space>    : ""    UE3A1    # Sagittal )\\!
<Multi_key> <Multi_key> <(> <|> <~>        : ""    UE3A2    # Sagittal (|~
<Multi_key> <Multi_key> <(> <!> <~>        : ""    UE3A3    # Sagittal (!~
<Multi_key> <Multi_key> <(> </> <|> <space>    : ""    UE3A4    # Sagittal (/|
<Multi_key> <Multi_key> <(> <\> <!> <space>    : ""    UE3A5    # Sagittal (\!
<Multi_key> <Multi_key> <(> <\> <|> <space>    : ""    UE3A5    # Sagittal (\!
<Multi_key> <Multi_key> <)> </> <|> <\>        : ""    UE3A6    # Sagittal )/|\
<Multi_key> <Multi_key> <)> <\> <!> </>        : ""    UE3A7    # Sagittal )\!/
<Multi_key> <Multi_key> <)> <\> <|> </>        : ""    UE3A7    # Sagittal )\!/
<Multi_key> <Multi_key> <|> <\> <)>        : ""    UE3A8    # Sagittal |\)
<Multi_key> <Multi_key> <!> </> <)>        : ""    UE3A9    # Sagittal !/)
<Multi_key> <Multi_key> <|> </> <)>        : ""    UE3A9    # Sagittal !/)
<Multi_key> <Multi_key> <|> <\> <\>        : ""    UE3AA    # Sagittal |\\
<Multi_key> <Multi_key> <!> </> </>        : ""    UE3AB    # Sagittal !//
<Multi_key> <Multi_key> <)> <|> <\> <\>        : ""    UE3AC    # Sagittal )|\\
<Multi_key> <Multi_key> <)> <!> </> </>        : ""    UE3AD    # Sagittal )!//
<Multi_key> <Multi_key> <)> <|> </> </>        : ""    UE3AD    # Sagittal )!//

# Herculean Sagittal diacritics in the Bravura font
<Multi_key> <Multi_key> <|> <space>        : ""    UE3F0    # Sagittal shaft up
<Multi_key> <Multi_key> <!> <space>        : ""    UE3F1    # Sagittal shaft down
<Multi_key> <Multi_key> <'>            : ""    UE3F2    # Sagittal acute
<Multi_key> <Multi_key> <.>            : ""    UE3F3    # Sagittal grave
 
[Previous version downloaded 44 times.]
Attachments
DaveKsCompose.txt
(27.95 KiB) Downloaded 37 times

User avatar
cmloegcmluin
Site Admin
Posts: 770
Joined: Tue Feb 11, 2020 3:10 pm
Location: San Francisco, California, USA
Real Name: Douglas Blumeyer
Contact:

Re: Compose-key definitions for easy typing of Sagittals

Post by cmloegcmluin »

I caught several mistakes in the above. e.g.
<Multi_key> <Multi_key> <\> <!> <space> : "" UE303 # Sagittal \!
<Multi_key> <Multi_key> <\> <|> <space> : "" UE303 # Sagittal \!
which causes both :\!: and :/|: to map to :\!:.

For now, keep your eye out. Should not be too tough to fix this. I eventually plan to fix these and expand WinCompose to support:
  • multi-sagittal (one per prime)
  • mixed sagittal
  • ratios
  • comma definitions
  • multi-shaft sagittal
  • sagispeak
  • ASCII shorthand
  • working like a JI notation calculator as described here:
    viewtopic.php?p=269#p269
Very nice to have this utility. Looking forward to perfecting it!

User avatar
Dave Keenan
Site Admin
Posts: 1071
Joined: Tue Sep 01, 2015 2:59 pm
Location: Brisbane, Queensland, Australia
Contact:

Re: Compose-key definitions for easy typing of Sagittals

Post by Dave Keenan »

cmloegcmluin wrote:
Fri Mar 20, 2020 7:39 am
I caught several mistakes in the above. e.g.
<Multi_key> <Multi_key> <\> <!> <space> : "" UE303 # Sagittal \!
<Multi_key> <Multi_key> <\> <|> <space> : "" UE303 # Sagittal \!
which causes both :\!: and :/|: to map to :\!:.
That's actually correct. The second one is not ⎄/| but ⎄\|. It is meant to be a kind of lazy alternative to ⎄\! for producing :\!: .

We also have
<Multi_key> <Multi_key> </> <|> <space> : "" UE302 # Sagittal /|
which ensures that ⎄/| produces :/|:

In the case of the straight barbs only, the slope of the slash, in conjunction with which side of the shaft(s) it is on, gives you the direction of the symbol. You don't need the exclamation mark ! to specify downward direction as you do with the other flags ( ) ~ . You really should type it with "!". But in case you get lazy, it will still work. :o
I eventually plan to fix these and expand WinCompose to support:
  • multi-sagittal (one per prime)
  • mixed sagittal
  • ratios
  • comma definitions
  • multi-shaft sagittal
  • sagispeak
  • ASCII shorthand
  • working like a JI notation calculator as described here:
    viewtopic.php?p=269#p269
Very nice to have this utility. Looking forward to perfecting it!
That will be totally awesome. Thanks!

User avatar
cmloegcmluin
Site Admin
Posts: 770
Joined: Tue Feb 11, 2020 3:10 pm
Location: San Francisco, California, USA
Real Name: Douglas Blumeyer
Contact:

Re: Compose-key definitions for easy typing of Sagittals

Post by cmloegcmluin »

Oh ho! Got it. Yes, that all totally makes sense that the barbs can support lazy versions. I haven't gotten comfy enough with the ASCII yet to get lazy about it, but it's something to aspire to.

When sharing out the full WinCompose capabilities, I'll do so in spreadsheet form, and put these "lazy" alternatives in a separate column (just as the Sagispeak, ASCII shorthand, etc. will be in their own columns). I expect that would prevent others from knee-jerk assuming they were mistakes.

User avatar
Dave Keenan
Site Admin
Posts: 1071
Joined: Tue Sep 01, 2015 2:59 pm
Location: Brisbane, Queensland, Australia
Contact:

Re: Compose-key definitions for easy typing of Sagittals

Post by Dave Keenan »

cmloegcmluin wrote:
Sat Mar 21, 2020 1:31 am
I haven't gotten comfy enough with the ASCII yet to get lazy about it, but it's something to aspire to.
The delicious irony of "aspiring to laziness" cracked me up. :lol: Thanks.
When sharing out the full WinCompose capabilities, I'll do so in spreadsheet form, and put these "lazy" alternatives in a separate column (just as the Sagispeak, ASCII shorthand, etc. will be in their own columns). I expect that would prevent others from knee-jerk assuming they were mistakes.
I think it would be better to leave them out of the spreadsheet completely.

Post Reply