From 3c7cf636a4b11b030dd0b76dd2cd218afbccfff5 Mon Sep 17 00:00:00 2001 From: slederer Date: Mon, 13 Oct 2025 00:47:41 +0200 Subject: [PATCH] utils: add audio conversion script, update image creation --- utils/tdrimg.py | 5 +++++ utils/wav2tdrau.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 utils/wav2tdrau.py diff --git a/utils/tdrimg.py b/utils/tdrimg.py index be93ed9..b7ce4cb 100644 --- a/utils/tdrimg.py +++ b/utils/tdrimg.py @@ -538,6 +538,9 @@ def create_image_with_stuff(imgfile): slotnr = putfile("../progs/recover.prog", None , f, part, partstart, slotnr) slotnr = putfile("../progs/changemem.prog", None , f, part, partstart, slotnr) + slotnr = putfile("../lib/pcmaudio.s", None , f, part, partstart, slotnr) + slotnr = putfile("../lib/pcmaudio.inc", None , f, part, partstart, slotnr) + listdir(f, part) # third partition @@ -600,6 +603,8 @@ def create_image_with_stuff(imgfile): slotnr = putfile("../examples/lines.pas", None , f, part, partstart, slotnr) + slotnr = putfile("../examples/pcmtest2.pas", None , f, part, partstart, slotnr) + slotnr = putfile("../examples/pictviewer.pas", None , f, part, partstart, slotnr) slotnr = putfile("../examples/Toco_Toucan.pict", None , f, part, partstart, slotnr) slotnr = putfile("../examples/shinkansen.pict", None , f, part, partstart, slotnr) diff --git a/utils/wav2tdrau.py b/utils/wav2tdrau.py new file mode 100644 index 0000000..16230d6 --- /dev/null +++ b/utils/wav2tdrau.py @@ -0,0 +1,29 @@ +import sys +import random, struct +import wave + +freq = 16000 +BIAS = 32768 +def convert(srcpath, destpath): + outdata = bytearray() + with wave.open(srcpath, mode="rb") as f: + params = f.getparams() + print(params.nchannels, params.sampwidth, params.framerate) + + frames = f.readframes(2*1024*1024) + for i in range(0, len(frames), 2): + v = int.from_bytes(frames[i:i+2], "little", signed=True) + v += BIAS + hi = (v & 0xFF00) >> 8 + lo = (v & 0x00FF) + outdata.append(hi) + outdata.append(lo) + + with open(destpath, mode="wb") as f: + f.write(outdata) + + +if __name__ == "__main__": + sourcefilename = sys.argv[1] + destfilename = sys.argv[2] + convert(sourcefilename, destfilename)