Release Notes RemotePLE
=======================
Latest changes are shown first.

=== Version 1.0.0.123: Speech output improvements ===

- New: In the version notes, navigating now reads whole paragraphs at
  once instead of individual wrapped lines. This improves intonation;
  each bullet point is spoken as a complete sentence and decorative
  lines of equal signs are skipped.
- New: Special and punctuation characters can be announced by name when
  reading aloud, for example comma, semicolon or slash. Selectable in
  the settings under "Speech output": off, structural characters only,
  or all characters. Affects the internal text editor and the settings
  readout. In the text editor a short pause is inserted after each
  semicolon so data fields in CSV or cue files are easier to tell apart.

=== Version 1.0.0.122: Now Playing (send the title to RadioBOSS) ===

- New: Now Playing. RemotePLE can receive the title currently playing in
  a broadcast player (for example Traktor or Mixxx) and send it
  automatically to RadioBOSS as the cast title. This is useful when the
  sound is fed directly from a mixer into the sound card input of
  RadioBOSS, which otherwise knows no title. No extra Icecast service is
  needed - RemotePLE accepts the broadcast itself. Set it up in the
  settings under "Extended": port, on/off and the choice between the
  remote and the local RadioBOSS instance. The setting belongs to the
  current server profile.

=== Version 1.0.0.121: Built-in text editor and further improvements ===

- New: Built-in text editor. Text files on the server (txt, csv, cue,
  tag) can now be edited directly in RemotePLE - in the FTP tab as well
  as in the source lists. Open them by double-clicking, via the context
  menu "Edit file" or with Ctrl+E. When you save, the file is
  automatically uploaded back to the server. The character encoding
  (ANSI, UTF-8, UTF-16) is detected and preserved on saving. The editor
  is fully operable by keyboard and speech; while scrolling, the current
  line is read out. Text files also get their own icon in the lists.
- New: Notification of new versions. If no automatic update is set up,
  RemotePLE can check online for a newer version at startup and show a
  notice. Can be turned on and off in the settings under "Advanced".
- New: Speech on mouse movement. The announcement of hints under the
  mouse pointer now only reacts to actual mouse movement - a pointer
  left in place no longer repeats itself. Can be disabled in the
  settings under "Speech".

=== Version 1.0.0.120: Server profiles (several RadioBOSS servers) ===

- New: Server profiles. You can now manage several RadioBOSS servers
  or stations as profiles and switch between them while the program is
  running. Each profile bundles the connection, RadioBOSS access, SQL
  database and its own preset list. Open the server profile window with
  the F11 key. The active profile is shown in the title bar. On the
  first start your previous settings are transferred automatically into
  a profile named "Standard".
- Protection against invalid paths: Tracks outside the music root
  directory are no longer added to the playlist or to the RadioBOSS
  commands, but skipped with a message.
- Bug fix: In SFTP mode presets could not be loaded (they were marked
  as invalid). Presets and playlists now also work over SFTP.

=== Version 1.0.0.119: Local file mode (studio mode) ===

- New connection mode "Local": files can now be read and written
  directly from a local or network drive, without an FTP server.
  Ideal when RemotePLE runs on the same machine as RadioBOSS. In the
  settings, choose "Local" as the connection mode; the top field then
  serves as the local root path.
- Bugfix: in subdirectories the last file could neither be deleted nor
  (for playlists) renamed. Both now work in all connection modes.

=== Version 1.0.0.118: Setup notice on startup ===

- On startup a notice now appears when no FTP connection details
  have been configured yet. If you wish, the settings open directly
  so you can complete the setup.

=== Version 1.0.0.117: Help browser button & update fixes ===

- Help system: The browser button is now only shown when the
  corresponding HTML page actually exists on the server. The list
  is fetched automatically from the server at startup and on
  every language change.
- Bug fix: During automatic updates, the application's own EXE file
  was incorrectly downloaded as a regular file on systems with
  differing path capitalisation (e.g. Windows 7) instead of being
  saved as an update file (.neu). Applies to both FTP and SFTP.
- New language key "upd-in-progress": A voice announcement is now
  played while an automatic update is in progress.

=== Version 1.0.0.116 ===

- Bug fix: During automatic updates via FTP/SFTP, nested subdirectories
  (e.g. the help system's language folders) were sometimes not created
  correctly, causing individual help chapters to be missing. Updates now
  create subdirectories reliably.

=== Version 1.0.0.115: Integrated Help System ===

- Integrated help system: F1 opens context-sensitive help whose
  chapters adapt to the active area (Playlist, FTP, On-Air list,
  Presets tab, CueEditor, search panel).
  49 chapters, available in German, English, French, Spanish
  and Turkish.
- F1 context added for the Presets tab.

=== Improved Voice Output: Internal RadioBOSS Instance ===

When switching between the external and internal RadioBOSS instance (checkbox
"Internal" to the right of the on-air list), all display texts and voice
messages are now updated correctly:

  – Tab label and tooltip of the on-air list switch depending on the active
    instance ("On-Air List" ↔ "Internal On-Air List")
  – Panel tooltip names the active instance
  – All action messages (delete, move, start, etc.) indicate the internal
    instance while it is active
  – The toggle message is available in all five languages

=== Breadcrumb Navigation in Directory Panels ===

The path display in all eight directory panels (FTP, Song, VT, Jingle,
Drop, Opener, Promo, Content) has been replaced with clickable breadcrumb
navigation. Each directory segment is a separate link that navigates
directly to that level.

Leading "/": Appears as soon as a subdirectory is open. The tooltip reads
"FTP root directory" and jumps to the FTP root in a single click.

Accessibility: All segments are readable by screen readers. The tooltip
of the "/" link is localised in all five languages. Double-clicking the
panel still works as before.

=== Fix: File Count in FTP Directory Lists ===

In FTP directory listings, the parent link ".." was previously included
in the announced file count. The new helper function NettoAnzahl() subtracts
this entry — the displayed and spoken count now reflects only actual files
and subdirectories.

=== Improvement: Online Year Search (MusicBrainz) ===

The MusicBrainz search in the Tag Editor has been improved in two areas:

Year: Up to 100 results are now evaluated instead of 3. This ensures
that the correct earliest release year is reliably found for tracks with
many versions. Bootleg recordings are deprioritised when the year is equal.

Album: For album detection, the found recording is now looked up directly
at MusicBrainz. This reliably filters out live albums, compilations and
bootlegs — only an official studio album is suggested.

=== Bugfix: Local RadioBOSS Instance ===

Several functions in the RadioBOSS API connector were not passing the "local"
parameter through to internal sub-calls. As a result, actions such as move,
delete, start, and command editing were always sent to the remote instance
even when the local instance was active.
In addition, the parameter was missing entirely from the command editing
function (BOSS_EditCommand).
All affected functions have been corrected.

=== Local RadioBOSS Instance ===

When using a second, local RadioBOSS instance (e.g. for live shows with
local preparation), the On-Air tab can now be switched to control that
internal instance.

An "Internal" checkbox appears to the right of the On-Air list — but only
if a local instance is configured in Settings (tab "Advanced").
When activated, all On-Air functions (delete, move, start etc.) target the
local instance. All spoken feedback indicates that the internal instance
is active.
The toggle is not persistent — after a restart, the external instance is
active again.

=== Release Year from the Internet ===

The Tag Editor has a new "Year" button (next to "Fetch Tags").
It automatically looks up the release year of the current track:
  – Primary source: MusicBrainz (open music database, no account needed)
  – Fallback: iTunes search
  – If an album is stored: first searched with album, then without as fallback
The found year is entered directly in the tag editor.
If the source returns an album name that differs from the stored one,
adoption is offered — the album name is read aloud.

=== Admin Tool: Tag Completion from Local File Copy ===

Hidden maintenance function for administrators: Ctrl+Shift+Alt+A.
Opens a menu with two modes:
  – "Complete only if all fields empty" — fills only fully empty entries
  – "Granular: fill only empty fields" — existing values are preserved
The tool reads tags from a local copy of the server files (path is requested).
Fields: Title, Artist, Album, Genre, Year.
Before writing, the number of matches is announced and confirmation requested.
The last entered path is saved.

=== Bug Fix: Crash on Startup in the Evening ===

The application crashed on startup every evening from approximately 18:12
with an arithmetic error ("ERangeError").
The cause was a calculation in the FTP progress display that overflowed
when using the current time of day.
Fixed.

=== Extended Title Search ===

The search in the song area has been extended with a database search.
In addition to the existing FTP directory search, five database
search modes are now available:
  – Artist + Title  (default)
  – Artist, Title, Genre and Album (all fields)
  – Artist only
  – Title only
  – Genre only

The search finds titles containing all entered words
(e.g. "Beatles love" finds only titles with both words).

Optional: Titles played within the last 24 hours can be
hidden (checkbox "> 1d").

The selected search mode is saved and automatically restored
on the next start.

Database search is only available when connected to the
RadioBOSS database.

=== Voice Feedback for FTP Operations ===

Delete, rename, create folder and remove folder now provide spoken feedback:
success or failure is announced immediately.
When deleting multiple files, the number of successfully deleted files
is reported (e.g. "3 files successfully deleted").
Works equally with FTP, FTPS and SFTP.

=== FTP/FTPS/SFTP Progress Bar ===

The progress bar during file transfers has been thoroughly reworked.
It now shows real percentage progress for FTP and FTPS transfers.
For SFTP, a marquee bar runs during the transfer.
Background: some FTPS servers do not report the file size in the RETR
response – the size is now fetched in advance to enable progress display.

=== VU Meter (Recording) ===

The level meter used when recording voice tracks has been completely
redesigned. Previously, screen readers disrupted recordings with tones
because the Windows progress bar control fires an accessibility event
on every position change.

The new meter features:
  – Logarithmic dBFS scale (–60 to 0 dB)
  – Stereo: left and right channel displayed separately
  – Colour zones: green / yellow / red
  – Peak hold: peak level is held for 2 seconds, then slowly decays
  – No more screen reader noise

=== Edit Command ===

Existing commands in the preparation and on-air playlists can now be edited
directly, without having to delete and re-add them.

Editable commands: relaystart, getrandomplaylist, setcasttitle,
and show download commands (download ...).
The current parameter is pre-filled in the input field.
Access: right-click a command → "Edit command"
(only active when the selected command is editable).

=== Database Auto-Reconnect ===

If the connection to the RadioBOSS database is lost, RemotePLE no longer
needs to be restarted. The timer automatically attempts to reconnect every
minute. When opening the CueEditor or saving cue points, a reconnect is
also attempted automatically if needed.

=== Waveform Analysis (CueEditor) ===

The waveform display in the CueEditor now works reliably on all systems,
regardless of the audio device sample rate.

Previously, on certain computers (e.g. with a device running at 48 kHz
instead of 44.1 kHz), the waveform could go flat after a few seconds.
Analysis now runs in a separate sequential decode pass directly on the raw
file data, without any seek operations. Side effect: waveform quality is
improved (all samples per pixel evaluated instead of spot samples).
The loudness measurement (LUFS) is also more accurate.

=== Multiple Languages ===

The language selection in Settings loads all available languages
automatically from the Language\ folder. Five languages are currently
available: German, English, French, Spanish and Turkish.

=== SFTP Support ===

In addition to FTP and FTPS, SFTP is now supported.
Switch in Settings: Connection tab → Mode SFTP.
A security prompt for the host key appears on first connect.
The port switches automatically from 21 to 22.

=== Speech Guide (Accessibility) ===

All new features provide audio feedback via speech output.
The Speak button (or Ctrl+Speaker) toggles announcements on/off.

=== Tag Editor ===

Track metadata can be edited directly in the database from within the CueEditor.

  "Fetch Tags"       – Reads tags from the audio file
                       (Artist, Title, Album, Genre, BPM etc.)
  "Calculate BPM"    – Analyses the audio and detects the tempo
  Ctrl+S             – Saves both cue points and any changed tags

=== CueEditor ===

The CueEditor allows you to edit cue points directly within the application.

Keyboard shortcuts:
  Ctrl+T         – Open / close CueEditor
  F1–F10         – Select cue point (spoken: name and position)
  K / Shift+K / Ctrl+K – Position –10 ms / –100 ms / –1000 ms
  L / Shift+L / Ctrl+L – Position +10 ms / +100 ms / +1000 ms
  O              – Preview with beep just before the cue point
  I              – Play from cue position
  P              – Play / Pause (CueEditor only)
  Space          – While playing: set cue at current position
  Shift+Enter    – Set cue point to cursor position
  Del            – Delete selected cue point (with confirmation)
  Home / End     – Jump to beginning / end of track
  Ctrl+S         – Save cue points and tags to database
  Ctrl+Z         – Undo last cue point step

These release notes can be reopened at any time by pressing F12.
