88
99## アーキテクチャ
1010
11- ```
12- ┌─────────────────────────────────────────────────────────┐
13- │ client/ │
14- │ React + TypeScript + Vite │
15- │ - エフェクターボードの UI │
16- │ - ドラッグ&ドロップでエフェクトの並び替え │
17- │ - 波形表示 (wavesurfer.js) │
18- └─────────────────────┬───────────────────────────────────┘
19- │ HTTP API
20- ┌─────────────────────▼───────────────────────────────────┐
21- │ backend/ │
22- │ FastAPI + Python │
23- │ - REST API エンドポイント │
24- │ - 音声処理 (Spotify Pedalboard ライブラリ) │
25- │ - Lambda 関数としてもデプロイ可能 │
26- └─────────────────────────────────────────────────────────┘
27- ```
28-
29- ## ディレクトリ構成
30-
31- ```
32- pedalboard-demo/
33- ├── client/ # フロントエンド
34- │ ├── src/
35- │ │ ├── app/ # App コンポーネント
36- │ │ ├── components/ # React コンポーネント
37- │ │ ├── hooks/ # カスタムフック
38- │ │ ├── types/ # TypeScript 型定義
39- │ │ └── utils/ # ユーティリティ
40- │ ├── package.json
41- │ ├── tsconfig.json
42- │ ├── vite.config.ts
43- │ ├── vitest.config.ts
44- │ └── biome.jsonc # Linter/Formatter 設定
45- │
46- ├── backend/ # バックエンド
47- │ ├── api/ # FastAPI 関連
48- │ │ ├── config.py # 設定
49- │ │ ├── routes.py # API ルート
50- │ │ └── schemas.py # Pydantic モデル
51- │ ├── lib/ # 共通ライブラリ
52- │ │ ├── audio.py # 音声処理ユーティリティ
53- │ │ └── effects.py # エフェクトマッピング
54- │ ├── tests/ # pytest テスト
55- │ ├── main.py # FastAPI エントリポイント
56- │ ├── lambda_function.py # Lambda ハンドラ
57- │ ├── requirements.txt
58- │ ├── pyproject.toml # ruff/pyright 設定
59- │ ├── Makefile
60- │ └── Dockerfile
61- │
62- ├── compose.yaml # Docker Compose 設定
63- ├── renovate.json # 依存関係の自動更新
64- └── .gitignore
65- ```
11+ - ** client/** - React + TypeScript + Vite
12+ - エフェクターボードの UI
13+ - ドラッグ&ドロップでエフェクトの並び替え
14+ - 波形表示 (wavesurfer.js)
15+ - ** backend/** - FastAPI + Python
16+ - REST API エンドポイント
17+ - 音声処理 (Spotify Pedalboard ライブラリ)
18+ - Lambda 関数としてもデプロイ可能
6619
6720## 技術スタック
6821
6922### フロントエンド (client/)
70- - ** React 19 ** - UI フレームワーク
23+ - ** React** - UI フレームワーク
7124- ** TypeScript** - 型安全
7225- ** Vite** - ビルドツール
73- - ** Vitest** - テストフレームワーク
26+ - ** Vitest** - ユニットテスト
27+ - ** Playwright** - E2E テスト
7428- ** Biome** - Linter/Formatter
7529- ** wavesurfer.js** - 波形表示
7630- ** dnd-kit** - ドラッグ&ドロップ
@@ -81,6 +35,13 @@ pedalboard-demo/
8135- ** pytest** - テストフレームワーク
8236- ** ruff** - Linter/Formatter
8337- ** pyright** - 型チェッカー
38+ - ** pip-audit** - 脆弱性チェック
39+
40+ ### CI/CD
41+ - ** GitHub Actions** - 自動テスト・静的解析
42+
43+ ### 保守
44+ - ** Renovate** - 依存関係の自動更新
8445
8546## エフェクト一覧
8647
@@ -89,38 +50,3 @@ pedalboard-demo/
8950| 歪み系 | Booster, Blues Driver, OverDrive, Distortion, Fuzz, Metal Zone, Heavy Metal |
9051| モジュレーション系 | Chorus, Dimension, Vibrato |
9152| 空間系 | Delay, Reverb |
92-
93- ## 開発コマンド
94-
95- ### フロントエンド
96-
97- ``` bash
98- cd client
99- bun install # 依存関係のインストール
100- bun run dev # 開発サーバー起動
101- bun run test # テスト実行 (typecheck + lint + vitest)
102- bun run format # コードフォーマット
103- ```
104-
105- ### バックエンド
106-
107- ``` bash
108- cd backend
109- make install # 依存関係のインストール
110- make dev # 開発サーバー起動
111- make test # テスト実行 (typecheck + lint + pytest)
112- make format # コードフォーマット
113- ```
114-
115- ### Docker
116-
117- ``` bash
118- docker compose up # 全サービス起動
119- ```
120-
121- ## 開発の流れ
122-
123- 1 . ` client/ ` でエフェクトを選択・並び替え
124- 2 . "Process Audio" ボタンで API にリクエスト
125- 3 . ` backend/ ` が Pedalboard でエフェクト処理
126- 4 . 処理結果の波形を表示・再生
0 commit comments