Talk:Functional Just System
How to name a pythagorean interval
Implementing FJS naming is easy modulo getting to know names of pythagorean (3-limit) intervals. When I attempted to implement the latter, I ended up misnaming many intervals I picked for testing. I then went to see how the author of FJS solved that and came to this lovely function. That looks complicated, of a flavor “okay I can certainly walk this through, but what is the semantics of all these things?”. Though now, when seeing that the pythagorean d2 = [19 -12⟩ is descending, I think I understand what I have done wrong (at least I nailed P/M/m/A/d/AA/dd/… right! — but those are easy to see). But if you have a simpler, higher-level description of the naming schema, I would greatly appreciate that! --Arseniiv (talk) 22:52, 28 November 2020 (UTC)
- I'm not sure is this is what you are asking for but remember that I was highly confused by this naming scheme. The letters are secondary but come first. Pi = Perfect interval, Mi = major interval, mi = minor interval, Ai = Augmented interval, di = diminished interval, AAi = double augmented interval, ddi = double diminished interval. The intervals i are just numbered 1=unison, 2=second, 3=third, 4=forth, etc. hope that helps --Xenwolf (talk) 23:58, 28 November 2020 (UTC)
- I have to admit that I have issues with the FJS in terms of how it handles intervals in the 2.3.11 subgroup, which is part of why I'm going through the effort of naming these other intervals with Alpharabian tuning. That said, I myself could use some help from anyone who was involved in the SHEFKHED naming system... --Aura (talk) 00:09, 29 November 2020 (UTC)
- I recently read that page too! I think FloraC even suggested another tolerance radius to rename some intervals. Aura maybe that one will work better for your vision of 2.3.11 intervals too? [UPD: one can freely set another radius at the FJS calculator for it to use that value. In my code it’s available too, but the code itself isn’t ready yet.] --Arseniiv (talk) 15:04, 29 November 2020 (UTC)
- In the modification of the FJS I mentioned below, 121/64 is a major seventh - check it out. I just found this example and I'm quite pleased it works. M-yac (talk) 22:49, 19 June 2021 (UTC)
- If it is ready, are there changes to make it a bit more accessible by providing an input line for the interval and presetting all other parameters so that only a button click is needed for FJS calculation? Or, even better, an URL schema that the service can be fed directly with the input interval? --Xenwolf (talk) 15:16, 29 November 2020 (UTC)
- Xenwolf, I thought to make a console app first, though for now it’s even just a library of functions and classes (like a class for monzo, also a function which returns a filled-in Infobox interval, now it fills in colors as well. Though long color names is hard to write, so I ended up supporting only short names, and then a human may make a long name from it. But maybe I should make a web version for conversions and other calculations which my code allows to do too, yeah. (There’s not much this far, but it also allows to determine if an interval is in a particular JI subgroup. Also converting ratio ↔ ¢ ↔ monzo, of course, and fractional monzos are allowed to, though just one-way — no converting to them from other forms. And initially it all started with tunings, but I made just a regular tuning generator, that’s not particularly useful. Ah, and that second part of the code for sounds and golden ratio is yet untouched for some time. I even have forgotten about it… 🤔)
- Ah, also maybe we should somehow ping User:Misotanni, maybe they’ll make changes to the calculator quicker than I’ll make my own thing ready. --Arseniiv (talk) 15:42, 29 November 2020 (UTC)
- Not sure if this is the best spot to post this, but I came up with a way to modify the FJS that gets it to treat 11-limit intervals (/just neutral intervals, more generally) more nicely. I wrote my thoughts up at User:M-yac/Neutral Intervals and the FJS and I also made an interactive webpage for messing around with the parameters to the FJS (e.g. the radius of tolerance). Xenwolf I think this webpage might be close to what you were looking for in your comment above. M-yac (talk) 22:30, 19 June 2021 (UTC)
- As of SHEFKHED, that one looks interesting and maybe I would take myself up to trying to implement it, but as at first glance it’s indeed very sophisticated, and as it also names only edostep intervals, that may prove being hard to do. If I’ll end up with some algorithm sounding simpler than at SHEFKHED interval names, I’ll let you know! --Arseniiv (talk) 15:04, 29 November 2020 (UTC)
- I fixed my algorithm, now it correctly names 2048/2187 as d1, 2187/1024 as A8, 1073741824/1162261467 as dd2, 531441/262144 as A7, 2/3 as P−5 etc.. My troubles were with correctly calculating octave shift: at first I just took [math]\lfloor \log_2 \mathrm{interval} \rfloor[/math], but that’s wrong because Cb is still the same octave as C, but one octave lower with this definition, and B# would be determined as one octave higher. Now it all works, though I need to make one part look nicer. --Arseniiv (talk) 15:04, 29 November 2020 (UTC)
Radius of tolerance
Does anybody have a short explanation why 65/63 is being used? --Xenwolf (talk) 13:04, 28 December 2020 (UTC)
- I found "the answer" close to the end of The FJS Crash Course:
- This number is the mediant of 33/32 and 32/31, being strictly greater than the former and strictly less than the latter. So 33/32 is accepted as a possible formal comma, allowing the representation of 11/8 as a P4 (if this was rejected, the next nearest approximation would be an absurd d5). But at the same time, 32/31 is rejected, disallowing the just as absurd representation of 31/16 as a P8.
- I'm not sure I really like it. --Xenwolf (talk) 13:15, 28 December 2020 (UTC)