@@ -6,89 +6,135 @@ from the command line and output metadata to stdout.
66
77.. code-block :: shell
88
9- $ wavinfo [--ixml | --adm] INFILE +
10-
11- By default, `wavinfo ` will output a JSON dictionary for each file argument.
9+ $ wavinfo [[-i] | [--ixml | --adm]] INFILE +
1210
1311
1412 Options
1513-------
1614
17- Two option flags will change the behavior of the command:
15+ By default, `wavinfo ` will output a JSON dictionary for each file argument.
16+
17+ ``-i ``
18+ `wavinfo ` will run in `interactive mode `_.
19+
20+ Two option flags will change the behavior of the command in non-interactive
21+ mode:
1822
1923``--ixml ``
20- The *\-\- ixml * flag will cause `wavinfo ` to output the iXML metadata payload
21- of each input wave file, or will emit an error message to stderr if iXML
22- metadata is not present.
24+ The *\-\- ixml * flag will cause `wavinfo ` to output the iXML metadata
25+ payload of each input wave file, or will emit an error message to stderr if
26+ iXML metadata is not present.
2327
2428``--adm ``
2529 The *\-\- adm * flag will cause `wavinfo ` to output the ADM XML metadata
2630 payload of each input wave file, or will emit an error message to stderr if
2731 ADM XML metadata is not present.
2832
29- These options are mutually-exclusive, with `\-\-adm ` taking precedence.
33+ These options are mutually-exclusive, with `\-\-adm ` taking precedence. The
34+ ``--ixml `` and ``--adm `` flags futher take precedence over ``-i ``.
35+
36+
37+ Interactive Mode
38+ -----------------
39+
40+ In interactive mode, `wavinfo ` will present a command prompt which allows you
41+ to query the files provided on the command line and explore the metadata tree
42+ interactively. Each file on the command line is scanned and presented as a
43+ tree of metadata records.
44+
45+ Commands include:
46+
47+ ``ls ``
48+ List the available metadata keys at the current level.
49+
50+ ``cd ``
51+ Traverse to a metadata key in the current level (or enter `.. ` to go up
52+ to the prevvious level).
53+
54+ ``bye ``
55+ Exit to the shell.
56+
57+ Type `help ` or `? ` at the prompt to get a full list of commands.
3058
3159
3260Example Output
3361--------------
3462
63+ .. attention ::
64+
65+ Metadata fields containing binary data, such as the Broadcast-WAV UMID, will
66+ be included in the JSON output as a base-64 encoded string, preceded by the
67+ marker "base64:".
68+
3569.. code-block :: javascript
3670
37- {
38- " filename" : " tests/test_files/sounddevices/A101_1.WAV" ,
39- " run_date" : " 2022-11-26T17:56:38.342935" ,
40- " application" : " wavinfo 2.1.0" ,
41- " scopes" : {
42- " fmt" : {
43- " audio_format" : 1 ,
44- " channel_count" : 2 ,
45- " sample_rate" : 48000 ,
46- " byte_rate" : 288000 ,
47- " block_align" : 6 ,
48- " bits_per_sample" : 24
71+ {
72+ " filename" : " ../tests/test_files/nuendo/wavinfo Test Project - Audio - 1OA.wav" ,
73+ " run_date" : " 2024-11-25T10:26:11.280053" ,
74+ " application" : " wavinfo 3.0.0" ,
75+ " scopes" : {
76+ " fmt" : {
77+ " audio_format" : 65534 ,
78+ " channel_count" : 4 ,
79+ " sample_rate" : 48000 ,
80+ " byte_rate" : 576000 ,
81+ " block_align" : 12 ,
82+ " bits_per_sample" : 24
83+ },
84+ " data" : {
85+ " byte_count" : 576000 ,
86+ " frame_count" : 48000
87+ },
88+ " ixml" : {
89+ " track_list" : [
90+ {
91+ " channel_index" : " 1" ,
92+ " interleave_index" : " 1" ,
93+ " name" : " " ,
94+ " function" : " ACN0-FOA"
4995 },
50- " data" : {
51- " byte_count" : 1441434 ,
52- " frame_count" : 240239
96+ {
97+ " channel_index" : " 2" ,
98+ " interleave_index" : " 2" ,
99+ " name" : " " ,
100+ " function" : " ACN1-FOA"
53101 },
54- " ixml" : {
55- " track_list" : [
56- {
57- " channel_index" : " 1" ,
58- " interleave_index" : " 1" ,
59- " name" : " MKH516 A" ,
60- " function" : " "
61- },
62- {
63- " channel_index" : " 2" ,
64- " interleave_index" : " 2" ,
65- " name" : " Boom" ,
66- " function" : " "
67- }
68- ],
69- " project" : " BMH" ,
70- " scene" : " A101" ,
71- " take" : " 1" ,
72- " tape" : " 18Y12M31" ,
73- " family_uid" : " USSDVGR1112089007124001008206300" ,
74- " family_name" : null
102+ {
103+ " channel_index" : " 3" ,
104+ " interleave_index" : " 3" ,
105+ " name" : " " ,
106+ " function" : " ACN2-FOA"
75107 },
76- " bext" : {
77- " description" : " sSPEED=023.976-ND\r\n sTAKE=1\r\n sUBITS=$12311801\r\n sSWVER=2.67\r\n sPROJECT=BMH\r\n sSCENE=A101\r\n sFILENAME=A101_1.WAV\r\n sTAPE=18Y12M31\r\n sTRK1=MKH516 A\r\n sTRK2=Boom\r\n sNOTE=\r\n " ,
78- " originator" : " Sound Dev: 702T S#GR1112089007" ,
79- " originator_ref" : " USSDVGR1112089007124001008206301" ,
80- " originator_date" : " 2018-12-31" ,
81- " originator_time" : " 12:40:00" ,
82- " time_reference" : 2190940753 ,
83- " version" : 1 ,
84- " umid" : " 0000000000000000000000000000000000000000000000000000000000000000" ,
85- " coding_history" : " A=PCM,F=48000,W=24,M=stereo,R=48000,T=2 Ch\r\n " ,
86- " loudness_value" : null ,
87- " loudness_range" : null ,
88- " max_true_peak" : null ,
89- " max_momentary_loudness" : null ,
90- " max_shortterm_loudness" : null
108+ {
109+ " channel_index" : " 4" ,
110+ " interleave_index" : " 4" ,
111+ " name" : " " ,
112+ " function" : " ACN3-FOA"
91113 }
114+ ],
115+ " project" : " wavinfo Test Project" ,
116+ " scene" : null ,
117+ " take" : null ,
118+ " tape" : null ,
119+ " family_uid" : " E5DDE719B9484A758162FF7B652383A3" ,
120+ " family_name" : null
121+ },
122+ " bext" : {
123+ " description" : " wavinfo Test Project Nuendo output" ,
124+ " originator" : " Nuendo" ,
125+ " originator_ref" : " USJPHNNNNNNNNN202829RRRRRRRRR" ,
126+ " originator_date" : " 2022-12-02" ,
127+ " originator_time" : " 10:21:06" ,
128+ " time_reference" : 172800000 ,
129+ " version" : 2 ,
130+ " umid" : " base64:k/zr4qE4RiaXyd/fO7GuCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" ,
131+ " coding_history" : " A=PCM,F=48000,W=24,T=Nuendo\r\n " ,
132+ " loudness_value" : 327.67 ,
133+ " loudness_range" : 327.67 ,
134+ " max_true_peak" : 327.67 ,
135+ " max_momentary_loudness" : 327.67 ,
136+ " max_shortterm_loudness" : 327.67
92137 }
93- }
138+ }
139+ }
94140
0 commit comments