毎日だいたい夜11:00頃帰宅(これでも早いほう)なので、ウィークデーの進捗はこの程度。
次の課題は「複数チャネルの音をどうやって同時に鳴らすか」。
まぁ、その辺は簡単に計算できます。
今のところ、PSG音源に対する指示情報としては、以下の7種類。
- エンベロープ1を設定(キーオンしてから100%になるまでの周波数)
- エンベロープ2を設定(オーオフしてから消音になるまでの周波数)
- チャネル別のボリュームを設定
- マスターボリュームを設定
- キーオン(音を鳴らす指示)※音色や音程も一緒に指定する仕様
- キーオフ(音を止める指示)
- 待機
網掛けしている待機という指示情報だけに着眼すれば良いだけです。
仮に、
という感じにすればOK。
アルゴリズム的に表現すれば、
で、OKな筈。(未検証)
処理としては単純。
問題は6チャネルの場合、フラグが沢山有り過ぎて、アルゴリズムが無茶苦茶複雑になりそうだ・・・
と、思っていたのですが、ピンポン録音の要領で、
って、やれば良いだけですね。
物凄く簡単だった。
これなら、明日にはチャネル合成ができるかな。(本業の状況次第ですが)
ちなみに、チャネル毎の音の合成(音源レベルの話)をどうやるのか疑問だったのですが、これは単純な足し算でOKでした。音の合成ってこんな簡単だったのか。(てっきり、もっと複雑な「xxxの公式」みたいなヤツでも要るのかと)
仮に、
- Ch.1: event1 → wait(100Hz) → event2
- Ch.2: event3 → wait(50Hz) → event4 → wait(75Hz) → event5
event1 → event3 → wait(50Hz) → event4 → wait(50hz) → event2 → wait(25Hz) → event5 |
という感じにすればOK。
アルゴリズム的に表現すれば、
- 待機時間が短い方の待機時間を採用し、
- 長い方(非採用)の待機時間は、採用値を減算
- 次の待機時間についても同じ処理で求める
で、OKな筈。(未検証)
処理としては単純。
問題は6チャネルの場合、フラグが沢山有り過ぎて、アルゴリズムが無茶苦茶複雑になりそうだ・・・
と、思っていたのですが、ピンポン録音の要領で、
- チャネル1+チャネル2=チャネルA
- チャネルA+チャネル3=チャネルB
- チャネルB+チャネル4=チャネルC
- チャネルC+チャネル5=チャネルD
- チャネルD+チャネル6=チャネルE
って、やれば良いだけですね。
物凄く簡単だった。
これなら、明日にはチャネル合成ができるかな。(本業の状況次第ですが)
ちなみに、チャネル毎の音の合成(音源レベルの話)をどうやるのか疑問だったのですが、これは単純な足し算でOKでした。音の合成ってこんな簡単だったのか。(てっきり、もっと複雑な「xxxの公式」みたいなヤツでも要るのかと)
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。