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

=== Version 1.0.1.004: Voice messages and saving without a database ===

- New: Voice messages that listeners record on the station's website can be called up with Ctrl+N. RemotePLE looks into a server folder at regular intervals and reports new messages with an announcement and a pulsing indicator on the right of the status bar. No window opens, deliberately, so that nothing steals the focus during a live show. The messages can be listened to and inserted into the playlist or the on-air list at the same four positions as a track. The folder is entered by hand in the server profile; without that entry the feature stays off.
- New: In the mode without a database, cue points, level and tags can now be saved as well. Until now they could only be viewed there. The whole record is always written in one go, so that two saves cannot overwrite each other. The interface still does not know Mix Start; that cue point is therefore locked and names the reason when selected, instead of accepting a value and losing it on saving.
- Changed: The labels of the ten cue points now appear in the selected language and are read out that way too. Until now they were English in every language. The column adapts its width to the length of the translation.
- Changed: The level slider in the cue point editor announces its value when selected; until now it stayed silent. The hints of the fields next to it - level display, target loudness, progress display and search area - now appear in the selected language as well.
- Bug fix: Entries with an exclamation mark in the text were stored incompletely. "P!nk" became "P". Saving could additionally create a duplicate library entry with an equally shortened path; the check for orphaned entries in the admin tools finds and removes such duplicates. Fields already stored wrongly stay wrong and have to be read from the file again or filled in by hand.
- Bug fix: If only the level was changed in the cue point editor, the save button stayed grey and the value could not be stored.
- Bug fix: Tracks not yet in the library were not created when saving in the cue point editor.

=== Version 1.0.1.003: Orphaned library entries and new search modes ===

- New: The admin tools (Ctrl+Shift+Alt+A) clean up orphaned library entries, that is tracks whose file is no longer on the server. Three menu items in three steps: find and mark as invalid, then check and delete, and finally restore the entries of one directory. Only what has been confirmed missing twice independently is deleted; audio files are never touched.
- New: Every check for orphaned entries writes a report into the Backups folder next to the program, listing every affected track and ending with the totals.
- New: Two additional modes in the database search. “DB File name” searches the file path instead of the tags, “DB All fields” searches both at once. Both also find tracks that have no tags at all.
- Changed: The former mode “DB All fields” is now called “DB All tags”. It still searches artist, title, genre and album; a stored setting does not change its behaviour. The name “DB All fields” now denotes the new mode that also searches the file path.
- New: Tracks whose file was missing at the last library check carry their own icon in the result list, and their number is announced after the search. They are shown rather than hidden, because often the file was merely moved.
- Fix: Tracks with Cyrillic or other non-Western characters appeared as question marks in the search and the tag editor. Saving could make the question marks permanent.

=== Version 1.0.1.002: Tag editor without a database ===

- New: if a server profile has no database configured, RemotePLE now reads the cue points and tags through the RadioBOSS interface. The cue point editor can therefore be opened where the database cannot be reached from outside. In this mode you can view, audition and navigate everything, but save nothing. Five fields are not delivered by the interface: mix start, gender, language and the two ReplayGain values; they stay empty and cannot be edited.
- New: opening and closing the cue point editor is now announced, and on opening also which route was used (database or interface). If neither is configured, the program says so instead of not reacting at all.
- Changed: connection details changed in the settings window take effect immediately. Until now this required a restart.
- Bugfix: when switching to a server profile without a database, the connection of the previous profile stayed open. The tag editor could therefore show data of the server chosen before.
- Bugfix: fields without content were missing from the tag editor's value list entirely instead of being shown empty. This mainly affected "language".
- Bugfix: clicking the close button repeatedly during the farewell announcement repeated it and could cause an error while shutting down.

=== Version 1.0.1.001: Event scheduler, wizards and many improvements ===

- Note on the version number: this release moves from 1.0.0.125 to 1.0.1.001. The third group of digits now counts the larger development stages, the fourth the release within such a stage.
- New: remote control of the event scheduler, opened with F9. The events of the RadioBOSS instance are listed with name, time, days, group and state. The scheduler as a whole can be switched on and off; individual events can be enabled and disabled, run immediately, skipped for their next scheduled start, deleted, created and edited.
- New: before every write access RemotePLE automatically stores a backup of all events in the folder "Backups" next to the program. The button "From backup" writes single events or all of them back; events that have already been restored are recognised and skipped. Please note: the backup files may contain credentials in plain text and should therefore not be passed on.
- New: week overview of the event scheduler. It shows the scheduled start times of one week either as a calendar with seven day columns or as one continuous list, optionally with the event colours assigned in RadioBOSS. If more than one event that claims the main playlist starts in the same minute, this is pointed out in the text.
- New: command wizard for action lines. Instead of typing the command line by hand you pick the action from a list and fill in the matching fields; the finished line is shown below for checking and can still be edited as free text. Available in the event scheduler and via "Edit command" and "Insert command" in the playlist and the OnAir list.
- New: generator wizard for the Playlist Generator Pro. Several presets are entered as a table with one row each: preset, count, start number and output file. If the counter is missing from the file name it is inserted on request, with the number of digits that matches the highest number.
- New: placeholders in the file name for date, time, weekday and a time offset can be picked in both wizards from a button next to the respective field. Every entry states its meaning and today's value alongside the code.
- New: file and directory selection on the server. Paths no longer have to be typed from memory. The selection works across all transfer modes - FTP, FTPS, SFTP and local - and converts the path into the notation of the RadioBOSS machine by itself.
- New: song requests, opened with Ctrl+W. The request list of the RadioBOSS instance is shown with title, message, state and waiting time and can be inserted at four positions into the playlist or the OnAir list. The message is either read out or entered as a note. Single requests can be removed and new ones entered by hand.
- New: send a whole playlist to RadioBOSS. Six entries in the menu of the FTP list do this: replace the contents of the edited playlist, insert before or after it, and replace the OnAir list, queue as next or append.
- New: special entries are recognised in the playlist and the OnAir list and shown with their own icon: network stream, line input, time announcement, comment, hour marker, speech synthesis, teaser and container. When moving through the list the kind of entry is announced first, then name and directory.
- New: the backspace key moves up one level in all directory lists. At the top level this is announced.
- New: the buttons of the windows without a menu bar can now be reached with "Alt" and a letter.
- Changed: the dialogs for downloading and uploading files and for choosing a backup are announced - beforehand what it is about and which value is preset, afterwards the result with source and destination.
- Changed: the hints now name the action first and the object second, that is "Delete the selected event" rather than a sentence starting with the object. When tabbing through, the very first word therefore answers the question of what the button does.
- Changed: the captions grow with the chosen language. Longer translations used to be cut off by the previously fixed widths.
- Changed: the recording format is now called "WAV". It is written directly as PCM; the codec window that used to appear is gone.
- Changed: the record button now follows the language setting. Until the first recording it was labelled in German.
- Changed: in local mode the notice at program start names the missing root path instead of the FTP connection data. The FTP field is switched off in that mode.
- Changed: when entering an input field the hint is announced consistently in all windows and the field is highlighted in colour. From multi-line text fields only the hint is spoken now, no longer the whole contents.
- Changed: when punctuation is announced the space is named as well, and a full stop immediately in front of a short form such as "m3u8" is no longer lost.
- Changed: numerous help chapters have been revised. New chapters cover the event scheduler, the song requests, the command wizard, the generator wizard and the server file selection.
- Bugfix: the total duration of a playlist was shown too short if it contained special entries without a known length.
- Bugfix: streams and relay links could neither be moved nor started in the OnAir list.
- Bugfix: entries with a duration behind the hash sign ended up at the wrong position of the OnAir list when inserted.
- Bugfix: if nothing was playing - during an active relay or at the end of the playlist, for instance - the program reported "'' is not a valid integer value" and the title display stopped updating.
- Bugfix: passwords appeared in plain text in the log file.
- Bugfix: a failed download or upload passed without any message.
- Bugfix: in playlists without a header line the first entry had no icon, and changes to it were not applied when saving.

=== Version 1.0.0.125: Two new languages and path fix ===

- New: Brazilian Portuguese and Russian as additional program languages. The interface, help system and release notes are fully translated.
- Settings: A missing trailing slash or backslash is now added automatically to the path fields when saving.

=== Version 1.0.0.124: Multiple root paths ===

- New: Multiple root paths. The mapping between FTP paths and the
  drives on the RadioBOSS machine is now managed through a list on the
  "Common" tab. If your audio files are spread across several drives,
  you can add a separate mapping per drive. A single entry is still
  enough for the simple case; existing settings are migrated
  automatically.
- Changed: The "SQL settings" tab is now called "RadioBOSS" and groups
  the RadioBOSS API, relay, trigger, livestream and database settings
  in one place.
- Changed: In local mode (studio mode) the local paths are now entered
  in the "Local path" column of the root mapping; the FTP host field is
  no longer needed there.

=== 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.
