Repository navigation
Releases
OpenRend v0.2.1
OpenRend Release Notes — v0.2.1
Release Tag: v0.2.1
Windows Setup Installer: dist/OpenRend-Setup-v0.2.1.exe (and generic stable link dist/OpenRend-Setup.exe)
Bundle Archive: dist/OpenRend-win-x64.zip
Target Platform: Windows x64 (.NET 10 WPF + Native C++20 Direct3D 11 / FFmpeg Engine)
SHA256 Checksums:
31109958B7F0070B08AEC9E677AA1B256814A111149A3549096DF5D31EB20716 *OpenRend-Setup-v0.2.1.exe31109958B7F0070B08AEC9E677AA1B256814A111149A3549096DF5D31EB20716 *OpenRend-Setup.exe39ECE77A4A3B410C7409E6260A769A2EC5E0D3CBEF99944A7B1CE2C6E645E323 *OpenRend-win-x64.zip
Automated Verification: 100% Native Tests Passed (1/1 in 2.96s), 1,172 Managed Tests Passed (0 failed, 0 warnings, 0 errors)
🌟 Highlights in v0.2.1
1. GitHub Releases Update Check & In-Place Upgrades
- Automatic Startup Update Detection: Checks GitHub releases on application startup when enabled in General Preferences. If a newer version is available, users are greeted with a prompt displaying version comparison and release notes.
- In-Place Seamless Upgrade: Downloads the update and executes the installer directly over the current installation, updating the application in place without requiring uninstalling or deleting old versions. All user settings, project files, and recovery data are preserved.
- Pop-Up Control & Settings Guidance: Users can dismiss the notification, update immediately, or choose "Do not check for updates on startup". When disabled, users are informed that they can scan for updates anytime in Settings.
- On-Demand "Scan for Updates": Added a dedicated Updates tab in Options → Preferences and a Help → Check for updates… menu item with live scanning, progress indicator, and one-click install.
2. Ultra-Lightweight & Optimized Installer (~15 MB Size Reduction)
- Compact Package: Reduced the installer size from 100.4 MB down to 85.3 MB (~15% size reduction).
- Pruned Redundant Assemblies: Eliminated legacy WinForms (
System.Windows.Forms*), Visual Basic (Microsoft.VisualBasic*), System.Data, debugging tools (createdump,mscordbi,DiaSymReader), and 13 unused foreign language satellite assemblies from the self-contained distribution. - Native WPF Modern Folder Dialogs: Migrated directory browsing in Project Settings to standard WPF
Microsoft.Win32.OpenFolderDialog. - Solid LZMA2 Dictionary Optimization: Enhanced Inno Setup configuration with
LZMANumFastBytes=273and organized binary streaming order (.dll->.exe-> resources) to maximize LZMA2 block deduplication across identical PE headers.
3. Final Cut Pro X XML (FCPXML 1.9) Project Interchange
- Full Round-Trip XML Exchange: Professional interchange matching Vegas Pro architecture (
FcpxmlInterchange.cs). - Precision Rational Time Representation: Exact irreducible fractions (e.g.
1001/30000s,1/24s,2s) guaranteeing deterministic frame alignment on import/export. - Multi-Lane Hierarchy: Maps primary storyline and secondary tracks with positive video lanes and negative audio lanes with dB volume conversion.
🧪 Verification & Quality Gate
================================================================================
Test Suite Results:
--------------------------------------------------------------------------------
1. Native Direct3D 11 / C++20 Integration: 1/1 Passed (100%) - 2.96s
2. OpenRend.Core.Tests: 458/458 Passed (100%)
3. OpenRend.Editor.Tests: 394/394 Passed (100%)
4. OpenRend.Media.Tests: 318/318 Passed (100%)
5. OpenRend.Playback.Tests: 2/2 Passed (100%)
--------------------------------------------------------------------------------
TOTAL: 1,172 Managed Tests Passed | 0 Failed | 0 Errors | 0 Warnings
================================================================================
📦 Release Assets
OpenRend-Setup-v0.2.1.exe— Windows x64 Inno Setup Installer (85.29 MB)OpenRend-Setup.exe— Stable generic direct installer link (85.29 MB)OpenRend-win-x64.zip— Portable standalone bundle archive (127.54 MB)SHA256SUMS.txt— Cryptographic verification manifest
Full Changelog: v0.2.0...v0.2.1
OpenRend v0.2.0 — Advanced Editing, Compositing & Audio Suite
OpenRend Release Notes — v0.2.0
Release Tag: v0.2.0
Windows Setup Installer: dist/OpenRend-Setup-v0.2.0.exe (and dist/OpenRend-Setup.exe)
Bundle Archive: dist/OpenRend-win-x64.zip
Standalone Executable: dist/OpenRend/OpenRend.exe
Target Platform: Windows x64 (.NET 10 WPF + Native C++20 Direct3D 11 / FFmpeg Engine)
SHA256 Checksums:
2BAEC436D389525DB8297312023DEB2FC6595BBCDDE155BFE47BEF0D9F1972D2 *OpenRend-Setup-v0.2.0.exe4D4BCEB3C0BAD02C0390F234F1AE43E5DA58AA2F4F9BA207FD03050557CD1CDA *OpenRend-win-x64.zip
Automated Verification: 100% Native Tests Passed (1/1 in 2.23s), 1,108 Managed Tests Passed (0 failed, 0 warnings, 0 errors)
🌟 Executive Summary
OpenRend v0.2.0 brings major enhancements to timeline editing, video compositing, and audio processing. This update introduces non-destructive Video Adjustment Tracks and Events, a comprehensive Clipboard Paste Suite (Paste Repeat, Paste Insert, and Selective Attribute Transfer), Track Motion 3D Source Alpha with perspective keyframing, Collapsible Contiguous Track Groups with hierarchical mute/solo cascading, 5 Professional Audio Pan Laws, Timeline Event Snap Offsets, Event Healing, Timeline Gap Closure, and Missing Stream Reconstruction.
All timeline edit decisions remain integer project frames with rational rates, preserving source media untouched while ensuring deterministic evaluation across the Direct3D 11 preview and master export pipelines.
📋 Comprehensive Change Log
1. Timeline Editing Suite: Event Heal, Close Gaps, and Missing Stream Reconstruction
-
Event Heal (
Edit > Event Heal/ Event Context Menu):- Consolidates contiguous split slices originating from the same media asset or adjustment layer back into a single unified event.
- Automatically reconciles internal cut boundaries: removes split-generated fades, preserves original start
FadeInand endFadeOut, continuously stitches envelope automation curves (shifting right-hand points byleftOrigDuration), merges Pan/Crop and Bézier mask keyframes, and shifts transcript words. - Iteratively heals multi-slice chains (
$A + B + C \to A$ ) in chronological order. - Heals companion grouped audio/video slices across tracks synchronously.
-
Close Gaps (
Edit > Close Gaps/ Event Context Menu):- Eliminates empty timeline gaps between adjacent events with full atomic undo/redo.
- Multi-Event Selection Mode: Iterates through selected events on each track in ascending timeline order, shifting downstream events leftward to touch preceding event ends.
- Single-Track Mode: When no events are selected, closes all gaps sequentially on the active/targeted track.
- Propagates shifts to linked grouped companion clips on complementary tracks to preserve audio/video sync.
-
Add Missing Stream (
Insert > Add Missing Stream for Selected Event/ Event Context Menu):- Inspects source media asset streams for selected timeline events.
- If a video event is missing audio, finds or inserts an audio track below and instantiates a paired audio clip matching exact source in/out and timeline ranges.
- If an audio event is missing video, finds or inserts a video track above and instantiates a paired video clip matching exact source in/out and timeline ranges.
- Automatically links both clips into a shared group (
GroupId).
2. Advanced Clipboard Paste Suite & Selective Attribute Transfer
-
Paste Repeat (
Edit > Paste Repeat.../Ctrl+B):- Modal dialog with repeat count spinner (1–999) and spacing mode selection:
-
End to end: Pastes$N$ copies back-to-back without gap. -
Even spacing: Pastes$N$ copies spaced at custom intervals input via project timecode.
-
- Modal dialog with repeat count spinner (1–999) and spacing mode selection:
-
Paste Insert (
Edit > Paste Insert/Ctrl+Shift+V):- Pastes clipboard events at the edit cursor while automatically rippling all downstream material on the target track(s) later in time by the pasted duration.
-
Paste Event Attributes (
Ctrl+Shift+B) & Selective Paste (Edit > Selectively Paste Event Attributes...):- Granular attribute transfer dialog with modular selection:
- Video Attributes: Video Event FX, Event Pan/Crop (including Mask), Switches (Mute, Lock, Loop, Rate, Aspect, Interlace), Opacity & Fade Curves.
- Audio Attributes: Audio Event FX, Volume & Pan, Pitch, Invert Phase, Normalize & Channels, Switches, Fade Curves.
- Options: "Replace existing FX on destination events (uncheck to append)".
- Added clip-level audio FX chain processing (
AudioEffects) toTimelineClipand integrated withTimelineRenderService.RenderAudiofor identical DSP evaluation.
- Granular attribute transfer dialog with modular selection:
-
Track Keyboard Shortcuts:
-
Insert > Video Track:Ctrl+Shift+Q. -
Insert > Audio Track:Ctrl+Q. -
Edit > Paste Repeat...:Ctrl+B. -
Edit > Paste Insert:Ctrl+Shift+V. -
Edit > Paste Event Attributes:Ctrl+Shift+B.
-
3. Video Adjustment Tracks and Adjustment Events Suite
- Core Data Models & Validation:
- Extended
TimelineClipwithIsAdjustmentEvent,FrameWidth,FrameHeight,PixelAspectRatio, andUseAlternateAdjustmentEventBehavior. - Added schema validation ensuring adjustment events only exist on video tracks, have non-negative dimensions, and maintain finite positive pixel aspect ratios.
- Extended
- Compositing & DSP Pipeline (
TimelineRenderService.cs):- When rendering an adjustment layer, dynamically captures the accumulated lower-track composite frame buffer as source.
- Resamples bilinearly to adjustment event dimensions, applies clip video effects chain (Invert, Color Grading, Blur, LUTs, etc.), evaluates Bézier masks and Pan/Crop transforms, and alpha-blends down onto the output buffer.
- UI & Menus:
- In
TimelineView.cs: Rendered adjustment events in dedicated purple styling (#3E244B, header#5D2F6E, border#AB47BC) with[ADJ]tag. - Added
Insert > Adjustment trackandInsert > Adjustment event. - Added
Edit > Resize selected Adjustment Events to ProjectandEdit > Resize all Adjustment Events to Project. - Added event context menu item
Resize Adjustment Event to Project.
- In
4. Track Motion 3D Source Alpha & Perspective Keyframing
-
3D Camera & Homography Engine:
- Extended
TrackCompositeModewithSourceAlpha3D = 3. - Extended
TrackMotionKeyframewith 3D parameters:Depth,RotationOffsetX,RotationOffsetY,RotationOffsetZ, and spherical/linear Lerp interpolation. - Implemented
CompositeTransformedPerspectiveperforming camera perspective projection (53.13° FOV camera focal length$f = \max(W, H) \cdot 1.25$ , corner scaling $scale = f / (f + Z_{3D})$) with 3x3 projective homography matrix inversion for exact subpixel bilinear sampling. - Integrated across preview playback and final video export.
- Extended
5. Track Groups Architecture & Collapsible Layout
- Data Models & Contiguity Invariant:
- Created
TrackGroup.csinOpenRend.Core:Id,Name,ColorHex,IsCollapsed,IsMuted,IsSolo,TrackIds. - Implemented contiguity validation enforcing organized track clustering.
- Created
- UI Bracket Visualization (
TimelineView.cs):- Collapsed groups fold member tracks to height 0 and render a 26px compact group header bar with expand chevron (
▶), group name, track count, Mute (M), and Solo (S) toggle buttons. - Expanded groups render a colored vertical grouping bracket down the left edge of track headers with top (
┌) and bottom (└) ticks, alongside collapse chevron (▼), group Mute, and Solo buttons. - Added track header context menu actions:
Group Selected Tracks(Ctrl+Shift+G),Ungroup Tracks,Remove from Track Group,Toggle Group Collapse,Group Mute,Group Solo, andRename Group....
- Collapsed groups fold member tracks to height 0 and render a 26px compact group header bar with expand chevron (
- Cascaded DSP Evaluation:
- Group mute and solo states cascade hierarchically across audio and video member tracks for identical preview and master export evaluation.
Edit Detailswindow integration: AddedTrack Groupsview mode with TSV clipboard export.
6. Audio Pan Laws & Timeline Event Snap Offset Suite
-
5 Professional Audio Pan Laws:
-
Linear (-6 dB): standard linear attenuation$L = 1 - p$ ,$R = p$ . -
ConstantPower0dB: equal loudness curve maintaining unity gain at center$L = \cos(\theta)$ ,$R = \sin(\theta)$ with 0 dB center. -
ConstantPower3dB: 3 dB attenuation at center. -
ConstantPowerMinus3dB: -3 dB attenuation at center ($L = \cos(\frac{\pi(p + 1)}{4})$ , $R = \sin(\frac{\pi(p + 1)}{4})$). -
SquareRootMinus3dB: square-root power curve. - Integrated in
AudioDspService.csand track header context menus.
-
-
Timeline Event Snap Offset (
TimelineClip.SnapOffsetFrames):- Interactive triangular snap pin glyph at the bottom edge of timeline events.
- Draggable snap handle snapping event position to cursor, cut boundaries, and markers.
- Context menu items:
Set Snap Offset to CursorandReset Snap Offset.
7. Timeline Regions, Audio Channels Remapping, & Pitch Shifting
- Timeline Regions:
- Dedicated
TimelineRegionmodel with start frame, duration, numbered green flags (01,02), and name labels. - Interactive resizing handles on ruler flags and context menu editing.
- Shortcut
R/Insert > Region.
- Dedicated
- Audio Channel Remapping:
- Event channel routing modes:
Both (Stereo),Left Only,Right Only, andSwap (L<->R). - Evaluated in realtime during audio preview and export channel downmixing.
- Event channel routing modes:
- Event Pitch Shifting:
- Precise semitone modulation (-12 to +12 semitones, octaves) applied per event.
- Keyboard shortcuts:
+(+1 semitone),-(-1 semitone),0(reset pitch).
8. UI & Responsive Interaction Polishing
- Track header slider layout adapts responsively to prevent overlapping controls.
- Timeline file drag-and-drop hover indicators with ghost clip placement preview.
- Viewport and preview player sizing constraints optimized for flexible workspace docking....
OpenRend v0.1.0
Full Changelog: deps...v0.1.0
Dependency Cache
Pinned FFmpeg SDK