diff --git a/docs/source/references.rst b/docs/source/references.rst index aa388c1..4006cb2 100644 --- a/docs/source/references.rst +++ b/docs/source/references.rst @@ -36,6 +36,11 @@ iXML * `Gallery Software iXML Specification `_ +Sampler Metadata +---------------- + +* `RecordingBlogs.com — Sample chunk (of a Wave file)`_ + RIFF Metadata ------------- * `1991. Multimedia Programming Interface and Data Specifications 1.0 `_ diff --git a/wavinfo/wave_smpl_reader.py b/wavinfo/wave_smpl_reader.py new file mode 100644 index 0000000..eb09f91 --- /dev/null +++ b/wavinfo/wave_smpl_reader.py @@ -0,0 +1,78 @@ +import struct + +from enum import IntEnum +from typing import Tuple, NamedTuple, List + + +class WaveSmplLoop(NamedTuple): + ident: int + loop_type: int + start: int + end: int + fraction: int + repetition_count: int + + +class WaveSmplReader: + + def __init__(self, smpl_data: bytes): + """ + Read sampler metadata from smpl chunk. + """ + + header_field_fmt = "