[HN Gopher] Powers of 2 in lexical order yield decibels (2019)
       ___________________________________________________________________
        
       Powers of 2 in lexical order yield decibels (2019)
        
       Author : johndcook
       Score  : 14 points
       Date   : 2022-02-28 17:16 UTC (5 hours ago)
        
 (HTM) web link (www.solipsys.co.uk)
 (TXT) w3m dump (www.solipsys.co.uk)
        
       | kazinator wrote:
       | The lexicographic sort isn't arbitrary:                 1    =
       | 2^0 / 1                                           ~= 2^0
       | 1.28 = 2^7 / 100   ~= 2^7/(2^6.6439)  ~= 2^(7 - 6.6439)  ~=
       | 2^0.3561       1.6  = 2^4 / 10    ~= 2^4/(2^3.3219)  ~= 2^(4 -
       | 3.3219)  ~= 2^0.6780       2.00 = 2^1 / 1
       | ~= 2^1       2.56 = 2^8 / 100   ~= 2^8/(2^6.6439)  ~= 2^(8 -
       | 6.6439)  ~= 2^1.3561       3.2  = 2^5 / 10    ~= 2^5/(2^3.3219)
       | ~= 2^(5 - 3.3219)  ~= 2^1.6780        4.0  = 2^2 / 1
       | = 2^2       6.4  = 2^6 / 10    ~= 2^6/(2^3.3219)  ~= 2^(6 -
       | 3.3219)  ~= 2^2.6780       8.0  = 2^3 / 1
       | = 2^3
       | 
       | Differences between those powers of two:                 0.3561
       | 0.3219       0.3220       0.3561       0.3219
       | 
       | These increments are close to 1/3 which is what you need to
       | divide the musical octave (frequency doubling) into 3 steps:
       | 2^(0/3)  = 1       2^(1/3) ~= 1.2599       2^(2/3) ~= 1.5784
       | 2^(3/3)  = 2
       | 
       | There is a well-known relationship that when you divide a
       | frequency factor of 10 into 10 steps, you get approximately three
       | steps per musical octave (frequency doubling). You can see this
       | on any 31 band graphical equalizer. This relies on the
       | "coincidence" seen the other table shown:                 10^0.0
       | = 1       10^0.1 ~= 1.2589       10^0.2 ~= 1.5849       10^0.3  =
       | 1.9953
       | 
       | The geometric decade steps provide a close-to-exact doubling
       | also, every three steps.
       | 
       | Right, so where did I get those 6.6439 and 3.3219 numbers? Those
       | are just the approximations of log2(100) and log2(10).
       | 
       | At the heart of the "lexicographic coincidence" seems to be the
       | observation that these logarithms have .64 and .32 fractional
       | parts, or about 2/3 and 1/3.
       | 
       | So for instance since 100 = 2^(log2(100), we can rewrite 1.28 as
       | 128 / 2^(log2(100) which is 2^7/2^(log2(100)).
       | 
       | So then we have powers of two on top and bottom and can subtract
       | them: 2^(7 - log2(100)), which is where we get 7 - 6.6439 =
       | 0.3561.
        
         | gowld wrote:
         | Pulling a bit out, to try to find intuition:
         | log_2(10) ~= 10/3             10^(1/10) ~= cubeRoot(2)
         | 
         | So the first 10 decibels are ~= the first 10 powers of
         | CubeRoot(2)
         | 
         | "dividing by 10^n until you reach 1<y<10" is the operation:
         | CubeRoot(2)^k -> CubeRoot(2) ^ (k mod 10)
         | 
         | So, the scaling operation on 2^m = CubeRoot(2)^3m is going to
         | land on multiples of 1/3, and then sorting will put them in
         | order.
         | 
         | You want 10 values, so you take the first 10 powers of 2.
         | CubeRoot(2)^{0..9}
         | 
         | Remaining question: why do you get 10 _distinct_ values? Well,
         | it 's because 2^a and 2^b only scale to the same value if (by
         | logarithms) a - b = 10j.
        
       | ColinWright wrote:
       | I think this is a lovely description/derivation:
       | 
       | https://twitter.com/icecolbeveridge/status/14984109481173401...
       | 
       | https://www.youtube.com/watch?v=VEPRK3O9K2s
        
       ___________________________________________________________________
       (page generated 2022-02-28 23:02 UTC)