Skip to content

Commit 57b6e5d

Browse files
committed
README.md: Add Tags & Metadata Reference
1 parent 1c1e80e commit 57b6e5d

File tree

1 file changed

+83
-7
lines changed

1 file changed

+83
-7
lines changed

README.md

+83-7
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@ Both standalone Liquidsoap operation and integrated playout systems like AzuraCa
3434
- [Install on AzuraCast](#install-on-azuracast)
3535
- [Settings](#settings)
3636
- [Command-line interface](#command-line-interface)
37-
- [Reference to parameters and settings](#reference-to-parameters-and-settings)
37+
- [Parameters and settings reference⇧](#parameters-and-settings reference)
38+
- [Tags and metadata reference](#tags-and-metadata-reference)
39+
- [Categories](#categories)
40+
- [Tags and metadata used by Autocue](#tags-and-metadata-used-by-autocue)
3841
- [Examples](#examples)
3942
- [Hidden track](#hidden-track)
4043
- [Long tail handling](#long-tail-handling)
@@ -246,7 +249,7 @@ A full audio file analysis can take some time. cue_file tries to avoid a
246249
Please report any issues to https://github.com/Moonbase59/autocue/issues
247250
```
248251

249-
## <a name="reference-to-parameters-and-settings"></a>Reference to parameters and settings <a href="#toc" class="goToc">⇧</a>
252+
## <a name="parameters-and-settings reference"></a>Parameters and settings reference⇧ <a href="#toc" class="goToc">⇧</a>
250253

251254
Here is a **reference table** for settings and parameters in `cue_file` (the external executable) and `autocue.cue_file` (the Liquidsoap integration):
252255

@@ -273,10 +276,73 @@ Here is a **reference table** for settings and parameters in `cue_file` (the ext
273276
||`settings.autocue.cue_file.fade_out`|2.5|seconds|
274277
||`settings.autocue.cue_file.timeout`|60.0|seconds|
275278
||`settings.autocue.cue_file.unify_loudness_correction`|true|true/false|
276-
|—|`settings.autocue.cue_file.ignored_overrides`|['duration']|(list)
279+
||`settings.autocue.cue_file.ignored_overrides`|['duration']|_(list)_|
280+
||`settings.autocue.cue_file.version`|_(version)_|_([SemVer](https://semver.org/))_|
281+
||`settings.autocue.cue_file.version_external`|_(version)_|_([SemVer](https://semver.org/))_|
277282

278283
**Before changing any of these, please _know exactly what you’re doing_, and test locally before applying changes to your station!**
279284

285+
286+
## <a name="tags-and-metadata-reference"></a>Tags and metadata reference <a href="#toc" class="goToc">⇧</a>
287+
288+
### <a name="categories"></a>Categories <a href="#toc" class="goToc">⇧</a>
289+
290+
Tags and metadata can be roughly grouped into categories:
291+
292+
|Category|Short| |
293+
|---|---|---|
294+
|Settings|S|can be set in Autocue settings|
295+
|Controls|C|control Autocue behaviour and features|
296+
|Results from `cue_file`|R|(JSON)|
297+
|Results from `autocue.cue_file`|R|(Liquidsoap)|
298+
|Informational results|I|not used for computations, but useful to have|
299+
|Overrides|O|can be set in Visual Cue Editor/Advanced tab|
300+
|Reserved for future expansion|X|_Planning ahead, so no one else accidentally uses these for something else_|
301+
302+
303+
### <a name="tags-and-metadata-used-by-autocue"></a>Tags and metadata used by Autocue <a href="#toc" class="goToc">⇧</a>
304+
305+
For easier lookup, this table will be kept in _alphabetical order_. If in doubt, please also check the _footnotes_.
306+
307+
|Name|Type|Data type|Stored as|Unit|Example|
308+
|---|---|---|---|---|---|
309+
|duration[^6]|R|float|float|s|1235.121633|
310+
|liq_hook1_in|X|float|float|s|_(reserved)_|
311+
|liq_hook1_out|X|float|float|s|_(reserved)_|
312+
|liq_hook2_in|X|float|float|s|_(reserved)_|
313+
|liq_hook2_out|X|float|float|s|_(reserved)_|
314+
|liq_hook3_in|X|float|float|s|_(reserved)_|
315+
|liq_hook3_out|X|float|float|s|_(reserved)_|
316+
|jingle_mode[^5]|C|bool|bool||true|
317+
|liq_amplify_adjustment|R,I|float|string|dB|0.00 dB|
318+
|liq_amplify|R|float|string|dB|-7.53 dB|
319+
|liq_blankskip|S,C|float|float|s|5.00|
320+
|liq_blank_skipped|R|bool|bool||true|
321+
|liq_cross_duration[^2]||float|float|s|**_(do not use)_**|
322+
|liq_cross_start_next|R,O|float|float|s|224.10|
323+
|liq_cue_duration|R,I|float|float|s|227.50|
324+
|liq_cue_file|C|bool|bool||false|
325+
|liq_cue_in|R,O|float|float|s|0.00|
326+
|liq_cue_out|R,O|float|float|s|227.50|
327+
|liq_fade_in|O|float|float|s|0.10|
328+
|liq_fade_out|R,O|float|float|s|2.50|
329+
|liq_longtail|R,I|bool|bool||false|
330+
|liq_loudness|R|float|string|LUFS|-10.47 LUFS|
331+
|liq_loudness_range|R,I|float|string|LU|7.90 LU|
332+
|liq_ramp1|X|float|float|s|_(reserved)_|
333+
|liq_ramp2|X|float|float|s|_(reserved)_|
334+
|liq_ramp3|X|float|float|s|_(reserved)_|
335+
|liq_reference_loudness|S|float|string|LUFS|-18.00 LUFS|
336+
|liq_sustained_ending|R,I|bool|bool||false|
337+
|liq_true_peak_db|R,I|float|string|dBFS|4.25 dBFS|
338+
|liq_true_peak|R,I|float|float|_(linear)_|1.632000|
339+
|r128_track_gain[^3]|R|int|int||-3359|
340+
|replaygain_reference_loudness|S|float|string|LUFS|-18.00 LUFS|
341+
|replaygain_track_gain|R|float|string|dB|-7.53 dB|
342+
|replaygain_track_peak|R,I|float|float|_(linear)_|1.632000|
343+
|replaygain_track_range|R,I|float|string|LU|7.90 LU|
344+
|songtype[^4]|C|char|string||S|
345+
280346
## <a name="examples"></a>Examples <a href="#toc" class="goToc">⇧</a>
281347

282348
### <a name="hidden-track"></a>Hidden track <a href="#toc" class="goToc">⇧</a>
@@ -478,7 +544,7 @@ If you have a long cross duration and a jingle following that is _shorter_ than
478544

479545
### <a name="tagsannotations-that-influence-autocues-behaviour"></a>Tags/Annotations that influence `autocue`’s behaviour <a href="#toc" class="goToc">⇧</a>
480546

481-
There are three possible _annotations_ (or tags from a file) that can influence `autocue`’s behaviour. In an annotation string, these must occur _to the right_ of the protcol, i.e. `autocue:annotate:...` to work as intended. Think of these as "switches" to enable or disable features.
547+
There are three possible _annotations_ (or tags from a file) that can influence `autocue`’s behaviour. In an annotation string, these must occur _to the right_ of the protcol, i.e. `autocue:annotate:...` to work as intended. Think of these as "controls" to enable or disable features.
482548

483549
#### <a name="liq_cue_file-truefalsenot-set"></a>`liq_cue_file` (`true`/`false`/not set) <a href="#toc" class="goToc">⇧</a>
484550

@@ -546,23 +612,23 @@ In the returned _metadata_, in `liq_blank_skipped`, you’ll also receive inform
546612
2024/06/17 21:25:14 [autocue.cue_file:3] ("liq_blank_skipped", "true")
547613
```
548614

549-
`liq_blankskip` is the _switch_ that controls `autocue`’s behaviour, while `liq_blank_skipped` is the _result_ of the operation.
615+
`liq_blankskip` is the _control_ that controls `autocue`’s behaviour, while `liq_blank_skipped` is the _result_ of the operation.
550616

551617
#### <a name="azuracast-jingle_mode-true"></a>AzuraCast: `jingle_mode` (`"true"`) <a href="#toc" class="goToc">⇧</a>
552618

553619
This is a convenience feature for AzuraCast users. If you set _Hide Metadata from Listeners ("Jingle Mode")_ to ON for a playlist in AzuraCast, it will annotate requests for this playlist with `jingle_mode="true"`. Even if blank skipping for songs is globally enabled, we would not want this to happen for jingles. They might contain pauses in speech that could cut them off early.
554620

555621
So if `autocue` sees this annotation (or tag in a file), it will automatically _disable_ "blankskip" for this track.
556622

557-
Note this setting is superceded by `liq_blankskip`, the "ultimate blankskip switch". So if _both_ are there, the setting from `liq_blankskip` will "win".
623+
Note this setting is superceded by `liq_blankskip`, the "ultimate blankskip control". So if _both_ are there, the setting from `liq_blankskip` will "win".
558624

559625
#### <a name="sam-broadcaster-smart-categories"></a>SAM Broadcaster Smart Categories <a href="#toc" class="goToc">⇧</a>
560626

561627
This is a convenience feature for those who came from _SAM Broadcaster/SAM DJ_, or share a music library with SAM, and have used [SAM Broadcaster "Smart Categories"](https://support.spacial.com/hc/en-us/articles/229535987-SAM-Broadcaster-SAM-DJ-Using-Smart-Categories) to categorize their tracks. _Smart Categories_ are held in a `songtype` tag, whose contents is a single letter: `S` for normal songs, `I` for Station ID, `J` for Jingle, `N` for News, and so on.
562628

563629
When detecting the `songtype` tag in a file, and it is _not_ `S` (Song), `autocue` will automatically _disable_ "blankskip" for this track.
564630

565-
Note this setting is superceded by `liq_blankskip`, the "ultimate blankskip switch". So if _both_ are there, the setting from `liq_blankskip` will "win".
631+
Note this setting is superceded by `liq_blankskip`, the "ultimate blankskip control". So if _both_ are there, the setting from `liq_blankskip` will "win".
566632

567633
### <a name="effect-of-settingsautocuecue_fileunify_loudness_correction-truefalse"></a>Effect of `settings.autocue.cue_file.unify_loudness_correction` (`true`/`false`) <a href="#toc" class="goToc">⇧</a>
568634

@@ -678,3 +744,13 @@ Using the `autocue.cue_file` settings for the `duration` parameter in `fade.in`,
678744

679745

680746
[^1]: As of 2024-06-17, using _Liquidsoap 2.2.5_. _Liquidsoap_ has a very active development, so things might change.
747+
748+
[^2]: Liquidsoap internal, do not use!
749+
750+
[^3]: R128_TRACK_GAIN is typically used in Ogg Opus files, and always referenced to -23 LUFS. Opus files must _not_ have `replaygain_*` tags.
751+
752+
[^4]: The tag `songtype` is used by SAM Broadcaster/SAM DJ to categorize tracks.
753+
754+
[^5]: The `jingle_mode` tag is used by AzuraCast to indicate if a track’s metadata should be suppressed. It is either `true` or non-existent.
755+
756+
[^6]: Note `duration` is _not a tag_, and shouldn’t be used as such! A file’s duration is determined by other means and that value returned as `duration` metadata.

0 commit comments

Comments
 (0)