• v0.4.0 5231852443

    mirrors released this 2026-10-08 10:01:39 -04:00 | 192 commits to main since this release

    What's Changed

    Windows on ARM64: release builds, PE header check, install test on ARM64 hardware by @echelon in #69
    codecs: resampled MP4 audio reads apply the edit list once by @punkhop in #42
    engine: file.exportInterchange refuses an unknown format by @punkhop in #46
    interchange: an export names every title it cannot carry by @punkhop in #51
    engine: a project saved after an interchange import opens again by @punkhop in #43
    engine: sequence.inspect reports clip ends, gain and marker comments by @punkhop in #48
    engine: sequence.inspect reports a reversed clip by @punkhop in #59
    engine: clip.replaceFromBin can keep the clip's source In by @punkhop in #49
    engine: Replace With Clip reports clips that run past the new media by @punkhop in #50
    engine: a command whose targets are named in the parameters does not need a selection by @punkhop in #52
    filmcraft: --help prints usage and an unknown option is an error by @punkhop in #47
    engine: naming a track that does not exist is an error by @punkhop in #44
    engine: timeline.place on an audio track places the sound there by @punkhop in #60
    engine: timeline.move takes linked partners along by @punkhop in #45
    edit: a ripple trim takes a later split edit along by @punkhop in #56
    edit: ripple delete closes one gap for a clip with a split edit by @punkhop in #57
    edit: a speed change with ripple moves later clips once by @punkhop in #58
    i18n: Japanese interface language (uses an installed system font) by @midasdf in #38
    MEM1–MEM4 + HW1: clip memory on a timeline from 12 GB to 1.9 GB; hardware decode actually on by @justjohn12345 in #41
    Docs: hardware decode correction; log the 2026-10-06 community batch by @echelon in #72
    Fonts: use craft-fonts as an optional build input (Japanese UI and title fallback) by @echelon in #81
    Tests: fix seed_sweep overflow and the speed-dependent export progress test by @justjohn12345 in #77
    interchange: an FCP7 master clip lands in its bin when a sequence used it first by @punkhop in #64
    project: Clear deletes a bin it is given, with everything in it by @punkhop in #68
    timeline.move: report the clips an overwrite move covers by @punkhop in #96
    codecs: look video frames up by the nearest timestamp unit (WebM at 30 fps drops every third frame) by @EthanSuquet in #83
    h264enc: strict ffmpeg oracle that sees damaged slices (#74) by @EthanSuquet in #101
    codecs: an MP4/MOV clip lasts as long as its edit list plays it by @EthanSuquet in #102
    codecs: MP4/MOV pixel format and alpha come from hvcC, avcC and the ProRes frame header (#103) by @HEOJUNFO in #118
    gpu: upload and composite the alpha plane of Y'CbCr frames by @dcarnelutti in #109
    graphics: all eight layer handles scale towards the pointer by @justjohn12345 in #79
    Timeline: the wheel scrolls as in Premiere, and the view cannot be lost by @justjohn12345 in #120
    Packaging: describe FilmCraft, not PhotoCraft, in package metadata (#94, #100) by @carlitosteso3 in #126
    i18n: Spanish interface language (Español) by @carlitosteso3 in #127
    Icons: draw straight lines on whole device pixels by @punkhop in #128
    docs: add star history chart to README by @coygeek in #122
    Window ▸ Workspaces: save your own workspaces, like Premiere by @punkhop in #121
    Ripple trim: a shorter head on a J-cut take is no longer refused by @punkhop in #104
    Ripple trim: a shorter head after an L cut keeps the earlier sound in place by @punkhop in #124
    Control: close the connection on input that isn't a request (#119) by @Luskish in #123
    Sequence: Add Tracks… opens Premiere's dialog (amount, placement, track type) by @justjohn12345 in #117
    HE-AAC plays at its output rate; AAC export caps the bitrate (#108, parts 1–2) by @carlitosteso3 in #129
    Audio: mix playback 200 ms ahead so a busy Mac doesn't drop sound by @punkhop in #131
    Audio: play a sequence on a device at another rate without phase jumps by @punkhop in #132
    Nested sequences: interchange (AAF compositions, OMF rendered sound, EDL reel AX) by @justjohn12345 in #116
    NEST4–NEST8: nest toggle, sequences as sources, Reveal in Project, Multi-Camera submenu by @justjohn12345 in #112
    Timeline: sequence tabs, Premiere-style clip menu, Nest name dialog by @justjohn12345 in #78
    NEST1–NEST3: nested sequences safety and Premiere-matching Nest (fixes two crashes) by @justjohn12345 in #82
    Nested sequences: rendering fidelity (sizes, speed, effects, captions, waveforms) by @justjohn12345 in #113
    Nested sequences: Timeline tabs (view per sequence, tab menu, reorder, restore on open) by @justjohn12345 in #115
    Codecs: add clean-room APV (RFC 9924) decoder, encoder, container support, and export presets by @mweinbach in #105
    Theme: interface type closer to Premiere's by @punkhop in #130
    Hardening: hostile MP4 edit lists and cyclic subclip chains (#66) by @echelon in #142
    Tests: image-sequence oracle fixtures are written atomically (#125) by @echelon in #143
    MCP: render_frame and render_preview leave the playhead where it was (#114) by @echelon in #144
    Transcripts: builds without speech-to-text say so (#97, #98, #89) by @echelon in #146
    Packaging: the rpm requires glibc >= 2.35, as the deb does (#93) by @echelon in #147
    Bridge: a blocking export runs as an app job, so it neither times out nor freezes the app (#91, #92) by @echelon in #154
    Transcripts: disabled, not failing, in builds without speech-to-text (#89, #97, #98) by @carlitosteso3 in #151
    Docs: releasing guide, CLI export options, README and CLAUDE.md drift (#85, #86, #87, #88, #99) by @echelon in #156
    Packaging: the Flatpak can read a project's media wherever it lives (#107) by @echelon in #158
    Web: window.filmcraft rejects with Error objects everywhere (#90) by @echelon in #159
    Rename PrintCraft to PdfCraft by @echelon in #177
    Graphics: point text and paragraph text, as Premiere has them by @justjohn12345 in #166
    Graphics: only selected layers have a box, and a hidden layer has none by @justjohn12345 in #182
    Graphics: New Layer from File anchors the picture at its own centre by @ajsongpilot in #190
    Color Matte: pick the color on creation and change it later (#29) by @carlitosteso3 in #145
    h264enc: 1-pass bitrate modes no longer starve the opening second by @EthanSuquet in #148
    Playback: a stalled audio device no longer freezes the playhead (#136) by @carlitosteso3 in #155
    Media Browser: probing a file doesn't read it whole (#157) by @carlitosteso3 in #165
    Shortcut recorder accepts modifier chords; Add Edit cuts only selected clips (#164, items 1 and 5) by @carlitosteso3 in #173
    i18n: add Brazilian Portuguese (pt-br) UI translation by @RicSchonfelder in #176
    platform: opt-in hardware H.264 encoding with VideoToolbox by @dcarnelutti in #183
    render: composite only what overlays cover, and reuse the float images by @dcarnelutti in #184
    export: show the estimated time left of a render next to its percentage by @dcarnelutti in #185
    platform: H.265 (HEVC) export with VideoToolbox by @dcarnelutti in #186
    Engine: project.selectAll and project.deselectAll for the Project panel (#168) by @Luna161 in #189
    Windows: Media Foundation/D3D11 hardware H.264 + HEVC decode by @SaymonMaster14 in #141
    M10: choose vertical titles from the Type tool flyout by @midasdf in #195
    Engine: file.import refreshes the offline-missing list (#110) by @Luna161 in #175
    Windows: VP9 + AV1 hardware decode (Media Foundation / DXVA) by @SaymonMaster14 in #162
    Windows: NVENC H.264 hardware encoding for Export (opt-in) by @SaymonMaster14 in #180
    Q/W ripple trim only the selected clips' tracks (#164) by @carlitosteso3 in #207
    Ripple delete names the sync-locked track in the way; playhead snaps to cuts (#164, items 2, 3 and snap) by @carlitosteso3 in #203
    Stabilize project lifecycle, timeline, audio and export workflows by @cirocueto2013-wq in #192
    #199: make Ctrl+C / Ctrl+X / Ctrl+V work on Windows and Linux by @DWAA1660 in #204
    fix: support integer CPAL devices and recover voice-over/audio failures by @cirocueto2013-wq in #209
    Web: Link Media Locate… links the chosen file to the selected missing clip (#111) by @Luna161 in #174
    #188: regression test — a copied Graphic clip pastes at the playhead by @echelon in #212
    fix: validate hostile project, export and MXF inputs by @cirocueto2013-wq in #210
    About: contributor and model credits compiled in (grab bag + table, self-submitted names) by @echelon in #215
    Speed/Duration opens its dialog; dragging an effect parameter is one undo step (#201) by @carlitosteso3 in #213
    Release: FreeBSD, Flatpak x86_64/aarch64, AppImage zsync; README Downloads by @echelon in #267
    README Downloads: where to get it, then builds (Windows first) by @echelon in #271
    

    New Contributors

    @punkhop made their first contribution in #42
    @midasdf made their first contribution in #38
    @justjohn12345 made their first contribution in #41
    @EthanSuquet made their first contribution in #83
    @HEOJUNFO made their first contribution in #118
    @dcarnelutti made their first contribution in #109
    @carlitosteso3 made their first contribution in #126
    @coygeek made their first contribution in #122
    @Luskish made their first contribution in #123
    @mweinbach made their first contribution in #105
    @ajsongpilot made their first contribution in #190
    @RicSchonfelder made their first contribution in #176
    @Luna161 made their first contribution in #189
    @SaymonMaster14 made their first contribution in #141
    @cirocueto2013-wq made their first contribution in #192
    @DWAA1660 made their first contribution in #204
    

    Full Changelog: v0.2.1...v0.4.0

    Downloads