-
Notifications
You must be signed in to change notification settings - Fork 0
Description
By changing the format of the URLs generated, we can make notio completely independent on a database.
BEFORE BEGINNING on this issue, it has to be evaluated:
- Does the current database cost anything? Or will it cost something if we use it more? If so, when?
- Will the new URL be seen as a good thing (one can clearly see what is what), or a bad thing (it will be significantly longer)
- Do Mats and Cecilia agree with this?
The change would be, concretely, that:
"/shared/FDa5RdtPlGfMHekkIdtd"
would be this
"shared/?show_key=1&ext_key=1&sound=piano¬ation=11&root=C&octave=3&scale=ionian&clefs=treble&colour_key=1"
Concretely:
Notation and Scales (using custom scales) will have a number that uniquely identifies a specific pattern, to further shorten it, ie. each notation can be seen as a bit being either 1 or 0, giving each notation a unique number
A Custom scale would then get a unique number similar to the Notation number. The it will "build" the custom scale from the number. Of course, to make it clearer, if one uses a scale, the name should of course be in the URL to make it easier to see (ie. scale=ionian and scale=2773 is the same scale as shown below, but scale=ionian chooses the "normal" scale, while scale=2773 builds an ionian scale in the custom menu)
The specific mathematics is explained here, for future reference:
If i have a Notation A, B and C and i can choose 0 to all of them, that means that
2 corresponds to 010, therefore meaning B is chosen and the rest is not.
5 corresponds to 101, meaning A and C are chosen, B is not
If i have a scale of all 12 tones, i can describe a ionian scale by saying:
101011010101
C' D'EF ' G'A 'H
Which means the number is:
2048*1+1024*0+512*1+256*0+128*1+64*1+32*0+16*1+8*0+4*1+2*0+1*1 = 2773
Meaning that if the scale=2773