kuma4649 / mml2vgm

GNU General Public License v3.0
106 stars 10 forks source link

arpeggios #71

Closed musicalman closed 3 years ago

musicalman commented 3 years ago

ウェーブテーブルサウンドチップ(HuC6280およびK051649)の新機能のアイデアがあります。 説明するのは少し難しいです。 言語翻訳がそれを台無しにしないことを願っています。 基本的に、私の考えは、ノートの演奏に合わせてウェーブテーブルを変更することです。 @hコマンドを使用してウェーブテーブルを通常どおりに定義しますが、パターンを使用して、時間の経過とともにウェーブテーブルを変更できます。 パターンの各ステップには、ウェーブインデックスとクロックティック単位の長さが含まれます。 さらに、ループポイントをパターンに含めることができます。 アルペジオコマンドに似ています。 これにより、パルス幅変調、フィルタースイープなどの興味深い効果が可能になります。 楽しみのために、手動でこれを実行して、どのように聞こえるかを確認しました。 これが私が使用したgwiデータであり、私が考えている種類の効果を見ることができます。 http://www.fileconvoy.com/dfl.php?id=g48cdcde7c49bc30d10002960193773bb8c34bab718 どう思いますか?

kuma4649 commented 3 years ago

なるほど。。。 時間経過とともに音色が切り替わる感じですね。

アルペジオと同様に変化を定義して使用する感じかなぁ。 アルペジオ定義中に音色を指定できるようにすればよいのでは?

musicalman commented 3 years ago

はい、それは面白いでしょう。 私が正しく理解していれば、あなたはトーンチェンジとアルペジオを同じ定義に入れることを考えました。 しかし、おそらくそれらは別々でなければなりません。 このように、トーンの変化とアルペジオは独立していて、異なるループポイント、ステップ長などを持つことができます。 しかし、それが難しすぎるとしたら、私は理解しています。

kuma4649 commented 3 years ago

https://twitter.com/kumakumakumaT_T/status/1327425092553371648?s=20

こんな感じで使用できるようにしたいなーと。

musicalman commented 3 years ago

申し訳ありませんが、理解できません。 あなたのTwitterリンクを見ました。 私は何をすべきか?

kuma4649 commented 3 years ago

あ、ごめんなさい、特にあなたが何をするべきかはありません。 Twitterでつぶやきながら考えをまとめたかっただけですのでお気になさらず。

kuma4649 commented 3 years ago

このように変更します。

■ コマンドアルペジオ定義

'@ CAR No , Cmd , Data ... No 定義番号(0-255) Cmd @ とりあえず音色のみ。 Data n | @n | @In | @En | @Nn | @Rn | @An | @vn 音色番号を指定する。このコマンドを指定すると#で指定したclockだけ発音を持続する。

n 発音するclock数を指定する。1以上。初期値:1

            |   ループポイントを指定する。定義を最後まで解析するとこの位置まで戻る。
例)
'@ CAR 0,#6,1,|,#24,2,3
            定義番号0に以下を定義する。
            持続clock数を6に、音色を番号1に設定し、持続clock数6だけ持続する。
            > ループポイントを設定 > 持続clock数を24に
            > 音色を番号2に設定し、持続clock数24だけ持続する。
            > 音色を番号3に設定し、持続clock数24だけ持続する。
            > ループポイントに戻る

CAONn コマンドアルペジオの開始 ( n: アルペジオスロット 0 - ) CAOFn コマンドアルペジオの停止 ( n: アルペジオスロット 0 - ) CAn1,n2 コマンドアルペジオの定義番号を指定 ( n1: アルペジオスロット 0 -
n2: 定義番号 0 - 255 )

・他のコマンドに対応できるようにしました。 ・多数同時反映ができるようにしました。

musicalman commented 3 years ago

サウンドチップの量が多く、違いがあるため、難しいかもしれません。 だから私はウェーブテーブルサウンドチップで音色を変えることだけに言及しました:) しかし、他のコマンドを組み込むことは面白そうです!

kuma4649 commented 3 years ago

huc6280.gwi k051649.gwi ですがmml2vgmのサンプルとして収録させていただいてよろしいでしょうか。 少し調整もさせていただくのですが。

musicalman commented 3 years ago

確かに、あなたはそれらを使うことができます。 トーンの変化がどのように聞こえるかを確認するための簡単なテストとしてのみ作成しました。

kuma4649 commented 3 years ago

リリースしましたー ご確認ください

musicalman commented 3 years ago

おかげで、それはうまくいきます! 残念ながら、小さなバグを見つけました。 ソフトウェアLFOを使用している場合、ワンショット波形を使用すると、トーンアルペジオが競合しているように見えます。 音色が変わると、音量やピッチも変わります。 他のLFO波形はうまく機能しています。 これが理にかなっているかどうかはわかりません。 もっとよく説明できたらいいのに:(

kuma4649 commented 3 years ago

すみません、mmlを提示していただくことは可能でしょうか

musicalman commented 3 years ago

これはhuc6280のピッチlfoのサンプルですが、k051649も影響を受けます。 http://www.fileconvoy.com/dfl.php?id=g70805ff1d23f86a9100029754525ecf982da3a8684

kuma4649 commented 3 years ago

なるほど。。。調査します!

kuma4649 commented 3 years ago

修正しました。ご確認ください!

musicalman commented 3 years ago

修正されました! しかし、申し訳ありませんが、さらに2つのバグが見つかりました。 私は昨日それらを見つけなかったと思います。

  1. HuC6280では、ボリュームLFOが壊れています。 すべての波形が影響を受けます。 2.トーンアルペジオと一緒にソフトウェアエンベロープを使用しようとすると、vgmがコンパイルされないことがよくあります。 これはHuC6280とK051649の両方に影響すると思います。 プログラムはクラッシュしませんが、ツールバーが消え、プログラムを閉じるためにmml2vgm.exeを強制的に終了する必要があります。 次に例を示します。 http://www.fileconvoy.com/dfl.php?id=g0445f2f7c9c79e1810002976256aeef819b1697573
kuma4649 commented 3 years ago

ありがとうございます。引き続き調査します!

kuma4649 commented 3 years ago

envelope.gwi 原因:CARの定義がないのに使用した為。 -> エラーチェックを強化しました one-shot.gwi 特に問題なし?定義で音色を全て同じのを指定してみるとわかりやすいかも? '@CAR0,@,#1,0,#3,|,3,3,3,3,3,3,3,3,3

また、「|」のあとには「,」を入れるようにお願いします。

上記とは別に「|」で定義が終わるとハングするバグを修正しました。

musicalman commented 3 years ago

申し訳ありませんが、封筒のバグは私の側の間違いでした! ご説明ありがとうございます。 はい、LFOをより明確にすべきでした。 トーンアルペジオを使用すると、LFOの音量が途切れ途切れになります。 より簡単な例を次に示します。 http://www.fileconvoy.com/dfl.php?id=gb10bf072bd1b3e7b1000297645e0ceb8000a1a14af

kuma4649 commented 3 years ago

HuCは音色を切り替えるごとに強制的にKeyOffされます。 なのでKeyOnをやりなおすような動きにしています。その影響かもしれません。

musicalman commented 3 years ago

ああ、それは理にかなっています。 おそらくこれは妥協する必要がありますか?

kuma4649 commented 3 years ago

そうですね... 「仕様」 ということでお願いします

musicalman commented 3 years ago

翻訳は少し不明確です。 これは放っておくべきだと言っているのですか?

kuma4649 commented 3 years ago

chipの動作によるものだから、 諦めるしか無いと言っていますw

musicalman commented 3 years ago

ああ。 わかります。 その場合、他に議論することはないので、これを閉じます。 きっと新機能を生かしていきます!

kuma4649 commented 3 years ago

早速なんですがフォーマット変更しようと思います。

kuma4649 commented 3 years ago

■ コマンドアルペジオ定義

'@ CAR No , Cmd , Sync , Data ... No 定義番号(0-255) Cmd @ とりあえず音色のみ。 Sync ( 0 : 毎回キーオン/オフに合わせてシーケンスが開始されます
1 : キーオン/オフに関係なくシーケンスを開始します。 ) Data n | @n | @in | @en | @nn | @rn | @an | @vn

kuma4649 commented 3 years ago

このように、CmdとDataの間にSyncを追加しますのでよろしくお願いします。

musicalman commented 3 years ago

面白そうですね。 新しいSyncオプションが好きです。 私はデータに少し混乱しています:n | @n | @In | @En | @Nn | @Rn | @An | @Wn ただし、既存の実装と似ています。 それで、Sync部分が唯一の変更ですよね?

kuma4649 commented 3 years ago

そうですね! n | @n | @in | @en | @nn | @rn | @an | @wn ↑これはFM音源などは色々な@コマンドが使えるので、それに合わせて用意しています。

近いうちにパン(pコマンド)にも対応させようと思ってます。 ↓こんな感じになります '@ CAR 0 , p , 1 , #4 , | , "4,4" , "3,4" , "2,4" , "1,4" , "0,4" , "1,4" , "2,4" , "3,4"

YM2609やHucの様にパラメータが二つある場合は「"」で括る必要があります。

kuma4649 commented 3 years ago

リリースしましたー ご確認ください

musicalman commented 3 years ago

パンアルペジオをテストしました。 HuC6280には制限がありますが、それ以外の点ではサウンドチップは正常に機能しています。 しかし、K053260にはバグがあります。 最初の音はいいですね。 しかし、2番目の音符の後、アルペジオによってサンプルが再起動し、スタッター効果が発生します。 http://www.fileconvoy.com/dfl.php?id=gc25a314a7c54243a100029819175f6e04674bdae6c これは制限ですか?

kuma4649 commented 3 years ago

あらら。。なんでしょうね。調査します

kuma4649 commented 3 years ago

修正しました。ご確認ください!

musicalman commented 3 years ago

バグは修正されましたが、残念ながらチップに新しい問題があります。 音符の間にギャップがある場合、それはうまく機能します。 しかし、ギャップがない場合、ノートは一緒に結ばれます。 たとえば、Q8 cdeはc&d&eのように聞こえます これは、ループしていないサンプルでは特に問題になります。 私たちは別の限界に達していないことを願っています...

ultrasound1372 commented 3 years ago

これはボリュームの変更もサポートされると信じていますか?ADSRのカーブに強制されないボリュームの変更はPSGの効果のために非常に有用であろう。これをマクロと組み合わせて、例えばHuCでドラムを作成することができます。それとも、AYの署名スネア。

ultrasound1372 commented 3 years ago

@kuma4649この機能の実装によって、ノート エンベロープが破損している可能性があります。構文テストファイル TestArpeggio.gwi は、もはやそれがしたように実行されません。

kuma4649 commented 3 years ago

musicalmanさん> キーオンせずにつながっているということでしょうか?

kuma4649 commented 3 years ago

ultrasound1372さん> ボリュームもサポート予定です。 >構文テストファイル TestArpeggio.gwi は、もはやそれがしたように実行されません。 ?

ultrasound1372 commented 3 years ago

量子化されたノートと長いネクタイを含むテストの最初のセットは、ノートがもはや変わらないので、もはや動作していないようです。入力は、アルペジオが適用されていないバーのために保持されているだけです。 The first set of tests involving the quantized notes and then the long tie don't seem to work anymore, as the notes no longer change. The input not is just being held for a bar with no arpeggio being applied.

ultrasound1372 commented 3 years ago

コンパイラは、AP0とAP1を呼び出す回線で失敗したエラーアルペジオ分析を与えます。構文が変更され、テスト ファイルが更新されていないか。

kuma4649 commented 3 years ago

あ、コマンドアルペジオではなく、通常のアルペジオの不具合ですね。 調査します。

kuma4649 commented 3 years ago

現象確認しました。バグ修正しました。 APを指定する前にAPONすると発生するエラーでした。(前回の更新で変更になった正しい動作) 仰るようにsampleが悪いので修正しました。

また、APを指定するだけでAPONするようにしました。 ありがとうございます。

musicalman commented 3 years ago

例を送ります。 Q1を使用している部分は問題ありません。 Q0を使用する部分は、キーオフがないため同じように聞こえません。 テスト用にパンアルペジオも含めましたが、それほど重要ではありません。 期待どおりに動作していることを確認したかっただけです。 http://www.fileconvoy.com/dfl.php?id=gaebcbacb41d0f61110002985052c9bf5ca013f93cf

ultrasound1372 commented 3 years ago

Q0は時計を切り捨てずに意味しませんか?それとも、私は小さなqと混同していますか?

ultrasound1372 commented 3 years ago

ああ、私はあなたの問題を参照してください、とはい、私はそれがバグだと思います。K053260 を完全長ノートで使用する場合、ノート間のサンプルの適切なキーオフと再起動は行いません。私はK053260テストでもこれを見ましたが、それは最近の開発でした。パンニングギターがジャンプするたびに再起動する前に、今では1つのループで移動します。

musicalman commented 3 years ago

qnは、ノートの全長の前にnクロックを解放します。 Qnは、長さのn / 8が経過した後にノートをリリースします。 私はおそらく少なくとも一度は間違ったものについて書いたことがあります。 混乱があった場合はごめんなさい。

ultrasound1372 commented 3 years ago

はい、これは別の問題です。そして、それはK053260に固有です、私はC140を使用するようにあなたのファイルを適応させ、q0と同じ問題が発生しません。すべてのノートは、必要に基して再起動されます。

kuma4649 commented 3 years ago

テスト用のgwiありがとうございます。 いつも助かります。

現象のほう確認しました。修正してみようと思います。 恐らく前回のキーオフが連続で発生するバグを修正したときのものだと思います

kuma4649 commented 3 years ago

修正しました。ご確認ください