from __future__ import unicode_literals
-from aubio import note2midi, freq2note, note2freq
+from aubio import note2midi, freq2note, note2freq, float_type
from nose2.tools import params
import unittest
def test_note2freq_under(self):
" make sure note2freq(A4) == 440"
- self.assertEqual(440, note2freq("A4"))
+ if float_type == 'float32':
+ self.assertEqual(440, note2freq("A4"))
+ else:
+ self.assertLess(abs(note2freq("A4")-440), 1.e-12)
if __name__ == '__main__':
import nose2
if (freq < 2. || freq > 100000.) return 0.; // avoid nans and infs
/* log(freq/A-2)/log(2) */
midi = freq / 6.875;
- midi = LOG (midi) / 0.69314718055995;
+ midi = LOG (midi) / 0.6931471805599453;
midi *= 12;
midi -= 3;
return midi;
smpl_t freq;
if (midi > 140.) return 0.; // avoid infs
freq = (midi + 3.) / 12.;
- freq = EXP (freq * 0.69314718055995);
+ freq = EXP (freq * 0.6931471805599453);
freq *= 6.875;
return freq;
}