MOJIOKO v1.1.1
[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
- Click a row to set the project default; download / uninstall icons
- 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'fontIdis 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..mp4rename 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 frompackage.jsonat 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 fromgoogle/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 出力が唯一の出力経路に
- 時刻表示) が VideoPreviewPanel と差替、各行の サイズ / スタイル /
- 音声再生中、再生位置に応じて字幕テーブルの行フォーカスが追従
(動画モードと同じ挙動)
カラーパレット
- 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 が
ユーザに見える形に)