diff options
author | Drashna Jael're <drashna@live.com> | 2021-06-29 12:23:03 -0700 |
---|---|---|
committer | Drashna Jael're <drashna@live.com> | 2021-06-29 12:24:07 -0700 |
commit | acf2c323e2927f6007b17ded577cf49fd86fec6c (patch) | |
tree | 8334dc5c71e6ab9bf33c76143eac7bb0e60159b0 /util/sample_parser.py | |
parent | ec7a7beeed3046e9144d4c4ce0ef3b2c4f9e4341 (diff) | |
parent | f55e39e8a2246f6f96fd5d4a84a866e2615cde7b (diff) |
Merge upstream QMK Firmware at '0.12.52~1'
Diffstat (limited to 'util/sample_parser.py')
-rwxr-xr-x | util/sample_parser.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/util/sample_parser.py b/util/sample_parser.py new file mode 100755 index 0000000000..70e193aee7 --- /dev/null +++ b/util/sample_parser.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +# +# Copyright 2019 Jack Humbert +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +import wave, struct, sys + +waveFile = wave.open(sys.argv[1], 'r') +# print(str(waveFile.getparams())) +# sys.exit() + +if (waveFile.getsampwidth() != 2): + raise(Exception("This script currently only works with 16bit audio files")) + +length = waveFile.getnframes() +out = "#define DAC_SAMPLE_CUSTOM_LENGTH " + str(length) + "\n\n" +out += "static const dacsample_t dac_sample_custom[" + str(length) + "] = {" +for i in range(0,length): + if (i % 8 == 0): + out += "\n " + waveData = waveFile.readframes(1) + data = struct.unpack("<h", waveData) + out += str(int((int(data[0]) + 0x8000) / 16)) + ", " +out = out[:-2] +out += "\n};" +print(out) |