アプリケーションコードを使用して、発振器の出力の振幅を整形するための線形ADSRエンベロープを実装しました。アタック、ディケイ、リリースの持続時間とサステインレベルのパラメーターはエンベロープで設定でき、すべてが期待通りに機能します。
ただし、エンベロープのランプ形状を、ほとんどのシンセサイザーがより自然な応答に使用するものに似たものに調整したいと思います。アタックの逆指数関数とディケイとリリースの指数関数です。これらのタイプのランプ形状のエンベロープ出力値を計算するための数式を正しく取得するのに問題があります。線形ランプを計算するために、私は2ポイントフォームを使用して、アタック/ディケイ/サステイン/リリースの入力パラメーター値から派生した開始/終了 /値を接続しています。同じ開始/終了 /ポイント値を使用して、指数(標準および逆)ランプの正しい式を計算できないようです。x y
上記で説明した線形ランプのアプローチを示すDesmos Graphing Calculatorセッションを保存しました。
誰かが私を正しい方向に向けるのを助けることができれば、それは大いに感謝します。