# Gif2SL Studio 1.1

Version 1.1 extends the established exact-frame converter without changing its
locked 10 FPS sampling, true-frame naming contract, or unused-cell policy.

## Small-screen accessibility in 1.1.8

- Added a complete application viewport with horizontal and vertical
  scrollbars that appear only when the interface does not fit the available
  window.
- Reduced the hard minimum window size from 1120 x 720 to 760 x 480, allowing
  the application to remain usable on smaller monitors and at higher Windows
  display-scaling settings.
- Initial window dimensions now respect the operating system's available
  desktop area while retaining the established 1320 x 850 preferred size on
  larger displays.
- Preserved the existing two-column Visual Media layout, preview sizes, fonts,
  controls, shared header, and workspace order.
- Added a customer Quick Start covering the shared output folder, Visual Media,
  Audio, Batch Queue, uploads, and the correct bundled player for each output.
- Added an illustrated three-prim construction guide for the Fluid Sequence
  Player, including exact link order, overlapping-screen geometry, and required
  root inventory.
- Added explicit licensing and creator-use terms that distinguish the MIT-
  licensed Gif2SL Free example from the source-included Studio player scripts.
- The Windows release builder now bundles the Quick Start, creator-use license,
  and both SVG and PNG versions of the construction guide.
- This is an interface-only release. Conversion, preview generation, export,
  naming, audio, alpha, batch, and Second Life playback behavior are unchanged.

## Explicit checkbox states in 1.1.7

- Standardized every checkbox around one visual and behavioral convention.
- An enabled, unchecked option is shown as a visible empty gray box: the option
  is available but has not been selected.
- An enabled, checked option is shown as a blue box with a white checkmark: the
  option is active and will be used.
- A disabled option is dimmed and always appears as the same empty dark-gray
  box, even if a saved internal value was previously checked. It is unavailable
  and will not be used in the current context.
- Bundled the vector checkmark with source and packaged Windows builds so its
  appearance remains consistent.
- This is an interface-only release. Conversion, preview, export, naming,
  audio, alpha, batch, and Second Life playback behavior are unchanged.

## Interface consolidation in 1.1.6

- Renamed and reordered the workspaces to **Visual Media**, **Audio**, and
  **Batch Queue**, following the normal preparation-to-export workflow.
- Moved the media preset and one shared output folder above the tabs. Visual,
  audio, and newly queued exports now use the same visible destination.
- Added **Add Current to Batch** to Visual Media and **Add to Batch** to Audio,
  so a prepared source can be queued without switching workspaces.
- Consolidated texture size, planner, Frame Fit, output format, Fluid sequence,
  matching WAV, and maximum sheet duration into one **Visual Media Defaults**
  section on Batch Queue.
- Visual Media and Batch Queue defaults now synchronize in both directions.
  Existing queued jobs still retain their snapshots until **Apply Defaults to
  Selected** or **Apply Defaults to All Media** is used.
- Retained per-video alpha-mask assignment as a clearly separated selected-job
  override, and removed the redundant Audio Only explanatory box from Batch.
- Added a dedicated Audio Export Plan panel, context-sensitive policy text, and
  a progress bar that appears only while work is running.
- Updated action labels for clarity, including **Export Current Media**,
  **Export Audio Segments**, **Create Fluid multi-sheet sequence**, **Extract
  matching audio to WAV**, and **Maximum sheet duration**.
- This is an interface-only release. Conversion, fixed 10 FPS sampling, exact
  frame counts, rectangular grids, balanced segmentation, alpha processing,
  filenames, and bundled Second Life playback behavior are unchanged.

## Per-video Batch alpha masks in 1.1.5

- Added an **Alpha Mask — Selected Video** section to Batch Queue.
- A synchronized MP4 or WebM alpha mask can be assigned to each queued video
  independently, including videos added through **Add Files**.
- Added **Assign Alpha Mask**, **Clear Alpha Mask**, and per-job **Invert selected
  alpha mask** controls.
- Mask editing requires exactly one selected MP4 or WebM job, preventing one
  mask from being applied accidentally to several unrelated sources.
- Queue summaries show the assigned mask filename and whether its polarity is
  inverted.
- Existing Visual Media masks captured through **Add Current to Batch** remain supported.
- The established mask contract is unchanged: white is visible, black is
  transparent, gray is partial transparency, and prepared masks are sampled at
  the same locked 10 FPS timestamps as their color video.

## Multi-file Audio Only batches in 1.1.4

- Added **Add Audio Files** to Batch Queue for selecting multiple WAV, MP3,
  FLAC, M4A/AAC, OGG/Opus, WMA, or AIFF sources at once.
- Mixed animated-image, video, and Audio Only jobs can now run in one queue.
- Audio queue entries show the source duration, planned equal-segment count,
  and approximate duration of each resulting WAV before export.
- Every audio job reuses the established Audio Only engine: the fewest balanced
  segments at or below 29.9 seconds, mono PCM signed 16-bit at 44.1 kHz, upload-
  safe filename metadata, a per-title folder, and a complete information report.
- Audio jobs ignore Frame Fit and video options; applying visual controls to a
  mixed queue updates only the applicable image or video jobs.
- Batch completion now distinguishes WAV segments from Fluid texture sheets.

## Frame Fit and truthful preview corrections in 1.1.3

- Added a Frame Fit choice to Convert: Preserve Full Frame remains the safe
  default, while Zoom to Fill uniformly enlarges each frame and center-crops
  only the overflow to remove side or top/bottom bands without distortion.
- Corrected the animated Second Life Playback preview to display the actual
  fitted cell image. It now shows the bands produced by Preserve Full Frame or
  the precise centered crop produced by Zoom to Fill before export.
- Saved Frame Fit in Last Used settings and named presets.
- Added a dedicated Batch Frame Fit selector. New jobs capture the current
  choice, and queued image or video jobs can be revised with Apply to Selected
  or Apply to All Media.
- Added Frame Fit and the approximate padding/crop direction and percentage to
  conversion summaries and exported information reports.
- Kept every source frame in the playback sequence. Frame Fit changes only how
  each frame is rendered inside its cell; filenames and bundled LSL scripts are
  unchanged.

## Private beta corrections in 1.1.2

- Normalized every sheet through one evenly divisible working grid before the
  final 1024/2048 power-of-two raster is produced. Frames therefore retain one
  shared scale and anchor even when the output dimensions do not divide evenly
  by a rectangular grid such as 6 x 10.
- Retained the existing locked 10 FPS, selected grid, output dimensions, frame
  count, unused-cell policy, naming contract, and Fluid segmentation behavior.
- Added a visible built-in idle slate to the Fluid Sequence Player. Removing all
  animation textures no longer makes both display prims appear to vanish; a
  valid series restores the first frame automatically without a script reset.

## Fluid long-video export

- Added optional automatic multi-sheet MP4 and WebM export.
- Added selectable 8-second High Quality, 10-second Balanced, and 15-second
  Fewer Sheets maximums. Ten seconds is the recommended default.
- Uses the fewest segments at or below the selected maximum, then balances
  frame counts to within one frame instead of leaving a short final sheet.
- Warns that 15-second sheets contain more frames and can appear noticeably
  softer, particularly at 1024 output.
- Uses one shared grid and identical cell geometry across the complete sequence.
- Preserves every 10 FPS sample and records each sheet's true frame count.
- Optionally exports a matching mono PCM WAV for every sheet.
- Groups all sheets, sounds, and the sequence report in one output folder.
- Handles WebM files whose container duration extends slightly beyond the
  timestamp of the final video frame. One terminal 10 FPS sample may use that
  final frame when it falls within the existing 0.1-second sampling interval;
  larger decoding shortfalls still fail visibly.

For the 65-second reference case, the 10-second default preserves all 650
frames in seven sheets containing 93, 93, 93, 93, 93, 93, and 92 frames.
The 8-second option produces nine higher-quality sheets; the 15-second option
produces five 13-second sheets.

## Audio Only

- Added a dedicated Audio Only workspace.
- Accepts WAV, MP3, FLAC, M4A/AAC, OGG/Opus, WMA, and AIFF.
- Converts to Second Life-ready mono PCM signed 16-bit, 44.1 kHz WAV.
- Uses the minimum number of equal segments at or below 29.9 seconds.
- Balances segment lengths to within one sample, avoiding a short leftover clip.
- Encodes title, sequence number, segment count, and duration in upload-safe names.

## Second Life scripts

- Gif2SL Free now selects one modern texture deterministically, falls back to
  legacy names, and reports ignored or ambiguous inventory assets.
- Single-sheet audio export now rejects selections over the safe 29.9-second
  Second Life sound-asset ceiling instead of producing an unusable WAV.
- Added `Gif2SL_Fluid_Sequence_Player.lsl`, a one-series three-prim
  double-buffer player with Loop Play, Play Once, and Stop controls.
- Owner Only access is the default; the owner may enable public playback
  controls without exposing the access settings.
- The fluid player preloads the next texture and sound one level ahead, holds
  the final true frame after Play Once, and disables partial sequence audio to
  prevent out-of-order playback.
- The first frame remains visible while startup assets preload, eliminating the
  brief transparent interval after a playback control is clicked.
- Added persistent owner-only Sound On/Off and 0–10 volume controls. Sound
  defaults Off, volume defaults to 10/10, and enabling sound during playback
  safely takes effect on the next synchronized start.
- Added `Gif2SL_Audio_Only_Player.lsl` with automatic title discovery and Start,
  Stop, Previous Title, and Next Title controls.
- Kept the existing `Automatic_GIF_to_SL_script.lsl` unchanged for single-sheet
  modern and legacy playback.

## Compatibility

- Added WebM as a first-class video input throughout probing, preview, trim,
  alpha-mask, Fluid sequence, Batch Queue, and optional WAV extraction paths.
- Added dedicated Batch Queue controls for Fluid multi-sheet export, video WAV
  extraction, and the 8/10/15-second sheet maximum.
- New Batch jobs use the video options visible on the Batch Queue screen. Queued
  jobs can be updated explicitly with Apply to Selected or Apply to All Videos.
- Existing single-sheet conversion and Batch Queue behavior remain available.
- Existing five-field and legacy four-field animation texture names remain valid.
- Version 1.0 settings migrate automatically; Fluid Sequence defaults on for video,
  the fluid sheet maximum defaults to 10 seconds, and neither setting affects
  animated-image sources.
