Skip to content

MOJIOKO v1.1.1

Choose a tag to compare

@brightryo brightryo released this 02 Jun 08:49

[1.1.1] - 2026-06-02

Second minor-line release: per-row font selection, audio file input, expanded
colour palette, and settings dialog organisation.

Added

Font customization

  • 9-font registry: Noto Sans JP SemiBold (bundled) plus 8 downloadable
    Google Fonts (Dela Gothic One, Reggae One, Yusei Magic, Mochiy Pop One,
    Hachi Maru Pop, Potta One, DotGothic16, Rampart One)
  • Font picker with one-list "select + manage" UI shared between the
    Subtitle Style dialog and the Settings ▸ Fonts tab
    • Click a row to set the project default; download / uninstall icons
      on each row
    • License (SIL OFL v1.1) viewable per-font with the upstream-verbatim
      OFL.txt
  • Per-row font override in the STEP 2 subtitle table
    • Compact font selector above each row's text editor
    • Bulk-edit-bar gets a matching font picker for multi-row apply
    • Per-row font flows through to ASS \fn<family> and a staged fontsdir
      at burn-in time, so a single output video can mix multiple fonts
  • Rare-kanji-coverage warning on Hachi Maru Pop / Potta One (those two
    fonts omit a small set of post-jōyō kanji such as 塡 剝 頰)
  • Pre-burn-in font validation: missing fonts surface a toast before the
    save dialog opens instead of letting the back-end fail
  • Uninstalling a font that's referenced by any row triggers a
    confirmation dialog; on confirm, affected rows' fontId is auto-cleared
    and a notice toast surfaces the change

Audio file input

  • Six audio formats supported in addition to the existing video formats:
    MP3, WAV, M4A, AAC (raw ADTS), FLAC, OGG (Vorbis)
  • Content-based mode detection via ffprobe — extension spoofing
    (e.g. .mp4 rename of an audio file) is ignored; the actual stream
    layout decides
  • Audio mode UI in STEP 1: audio-wave icon in place of the video
    thumbnail, resolution row hidden, format row collapsed
  • Audio mode UI in STEP 2: AudioPreviewPanel (centred play/pause + seek
    bar + time readout) replaces VideoPreviewPanel; size / style / font
    cells in each row are hidden; bulk-edit-bar hidden; "Continue to render"
    hidden; text/SRT export becomes the single output path
  • Audio playback drives row focus the same way video does (the table
    highlight follows the playhead)

Colour palette

  • 30 colours unified across every picker (per-row, bulk-edit, settings,
    subtitle style dialog) in three labelled groups:
    • Basic (10 singles)
    • Suggested pairs (5 text × outline combinations — single click sets
      both halves; rendered as a subtitle-style "Aa" preview tile)
    • Colour-blind friendly (10 CUD-recommended singles)
  • Close (×) button on the popover; popover height adapts to the host
    dialog (uses Radix's --radix-popover-content-available-height) so
    it never clips when opened inside the Settings dialog

Settings dialog organisation

  • Re-tabbed into 4 panes: General / Fonts / Default style / Whisper
  • Underline-style tab strip (the previous chip-style ran on the same
    background colour as the dialog, making non-selected tabs read as
    plain text)
  • Font management lives in the Fonts tab; default seed-style and Whisper
    engine params each get their own tab and share a single store slice
    with the STEP 1 surfaces

Fixed

  • Whisper model download integrity check (C-3) — downloaded model
    files are now SHA-verified before being marked installed
  • APP_VERSION dynamic — window title, About dialog, and startup log
    now read the version from package.json at build time (no parallel
    edit needed when bumping)
  • OFL compliance — every font (including the bundled Noto) ships its
    own per-font OFL.txt taken verbatim from google/fonts/ofl/<name>/ OFL.txt. Earlier per-font OFL editing / synthesis paths were
    removed in favour of upstream-verbatim distribution
  • Settings dialog — opening the dialog no longer surfaces a green
    focus ring on the active tabpanel (only keyboard-navigation focus
    shows it now); tab height stable across all four tabs so switching
    doesn't jitter
  • Wording neutralised across audio-aware paths (audio inputs no longer
    see "Video loaded" / "Failed to load video" / similar — replaced with
    "File loaded" / "Failed to load file" etc.)
  • Numerous smaller UI polish: per-row font selector width matches the
    text editor below, font picker rows simplified to a single indicator
    dot, "Download" auto-select removed (download no longer changes the
    active selection), font size limits surfaced via tooltip + inline
    hint (the previous silent 200-px clamp is now visible)

[1.1.1] - 2026-06-02

第 2 マイナーラインのリリース。行ごとフォント指定、音声ファイル入力対応、
カラーパレット拡張、設定ダイアログの再構成。

新機能

フォントカスタマイズ

  • 9 フォントのレジストリ: Noto Sans JP SemiBold (同梱) + 8 種の
    Google Fonts (Dela Gothic One / Reggae One / Yusei Magic / Mochiy Pop One /
    Hachi Maru Pop / Potta One / DotGothic16 / Rampart One)
  • 「選択 + 管理」を 1 リストに統合したフォントピッカーを字幕スタイル
    ダイアログと設定 ▸ フォントタブで共有
    • 行クリックでプロジェクト既定フォントを設定、各行にダウンロード /
      削除アイコン
    • 各フォントのライセンス (SIL OFL v1.1) を upstream verbatim の OFL.txt で表示
  • STEP 2 字幕テーブルで行ごとにフォントを上書き可能
    • 各行のテキスト編集欄の上にコンパクトなフォントセレクタ
    • 一括編集バーにも同等のフォントピッカーを追加し、複数行に一括適用
    • 行ごとのフォントは ASS \fn<family> と staged fontsdir 経由で焼き込みに
      流れるので、1 本の出力動画に複数フォントが混在可能
  • Hachi Maru Pop / Potta One に「稀な漢字非対応」警告 (塡 / 剝 / 頰 等
    常用漢字の一部を欠くため)
  • 焼き込み前のフォント検証: 未ダウンロードのフォントを参照する行があれば
    保存ダイアログを開く前にトーストで通知 (バックエンドの失敗より前で弾く)
  • 行で使用中のフォントを削除する際は確認ダイアログ表示。削除確定時には
    対象行の fontId を自動クリアして通知トースト

音声ファイル入力

  • 動画形式に加えて、6 種類の音声形式に対応: MP3 / WAV / M4A / AAC (raw ADTS)
    / FLAC / OGG (Vorbis)
  • ffprobe による中身ベースのモード判定 — 拡張子偽装 (例: 動画を .mp4
    に維持したまま .mp3 にリネーム) は無視され、実ストリーム構成で判定
  • STEP 1 の音声モード UI: サムネイル枠の代わりに音声波形アイコン、
    解像度行非表示、フォーマット行はコンテナ + 音声コーデックの簡潔表示
  • STEP 2 の音声モード UI: AudioPreviewPanel (再生 / 一時停止 + シークバー
    • 時刻表示) が VideoPreviewPanel と差替、各行の サイズ / スタイル /
      フォント セル非表示、一括編集バー非表示、「書き出しへ」非表示、
      テキスト / SRT 出力が唯一の出力経路に
  • 音声再生中、再生位置に応じて字幕テーブルの行フォーカスが追従
    (動画モードと同じ挙動)

カラーパレット

  • 30 色を 3 グループに分けて全ピッカー (行ごと / 一括 / 設定 /
    字幕スタイル) で統一表示:
    • 基本色 10 色
    • おすすめの組み合わせ 5 ペア (文字色 × アウトライン色を 1 クリックで同時セット。
      タイル上には字幕風の「Aa」プレビューを描画)
    • 色弱向け 10 色 (Color Universal Design 推奨配色)
  • popover の右上に × 閉じるボタン、Radix の --radix-popover-content- available-height に追従するため設定ダイアログ内で開いても見切れない

設定ダイアログの再構成

  • 4 タブ構成に再構成: 一般 / フォント / 既定スタイル / Whisper設定
  • アンダーライン式のタブ表示 (旧チップ式はダイアログと同色のため
    非選択タブが平文に見えていた)
  • フォント管理はフォントタブ、既定スタイルと Whisper エンジン設定は
    それぞれ専用タブを持ち、STEP 1 の対応サーフェスと同じ store スライスを共有

修正

  • Whisper モデル DL 整合性チェック (C-3) — ダウンロード完了後にハッシュ
    検証を行ってからインストール済みとマーク
  • APP_VERSION の動的化 — ウィンドウタイトル / About ダイアログ / 起動
    ログが package.json の version をビルド時に取得 (バージョン bump 時の
    並行編集が不要に)
  • OFL 順守 — 全フォント (同梱の Noto を含む) が google/fonts/ofl/ <name>/OFL.txt から verbatim で取得した個別 OFL.txt を同梱。以前の
    per-font OFL の編集 / 合成パスは撤去し、upstream の原本のまま配布する
    方針に統一
  • 設定ダイアログ — 開いた瞬間に active な tabpanel に緑のフォーカス
    リングが出ていた問題を解消 (キーボード操作時のみリング表示)。4 タブ
    すべて同じ高さで安定するので切り替え時にジッタが出ない
  • 音声入力時の言い回しを中立化 (「動画を読み込みました」「動画の読み込みに
    失敗しました」等 → 「ファイルを読み込みました」「ファイルの読み込みに
    失敗しました」)
  • その他多数の UI 微調整: 行ごとフォントセレクタとテキスト欄の幅揃え、
    フォント行を単一インジケータドットに簡素化、「ダウンロード」完了時の
    自動選択を撤去 (DL とアクティブフォント変更を分離)、フォントサイズの
    上限を tooltip + インライン補足で可視化 (旧来の silent 200px clamp が
    ユーザに見える形に)