# Strudel Live Coding Notebook with Gemini CLI

このプロジェクトは、Strudel ライブコーディングの試行錯誤を記録するノートブックであり、Gemini CLI のカスタムスキルを活用して楽曲制作を加速させるための環境です。

東京の電子音楽シーンの感性を持つ AI アシスタント「ボク」が、君の音楽制作をプロの視点から強力にサポートするよ。

## 🚀 主な機能

### 1. テンプレート生成 (`generate-strudel-template`)
Techno, House, Dub Techno, Minimal など、指定したジャンルに基づき、即座に演奏可能な Strudel コードと音楽的解説を生成します。
- `strudel/` ディレクトリに新しいアイデアとして保存されます。
- プロフェッショナルなリズムパターンと音色設定が含まれます。

### 2. 構文修正 & 解説 (`fix-and-explain-strudelcode`)
Strudel コードのエラーを修正し、楽曲の意図を汲み取った解説を加えます。
- 修正版は `explained/` ディレクトリに保存されます。
- 単なる修正に留まらず、音楽的なアドバイスも提供します。

## 📁 ディレクトリ構成

- `strudel/`: ライブコーディングのノート（Markdown形式）。日付ベースの記録やジャンル別スケッチ。
  - `samples/`: プロジェクト固有のオーディオサンプル。
- `explained/`: `fix-and-explain-strudelcode` スキルによって生成された修正・解説済みファイル。
- `.gemini/skills/`: Gemini CLI 用のカスタムスキル実体。
- `.gemini/REFERENCE.md`: Strudel の最新構文や推奨パターンをまとめたリファレンス。
- `PRECAUTIONS.md`: 過去のミスから学んだ、高品質なコード生成のための注意守則。
- `fix-and-explain-strudelcode/`, `generate-strudel-template/`: スキルのソースコード一式。

## 🛠 使い方

このプロジェクトでは、Gemini CLI のカスタムスキルを直接呼び出すことで制作をサポートします。

### スキルの活用
Gemini CLI に対して、以下のように話しかけてみて。

- **新しいトラックを始めたいとき**
  > "Minimal Techno のテンプレートを作って"
- **コードが動かない、または洗練させたいとき**
  > "strudel/20260215.md のエラーを直して解説して"

## 🎵 制作のポリシー & 品質管理

ボクが生成するコードは、以下のルールと知見に基づいているよ。

- **Initialization**: `setcps(BPM/60/4)` で開始し、グリッドの整合性を保つ。
- **Modular Control**: `$: ` 記法で各トラックを独立させ、ライブ演奏での操作性を確保。
- **Clean Syntax**: 休符には `-` を使用。
- **Best Practices**: `PRECAUTIONS.md` に基づき、音源バンクの整合性やフィルターの特性（TB-303スタイルなど）を最適化。

---
Happy Live Coding! 🎛️✨
