Future of Java 8 Language Feature Support on Android
android-developers.googleblog.com182 pointsby BrianHV99 comments
Python 2.5 (r25:51918, Sep 19 2006, 08:49:13)
[GCC 4.0.1 (Apple Computer, Inc. build 5341)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> A = 440
>>> def alterBySemitones(basenote, semitones):
... return basenote * (2 ** (semitones/12.0))
...
>>> equal_B = alterBySemitones(A, 2)
>>> equal_G = alterBySemitones(A, -2)
>>> equal_E = alterBySemitones(A, -5)
>>> major_third_ratio = 5.0/4
>>> perfect_fifth_ratio = 3.0/2
>>> equal_G * major_third_ratio # B as third of G major chord
489.9942949771866
>>> equal_E * perfect_fifth_ratio # B as fifth of E chord
494.44133536930485
>>> equal_B # Equal tempered B
493.88330125612413
There's about a 4.5 Hz difference between just-tuned Bs in those two chords. For reference, the distance between that B and the Bb below it is about 27.72Hz. If your fret spacing is introducing that much error, it's going to be tough to tune the instrument for more than maybe one chord at a time.
I've come across some paid services (e.g., stormpath, auth0) that seem to do what I'm talking about. It would be really nice if there were a free project along those lines though.