TuneUp Version 33

- Spacebar no longer controls Play/Pause.
- P now controls Play/Pause.
- The Play/Pause Tab control says "Press Enter to activate."
- Shuffle and Continuous Play keep their bracket-key commands.

TUNEUP VERSION 32

Accessibility/playback correction:
- Spacebar pause/resume now preserves Shuffle and Continuous Play settings.
- The Play/Pause Tab hint says "Press Enter to activate."
- Rewind, Fast Forward, and Skip continue to say "Press Enter to activate."

VERSION 31 - TAB BUTTON ENTER HINTS

When focus moves through the main playlist controls, actionable buttons announce
that Enter activates them. Rewind, Play/Pause, Fast Forward, and Skip now include
"Press Enter to activate" in their accessible button text. Shuffle and Continuous
Play remain informational controls and continue to announce their bracket-key shortcuts.

TUNEUP VERSION 28

Version 28 is an accessibility/station-management update based on Version 27.
See VALIDATION-V28.txt for the detailed changes.

TuneUp 25 (0.25.0) - Windows 11, 64-bit

INSTALL
Run Output\Setup-TuneUp.exe from the extracted TuneUp25 folder. Use Tab / Shift+Tab, Enter and Space in the conventional Inno Setup wizard. Close the old TuneUp first. The installer updates the existing per-user TuneUp installation and keeps saved playlists and settings.

If using the source/application ZIP, extract it first. App\TuneUp.exe can run directly. App also contains the three required audio tools. BUILD-INSTALLER.cmd builds Output\Setup-TuneUp.exe with Inno Setup 6.3 or newer. build-windows.bat rebuilds the application with Go 1.23 or newer. Run go test ./... after building to run the included Windows regression tests.

CHANGES IN VERSION 25
P, a valid number key (1-0), or Space when starting/resuming turns Shuffle off and restores alphabetical order. P replays the current song; numbers choose the numbered song in alphabetical order; Space resumes the current song. Playback advances automatically to subsequent songs and stops at the end of the list. Space while playing still pauses.
Turning Shuffle on keeps the current song playing without restarting it. The following songs play in shuffled order. Turning Shuffle off also keeps the current song playing and restores alphabetical order for what follows.

RETAINED FROM VERSION 24
B burns ALL songs in the active playlist to a standard audio CD, including songs that are not marked. Insert a blank CD-R or CD-RW. B opens an accessible writer list; select your drive and press Enter. TuneUp checks the disc, prepares the audio, and asks Yes or No before writing. No is selected initially. Choose Yes and wait for completion. Do not close TuneUp or disconnect the writer while burning.
Capacity is calculated from decoded audio duration, sector padding, track gaps and the 99-track limit. The warning is exactly: There is not enough room on this CD to complete this task. Remove some files and try again.
Press Enter on OK to return to the same playlist. B never deletes songs or changes playlists. Unsupported audio stops the operation before writing. Used CDs and DVDs are not accepted or erased.
End now performs the former B command (play the last song).
Every new key interrupts TuneUp's pending speech. Alt+Up and Alt+Down adjust volume silently. On launch, TuneUp updates only its own JAWS application profile: typing and command interruption are enabled; spoken Alt, Up and Down key labels are disabled. List items and command results remain accessible. Existing profile settings are preserved, with a .before-v24 backup. If JAWS has already loaded the old profile, switch to another app and return, or restart JAWS once.
See PACKAGE-INSTRUCTIONS.txt for extracting or archiving this complete package.

RETAINED FROM VERSION 23 - NEW TRUMPET SOUNDS
Startup uses Opening TuneUp sound trumpet.mp3 (3.192 seconds). The opening trumpet is converted to PCM WAV and embedded in TuneUp.exe. The closing trumpet has been removed. F3 still controls the startup introduction. Explorer music-file launches still skip the introduction.

CHANGES IN VERSION 22 - VOLUME AND SONG SELECTION
Alt+Up increases TuneUp playback volume by 5 percentage points. Alt+Down decreases it by 5, from 100 down to 0 (mute). The volume is saved. Changes are silent so you can hear the music level change. These controls adjust only TuneUp/FFplay audio sessions, not Windows master volume or JAWS. Playing songs are not restarted. MIDI is supported too.
Ctrl+Up/Down browses the current playlist without changing playback or the current marks. Each song name, position, selection state and selection count is announced. Ctrl+Space selects or unselects the browsed song. You may release Ctrl between keystrokes; the selections remain.
Shift+Up/Down selects a continuous range from the browsed song. Reversing direction shrinks the range. Ctrl+Shift+Up/Down extends a range while retaining previously marked songs. Ctrl+D clears all song marks.
M copies the selected song entries to the destination. If nothing is selected, M uses every song in the current playlist. The destination chooser states how many songs will be added. The source playlist and playback stay unchanged. Selections remain after M so you can send them to another playlist. They clear when you switch/open a playlist or edit it with E/R.
Plain Space still plays/pauses; plain arrows keep the existing playback controls. The new selection shortcuts work on the Main Screen, not inside dialogs or text fields.

CHANGES IN VERSION 21 - SEPTEMBER 7, 2026
M opens Move all songs to another playlist. It adds the current songs to the selected destination and keeps the current playlist, selected song and playback unchanged. Use E afterward if you want to empty the source. M is also listed under F1 and F2. It transfers playlist entries; it never moves the physical audio files.
Ctrl+T switches playlists: Main playlist, then named playlists in alphabetical order, then back to Main playlist. The new playlist name and song count are announced. Switching stops playback; Space plays the newly selected list. Empty playlists are included.
E asks Yes or No and empties only the active playlist. No is selected by default. The destination of an earlier M operation is not made active, so E cannot accidentally clear that destination.
R asks Yes or No before removing the current song from only the active playlist. No is selected by default. Other playlists and the original music file are kept.
Switching playlists no longer adds the named-list songs back into an emptied Main playlist. Main stays empty across switching and restarting, ready for more O selections.
The version 20 native Open dialog, Add/Replace buttons, Help/About menu, startup/exit recordings and JAWS speech support are retained.

CHANGES IN VERSION 19
After O selects additional songs, choose Add to current songs or Replace current list with the new ones. Escape cancels without changing the list or playback. Replacement changes only Main List, preserves named playlists/music files, and survives restart. The first selection into an empty Main List opens directly. Explorer file launches continue to add and play directly.
Startup and exit WAV recordings play directly from the executable, without a shared temporary file. Normal launches replay the opening recording whenever the F3 introduction setting is on. Opening a music file from Explorer continues to skip the introduction.

VERSION 18 CONFIRMATIONS
JAWS receives queued confirmation speech directly through its public API. One-song navigation and invalid number keys announce the playlist size without restarting playback. Creating a playlist announces its name. Main Screen is announced on startup and return from dialogs. Initial focus no longer lands on Rewind.

PLAYLIST FEATURES
Opened songs go into one persistent Main playlist, with an Add or Replace choice when O selects more songs. Ctrl+S scans a folder or local/USB drives into this same list, without reading genres or making genre playlists. Unavailable, linked, or online-only items are skipped. Escape cancels a scan without adding its results.

Existing named playlists are preserved. When Main playlist is first created, existing named-list songs are imported once. Later startups retain the saved Main playlist, including a deliberate replacement, without reimporting old songs. Opening a named list selects that list for playback. Opening new files returns playback to the main playlist; Add retains earlier songs and Replace uses only the newly selected songs.

A means Add this song to another playlist. Its native Windows list starts with Create new playlist. Enter prompts for a name, then adds the current song. Choosing an existing list adds the current song directly. Duplicate songs are not added twice, and adding does not change playback.

All playlist selectors, F1, F2 and C use standard Windows list boxes with real item names. The main controls are native Windows buttons in this Tab order:
Rewind 10 seconds; Play/Pause; Fast Forward 10 seconds; Skip; Shuffle.
On startup and after returning from a dialog, focus is on Main Screen. Press Tab to reach Rewind first; Shift+Tab reaches Shuffle. Enter activates the focused control. Spacebar is intentionally not assigned to Play/Pause in the main window. P is the Play/Pause keyboard shortcut. Shuffle is a native checkbox presented as a button; its accessible name and checked state change between Shuffle on and Shuffle off. Shuffle starts off each session. Switching it off restores alphabetical playback order without changing the current song.

SHORTCUTS
S Stop; P Play/Pause; Up Previous; Down Next; Left rewind 10 seconds; Right forward 10 seconds; O Open; A Add current song to another playlist; M Move all entries to another playlist while keeping the source active; Ctrl+T Next playlist; E Empty current playlist with confirmation; R Remove current song with confirmation; C Convert; W Artist; L Length; 1-9 and 0 Play songs 1-10; T First; End Last; B Burn current playlist to audio CD; F1 Help; F2 Playlists; F3 Startup introduction on/off; Ctrl+S Scan into main playlist; Escape Exit.
Within a list: arrows browse, Enter chooses, Escape cancels. Within a naming prompt, type normally; single letters are not player shortcuts. Use Enter on the focused Cancel button or Escape to cancel.

The original startup trumpet is preserved. The closing trumpet has been removed; the "Exiting TuneUp!" message is preserved. Opening music from Explorer skips the introduction and immediately plays the selected file. If TuneUp is already open, the new file goes to the same instance and main playlist. Close any open TuneUp dialog before opening a file from Explorer.

DATA
Playlists: %APPDATA%\TuneUp\Playlists
Settings: %APPDATA%\TuneUp\settings.json
Music remains in its original folders. Old genre-named playlists are kept as ordinary named playlists; no automatic genre creation remains. The main playlist cannot be deleted through the playlist manager.

AUDIO AND DISTRIBUTION
MP3, WAV, M4A/AAC, FLAC, OGG, OPUS, WMA, AIFF, M4B and AC3 use the bundled FFmpeg tools. MIDI uses Windows MIDI synthesis. MIDI-to-audio conversion and copied CDA shortcuts remain unsupported. Conversion creates a -converted file beside the original; as in prior versions, repeating a conversion replaces that converted output.

The existing Gyan FFmpeg binaries are included unchanged with their license notices. See Third-Party-Licenses for their GPLv3 build and source information. This is a personal build for Ron. The executable and installer are unsigned. No code-signing or antivirus certification is claimed.

See JAWS-TESTING.txt for the short listening test and VALIDATION.txt for automated checks.




F2 no longer contains List saved playlists (L). Use Open or switch playlist to browse saved playlists. Main-screen L still announces song length.


IMPORTANT VERSION 25 CHANGE
---------------------------
This package is the Version 25 branch. The startup trumpet remains. The closing trumpet has been removed. TuneUp still announces "Exiting TuneUp!" before closing.

The Output installer executable was intentionally removed because it was compiled before this change. Use App\TuneUp.exe for this test. Rebuild the installer later from TuneUp-Installer.iss if needed.

VERSION 26 NUMBER-KEY PLAYBACK
------------------------------
When you press 1 through 9, or 0 for song 10, TuneUp plays only that numbered song.
When that song ends, TuneUp stops and does not automatically advance to the next song.
Normal playlist playback and the Down Arrow Next Song command still advance normally.

VERSION 27 - STATIONS AND TEMPORARY MAIN
- Number keys are now station shortcuts instead of song-number shortcuts.
- 1 always selects Main, the temporary station.
- 2 through 9 and 0 select the first nine saved playlists in the user's station order.
- Main starts empty every time TuneUp opens and is not saved when TuneUp exits.
- Main never automatically advances to the next song when a song finishes.
- Saved F2 playlists continue automatically from song to song.
- F2 now includes Arrange station order. Choose a playlist, then Tab between Move Up and Move Down.
- Playlists beyond the nine number-key stations remain available through F2.

Version 29 changes:
- Ctrl+S song-search selection is stabilized while tabbing to Add.
- [ toggles Shuffle on or off.
- ] toggles Continuous Play on or off.
- Shuffle and Continuous Play settings are saved.
- Shuffle/Continuous controls in the Tab sequence are read-only command reminders.

VERSION 30 - MULTI-SELECT SEARCH AND TAB STATUS FIX
----------------------------------------------------
- In Ctrl+S search results, Shift+Up Arrow and Shift+Down Arrow extend the song selection using standard Windows multi-select behavior.
- Ctrl+A selects every song in the search results.
- Add to the current station adds all selected songs at once.
- Enter while focus is on the search-result list also adds the current selection.
- The Shuffle and Continuous Play items in the main Tab order remain informational only.
- When focused, they now report the current On/Off state plus the bracket shortcut.
- The informational state refreshes when a station is opened and when Shuffle or Continuous Play is changed.
