リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: BeatCraft ドラムマシン
ステップごとのベロシティ(音量強弱)編集機能の追加
1. 目的
現状はステップのON/OFFのみで、すべてのヒットが同じ強さで鳴る。各ステップに1〜4段階のベロシティを設定できるようにし、アクセント・ゴーストノートを表現可能にすることで、より人間らしいグルーヴ感のあるビートが作れるようにする。
2. 仕様
【UI: ベロシティモードの切り替え】
- グリッド左上付近に「VELOCITY」トグルボタンを追加(デフォルトOFF)。
- OFFのときは従来どおりON/OFFのみのシンプル表示。
- ONにすると各ステップボタンが「ベロシティ編集モード」になる。
【ベロシティの段階と見た目】
- ベロシティは 0(OFF)/ 1(低: 25%)/ 2(中: 60%)/ 3(高: 100%)の4段階とする。
- ステップボタンをタップ/クリックするたびに 0→1→2→3→0 とサイクルする。
- 各段階をボタンの背景の濃淡で表現する(例: 段階1=薄い色, 2=中間色, 3=ジャンル別アクセントカラーの濃色)。既存の「ON = アクセントカラー全灯」から「ON = 段階3と同等の全灯」に自然につながるよう設計する。
- ベロシティモードOFFのときにONになっているステップは、モードON時に段階3(100%)として扱う(既存ビートの互換維持)。
【音声への反映】
- Web Audio API の GainNode でトラック出力にベロシティ係数を掛ける。具体的には、ステップ発音時に velocity_level / 3 の係数(0.25 / 0.60 / 1.00)をそのステップ専用の一時 GainNode に設定してから音源を接続して鳴らす。既存のトラック別ボリューム・パン・ミュート・ソロ設定はその後段に残すため既存ミキサー機能は破壊しない。
【データ保存・URL共有】
- 各ステップのデータをこれまでの1bit(ON/OFF)から2bit(0〜3)に拡張する。
- 既存のBase64エンコード形式はビットパッキング方式のため、1ステップあたりのビット数を1→2に変えるだけで対応可能。URLパラメータにバージョンフラグ(例: v=2)を追加し、v=1(旧形式)のURLを読み込んだ場合はON=段階3として復元することで後方互換を保つ。
- localStorageへのパターン保存も同様に2bitデータで保存し、旧データ読み込み時は自動マイグレーション(ON→3, OFF→0)する。
【プリセットビートへの対応】
- 既存15プリセットはすべてON/OFF定義のため、読み込み時に自動的に段階3として扱う。プリセット定義ファイルの変更は不要。
3. 既存機能との整合(壊さない点)
- ベロシティモードOFFのときは見た目・操作性ともに現行v1.0.0と完全に同一。
- トラック別ボリューム・パン・ミュート・ソロ、BPM/スウィング、パターンチェーン、URLシェア、キーボードショートカットはすべてそのまま動作する。
- 旧URLを開いた場合もビートが欠けることなく再現される(上記バージョンフラグ対応)。
- スマホ対応:ベロシティモードトグルボタンは44×44px以上確保し、タップ操作でも段階サイクルが快適に行える。
現状はステップのON/OFFのみで、すべてのヒットが同じ強さで鳴る。各ステップに1〜4段階のベロシティを設定できるようにし、アクセント・ゴーストノートを表現可能にすることで、より人間らしいグルーヴ感のあるビートが作れるようにする。
2. 仕様
【UI: ベロシティモードの切り替え】
- グリッド左上付近に「VELOCITY」トグルボタンを追加(デフォルトOFF)。
- OFFのときは従来どおりON/OFFのみのシンプル表示。
- ONにすると各ステップボタンが「ベロシティ編集モード」になる。
【ベロシティの段階と見た目】
- ベロシティは 0(OFF)/ 1(低: 25%)/ 2(中: 60%)/ 3(高: 100%)の4段階とする。
- ステップボタンをタップ/クリックするたびに 0→1→2→3→0 とサイクルする。
- 各段階をボタンの背景の濃淡で表現する(例: 段階1=薄い色, 2=中間色, 3=ジャンル別アクセントカラーの濃色)。既存の「ON = アクセントカラー全灯」から「ON = 段階3と同等の全灯」に自然につながるよう設計する。
- ベロシティモードOFFのときにONになっているステップは、モードON時に段階3(100%)として扱う(既存ビートの互換維持)。
【音声への反映】
- Web Audio API の GainNode でトラック出力にベロシティ係数を掛ける。具体的には、ステップ発音時に velocity_level / 3 の係数(0.25 / 0.60 / 1.00)をそのステップ専用の一時 GainNode に設定してから音源を接続して鳴らす。既存のトラック別ボリューム・パン・ミュート・ソロ設定はその後段に残すため既存ミキサー機能は破壊しない。
【データ保存・URL共有】
- 各ステップのデータをこれまでの1bit(ON/OFF)から2bit(0〜3)に拡張する。
- 既存のBase64エンコード形式はビットパッキング方式のため、1ステップあたりのビット数を1→2に変えるだけで対応可能。URLパラメータにバージョンフラグ(例: v=2)を追加し、v=1(旧形式)のURLを読み込んだ場合はON=段階3として復元することで後方互換を保つ。
- localStorageへのパターン保存も同様に2bitデータで保存し、旧データ読み込み時は自動マイグレーション(ON→3, OFF→0)する。
【プリセットビートへの対応】
- 既存15プリセットはすべてON/OFF定義のため、読み込み時に自動的に段階3として扱う。プリセット定義ファイルの変更は不要。
3. 既存機能との整合(壊さない点)
- ベロシティモードOFFのときは見た目・操作性ともに現行v1.0.0と完全に同一。
- トラック別ボリューム・パン・ミュート・ソロ、BPM/スウィング、パターンチェーン、URLシェア、キーボードショートカットはすべてそのまま動作する。
- 旧URLを開いた場合もビートが欠けることなく再現される(上記バージョンフラグ対応)。
- スマホ対応:ベロシティモードトグルボタンは44×44px以上確保し、タップ操作でも段階サイクルが快適に行える。
💬 返信 (3)
🛠 開発を開始しました (機能追加 beatcraft)
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「BeatCraft ドラムマシン」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=beatcraft
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/beatcraft/
ご利用ありがとうございます!
ご要望いただいた「BeatCraft ドラムマシン」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=beatcraft
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/beatcraft/
ご利用ありがとうございます!
Echo
Iris