From 9f3f6720e6ae92641d05b3126cf5b7ce6842d64d Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Fri, 28 May 2021 21:02:50 +0200 Subject: Add script used to generate the pitch tables to the repo --- tools/scripts/gen_pitch_table.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 tools/scripts/gen_pitch_table.py diff --git a/tools/scripts/gen_pitch_table.py b/tools/scripts/gen_pitch_table.py new file mode 100644 index 0000000..f83ff3e --- /dev/null +++ b/tools/scripts/gen_pitch_table.py @@ -0,0 +1,22 @@ +import numpy as np + +# We consider that samples are pitched with respect to C4 (60). +audio_freq = 18157 +precision = 17 +interval = 2 ** (1 / 12) + +freqz = np.zeros(120) +freqz[60] = 261.6 / audio_freq +for i in range(61, 120): + freqz[i] = freqz[i - 1] * interval + +r = list(range(0, 60)) +r.reverse() +for i in r: + freqz[i] = freqz[i + 1] / interval + +if (4294967295 - int(max(freqz) * 2 ** precision * 44100)) < 0: + print("Not enough room in u32 for the given precision") +else: + for f in freqz: + print("{},".format(int(f * 2 ** precision))) -- cgit v1.2.1