From 5d4f97f6cc5db610b12f72bd8b81aff63ddfabd4 Mon Sep 17 00:00:00 2001 From: Jamie Hardt Date: Wed, 23 Nov 2022 18:30:50 -0800 Subject: [PATCH] Documentation --- README.md | 35 +++++++++++----------------- docs/source/metadata_scopes/bext.rst | 2 -- docs/source/metadata_scopes/info.rst | 2 -- docs/source/metadata_scopes/ixml.rst | 2 -- wavinfo/wave_reader.py | 4 ++++ 5 files changed, 18 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index e0e2789..af2bf82 100644 --- a/README.md +++ b/README.md @@ -5,23 +5,24 @@ The `wavinfo` package allows you to probe WAVE and [RF64/WAVE files][eburf64] and extract extended metadata, with an emphasis on film, video and professional music production metadata. + +## Metadata Support + `wavinfo` reads: -* __Broadcast-WAVE__ metadata[1][ebu], including embedded program - loudness and coding history, if extant. This also includes the SMPTE UMID[2][smpte_330m2011]. -* __ADM__ track metadata[3][adm], including channel, pack formats, object and content names. -* __iXML__ production recorder metadata[4][ixml], including project, scene, and take tags, recorder notes +* [__Broadcast-WAVE__][ebu] metadata, including embedded program + loudness and coding history and [__SMPTE UMID__][smpte_330m2011]. +* [__ADM__][adm] track metadata, including channel, pack formats, object and content names. +* [__iXML__][ixml] production recorder metadata, including project, scene, and take tags, recorder notes and file family information. -* Most of the common __RIFF INFO__[5][info-tags] metadata fields. +* Most of the common [__RIFF INFO__][info-tags] metadata fields. * The __wav format__ is also parsed, so you can access the basic sample rate and channel count information. - In progress: -* [Dolby RMU][dolby] metadata and [EBU Tech 3285 Supplement 6][ebu3285s6]. -* iXML `STEINBERG` sound library attributes. -* __NetMix__ library attributes. +* [__Dolby RMU__][dolby] metadata and [EBU Tech 3285 Supplement 6][ebu3285s6]. * Pro Tools __embedded regions__. +* iXML `STEINBERG` sound library attributes. [dolby]:https://developer.dolby.com/globalassets/documentation/technology/dolby_atmos_master_adm_profile_v1.0.pdf [ebu]:https://tech.ebu.ch/docs/tech/tech3285.pdf @@ -32,7 +33,7 @@ In progress: [eburf64]:https://tech.ebu.ch/docs/tech/tech3306v1_1.pdf [info-tags]:https://exiftool.org/TagNames/RIFF.html#Info -## Demonstration +## How To Use The entry point for wavinfo is the WavInfoReader class. @@ -42,6 +43,9 @@ from wavinfo import WavInfoReader path = '../tests/test_files/A101_1.WAV' info = WavInfoReader(path) + +adm_metadata = info.adm +ixml_metadata = info.ixml ``` The package also installs a shell command: @@ -50,17 +54,6 @@ The package also installs a shell command: $ wavinfo test_files/A101_1.WAV ``` -### Basic WAV Data - -The length of the file in frames (interleaved samples) and bytes is available, as is the contents of the format chunk. - -```python -(info.data.frame_count, info.data.byte_count) ->>> (240239, 1441434) -(info.fmt.sample_rate, info.fmt.channel_count, info.fmt.block_align, info.fmt.bits_per_sample) ->>> (48000, 2, 6, 24) -``` - ## Other Resources * For other file formats and ID3 decoding, look at [audio-metadata](https://github.com/thebigmunch/audio-metadata). diff --git a/docs/source/metadata_scopes/bext.rst b/docs/source/metadata_scopes/bext.rst index be7b0d1..149da59 100644 --- a/docs/source/metadata_scopes/bext.rst +++ b/docs/source/metadata_scopes/bext.rst @@ -63,8 +63,6 @@ Result: Class Reference --------------- -.. module:: wavinfo - .. autoclass:: wavinfo.wave_bext_reader.WavBextReader :members: diff --git a/docs/source/metadata_scopes/info.rst b/docs/source/metadata_scopes/info.rst index 72c6a59..164c9fb 100644 --- a/docs/source/metadata_scopes/info.rst +++ b/docs/source/metadata_scopes/info.rst @@ -23,8 +23,6 @@ music library software. Class Reference --------------- -.. module:: wavinfo - .. autoclass:: wavinfo.wave_info_reader.WavInfoChunkReader :members: diff --git a/docs/source/metadata_scopes/ixml.rst b/docs/source/metadata_scopes/ixml.rst index fa6ac86..43396b2 100644 --- a/docs/source/metadata_scopes/ixml.rst +++ b/docs/source/metadata_scopes/ixml.rst @@ -37,8 +37,6 @@ Result: Class Reference --------------- -.. module:: wavinfo - .. autoclass:: wavinfo.wave_ixml_reader.WavIXMLFormat :members: diff --git a/wavinfo/wave_reader.py b/wavinfo/wave_reader.py index 2099a7a..60dc047 100644 --- a/wavinfo/wave_reader.py +++ b/wavinfo/wave_reader.py @@ -40,6 +40,8 @@ class WavInfoReader: The text encoding to use when decoding the string fields of the Broadcast-WAV extension. Per EBU 3285 this is ASCII but this parameter is available to you if you encounter a weirdo. + + """ self.info_encoding = info_encoding @@ -149,6 +151,8 @@ class WavInfoReader: :yields: a string, the :scope: of the metadatum, the string :name: of the metadata field, and the value. + + """ scopes = ('fmt', 'data', 'ixml', 'bext', 'info')