EN

K104E

Dual ADSR Envelope Generator

製品ページを見る

ファームウェア バージョン 1.0

デュアル高機能エンベロープジェネレータ

概要

K104E は、RP2040マイコンベースのデュアルADSRエンベロープジェネレーターです。VCV Rack の K104 モジュールを基に開発され、高機能なCVルーティング、ループモード、プリセット機能を搭載しています。


重要な注意事項

電圧仕様について

• 入力電圧は 0-3.3V です。5V入力は故障の原因となります

• 出力電圧は 0-3.3V です。0-10Vでの使用には外部回路でのスケーリングが必要です

• USB接続でのバスパワー動作のため、外部電源は不要です

Web Editor使用について

• Web Editor は Google Chrome 専用です

Web Serial API が必要なため、他のブラウザでは動作しません

• Arduino IDE等の他のシリアル通信アプリケーションは事前に終了してください


技術仕様

項目 仕様
CPU RP2040 Dual-Core ARM Cortex-M0+ @ 133MHz
メモリ 264KB RAM, 2MB Flash
更新レート 1kHz(スムーズな応答)
分解能 10bit ADC入力, 12bit DAC出力
レイテンシ < 1ms(リアルタイム性能)
接続 USB(シリアル通信・ファームウェア更新)
電源 USBバスパワー(外部電源不要)

ハードウェア構成

フェーダー(MCP3008 ADC)

ENV A

  • Attack - アタック時間の調整
  • Decay - ディケイ時間の調整
  • Sustain - サステインレベルの調整
  • Release - リリース時間の調整

ENV B

  • Attack - アタック時間の調整
  • Decay - ディケイ時間の調整
  • Sustain - サステインレベルの調整
  • Release - リリース時間の調整

フェーダー特性

  • 全フェーダーはsqrt(x)カーブレスポンス(低域敏感、高域精密)をデフォルトとして採用
  • Web Editorでレスポンスカーブの変更が可能

内蔵ADC入力

入力 機能
A0 ENV A Linearity/Curve 制御
A1 ENV B Linearity/Curve 制御
A2 External CV1(CVルーティング用)
A3 External CV2(CVルーティング用)

Gate入力

入力 機能
Pin 8 ENV A Gate 入力(0-3.3V)
Pin 7 ENV B Gate 入力(0-3.3V)
BOOTSEL 一時的なテスト用ゲート(両ENV同時)

出力(MCP4822 DAC)

出力 機能
CH1 ENV B CV 出力(0-3.3V)
CH2 ENV A CV 出力(0-3.3V)

ハードウェアスイッチ

SW1 + SW2: ループモード制御

  • SW1=0: ループオフ
  • SW1=1, SW2=0: ENV A 自動ループ
  • SW1=1, SW2=1: ENV B 自動ループ

LEDインジケータ(Pin 16)

状態
消灯 ループオフ
🔴 赤 ENV A ループ中
🔵 青 ENV B ループ中

ADSR動作モード

通常モード(ループオフ)

Gate ON → Attack → Decay → Sustain → Gate OFF → Release → Off

通常のADSRエンベロープ動作です。ゲート信号に従ってエンベロープが生成されます。

ループモード(ループオン)

スイッチ ON → Attack → Decay → Sustain(100ms) → Release → Attack → ...

ゲート信号無関係で連続動作

ループモードでは、ハードウェアスイッチをオンにするとゲート信号に関係なく連続的にエンベロープが循環します。LFOのような周期的な信号生成に使用できます。


CVルーティング機能

External CV1/CV2を各エンベロープパラメータに割り当て可能です。

対応パラメータ

  • Attack(アタック時間)
  • Decay(ディケイ時間)
  • Sustain(サステインレベル)
  • Release(リリース時間)
  • Linearity(エンベロープカーブ)

設定方法

  • Web Editor または シリアルコマンド で設定
  • リアルタイムでモジュレーション適用
  • モジュレーション量(Amount)の調整が可能

プリセット機能

フラッシュストレージ

  • 16スロット × 256バイト
  • チェックサム検証 でデータ整合性保証
  • CVルーティング、ループモード、フェーダー設定 を保存

シリアルコマンド操作

preset save 1 "My Setting"    # スロット1に保存
preset load 1                 # スロット1から読み込み
preset list                   # 全プリセット表示
preset factory                # 工場出荷時リセット

Web Editor使用方法

起動方法

  1. Editor フォルダに移動
  2. 必要なパッケージをインストール:
    npm install
    
  3. 開発サーバーを起動:
    npm run dev
    
  4. ブラウザで http://localhost:3000 にアクセス

接続手順

  1. “Connect Device” ボタンをクリック
  2. K104E の USBシリアルポート を選択
  3. 接続成功 で緑色のステータス表示が確認できます

主要機能

CVルーティング設定

  • External CV1 → ENV A の各パラメータにチェック
  • External CV2 → ENV B の各パラメータにチェック
  • Amount スライダー でモジュレーション量調整(0.0-1.0)

フェーダーレスポンス設定

カーブ 特性
Linear 直線的な応答
Sqrt 低域敏感(デフォルト)
Square 高域敏感
Cube 極端に高域敏感

ループモード制御

  • ENV1 Loop / ENV2 Loop ボタンでソフトウェア制御
  • 注意: ハードウェアスイッチが優先されます

プリセット管理

  • Save: 現在設定を保存
  • Load: 選択プリセットを読み込み
  • スロット選択: 0-15の番号をクリック

シリアルコンソール

  • リアルタイム通信ログ 表示
  • 手動コマンド送信 機能
  • クイックコマンド ボタン

シリアルコマンド一覧

基本操作

gate          # ゲート状態確認
mcp           # MCP3008 ADC値表示
extcv         # 外部CV値表示
loop          # ループモード状態表示

CVルーティング

route cv1_attack on/off       # CV1→ENV A Attack
route cv1_amount 0.8          # CV1 モジュレーション量
routing                       # 全ルーティング設定表示

フェーダー設定

fader env1_attack sqrt        # ENV A Attack フェーダーをsqrtカーブに
fader all linear              # 全フェーダーをlinearに
fader                         # 現在設定表示

メモリ・システム

memory        # RAM/Flash使用量表示
get_state     # 現在設定をJSON出力
get_presets   # プリセット一覧をJSON出力

トラブルシューティング

Web Editor接続できない

症状: デバイスが認識されない、接続ボタンが反応しない

解決方法:

  1. Google Chrome使用確認(Chrome専用)
  2. デバイス認識確認(USBシリアルドライバ)
  3. 他アプリケーション終了(Arduino IDE等)
  4. USBケーブル確認(データ通信対応ケーブル使用)

ADSRが動作しない

症状: エンベロープが生成されない、出力が変化しない

解決方法:

  1. ゲート入力電圧確認(0-3.3V範囲)
  2. シリアルコマンド gate でゲート状態確認
  3. ループモード確認(予期しない連続動作)
  4. フェーダー位置確認(極端な設定でないか)

フェーダーが効かない

症状: フェーダーを動かしても値が変わらない

解決方法:

  1. シリアルコマンド mcp でADC値確認
  2. 配線確認(MCP3008 SPI1接続)
  3. フェーダーレスポンス設定確認
  4. 接触不良確認(フェーダーの清掃)

設定が保存されない

症状: プリセット保存後、電源再投入で設定が消える

解決方法:

  1. プリセット保存確認 preset save コマンド実行
  2. フラッシュメモリ確認 memory コマンドで容量確認
  3. チェックサム確認 preset list でデータ整合性確認

CVルーティングが機能しない

症状: 外部CVを接続してもモジュレーションがかからない

解決方法:

  1. CV入力電圧確認(0-3.3V範囲)
  2. ルーティング設定確認 routing コマンドで設定表示
  3. Amount値確認(0.0より大きい値に設定)
  4. 外部CV確認 extcv コマンドで入力値確認

フィードバックとサポート

機能についてのご意見・ご感想、不具合の報告、機能要望などは以下からお寄せください:

フィードバックフォーム X @hugelton_

K104E Dual ADSR Envelope Generator - 高機能エンベロープで音楽表現を拡張