NG Encoder 1.0 Private Beta
One input. Every stream. Always on. Multi-destination Icecast & SHOUTcast streaming from a single Windows audio source.
About this manual
This manual explains how to install, configure and operate NG Encoder 1.0 Private Beta. It is written for station operators, broadcast engineers and technically oriented end users.
The focus is practical operation: audio input, codecs, Icecast and SHOUTcast destinations, metadata, reconnect behaviour, silence detection, automatic gain, logging, local recording and monitoring. NG Encoder uses one Windows audio input to feed one or more independent streaming destinations. Each destination can use its own server, codec and bitrate, while all destinations share the same input sample rate and channel layout.
Screenshots show representative configurations. Station names, addresses, devices and destination names are examples; use the values supplied for your own broadcast environment.
Use a representative test period before unattended production use. Verify audio quality, metadata, reconnect behaviour, Silence Detection, Encoder Health, local recording and server compatibility with the exact infrastructure and player population used by your station.
Runtime files
| File / folder | Purpose |
|---|---|
NGEncoder.exe | The NG Encoder application (managed x64 user interface, capture, destinations and monitoring). |
NGEncoderCore.dll | Required. Native codec runtime used by MP3, AAC, HE-AAC, Ogg Vorbis and FLAC, and the native license and stream enforcement core. It must come from the same NG Encoder release as NGEncoder.exe. |
NGProcessorPlugin.dll | Optional. Self-contained native NG Processor plugin. The Processor section in Professional Settings → Operations appears only when this file is present and the NG Encoder license includes the plugin entitlement. Pair with NG Processor 1.0. |
<executable-name>.config.json | Configuration. Not part of the installation; created next to NGEncoder.exe on first run (see below). |
| Log and recording folders | Not part of the installation; created at runtime at the paths configured in Professional Settings (sections 11.4 and 13.2). |
Presets\*.json | Optional, used with the plugin. The factory presets of NG Processor 1.0.760 provide the preset selection: Balance.json, Airwave.json, Pure.json and Coast.json for Classic and Impact.json, Velvet.json, Horizon.json and Vertigo.json for Predictive; without them the plugin can only run in transparent bypass. If the configured preset file is missing, the main window shows the preset the plugin actually loaded (Bypass or Predictive · Bypass) and Encoder Health reports ATTENTION; the saved choice is not overwritten. |
Keep NGEncoder.exe and NGEncoderCore.dll together in the same writable folder; the optional plugin and its Presets folder belong in that same folder. NG Encoder stores its configuration next to the executable and therefore needs write access to its own folder. A normal user-writable application folder is recommended.
Codec selection is validated at runtime. Opus is provided inside NGEncoder.exe; the other codec families require the matching NGEncoderCore.dll from the same NG Encoder release.
Settings are stored as <executable-name>.config.json next to NGEncoder.exe. Passwords and the metadata TCP token are protected for the current Windows user. When moving a configuration to another Windows account or computer, re-enter protected secrets.
Third-party software notices
Open Settings > Professional > About NG Encoder > Licenses & notices… to view the codec and library notices included with the application.
Quick start
The following procedure is sufficient for a normal single-stream Icecast setup. More advanced configurations are described later in this manual.
Prepare the application
- Place
NGEncoder.exeandNGEncoderCore.dllin the same writable folder. - Start NGEncoder.exe and click SETTINGS.
Select the audio input
- Open the Audio tab and select the Windows WASAPI capture device that carries the programme feed.
- Choose a codec and bitrate, then select 44.1 kHz or 48 kHz and Stereo or Mono. Opus uses 48 kHz.
Configure the streaming server
- Open the Server tab and choose Icecast.
- Enter the host name, port, mount, source username and source password.
- Leave Automatic Reconnect enabled for normal unattended use. Reconnect attempts use a fixed 3-second delay after a previously successful connection is lost.
Identify the stream
- Open the Description tab.
- Set Display Name for the local NG Encoder identity and Server Name for the name sent to the server.
- Set Description, Genre, Artist and Title as required.
Go on air
- Click OK to save the configuration.
- Confirm that the VU meters react to programme audio.
- Click ENCODE. The button changes to DISCONNECT while the session is active.
- Confirm that the destination row shows Connected and that Encoder Health settles to GOOD.
A destination that has never connected successfully in the current run is treated as an initial connection error, not as a reconnect. Correct the server or network problem and start encoding again. Automatic reconnect is used after a destination has been online successfully.
Main window
The main window combines programme level, station identity, input health and per-destination connection state without requiring a separate monitoring screen.
2.1Station card
| Area | Meaning |
|---|---|
| Display name | The local identity of this NG Encoder instance. |
| Destination summary | For multiple destinations, the card shows the enabled destination count. |
| Encoder Health | Operational health of the shared audio input and destination buffering. |
| CPU | Current NG Encoder process CPU load. |
2.2Destination status rows
Each enabled destination has its own row. The row identifies the protocol (ICE or SHOUT), TLS where enabled, codec, endpoint and its individual connected duration. Multiple destinations operate independently: one output can reconnect or fail while the others continue streaming. While a session is running, right-click a row for Connect, Disconnect, Reconnect and Manage streams…, or double-click it to open the live stream list (section 10.4). The SETTINGS button reads STREAMS for as long as the session is active.
The main window reserves room for five destination rows, so the window keeps the same height with anything from zero to five streams. With six to eight destinations the window grows one row at a time; above eight the list scrolls. There is no limit on the number of destinations. The NG PROCESSOR line above the rows shows the plugin state and the preset on air; it is informative only - the live preset is changed in STREAMS (section 10.4).
2.3VU meters
The horizontal meters show the incoming programme level. In Stereo mode the two bars represent left and right channels. The colored fill follows the selected Visual theme; the peak marker remains red.
While the programme meter is active, double-click it to cycle to the next color theme. The selected theme is saved immediately. A gray/idle meter ignores the double-click so an off-air click cannot change the saved on-air theme.
When Auto Gain is enabled, a compact single gain bar with the live AUTO GAIN +x.x dB readout appears in the quiet strip above the L/R programme bars. It shows one bar because Auto Gain always applies one shared gain value to both channels; the bar scales from 0 dB to the configured Maximum Boost, so its fill represents how much of the allowed correction range is currently in use. While encoding, the main VU meter follows the post-Auto-Gain shared feed, so the displayed peak matches the signal presented to all destinations and local outputs.
Avoid running continuously against the end of the meter. Leave sensible digital headroom in the source chain; NG Encoder is an encoder, not a limiter or full loudness processor.
When the NG Processor plugin is enabled, the quiet strip above the programme bars shows the Processor status: the label NGPROCESSOR, a small white meter that follows the post-Processor programme level (a real level meter, not a “processing amount”), and the active profile. A Classic preset is shown in yellow; a Predictive profile in white on a violet tint, and while the Predictive reservoir fills the tint is muted and the caption reads BUFFERING x.xs, updated from the real buffer state after roughly every 100 ms of processed audio, in preview as well as during a session; nothing counts on while audio is stopped. The name shown is the preset the plugin actually loaded: when the configured preset file is missing, the strip reads Bypass or Predictive · Bypass, the warning stays until a later status replaces it, and Encoder Health reports ATTENTION while broadcasting. The strip has a fixed layout, so nothing moves when the caption changes. Without the plugin the same strip carries Auto Gain (below).
2.4Encoder Health states
| State | Interpretation |
|---|---|
| IDLE | Encoder is stopped. |
| INITIALIZING | First 12 s of a running session while normal diagnostics settle. CLOCK reads MEASURING meanwhile (Figure 3). |
| GOOD | Current queue, clock drift and CPU load are normal. |
| FAIR | Mild live pressure: queue ≥10, |drift| >3000 ppm or CPU ≥50%. |
| ATTENTION | Clear live degradation: queue ≥18, |drift| >6000 ppm or CPU ≥65%. |
| CRITICAL | Severe live condition: queue ≥25, |drift| >10000 ppm, CPU ≥80%, recent PCM drop or audio stalled ≥2 s. |
| NO SIGNAL | Silence detector is armed and input has stayed below threshold for about 2 s. |
Encoder Health is a live operational indicator, not incident history. It automatically returns through lower states to GOOD as the current condition recovers; no acknowledgement or double-click reset is required. Lower recovery thresholds provide hysteresis so a metric near a boundary does not make the badge chatter: a state clears once queue drops below 7/15/22 blocks, |drift| below 2500/5000/9000 ppm, or CPU below 45/60/75% for the FAIR/ATTENTION/CRITICAL boundaries respectively. NO SIGNAL and audio-related CRITICAL conditions (queue, drift, PCM drop, audio stalled) can break through INITIALIZING immediately; CPU-based severity intentionally starts only after the 12-second INITIALIZING period, because the first process-CPU samples include normal startup work and should not be treated as an incident.
The small detail line shows the dominant current cause, for example CPU, QUEUE, DRIFT, PCM DROP, AUDIO STALLED or INPUT SILENT. Health state/cause changes are also written to Detailed Logging so unattended operation retains history without leaving stale warnings on screen.
2.5ENCODE, DISCONNECT and closing the window
ENCODE starts the shared WASAPI input and all enabled destinations. Before all enabled destinations have connected successfully, DISCONNECT works immediately so a test or failed initial connection can be stopped quickly. After all enabled destinations are Connected, a five-second grace period begins. Thereafter, hold DISCONNECT for two seconds until the progress ring completes; releasing early cancels the action. The hold requirement is armed once per session: later reconnects do not re-enable one-click disconnect.
During teardown the button stays labeled DISCONNECT but is disabled, and the status bar shows Disconnecting... while destinations, codecs and the shared input shut down safely. When Auto Gain is active, a clean disconnect also drains the remaining 200 ms look-ahead tail at normal audio pacing so the final programme audio is not cut off or burst into the server.
The window close button and Alt+F4 are silently ignored while a broadcast session is active or an initial connection is in progress. Disconnect first. Normal Windows shutdown is not blocked.
2.6Global status and elapsed time
The bottom status bar represents the complete destination set. Connecting, reconnecting, silence handling or error states are surfaced even when another destination remains online. The main elapsed timer measures continuous time with every enabled destination Connected; it resets whenever the complete set is no longer fully online.
Basic Settings
Open SETTINGS while the encoder is stopped. The configuration window contains Audio, Server, Description, Visual and Professional tabs.
Basic Settings are optimized for a single destination. With multiple destinations, per-stream server and encoding controls are managed under Professional Settings.
3.1Audio tab
| Setting | Description |
|---|---|
| WASAPI Sound Device | Selects the active Windows capture endpoint used as the shared programme input. |
| Codec | Selects the codec for a single destination. Only codecs whose required runtime components are available are listed. |
| Compression / Bitrate | Sets encoded bitrate, or FLAC compression level when FLAC is selected. |
| Sample Rate | 44.1 kHz or 48 kHz. Shared by every destination. |
| Channel | Stereo or Mono. Shared by every destination. |
If any enabled destination uses Opus, NG Encoder uses 48 kHz for the shared output format. Sample rate and channel layout are global because every destination receives the same programme input.
NG Encoder captures in WASAPI shared mode with a 32-bit floating-point internal processing path. Native 16/24/32-bit and IEEE-float endpoint formats are accepted and converted automatically to the configured broadcast PCM format, so the Windows device format does not have to match the stream settings exactly.
3.2Server tab
The Server tab is used for a straightforward single destination. With multiple configured destinations it is disabled; use Professional Settings > Destinations instead.
| Field | Icecast | SHOUTcast |
|---|---|---|
| Server | Icecast | SHOUTcast |
| URL / Host | DNS host name or IP address | DNS host name or IP address |
| Port | Icecast source/listener port | Base/listener port; source opens on base + 1 |
| Mount | Required, e.g. /stream | Not used |
| Username | Usually source | Not used by the source protocol |
| Password | Source password | Source password |
| SID | Not used | SHOUTcast stream ID, usually 1 |
| Automatic Reconnect | Fixed 3-second retry after a previously successful connection is lost | Same behaviour |
3.3Description tab
| Field | Purpose |
|---|---|
| Display Name | Local NG Encoder identity. Used in the application window and as the preferred name for local recording filenames; it is not sent as server metadata. |
| Server Name | Station/stream name sent to the streaming server. In a multi-destination configuration this is configured per destination. |
| Description | Icecast stream description. SHOUTcast does not use this field. |
| Artist / Title | Initial/shared current programme metadata used when a destination connects. |
| Genre | Genre sent to the server where supported. |
3.4Visual tab
Choose the VU Meter Color Theme from the drop-down list. The Preview bar shows the same palette used by the programme meter. The red peak marker remains unchanged. You can also cycle themes directly from the main window by double-clicking the VU meter; that choice is saved immediately.
3.5Professional tab
Professional Settings… opens Destinations, Metadata Input and Operations. License… opens the registration window (chapter 12) and sits left of About NG Encoder…, which shows product information, the NGEncoderCore runtime status and third-party license notices.
Codec selection
Codec choice balances compatibility, bandwidth, audio quality and server support.
NG Encoder probes codec availability when Settings or a Destination editor is opened and exposes only codecs that can actually be loaded.
| Codec | Servers | Range / setting | Typical use |
|---|---|---|---|
| MP3 | Icecast, SHOUTcast | 32–320 kbps | Maximum compatibility with legacy players and devices. |
| AAC | Icecast, SHOUTcast | 32–320 kbps | Efficient general-purpose streaming. |
| HE-AAC | Icecast, SHOUTcast | 24–96 kbps | Low-bandwidth distribution. |
| Opus | Icecast only | 32–320 kbps; 48 kHz | Modern low-delay, high-efficiency streaming. |
| Ogg Vorbis | Icecast only | 32–320 kbps | Open Ogg/Vorbis streaming. |
| FLAC | Icecast only | Compression 0–12 | Lossless streaming; compression changes CPU/size efficiency, not decoded quality. |
4.1Practical bitrate starting points
Bitrates are selected from fixed presets. MP3, AAC, Opus and Ogg Vorbis offer 32, 48, 64, 80, 96, 112, 128, 160, 192, 224, 256 and 320 kbps; HE-AAC offers 24, 32, 40, 48, 56, 64, 80 and 96 kbps.
- MP3: 128–192 kbps for normal internet radio; 256–320 kbps when compatibility matters and bandwidth is less important.
- AAC: 96–192 kbps for high-quality general distribution.
- HE-AAC: 48–96 kbps for bandwidth-limited streams.
- Opus: 64–160 kbps for efficient modern distribution.
- Ogg Vorbis: 96–192 kbps as a common starting range.
- FLAC: lossless; plan capacity based on actual encoded programme bandwidth rather than a fixed bitrate.
Codec support differs between browsers, smart speakers, in-car systems, mobile apps and embedded radios. Validate the complete listener chain, not only the streaming server.
4.2FLAC compression level
FLAC levels 0 through 12 are lossless at every setting. Lower levels use less CPU and generally create a somewhat larger stream; higher levels spend more CPU to seek better compression. Level 5 is a balanced default.
Professional Settings: Destinations
Open Settings > Professional > Professional Settings… > Destinations. This list is the authoritative per-stream configuration when more than one output is used.
5.1Managing destinations
Use Add, Edit, Remove, Up and Down to manage destinations. At least one destination remains in the configuration. Give each destination a short operator-friendly Name such as Main AAC, Mobile HE-AAC or Backup MP3.
5.2Test Connection
The Destination editor includes Test Connection. It validates the configured host, TCP connection, optional TLS handshake and source login/protocol without starting WASAPI capture or the full encoder session. Network and handshake steps use bounded deadlines, so a dead or filtered endpoint produces a clear result within seconds instead of hanging. Use it before commissioning a new endpoint or when credentials change.
A successful source login confirms the server endpoint and credentials, but it does not replace an end-to-end audio test. Always verify the real encoded stream with an actual listener/player.
Icecast Destination editor
| Field | Meaning |
|---|---|
| Name | Local label used in status rows and logs. |
| Server Name | Station/stream name sent to the server. |
| Description | Icecast stream description. |
| Host / Port | Streaming server host name and connection port. |
| Mount | Icecast mount such as /main or /stream. |
| Username | Icecast source username, normally source. |
| Password | Source password. |
| Codec | Per-destination codec. Icecast can use MP3, AAC, HE-AAC, Opus, Ogg Vorbis and FLAC when available. |
| Compression / Bitrate | Bitrate for lossy codecs; compression level for FLAC. |
The SID field is not shown in Icecast mode because it does not apply to Icecast source connections.
SHOUTcast Destination editor and options
| Option | Meaning |
|---|---|
| Enabled | Controls whether this destination starts when ENCODE is pressed. |
| TLS / SSL | Uses TLS for the source connection when supported. For SHOUTcast this is explicitly server-dependent. |
| Metadata Admin | SHOUTcast only. Selects the transport for /admin.cgi metadata updates: Follow source (default), HTTP or HTTPS, independent of the source connection. |
| Public | Requests publication in the server/directory mechanism where supported. |
| Auto Reconnect | Reconnects a destination three seconds after a previously successful connection is lost. |
5.3TLS and certificates
For Icecast, TLS is normally used when the configured source listener supports it. Use the DNS name that appears on the server certificate whenever possible. Windows validates certificate trust, validity and host-name matching.
For SHOUTcast, TLS support on the source endpoint is server-dependent. Listener HTTPS alone does not guarantee that the source port accepts TLS. Enable TLS only when your SHOUTcast server or hosting provider explicitly supports a TLS source connection.
5.4Independent destination behaviour
Each destination connects and reconnects independently. A failed or reconnecting output does not require healthy destinations to disconnect. The first connection is different from a reconnect: if a destination has never reached Connected in the current run, a failure is shown as Error. After a successful connection, Auto Reconnect can recover later network interruptions.
5.5Broadcast preflight validation
When ENCODE is pressed, the complete configuration is validated before any capture or network activity starts. If a problem is found, the session does not start and the status bar reports the first error as Configuration: ... (with a count of any further errors). The preflight checks include:
- At least one destination must be enabled, and the shared format must be 44.1/48 kHz Stereo or Mono.
- Hosts must contain only a host name or IP address - no
http:///https://prefix, whitespace or control characters. Ports must be 1–65535; a SHOUTcast base port must be 65534 or lower because the source connection uses base + 1. - Icecast requires a mount and a username; mounts may not contain whitespace, control characters,
?or#, and the username may not contain:because source authentication uses HTTP Basic credentials. SHOUTcast requires SID ≥ 1, a valid Metadata Admin choice, and rejects source passwords containing line breaks. - The selected codec must be available in this installation and compatible with the server type (SHOUTcast: MP3, AAC, HE-AAC only). FLAC compression must be 0–12; lossy bitrates must be valid.
- Two enabled destinations may not point at the same endpoint: the same Icecast host/port/mount, or the same SHOUTcast host/port/SID, is reported as a duplicate.
- Silence Detection and Auto Gain values are checked against their valid ranges, and local MP3 recording requires the MP3 codec from NGEncoderCore.dll.
Icecast configuration
6.1Required values
A typical Icecast destination requires a host, port, mount, source username and source password. Mounts should normally begin with a slash, for example /stream, /aac or /mobile. NG Encoder normalizes a missing leading slash when connecting, but entering the canonical mount is clearer for operators. Mounts containing whitespace, control characters, ? or # are rejected before broadcast rather than sent to the server in a malformed request. The username may not contain a : character, because HTTP Basic authentication serializes credentials as username:password and such a name would make the login ambiguous.
6.2Server metadata
Server Name, Description, Genre and Public are sent as stream properties where supported by Icecast. Artist and Title are current programme metadata and can also be updated automatically through Metadata Input.
6.3Codec support
NG Encoder offers MP3, AAC, HE-AAC, Opus, Ogg Vorbis and FLAC for Icecast when their runtime components are available. The actual Icecast server and listener software must also support the selected format.
For maximum compatibility with older servers, MP3, AAC, HE-AAC and Ogg Vorbis connect with the classic Icecast SOURCE method; Opus and FLAC use the modern HTTP PUT source method. This is automatic and requires no configuration, but it can matter when diagnosing a very old or unusual server that only accepts one of the two methods.
6.4Example: TLS AAC stream
| Setting | Example |
|---|---|
| Name | Main AAC |
| Server | Icecast |
| Host | stream.example.com |
| Port | 8443 |
| Mount | /main |
| Username | source |
| TLS / SSL | Enabled |
| Codec | AAC |
| Bitrate | 128 kbps |
| Auto Reconnect | Reconnects a destination three seconds after a previously successful connection is lost. |
| Test Connection | Tests DNS/TCP, TLS where enabled, source authentication and the selected endpoint without starting WASAPI capture. |
Use a normal DNS host name such as stream.example.com and a publicly trusted or otherwise Windows-trusted certificate whose name matches that host.
SHOUTcast configuration
7.1Port handling
Enter the SHOUTcast base/listener port. NG Encoder automatically opens the legacy source connection on base port + 1. Metadata administration continues to use the base port. Do not manually add one unless your upstream server configuration specifically requires a non-standard arrangement. Because the source connection uses base + 1, the base port must be 65534 or lower. Source passwords may not contain line breaks; such a password is rejected before broadcast.
7.2Stream ID (SID)
For SHOUTcast DNAS v2, SID selects the target stream. SID 1 is the normal first stream. If the server hosts several streams, use the SID assigned by the SHOUTcast configuration.
7.3Codec support
SHOUTcast mode offers MP3, AAC and HE-AAC. Opus, Ogg Vorbis and FLAC are intentionally not offered in SHOUTcast mode; use Icecast for those formats.
7.4TLS source connections
SHOUTcast source TLS is not universal. The Destination editor marks TLS / SSL with an asterisk in SHOUTcast mode because source-side TLS depends on the server endpoint. A DNAS server that provides HTTPS to listeners does not automatically provide TLS on the encoder/source connection.
7.5Metadata Admin transport
Metadata updates use the server's /admin.cgi endpoint on the base listener port, and that endpoint does not have to use the same transport as the source connection - hosting providers sometimes terminate source TLS on a proxy while the admin endpoint remains plain HTTP, or the other way around. The Destination editor therefore offers a separate Metadata Admin setting for SHOUTcast destinations:
| Choice | Meaning |
|---|---|
| Follow source | Default and backward-compatible: metadata uses HTTPS when the source connection uses TLS, otherwise HTTP. |
| HTTP | Metadata always uses plain HTTP, regardless of source TLS. |
| HTTPS | Metadata always uses HTTPS, regardless of source TLS. |
There is deliberately no silent HTTPS-to-HTTP fallback: a failing HTTPS metadata request is reported as an error rather than quietly retried over plain HTTP, because the request carries the source password. Whenever the effective metadata transport is HTTP - either selected explicitly or through Follow source with source TLS disabled - the Destination editor shows a warning that the SHOUTcast password is sent without TLS. Metadata failures in the log identify whether HTTP or HTTPS was used, without including the password.
If audio streams normally but every metadata update fails with a transport error, check this setting against your server or hosting provider's actual admin endpoint.
7.6Example: SHOUTcast MP3
| Setting | Example |
|---|---|
| Name | Main MP3 |
| Server | SHOUTcast |
| Host | radio.example.com |
| Port | 8000 (base listener port) |
| SID | 1 |
| Password | Source password |
| Codec | MP3 |
| Bitrate | 192 kbps |
| Metadata Admin | Follow source |
| Auto Reconnect | Reconnects a destination three seconds after a previously successful connection is lost. |
Automatic metadata input
Open Settings > Professional > Professional Settings… > Metadata Input. Automatic metadata input is optional. It can read a file or accept authenticated TCP clients.
8.1File mode
Select File, choose a metadata file and set the polling interval. The interval is configurable from 250 ms up to 60 seconds (default 1 second). NG Encoder applies a non-empty payload when its content differs from the last payload it processed. The metadata file is read up to a 64 KB safety limit; anything beyond that is rejected rather than partially applied. Transient read failures - for example while the playout software is rewriting the file - are retried automatically on the next poll.
Accepted payload formats
Track Title
Artist Name - Track Title
artist=Artist+Name&title=Track+Title
song=One+opaque+now-playing+string
{"artist":"Artist Name","title":"Track Title"}
<metadata><artist>Artist Name</artist><title>Track Title</title></metadata>
File mode and TCP mode use exactly the same parser, so a payload behaves identically in both modes. The field names are artist and title. Plain text without the Artist - Title separator is applied as a title-only update. The Artist - Title form remains the convenient shorthand; use explicit song=... when a literal string contains that separator (or an = sign) and must not be split. Free text that happens to contain an = character - for example Nonstop=Live - is not mistaken for a query string; only the recognized field names artist, title and song are interpreted, and anything else becomes a normal title-only update. File mode is convenient when playout software can atomically rewrite a small text, JSON or XML file whenever the now-playing item changes.
Legacy song metadata
The explicit song=... form forwards one opaque legacy ICY StreamTitle to the servers, without splitting it into artist and title. This matches older playout systems that only produce a single now-playing string. Legacy song updates are supported for MP3, AAC and HE-AAC destinations only; destinations streaming Ogg-container formats report FAIL UNSUPPORTED. Combining artist/title fields with song= in one payload is rejected as ambiguous rather than applied silently.
8.2TCP Server mode
TCP Server mode listens on the configured port on the computer. The default is 8766. A generated authentication token is required before metadata is accepted. Use Copy to copy the token or New to generate a replacement. The 256-bit token is generated automatically on first start and stored protected for the current Windows user.
The listener enforces practical safety limits: at most 8 clients are served concurrently, each line may be at most 8192 bytes, and a client that has not authenticated within 60 seconds of connecting is disconnected. PING, HELP and empty lines do not extend that authentication deadline. Every metadata line is answered with OK or FAIL <reason>, so playout software can verify that an update was accepted.
Restrict the listener with Windows Firewall, network ACLs or a VPN as appropriate. Keep the token private and do not expose an unauthenticated management path to the public Internet.
TCP session example
NG Encoder 1.0 OK READY AUTH REQUIRED AUTH <token> OK AUTHENTICATED Artist Name - Track Title OK PING OK PONG QUIT OK BYE
Supported commands are AUTH <token>, PING, HELP, QUIT and EXIT. After authentication, metadata can be sent using the same payload formats as File mode, including the explicit song=... form for one opaque legacy StreamTitle.
8.3Metadata and codec considerations
- MP3, AAC and HE-AAC: normal server-side metadata updates are supported.
- Ogg Vorbis: live metadata is supported with Icecast. Test listener behaviour carefully.
- Opus: metadata can be inserted into the Ogg/Opus stream; some playback paths may briefly react to an in-stream metadata change.
- FLAC: live metadata updates are not currently supported by the FLAC streaming path.
Metadata failures are isolated from audio streaming where possible and are written to the detailed log when logging is enabled.
Professional Settings: Operations
9.1Connect / Encode on start
When enabled, NG Encoder starts encoding automatically after the application opens. Use this only after the complete configuration has been tested interactively.
9.2Detailed logging
Detailed logging writes operational information, connection state, diagnostics, metadata errors and selected recovery events to the configured folder. Select Information, Warnings or Errors as the minimum level. NG Encoder writes one log file per calendar day and removes expired files according to the selected retention period, chosen from 1, 2, 3, 5, 7, 14, 21, 31, 60 or 90 days (default 31). Each start also writes a one-time codec self-test line so the log records which codecs were actually available for that session.
9.3Automatic WASAPI device recovery
When enabled, NG Encoder attempts to recover the configured capture device every 15 seconds if Windows reports that the endpoint stopped or disappeared. This is useful with USB interfaces, virtual audio cables and devices that can briefly reset.
9.4Silence Detection
Silence Detection monitors the shared input against the configured Threshold. At the start of a session it first requires 10 continuous seconds of valid input above the threshold before it arms. The arming countdown is not shown; when arming completes, the bottom status briefly reports Silence detection active.
Once armed, approximately two continuous seconds below Threshold raises NO SIGNAL immediately for operator feedback. This fixed two-second alarm is separate from the configurable Silence delay. If Disconnect on silence is enabled, the actual stream disconnect occurs only when the complete configured Silence delay has elapsed.
| Setting | Meaning |
|---|---|
| Threshold | Input level below which the signal is considered silent. Selected from -60, -50, -45, -40, -35, -30, -27, -24, -21, -18 or -15 dBFS; the default is -27 dBFS. |
| Silence delay | Time below threshold before the optional disconnect action is executed (2–60 s, default 5 s). |
| Recovery delay | Stable-signal qualification time before automatic reconnection (1–60 s, default 5 s). |
| Disconnect on silence | Stops active destinations after the configured Silence delay. |
| Reconnect after signal recovery | Reconnects automatically after stable recovery qualification. |
If programme audio returns before streams were disconnected, NO SIGNAL clears immediately and normal status resumes. After a silence disconnect, recovery requires signal at least 3 dB above the silence threshold for the complete Recovery delay before reconnection is started.
Before the two-second alarm there is no Low signal warning. When disconnect is pending the status reads “NO SIGNAL - Disconnecting in x seconds”. During post-disconnect recovery it reads “Reconnecting in x seconds”. If automatic recovery is disabled and the session is stopped by silence, the status reads “Stopped because of silence”.
9.5NG Processor Plugin
This section appears only when NGProcessorPlugin.dll lies next to NGEncoder.exe and the NG Encoder license carries the plugin entitlement. The group header shows the version of the plugin that was found. With Enable NG Processor the complete NG Processor chain runs inside the encoder on the shared programme feed, before the audio is sent to all destinations, the local recording and the monitor output. Auto Gain is then greyed out: the Processor owns the level, the two never run together.
| Setting | Meaning |
|---|---|
| Input Level Correction | Fixed offset applied to the feed before the Processor, for a source that arrives consistently too hot or too low. |
| Input Reference Level | The level at which nominal programme should arrive at the Processor (-24 to -3 dBFS, default -10 dBFS). It is the same line-up calibration as in NG Processor itself: nominal audio stays at the same DSP level. |
| Preset | The processing preset: the built-in Classic presets (Balance, Airwave, Pure, Coast) and the Predictive profiles, listed as Predictive · Impact, Velvet, Horizon and Vertigo; older names in a saved configuration (Reference, Broadcast, Audiophile, Power) open their renamed successors. Custom… selects a preset file (.json) saved by NG Processor; a Predictive preset must have been saved once in NG Processor to be complete. |
Selecting a Predictive profile adds exactly five seconds of latency to the air signal: the Predictive engine listens five seconds ahead before it acts (see the NG Processor manual). The main window shows the Processor status strip with a BUFFERING caption while the reservoir fills. A Classic preset adds only the ordinary chain latency. A compatible plugin update is a single DLL replacement with the encoder stopped; do not copy NG Processor's own DLLs or presets beside the encoder, the plugin is self-contained.
9.6Auto Gain
Auto Gain is a restrained input gain aid for programme feeds that arrive below the desired operating level. It is not intended to replace a broadcast processor. One shared gain value is applied equally to left and right, preserving the stereo image, before the programme is sent to all enabled destinations and local outputs.
Auto Gain is strictly upward-only: it can add gain up to the configured Maximum Boost, but it never attenuates below unity (+0.0 dB), and an absolute 0 dBFS safety bound guarantees the gain stage itself cannot create digital clipping. It works with a fixed 200 ms look-ahead on the shared PCM feed: the audio that is about to be sent is always known in advance, so gain reductions start smoothly before a louder peak actually reaches the output instead of clamping it after the fact. This look-ahead adds a constant 200 ms of latency to everything downstream - every streaming destination, local MP3 recording, monitor output and the programme VU all receive the same delayed, post-gain signal.
| Setting | Meaning |
|---|---|
| Enable Auto Gain | Turns the shared automatic gain function on or off. |
| Target Peak | Reference peak level the gain controller works toward. Selected from 0.0, -0.1, -0.2, -0.5, -1.0, -1.5, -2.0, -3.0, -4.0 or -6.0 dBFS; the default is -1.0 dBFS. |
| Maximum Boost | Limits how much positive gain Auto Gain may add. Selected from +1, +2, +3, +4, +6, +9, +12, +18, +24 or +32 dB; the default is +6 dB. It controls only the allowed range, never the movement speed. |
| Adjustment Speed | Controls how quickly upward gain correction changes: Fast (4.0 dB/s), Medium (1.0 dB/s), Slow (0.1 dB/s) or Super Slow (0.01 dB/s, i.e. 0.1 dB per 10 seconds - a precision trim for small persistent level offsets). |
Several built-in safeguards keep the behaviour calm and predictable:
- Gain only rises while the input carries useful programme: below approximately -50 dBFS (silence or noise floor) upward movement is suppressed, so quiet passages cannot wind the gain up.
- Fades and brief dips are recognized by a short-term programme detector and freeze upward movement instead of being "corrected"; only the exact future peaks decide any downward movement.
- After the gain has been reduced for a louder passage, a fixed 3-second hold prevents it from immediately climbing again.
- Gain reductions are applied as a smooth ramp just before the louder peak leaves the look-ahead window; the immediate 0 dBFS clamp exists only as a last-resort safety guard.
Auto Gain also runs on the idle preview path before ENCODE, so the gray pre-connect VU already shows the post-Auto-Gain level and the current gain state carries into the broadcast session. The gain resets to +0.0 dB at application startup and after selecting a different WASAPI input device; merely opening Settings does not reset it.
Use conservative boost limits and verify the result with real programme material. Leave final peak protection, loudness shaping and aggressive dynamics processing to the station's normal audio processor.
9.7Record MP3
Local recording writes the shared programme feed to MP3 while the encoder runs. Select one of the CBR presets: 128, 192, 256 or 320 kbps (default 192). Recording requires the MP3 codec from NGEncoderCore.dll. Filenames follow the pattern NGEncoder-<name>-YYYYMMDD-HHMMSS.mp3, where the name is the Display Name (made Windows-filename-safe) and the timestamp is the local recording start time; if the same timestamp already exists, a numeric suffix is added so a later connect/disconnect cycle cannot overwrite an earlier file.
During continuous operation a recording rotates only on a local clock-hour boundary and only when the current segment is at least 20 minutes old - a recording started at 13:45 therefore continues through 14:00 and rotates at 15:00. On final session stop, a last segment containing less than 20 seconds of programme PCM is deleted to avoid tiny test files. Retention uses the same fixed day choices as logging (1, 2, 3, 5, 7, 14, 21, 31, 60 or 90 days; default 31) and cleanup is reapplied during operation; it only removes recordings matching this instance's own filename prefix, so recordings from another station name in a shared folder are left alone.
9.8Monitor output
Monitor output sends the same local programme PCM that is fed to the stream encoders to the selected Windows output device. It always plays at 100% application volume; use the Windows mixer or the device's own control to set the listening level. It is intended to confirm that the correct audio is reaching NG Encoder after sample-rate/channel conversion. It is not a return feed from Icecast or SHOUTcast and therefore cannot prove that a codec, network path or listener is artifact-free. If the monitor device fails to open, the broadcast streams still start; only the local monitoring is unavailable.
Do not route the monitor output back into the selected NG Encoder input through a mixer or virtual-audio path, or you may create an acoustic or digital feedback loop.
Multi-destination operation
A major use case for NG Encoder is creating several outputs from one input.
Each destination has its own encoder and server connection, while the programme source, sample rate and channel layout remain shared.
10.1Example station layout
| Destination | Server | Codec | Purpose |
|---|---|---|---|
| Main HQ | Icecast/TLS | AAC 192 kbps | Primary high-quality stream |
| Mobile | Icecast/TLS | HE-AAC 64 kbps | Bandwidth-efficient mobile stream |
| Modern | Icecast/TLS | Opus 96 kbps | Modern efficient player/app stream |
| Legacy | SHOUTcast | MP3 192 kbps | Legacy distribution endpoint |
Because this example contains Opus, the shared output sample rate is 48 kHz. Every destination can still use its own codec and bitrate.
10.2What happens when one destination fails?
Healthy destinations stay online. The failed destination shows Error or Reconnecting in its own status row. If it had previously connected and Auto Reconnect is enabled, NG Encoder retries every three seconds. The global elapsed timer resets until every enabled destination is Connected again.
10.3Managing complexity
- Give destinations clear local Names such as HQ AAC, Mobile 64k or Backup Server.
- Use mounts or SIDs that exactly match the server configuration.
- Use Test Connection when commissioning each endpoint, then perform an actual audio/listener test.
- Test each destination alone before enabling a large destination set.
- Monitor CPU and Encoder Health after adding high-bitrate or lossless outputs.
10.4Managing destinations while on air
A running session no longer has to be stopped to change its destination set. During a session the SETTINGS button reads STREAMS and opens the live stream list; the same window opens on a double-click of a destination row, and the row's right-click menu offers Connect, Disconnect, Reconnect and Manage streams… directly. Changes are saved and applied immediately, not when the window is closed, and Close does not undo anything. The window may be closed while a slow stop is still in progress; the command completes in the background and the global DISCONNECT stays available.
Since 1.0.555 the top of the STREAMS window carries an NG PROCESSOR panel: a list of the presets of the installed Processor plugin, an Apply preset button and a status line showing the preset that is really on air. Choosing a preset and pressing Apply changes the station sound live: the plugin prepares the new preset in the background, crossfades on one source moment and the destinations never notice. The switch stays within the active engine - Classic to Classic or Predictive to Predictive; changing between the two engines still needs DISCONNECT and CONNECT. The applied preset is saved as the new Processor preset of the session, so an automatic recovery reopens the sound that is actually on air. The NG PROCESSOR line on the main window is informative only; preset changes are made here.
| Action | Effect on a running session |
|---|---|
| Add | A new, enabled destination is started next to the existing ones. The shared input, the Processor and local recording are not touched. |
| Edit | Only changed connection, codec or header settings restart the destination concerned; a name change keeps the same worker and its uptime. A disabled destination must be enabled through Edit before it can be connected. |
| Remove | Only that destination is stopped and removed from the configuration. Even the last destination may be removed; input, Processor and recording keep running until the global DISCONNECT. |
| Disconnect | Switches that single destination off by hand. Automatic reconnect and silence recovery do not switch it back on; the pause is session-bound, and Enabled decides which streams start at the next global CONNECT. |
| Connect | Resumes a manually stopped or failed destination. |
| Reconnect | Actually closes the old connection of that destination and opens a new one. Two generations are never open on the same mount at the same time. |
The other destinations keep their worker and their own connected time; the changed destination itself has an interruption when it reconnects. A first failed connection is still reported as Error, and automatic reconnect only becomes active after an earlier successful connection. The global elapsed timer keeps its all-connected rule, which is not the same as the uptime of an untouched stream.
- New or resumed streams wait while disconnect-on-silence is active; a manually stopped stream stays stopped, also after an edit or when the signal returns.
- The current artist/title or unsplit song metadata is carried to new workers, and is kept for a next destination while the shared input runs without connected outputs.
- Adding Opus to a running 44.1 kHz session is refused up front: set the shared input to 48 kHz outside a session first. The sample rate is never changed silently for the other streams.
- Invalid or duplicate endpoints are checked before an existing destination is shut down. Test Connection is disabled in the live editor, so no trial connection is opened next to a mount that may be in use.
- Shared input and Processor settings remain changeable only outside an active session.
Each destination has an identity independent of its name, mount and position in the list, so renaming or reordering never restarts a stream. Older configurations receive missing Ids automatically when they are loaded.
Configuration, folders and multiple instances
11.1Configuration storage
NG Encoder stores the configuration next to the executable using the executable filename. For example, NGEncoder.exe uses NGEncoder.config.json. This makes the installation portable and easy to back up. Do not edit the JSON file while NG Encoder is running. Configuration writes are performed atomically and the previous valid file is retained as a .bak backup.
The backup is not just an archive: if the primary configuration file is unreadable or corrupt at startup and the .bak is valid, NG Encoder automatically loads the backup and restores it as the primary file, so a truncated write cannot silently reset a station to defaults. If neither file can be read, the broken file is left in place for diagnosis instead of being overwritten. Configuration reads are capped at 1 MB as a safety limit, and obsolete fields from older releases are ignored and removed when the configuration is rewritten in canonical form.
11.2Configuration validation
Constrained settings are validated when the configuration is loaded. If an invalid value is found, that individual setting falls back to its current default rather than being forced to the nearest value.
11.3Running more than one station instance
For operational clarity, place each independent encoder instance in its own folder with its own NGEncoder.exe, NGEncoderCore.dll and configuration file. A renamed executable gets its own configuration identity and its own daily log filename. Logging is safe across multiple NG Encoder processes: writers for the same instance coordinate through a named mutex, and instance-specific log filename prefixes prevent retention cleanup from deleting another encoder instance's logs when a log folder is shared.
11.4Folders
Logging and recording paths are shown as fully resolved paths in Professional Settings. Use Browse when data should live on another disk. Ensure the Windows account running NG Encoder has write permission to the selected folders.
11.5Registration and license
NG Encoder runs without a license, with restrictions: one stream at a time, one instance, and encoding stops after 45 minutes. An unregistered copy shows a reminder at start-up that lists these restrictions; Continue closes it after a short delay, Enter registration code… opens the License window.
The License window shows the Computer ID of this machine and the current license state. Enter the registration code and press Activate: activation binds the license to this computer and needs an internet connection once. After that the license renews itself automatically whenever the computer is online. Refresh now forces a renewal, for example after a license change in the customer portal.
A computer that has been offline for a long time keeps working: the license stays valid for weeks without contact, and when it does run out the encoder first renews silently in the background at start-up. Only if the portal cannot be reached for days does a warning appear, and only after the grace period does the encoder fall back to unregistered operation. The NG Processor plugin entitlement is part of the NG Encoder license; the plugin validates it itself (section 9.5).
Troubleshooting
12.1A codec is missing from the list
- For MP3, AAC, HE-AAC, Ogg Vorbis and FLAC, confirm that NGEncoderCore.dll is in the same folder as NGEncoder.exe and belongs to the same NG Encoder release.
- Do not rename NGEncoderCore.dll.
- Opus is supplied inside NGEncoder.exe and does not require NGEncoderCore.dll.
- SHOUTcast is additionally limited to MP3, AAC and HE-AAC.
12.2No input device or no meter movement
- Confirm that the desired Windows recording/capture endpoint is enabled and active.
- Open Settings > Audio and select the exact device again.
- Check the upstream playout/processor routing and Windows level/mute state.
- For devices that reset occasionally, enable Automatic WASAPI device recovery.
12.3Icecast refuses the source
- Verify host, port, mount, username and source password.
- Confirm that the mount starts with
/and is not already occupied by another source. - For TLS, verify certificate name, trust and validity.
- Use Test Connection and check the Icecast server log for the server-side reason.
12.4SHOUTcast refuses the source
- Enter the base/listener port, not the source port.
- Verify the source password and SID.
- If TLS is enabled, confirm that the source endpoint itself supports TLS; listener HTTPS is not sufficient.
- Use Test Connection and check the DNAS server log.
12.5Why is there no reconnect countdown after the first failure?
A destination that has never connected successfully in the current run is in an initial-connect Error state. Automatic reconnect is intended for loss of a previously working connection. Correct the problem and press ENCODE again.
12.6Settings are greyed out
Shared input and Processor settings cannot be changed while a session is active; disconnect first. The Processor preset is the exception: it can be changed on air from the NG PROCESSOR panel in STREAMS, within the active engine. Destinations themselves can be added, edited, removed, connected, disconnected and reconnected during the session through STREAMS (section 10.4). With multiple configured destinations, the basic Server tab and basic codec/bitrate controls are disabled. SHOUTcast hides fields that do not apply, and Opus constrains the sample rate to 48 kHz.
12.7The window will not close
This is intentional while a broadcast session or initial connection is active. X and Alt+F4 are silently ignored. Use DISCONNECT first; when NG Encoder is idle the window closes normally.
12.8TLS certificate validation or handshake failed
Use the DNS host name that the certificate was issued for. Ensure the certificate chain is trusted by Windows and the certificate is valid. For literal IPv6 endpoints, NG Encoder handles the required URI/header bracket formatting automatically.
12.9Metadata does not update
Confirm that Automatic Metadata Input is enabled, the correct source mode is selected and TCP clients authenticate before sending metadata. Check the log for parse errors or server-side rejection. A payload that combines artist/title fields with song= is rejected as ambiguous. If a SHOUTcast stream plays normally but every metadata update fails with an HTTP/HTTPS transport error, check the Metadata Admin setting against the server's actual admin endpoint (section 7.5). Live FLAC metadata is not currently supported.
12.10Silence Detection does not disconnect
Confirm the detector has first armed after 10 continuous seconds above Threshold, then verify Threshold and Silence delay. Disconnect on silence must be enabled and the input must remain below Threshold for the complete configured delay.
12.11Signal returned but reconnect did not occur
Confirm Reconnect after signal recovery is enabled. After a silence disconnect, input must remain at least 3 dB above Threshold for the complete Recovery delay before reconnection starts.
12.12Encoder Health is FAIR, ATTENTION or CRITICAL
Read the detail line first: CPU, QUEUE, DRIFT, PCM DROP or AUDIO STALLED identifies the dominant current cause. FAIR/ATTENTION/CRITICAL are live states and clear automatically as the condition recovers; an old incident is not intentionally retained. Historical health transitions remain in Detailed Logging. Persistent or repeated degradation deserves investigation even if the badge later returns to GOOD.
12.13ENCODE reports "Configuration: ..." and does not start
The broadcast preflight validation found a problem before any capture or network activity started; the session is intentionally not attempted. The status bar shows the first error, with a count of any further errors. Common causes are a host entered with an http:///https:// prefix, a mount containing spaces or ?/#, two enabled destinations pointing at the same endpoint, a codec that is unavailable or incompatible with the server type, or a value outside its valid range. Correct the reported setting under Professional Settings > Destinations (or Operations) and press ENCODE again; see section 5.5 for the complete list of checks.
Reading the logs
With Detailed logging enabled, each broadcast logging session begins with the NG Encoder product name and version, followed by session and codec-runtime information.
Timestamps are written to whole seconds. Log level tokens are compact: INFO, WARN and EROR.
2026-08-27 13:20:00 [INFO] NG Encoder 1.0 started 2026-08-27 13:20:00 [INFO] Codec self-test: MP3=OK AAC=OK HE-AAC=OK OPUS=OK VORBIS=OK FLAC=OK 2026-08-27 13:20:01 [INFO] Starting broadcast session 2026-08-27 13:20:13 [INFO] Encoder Health: GOOD (CPU 4.2%) 2026-08-27 14:02:44 [WARN] Encoder Health: ATTENTION (QUEUE 19) 2026-08-27 14:02:52 [EROR] Encoder Health: CRITICAL (AUDIO STALLED) 2026-08-27 14:02:54 [INFO] Encoder Health: GOOD (CPU 4.5%)
Useful events include destination online/offline transitions, reconnect attempts, silence actions, audio-device recovery, metadata errors, recording filenames and periodic diagnostics. Encoder Health state changes are logged; when the severity stays the same but the dominant cause changes (for example CPU to QUEUE), that cause change is logged as well without logging every small numeric movement.
The logger is bounded and fail-safe. If log lines must be dropped during an exceptional I/O stall - because the bounded queue overflows or an append temporarily fails - NG Encoder reports the number of lost lines once logging catches up. Passwords and the metadata authentication token are not deliberately written as connection diagnostics, but treat logs as operational data before sharing them outside your organization.
13.1Log levels
| Token | Meaning |
|---|---|
INFO | Normal startup, connection, recovery-to-GOOD, recording and periodic diagnostic information. |
WARN | Recoverable/noteworthy condition, including FAIR, ATTENTION, NO SIGNAL, metadata failure or recovery warnings. |
EROR | Serious active error, including CRITICAL Encoder Health and failures that prevent or stop a function. |
13.2Daily files and retention
Each NG Encoder instance writes one daily log file named NGEncoder-YYYY-MM-DD.log; a renamed executable uses its own name in the prefix, for example NGEncoder-Studio2-YYYY-MM-DD.log. At midnight, logging continues in a new daily file. Every entry is written into the file of the calendar day on which the event actually occurred: a 23:59:59 event that is physically written a moment after midnight still lands in the previous day's file. Expired files are cleaned up according to the selected retention period, and only files matching this instance's own prefix are removed. The Open button in Professional > Operations opens the active log folder directly.
Commissioning checklist
Before leaving a new encoder unattended, complete the following checks:
- Verify the selected WASAPI input and confirm stable programme levels.
- Listen to every codec/destination with the actual players used by the audience.
- Confirm server-side station name, description, genre and public/private status.
- Use Test Connection for each destination, then verify an actual encoded listener stream.
- Force a network interruption after each destination has connected once and confirm reconnect behaviour.
- Test Silence Detection with realistic threshold, silence delay and recovered delay values; confirm both disconnect and recovery paths.
- Confirm the NO SIGNAL warning clears promptly when audio returns before the disconnect delay expires.
- Test TLS certificate validation and renewal path if TLS is enabled.
- Test metadata input through the production playout workflow.
- Observe Encoder Health, CPU and Auto Gain behaviour during representative programme material.
- If local MP3 recording is enabled, verify the files, selected bitrate and retention cleanup.
- If monitor output is enabled, verify the correct output device and ensure no feedback route exists.
- Locate the log folder and confirm operational staff know where to find the daily files.
- Test the DISCONNECT guard and confirm operators understand the 2-second hold after the fully-connected grace period.
- Back up the configuration after final commissioning.
After commissioning, run the complete destination set continuously for at least a representative broadcast period before relying on unattended operation. Include deliberate disconnect/reconnect and silence/recovery tests, plus prolonged codec listening.