Page 1 of 1

Multi-Sagittal JI notation (one symbol per prime)

Posted: Thu May 12, 2016 4:23 pm
by Dave Keenan
Juhani Nuorvala has made me realise that George and I had been far too dismissive of one-symbol-per-prime notations for JI. We made it clear in the Xenharmonikon article, that such a notation was possible using Sagittal, and we gave symbols for all primes up to 29, but we confusingly gave two symbols for most of them.

Dave Ryan recently raised the question of algorithms for choosing a single best comma for each prime. So I asked George to list his choices, as far up the list as he wished to go, and I did the same. We then exchanged lists and found that we disagreed only for primes 23 and 59. I immediately saw that I had been mistaken in my choice for 23 and George saw that he had been mistaken in his choice for 59. So we quickly agreed.

It turns out that we agree with a simple algorithm that looks only at commas whose exponent of the prime 3 is in the range -6 to +6 and whose size is smaller than 68.57 cents, and we choose the one whose 3-exponent has the smallest absolute value. This minimises the need for sharps and flats in the most common keys—the most common choices for 1/1. And when there are two commas with the same absolute 3-exponent, as in the case of the prime 23, we choose the smaller comma. The 68.57 cents [sqrt(3¹⁹/2³⁰)] is the upper limit for single-shaft symbols in Sagittal (about 60% of a sharp or flat).

The following diagram shows the only Sagittal symbols most JI composers will ever need, with some aids to remembering the primes they correspond to. The mnemonics are explained here.


Here's the full list, as far as we went:
Symbol	Name	Prime	Comma		SMuFL code points	Characters	Inverted characters
								to copy/paste and set in the Bravura font
:\!:	pao	5	80/81		U+E303					
:!):	tao	7	63/64		U+E305					
:/|\:	vai	11	33/32		U+E30A					
:(!/:	dao	13	26/27		U+E30F					
:~|(:   	sanai	17 	4131/4096	U+E342					
:)|:    	rai	19 	513/512		U+E390					
:|~:   	zai	23 	736/729		U+E370					
:(|:   	jai	29 	261/256		U+E346					
:(\!:	jpao	31 	31/32		U+E3A5					
:)/ /|:	phrai	37 	37/36		U+E3A0					
:/|::.:	paimo	41 	82/81		U+E302 U+E3F3				
:~|(::.::.:	sanaibo	43 	129/128		U+E342 U+E3F3 U+E3F3			
:~!):	satao	47 	47/48		U+E39D					
:!/:	kao	53 	53/54		U+E345					
:.::(|\:	odai	59 	531/512		U+E3F3 U+E30E				
:'::|(:	inai	61 	244/243		U+E3F2 U+E300				

The symbols were obtained as follows: As we came to each new prime, we determined its Olympian symbol. Then if dropping all right-accents didn't make the symbol the same as some smaller prime, the right accents stayed dropped. This first applied to prime 13, then 29. The first prime for which we need to keep the right-accent is 41 :/|::.: to distinguish it from 5.

If you have the Bravura font installed you should see the symbols below.
                   
5 7 11 13 17 19 23 29 31 37 41 43  47 53  59  61

Re: Multi-Sagittal JI notation (one symbol per prime)

Posted: Fri May 13, 2016 3:05 pm
by cam.taylor
Nice!!! This is great!!!
Cool that the single-symbol stuff has been worked out too, I probably wouldn't use it myself very much but I'm sure it will be quite helpful for some, and it has a much shorter learning curve. Awesome work!

So from a 1/1 of D, would this be correct?:

1 D
3 A
5 F:\!::#:
7 C:!):
11 G:/|\:
13 B:(!/:
17 E:~|(::b:
19 F:)|:
23 G:|~::#:
29 C:(|:
31 D:(\!:
37 E:)/ /|:
41 F:/|::.::#:
43 G:~|(::.::.:
47 A:~!):
53 B:!/:
59 C:.::(|\:
61 C:'::|(::#:

Re: Multi-Sagittal JI notation (one symbol per prime)

Posted: Sat May 14, 2016 1:02 am
by Dave Keenan
Yes. Absolutely correct. Thanks for that.

Making a font containing every combination of sharps and flats (and their doubles) with every combination of prime Sagittals that anyone is likely to want, is a very daunting prospect.

It's hard to understand why the developers of the various notation programs never considered that people might sometimes need more than one symbol per accidental. I understand that Lilypond allows it, with playback, but I also understand that Lilypond's user interface is not for everyone. I had hoped we'd have Steinberg's new notation software by now, which will also do this [wrong!]. But it's likely to be expensive.

So I guess there's nothing for it but for me to assemble a huge number of combinations, as single characters in a font. Finding the combination you want could be something of a nightmare. But I've been learning about Windows keyboard layouts and have purchased a brilliant program for creating them, called KbdEdit. It will let you create unlimited sequences of "chained dead keys". You may be familiar with the way dead keys are used to type letters with diacritics in some keyboard layouts. I could repurpose some rarely used key such as Insert or Scroll Lock or the right-hand Ctrl key, as a Sagittal key.

For example, this would allow us to type the sequence Sagittal 7 b Space to obtain the single character for the combination :!)::b:
Sagittal 7 / 5 Space for :/|::!):
Sagittal / 5 # Space for :/|::#:
Sagittal 5 7 b Space for :\!::!)::b:
Sagittal 5 5 Space for :\!::\!:
Sagittal 5 7 / Q b Space for :\!::!)::\!/::b:

Typing Q for 11 comes from the idea of mapping the primes to the keyboard as follows:
 1 2 3 4 5 6 7 8 9
  Q W E R T Y U I O
   A S D F G H J K L  
    Z X C V B N M
         5   7    
 11  13      17  19
      23          29
   31          37
Note that the units digit remains constant down each slanted column, and the tens digit depends on the row.

Creating all the dead key sequences for such a keyboard layout is nearly as daunting as creating all the combination characters in the font. BTW, I hope you like the new [ kbd ] [ /kbd ] BBCode I made. :)

Re: Multi-Sagittal JI notation (one symbol per prime)

Posted: Wed May 18, 2016 3:11 pm
by cam.taylor
Here are respectively a Multi-Sagittal 13-prime and 37-prime 45-limit diamond for anyone interested in what this stuff looks like.

One might get scared by the number of symbols behind each note, but one can see at a glance what the relations are to other pitches on the staff, within the chord, etc, like Johnston and other popular JI notations.


Re: Multi-Sagittal JI notation (one symbol per prime)

Posted: Wed May 18, 2016 4:25 pm
by Dave Keenan
Awesome work as usual, Cam. Thank you very much for these.

Could you please check to see if you have some Private Messages from me from a few days ago. Look in the grey bar near the top of the window. You may also want to turn on email notifications for these with your User Control Panel > Board Preferences > Edit Notification Options.

Re: Multi-Sagittal JI notation (one symbol per prime)

Posted: Fri May 27, 2016 12:41 am
by Dave Keenan
By the way, anyone can edit a copy of the Bravura font, to add whatever Sagittal combinations ("ligatures" in font jargon) you need, using the free cross-platform font-editing program called FontForge. FontForge is the work of one man, George Williams, who deserves some kind of award for it. Its graphical user interface is one of the most elegant and consistent I have ever used, and it is well documented. But even so, it does take some time to get up to speed with how fonts work.

All of SMuFL is in what is called the Unicode Private Use Area from U+E000 to U+F8FF because SMuFL has no official standing within Unicode, as yet. The Sagittals go from U+E300 to U+E41F (288 code-points, not all of them occupied). In Mus2 these appear in ranges 455 and 456. The SMuFL committee has set aside a sort of even-more-private-use area within the Private Use Area, for non-SMuFL ligatures and stylistic variations, from U+F400 to U+F8FF (1280 code-points). So that is where any multi-Sagittal ligatures should go. The Bravura font already uses 405 of these, from U+F400 to U+F595, and may use more in future. So I suggest starting the multi-Sagittals at U+F5E0.

[Edit: I originally wrote: That will give us 800 code points for the following 80 combinations of primes above 3. We only need to consider primes above 3 because prime 2 is the octave, and prime 3 is taken care of by the nominals, sharps and flats. But we need 10 code-points for each combination of primes below, because each can appear with double-flat, flat, sharp and double-sharp as well as appearing alone (5 combinations) and each of these will be accompanied by its inverse.]

That will give us 800 code points. This allows for the following 80 combinations of primes above 3, and 20 more that might be found useful in future (100 combinations). We only need to consider primes above 3 because prime 2 is the octave, and prime 3 is taken care of by the nominals, sharps and flats. But we need 8 code-points for each combination of primes, because each can appear alone, subtracted from sharp, added to sharp and subtracted from double-sharp (4 combinations) and each of these will be accompanied by its inverse (8 combinations).

A simple way of enumerating the combinations of primes, in such a way that popular combinations tend to come before less popular combinations, is to rank them according to a weighted sum of the absolute values of the exponents of the primes, where the weight for each prime-exponent is the prime itself. Or putting it another way: When the ratio is expressed as its prime factorisation (as they are below), replace all multiply and divide signs by plus-signs to obtain the rank. When several ratios have the same rank, list them in order of prime limit, and when they have the same prime limit list division before multiplication. It's remarkable how well this matches the ranking obtained from the Scala archive statistics.
Rank	Ratio
5	5
7	7
10	5x5
11	11
12	7/5
13	13
14	7x7
15	5x5x5
16	11/5
17	5x5/7
18	11/7
19	7x7/5
20	5x5x5x5
21	7x7x7
22	5x5x5/7
23	5x7/11
24	7x7/5x5
25	5x5x5x5x5
26	5x5x5/11
27	5x5x5x5/7
28	7x7x7x7
29	29
30	5x5x5x5x5x5
31	31
37	37
The last few are incomplete in the sense that there may be other combinations with the same rank, however they are complete in the sense that all ratios which are more popular than prime 37, according to the Scala archive stats, are included.

Re: Multi-Sagittal JI notation (one symbol per prime)

Posted: Wed Feb 01, 2017 3:02 pm
by Dave Keenan
Many thanks to Dave Ryan for pointing out that, in the Multi-Sagittal JI notation, the pythagorean part of the notation for any prime number (its nominal plus sharps or flats) can be determined simply by reducing the prime to the first octave, calculating its size in cents and looking it up in the following table of 12 pythagoreans.

Take the prime number 5 for example. Reducing it to the first octave gives 5/4. Converting it to cents is log2(5/4) * 1200 = 386.31 c. That's between the boundaries of 362.71 c and 429.47 c in the table below, so it will be notated as an altered E if 1/1 = C, or an altered B if 1/1 = G, etc.
Boundary	Notation for various			Fifths		Pythagorean
(cents)		choices of 1/1				offset		(cents)
		C	G	D	A		0		0
		D:b:	A:b:	E:b:	B:b:		-5		90.22
		D	A	E	B		2		203.91
		E:b:	B:b:	F	C		-3		294.13
		E	B	F:#:	C:#:		4		407.82
		F	C	G	D		-1		498.04
		F:#:	C:#:	G:#:	D:#:		6		611.73
		G	D	A	E		1		701.96
		A:b:	E:b:	B:b:	F		-4		729.18
		A	E	B	F:#:		3		905.87
		B:b:	F	C	G		-2		996.09
		B	F:#:	C:#:	G:#:		5		1109.78
		C	G	D	A		0		1200
You can go further and determine the Sagittal accidental for it by subtracting the cents for the chosen pythagorean. For the prime number 5 that's 386.31 - 407.82 = -21.51 c. It's negative, so it will be the downward version of the symbol. We look up the Olympian symbol for 22.51 cents at the top of the diagram below. The symbol is :/|: so the prime 5 will be notated as E:\!: when 1/1 = C.

Click on the diagram to see it full size. For more precise boundaries between the Olympian symbols see George Secor's spreadsheet.


If the symbol has a right accent mark, you can omit it, provided the symbol is not then the same as the symbol for a lower prime.