1
0
mirror of https://github.com/ScrelliCopter/VGM-Tools synced 2025-02-21 04:09:25 +11:00

wavetable stuff

This commit is contained in:
2023-11-07 02:43:28 +11:00
parent 111f800c49
commit 9c5e19264b
7 changed files with 121 additions and 15 deletions

View File

@@ -12,9 +12,9 @@ from typing import BinaryIO
from io import BytesIO
import sys
sys.path.append("../common")
from wavewriter import WaveFile, WavePcmFormatChunk, WaveDataChunk
from wavesampler import WaveSamplerChunk, WaveSamplerLoop
sys.path.append("..")
from common.wavewriter import WaveFile, WavePcmFormatChunk, WaveDataChunk
from common.wavesampler import WaveSamplerChunk, WaveSamplerLoop
# Directory constants
@@ -36,7 +36,6 @@ class Sample:
def writesmp(smp: Sample, path: str):
print(path)
with open(path, "wb") as wav:
# Make sure sample rate is nonzero
#TODO: figure out why this even happens...
@@ -77,8 +76,8 @@ def readsmp(f: BinaryIO, ofs: int, idx: int):
f.seek(ofs + 0x12)
flags = int.from_bytes(f.read(1), byteorder="little", signed=False)
# Read flag values.
if not flags & 0b00000001: return None # Check sample data bit
# Read flag values
if not flags & 0b00000001: return None # Check sample data bit
loopBit = True if flags & 0b00010000 else False
smp = Sample()
@@ -90,11 +89,11 @@ def readsmp(f: BinaryIO, ofs: int, idx: int):
smp.loopBeg = int.from_bytes(f.read(4), byteorder="little", signed=False)
smp.loopEnd = int.from_bytes(f.read(4), byteorder="little", signed=False)
else:
f.seek(8, 1) # Skip over
f.seek(8, 1) # Skip over
smp.loopBeg = 0
smp.loopEnd = 0
smp.rate = int.from_bytes(f.read(4), byteorder="little", signed=False)
f.seek(8, 1) # Skip over sustain shit
f.seek(8, 1) # Skip over sustain shit
# Read sample data
dataOfs = int.from_bytes(f.read(4), byteorder="little", signed=False)