Audio
From SpinetiX Support Wiki
Contents
Audio output
Audio output or audio out simply refers to an audio signal, digital or analog, driven out from one device (in this case, a SpinetiX player) to another device’s audio input. All SpinetiX players are capable of outputting both digital and analog audio.
Enable audio output
The audio output is disabled by default on the player, it can be enabled by activating the "Enable audio output" check-box option from Control Center ⇾ Display & Audio page, respectively Display Settings page >Advanced tab on legacy players.
Digital audio output
The HMP400 and HMP400W players can output digital audio/video over the HDMI port, the DisplayPort USB-C port, as well as digital audio over any of the USB-C ports when using an adapter/device capable of active digital-to-analog conversion (DAC). These players support up to 8 audio channels (5.1 and 7.1 surround sound) on the HDMI and DisplayPort outputs, starting with DSOS 4.7.0.
The HMP350, HMP300, DiVA, and legacy players can transmit a digital audio signal, along with a video signal, on the HDMI port.
Analog audio output
The players can transmit a two-channel (i.e., stereo) line-level analog audio signal on the dedicated output connector:
- on HMP400/HMP400W that's the USB-C port with a speaker-like marker; a USB-C to jack audio adapter cable is usually required.
- on HMP350, HMP300, DiVA, and legacy players, that's the 3.5 mm jack plug.
- For built-in analog audio output on HMP400/HMP400W (DSOS 4.6.2 or later), we recommend using the SpinetiX USB-C analog audio cable (SX-HW-UCAUD), which is a true analog cable conforming to the USB-C alternate audio specification. It is purely passive, so no risk regarding the reliability of active electronic components, and the noise level and distortion have been validated in our lab.
- Simultaneous audio via both HDMI (digital) and 3.5 mm jack (analog) is supported only on legacy players; nevertheless, we do not recommend using both outputs in the same environment as there might be phase/sync issues depending on the screen or HDMI decoder.
Audio decoding
File formats
The following container formats are supported for files with audio, on all player models, unless noted otherwise:
Extension | Description | Audio codecs | Notes |
---|---|---|---|
.mp3 | Raw MPEG audio elementary stream | MPEG Audio Layer III | |
.m4a, .mp4 | MPEG-4 Part 14 Audio Only | AAC | |
.wma | Raw WMA elementary stream | WMA2 | |
.wav | RIFF Audio File Format | PCM, DTS | |
.ac3 | Raw AC-3 elementary stream | AC-3 | Not supported on HMP200, HMP130, and HMP100. |
.mka | Matroska Audio Only | AAC | Not supported on HMP200, HMP130, and HMP100. |
.aiff, .aif | Audio Interchange File Format | PCM | Supported only on HMP200, HMP130 and HMP100. |
Codecs
Supported audio codecs
- AAC
- Advanced Audio Coding (AAC) is an audio coding standard for lossy digital audio compression. Designed to be the successor of the MP3 format, AAC generally achieves better sound quality than MP3 at similar bit rates.AAC has been standardized by ISO and IEC, as part of the MPEG-2 and MPEG-4 specifications. High Efficiency Advanced Audio Coding (HE-AAC) which is part of MPEG-4 Audio is an extension of Low Complexity AAC (AAC LC).
- Supported profiles (up to 6 channels input): (MPEG-2 Part 7) Low Complexity Profile, (MPEG-4 Part 3) AAC Profile and High-Efficiency AAC Profile (note that HE-AAC v2 profile is supported only on DiVA, HMP350 and HMP300; up to 8 channels input).
- MPEG-1/2 Layer III (MP3)
- MPEG-1 or MPEG-2 Audio Layer III, more commonly referred to as MP3, is an audio coding format for digital audio which uses a form of lossy data compression. Supported: 48KHz max sample rate and 2 channels. The previous versions: MPEG-1/2 Audio Layer II (MP2) and MPEG-1 Audio Layer I (MP1) are supported as well;
- Windows Media Audio (WMA v2).
- WMA is a lossy audio codec which can encode audio signals sampled at up to 48 kHz with up to two discrete channels (stereo). Like AAC, WMA was intended to address perceived deficiencies in the MP3 standard.
- Linear PCM (LPCM);
- ITU-T G.711 and G.726;
- AC3 (Dolby Digital)
Unsupported audio codecs
This list is not exhaustive and any codec that is not written above, should be considered as part of this list.
- 24-bit PCM audio;
- MPEG-4 SLS (HD-AAC);
- Raw AAC files (use AAC within an MP4 or M4A file instead!);
- RealAudio.
Background audio playback
A background audio playlist can be done in two ways:
- Create a playlist of audio files in your Elementi project, make sure that it is set to loop, and include it in the content to be rendered. A media playlist widget can also be used.
- Create an "index.m3u8" file (plain-text file which uses UTF-8-encoded characters) in your project, where each entry is a local path name (e.g., audio1.mp3) or a full URL to the audio file. This file is automatically detected and rendered independently of any other audio/video content being present within the regular content. This feature was added in firmware 4.1.0.
Audio level control
Using Elementi
It is possible to control the audio level of media content in Elementi, using the "audio-level" property of the media layer, as follows:
- Open the Layer Properties dialog, Advanced tab.
- Click on the "Click to add..." field under the "Name" column until the selection box is expanded.
- Select the "audio-level" property from the list.
- Click on the right column next to it (under the "Value" column).
- Enter a numeric value between 0 (no audio) and 1 (maximum level).
- Press the "Enter" key to validate the chosen value.
- Click on the "OK" button to save the changes.
Advanced
For advanced users, the audio level can be changed through jSignage (via the audioLevel
attribute) or directly within the SVG code (via the audio-level property). The audio level can be set on:
- the
animation
/audio
/video
elements individually, - on the entire document using a
<set>
element. (Note that theaudio-level
attribute doesn't have any effect when used directly on the<svg>
element).
Example of SVG code:
<svg xmlns="http://www.w3.org/2000/svg" [...] >
<set attributeName="audio-level" to="0.7"/>
...
<video audio-level="0.5" height="360" width="640" xlink:href="my_video.avi" id="my_video">
...
</svg>
Example of jSignage code (using the attr
function):
$('#my_video').attr( 'audio-level', 0 ); // mute the audio
Audio content in Fusion
Audio files cannot be directly uploaded as Fusion content, however it is possible to use audio content within Fusion.
The solution is to upload the audio files via a Style Pack or configure the player to pull them into the "publish" folder through Pull Mode, and then include the audio content into a Fusion Skin or a Fusion Template.
Troubleshooting
- When using audio and interactivity make sure that the Reduce latency to 60ms when events are received option is NOT enabled.
- Using audio in the background, while rendering a complex project may need special optimizations during content creation, otherwise, the audio may shutter.
- For this, you need to identify the content that is "heavy" to render by the player (see the player logs) and optimize it (if possible) or remove it.
- In some cases, the audio may play only for a few seconds and then stay silent.
- This is the result of non-optimal multiplexing of the audio and video streams that requires more than 1 MB of buffering of the audio or video stream in order to keep it in sync with the other. In this case, the player.log has the following error:
Stream demuxing failed because more than 1048576 bytes of buffering is required
Re-encoding the media, either within Elementi 2015 (or later) or with another application (like FFMpeg) should fix the image freeze or the audio lost. Alternatively, thespx:maxDemuxingBufferSize
attribute could be increased.
- This is the result of non-optimal multiplexing of the audio and video streams that requires more than 1 MB of buffering of the audio or video stream in order to keep it in sync with the other. In this case, the player.log has the following error:
- Skipping granule errors for MP3 files
- The resources.log might show decoding errors at INFO level for MP3 files. This error (
skipping granule
) is harmless and can usually be ignored. Constant bit rate MP3s can use a Bit Reservoir which can save redundant bits in a frame for the next frame if they are not all used (i.e. if the content is not that complex). Part of the next frame is then decoded in advance. If the file has been edited in the middle of two frames that use this, then the granule is discarded. It should normally have next to no audible difference, as each granule represents a few milliseconds of the file.
- The resources.log might show decoding errors at INFO level for MP3 files. This error (