メインコンテンツまでスキップ

画面仕様

jamjam の画面構成と遷移を定義する。

関連: ../user-stories.md, ../multi-window-architecture.md


ウィンドウ構成

jamjam はマルチウィンドウ構成を採用する。

ウィンドウ表示タイミング用途優先度
接続画面未接続時セッション参加/作成最高
ミキシングコンソール接続後音量・パン調整、接続情報最高
チャット接続後テキストコミュニケーション
設定必要時オーディオデバイス、プリセット
オンボーディング初回のみ初回セットアップ初回のみ

ウィンドウ遷移図

全体フロー

ウィンドウ関係図

状態別ウィンドウ表示

アプリ状態接続画面ミキサーチャット設定
未接続表示--オプション
接続中表示(ローディング)--オプション
接続済み-表示表示オプション

ウィンドウ詳細

接続画面ウィンドウ (ConnectionWindow)

役割: セッション参加/作成の入口

サイズ: 400 x 300 px(固定)

レイアウト

┌────────────────────────────────┐
│ jamjam │
├────────────────────────────────┤
│ │
│ ┌────────────────────┐ │
│ │ [ ルームを作成 ] │ │ ← プライマリCTA
│ └────────────────────┘ │
│ │
│ ─────── または ─────── │
│ │
│ 招待コード: [______] │ ← コード入力
│ [ 参加 ] │
│ │
│ [⚙] │ ← 設定ボタン
└────────────────────────────────┘

状態

状態表示内容
初期ルーム作成/参加フォーム
接続中ローディングスピナー
エラーエラーメッセージ + 再試行ボタン

ミキサーウィンドウ (MixerWindow)

役割: 参加者ごとの音量・パン調整、接続情報表示

サイズ: 800 x 600 px(リサイズ可)

レイアウト

┌──────────────────────────────────────────────────────────────────┐
│ jamjam - Mixer [⚙] [×] │
├────────┬────────┬────────┬────────┐ ┌───────────────────┤
│ 48kHz │ 48kHz │ 44.1kHz│ │ │ -12dB -10dB │
│ /2ch │ /1ch │ /2ch │ │ │ │
├────────┼────────┼────────┼────────┤ │ ┌───┐ ┌───┐ │
│├──┼──┤ │├──┼──┤ │├──┼──┤ │ │ │ │███│ │███│ │
├────────┼────────┼────────┼────────┤ │ │███│ │███│ │
│ ██ ██ │ ██ ██ │ ██ ░░ │ │ │ │░░░│ │░░░│ │
│ ██ ██ │ ██ ░░ │ ░░ ░░ │ │ │ └───┘ └───┘ │
│ ░░ ░░ │ ░░ ░░ │ ░░ ░░ │ │ │ L R │
│ [─][─] │ [─][─] │ [─][─] │ │ │ │
├────────┼────────┼────────┼────────┤ │ マスター │
│ 自分 │ 健太 │ 美咲 │ │ │ │
├────────┼────────┼────────┼────────┤ │ ┌─────────────┐ │
│ 🎤 │ 🔊 │ 🔇 │ │ │ │ 退室 │ │
└────────┴────────┴────────┴────────┘ └───┴─────────────┴──┘

接続情報セクション(ツールチップ / パネル)

各チャンネルストリップに接続品質情報を表示(ホバーまたは展開):

  • RTT: 15ms
  • Jitter: 0.8ms
  • Packet Loss: 0.1%

コンポーネント

  • ChannelStrip × 参加者数
  • MasterSection(マスター出力 + 退室ボタン)
  • 設定ボタン

チャットウィンドウ (ChatWindow)

役割: テキストコミュニケーション

サイズ: 400 x 500 px(リサイズ可)

レイアウト

┌────────────────────────────────────┐
│ jamjam - Chat [⚙] × │
├────────────────────────────────────┤
│ ┌────────────────────────────────┐ │
│ │ [システム] セッション開始 │ │
│ │ [システム] 健太が参加しました │ │
│ │ │ │
│ │ 健太: 今日もよろしく! │ │
│ │ 👍2 🎵1 │ │
│ │ │ │
│ │ 自分: よろしく!何から始める? │ │
│ │ │ │
│ │ 健太: BPM120のファンクで │ │
│ │ いこう! │ │
│ │ 👍3 ❤️1 │ │
│ └────────────────────────────────┘ │
├────────────────────────────────────┤
│ [メッセージを入力... ] [送信] │
└────────────────────────────────────┘

コンポーネント

  • ChatMessageList(メッセージ一覧 + 自動スクロール)
  • ChatInput(複数行入力)
  • ReactionBar(絵文字リアクション)

設定ウィンドウ (SettingsWindow)

役割: オーディオ設定、プリセット選択、表示設定

サイズ: 600 x 500 px(リサイズ可)

レイアウト

┌──────────────────────────────────────────────────┐
│ 設定 [×] │
├─────────────┬────────────────────────────────────┤
│ │ │
│ ▸ 全般 │ テーマ [ ダーク ▼] │
│ プロフィ │ │
│ デバイス │ 言語 [ 日本語 ▼] │
│ 診断 │ │
│ │ │
│ ├────────────────────────────────────┤
│ │ ▸ プロフィール │
│ │ │
│ │ 表示名 [____________] │
│ │ │
│ ├────────────────────────────────────┤
│ │ ▸ デバイス │
│ │ │
│ │ 入力 [Built-in Mic ▼] │
│ │ 出力 [Built-in Spk ▼] │
│ │ サンプルレート [48000 Hz ▼] │
│ │ │
└─────────────┴────────────────────────────────────┘

タブ構成

タブ内容
全般テーマ、言語
プロフィール表示名
デバイス入出力機器、サンプルレート、バッファ
診断環境診断実行ボタン

プリセット選択(デバイスタブ内)

プリセットバッファサイズ説明
Zero Latency32 samples最小遅延、強力なCPU必要
Ultra Low Latency64 samples非常に低い遅延
Balanced128 samplesバランス型(推奨)
High Quality256 samples最も安定

オンボーディング画面

役割: 初回セットアップガイド

共通レイアウト

┌──────────────────────────────────────────┐
│ │
│ ● ● ○ ○ ○ │ ← 進捗インジケーター
│ │
│ ┌────────────────────────────────┐ │
│ │ │ │
│ │ [ ステップ内容 ] │ │
│ │ │ │
│ └────────────────────────────────┘ │
│ │
│ [← 戻る] [次へ →] │
│ │
│ または [後で設定する] │
│ │
└──────────────────────────────────────────┘

ステップ詳細

ステップ内容
1. ようこそアプリ紹介、前提条件(ヘッドフォン推奨)
2. マイク選択デバイス一覧、レベルメーター
3. スピーカー選択デバイス一覧、テスト音再生
4. テストマイクテスト(録音→再生)
5. モード選択プリセット4種から選択

ウィンドウ管理

ウィンドウ位置の記憶

各ウィンドウの位置・サイズは設定ファイルに保存し、次回起動時に復元する。

# config.toml
[windows.mixer]
x = 100
y = 100
width = 800
height = 600

[windows.chat]
x = 920
y = 100
width = 400
height = 500

閉じる動作

ウィンドウ閉じるボタン押下時の動作
接続画面アプリ終了
ミキサー退室確認ダイアログ → アプリ終了
チャットウィンドウを隠す(バックグラウンド動作)
設定ウィンドウを閉じる

アクセシビリティ

キーボードショートカット

グローバル(全ウィンドウ共通)

キー動作
Cmd/Ctrl + 1ミキサーウィンドウにフォーカス
Cmd/Ctrl + 2チャットウィンドウにフォーカス
Cmd/Ctrl + ,設定ウィンドウを開く
Cmd/Ctrl + Mミュート切り替え

ミキサーウィンドウ

キー動作
Tabチャンネル間のフォーカス移動
↑/↓フェーダー操作
←/→パンスライダー操作
M選択チャンネルのミュート切り替え

チャットウィンドウ

キー動作
Cmd/Ctrl + Enterメッセージ送信
Escape入力キャンセル
前のメッセージを編集

設定ウィンドウ

キー動作
Tabフィールド間移動
Escapeウィンドウを閉じる
↑/↓タブ選択

フォーカス管理

  • 新しいウィンドウが開いたらフォーカスを移動
  • チャットウィンドウを再表示した場合、入力フィールドにフォーカス
  • 設定ウィンドウを閉じたら、元のウィンドウにフォーカスを戻す

関連ドキュメント