「サクラ」質問掲示板

サクラの質問掲示板です。
[一覧へ] > (@62) [中] [確認待ち]
@62■ (#188) 曲の途中で和音が鳴らなくなる - なも (2012-10-15 19:01) /緊急 未処理
【バージョン】2.372

曲を再生していると急に一小節和音がならなくなります。
いつも同じ箇所がならなくなります。
再生中のピアノのとこには色はついてます。

どうすればなおりますか?
よろしくお願いします泣

(#189) 思いついたものだけ記述しました。 - 通りがかりです (2012-10-16 23:55) /中 確認待ち
通りがかりです。初歩的なケースではすぐに治ると思いますが、難しい場合だと修正は時間がかかるかもしれません。


自分の場合でも良くあるのですが、トラックボリューム[V]、エクスプレッション[EP]などの値が[0]になっているケースです。もし和音が鳴るはずの部分で、演奏モニターのピアノロールの横にあるボリュームレベル表示が動いていなければ、トラックボリューム[ V(0) ]、エクスプレッション[ EP(0) ]の可能性があります。

確認法としては、演奏モニターのボリュームレベルの部分をクリックすると、表示が変わって小さな表示のレベルメーターに変わります。その中の灰色と濃い灰色のレベルメーターの針がこの演奏部分で何も触れてなければまず、間違いなくどちらかのために音が出なくなっています。この場合、V(127)ないしは、EP(127)を和音の前に差し込んであげれば多分直ると思います。


難しい場合では、ゲートタイム[q]の値が[100]以上で和音が鳴らされている、ないしはペダルが使われている場合が考えられます。もし、このケースであれば、直すのはあまり簡単ではありません。

もしゲートタイムであれば、この和音の前あたりに[q99]以下を指定すれば全ての音が鳴るかもしれません。
ペダルでは、あまり使ったことがないので何とも言えないのですが、その近辺だけ解除して鳴らしてみるのも一手かも知れません。この場合、その場その場で対応することが多いので近辺のソースを見てみないと解りません。


また、ボイス数制限を超えてしまった場合もあります。
サクラでは多分同時にならせるのが32ボイス? が限界なので、超えてしまうと特定のパートの音が出なくなります。

あまりないケースだと思いますが、他のトラックをコメントアウトなどしてミュートすると音がでる場合は当てはまると思います。

(#190) だめでした.. - なも (2012-10-17 18:39) /緊急 未処理
ボリュームレベル表示は動いていました。
トラックボリューム100、エクスプレッション127になってました。
ゲートタイムを99にしてみてもだめでした。
ペダルは使ってません。

ボイス制限数は超えていませんでした。
他のトラックをミュートにしても鳴らなかったです..


せっかく解決策を書いてもらったのに..すみません。


(#191) 一つ思い出しました、 - 通りがかりです (2012-10-18 20:47) /中 確認待ち
難しいケースみたいですね、、
思い出したのですが、ディレイ[ delay.h、Sub{} ]など使用しているとよく音抜けします。もし、これであれば対処法はあります、。

もう少し考えてみます。

(#192) 違うと思うんですけど.. - なも (2012-10-18 16:24) /緊急 未処理
初心者なのでそういったのは使ってないと思います。

トラック1が和音なのですが
下のメッセージには[ヒント] (11): ")"は未定義です。つづりを確かめてください。(命令:"System")と書かれてあります。
11には音色(SquareLead)と書いてます。

もしかしてこれが原因ですかね?

トラック2からを全部消して再生してみると
ちゃんと鳴りました。そのあとトラック2から
貼り付けて再生すれば鳴りません。

あと、トラック1だけを再生したときと、
トラック2から下を貼り付けて再生したときでは、
トラック1の音色が少し違います。

これで何かわかりますかね?

すみません。よろしくお願いします。

(#193) 解決へ導くかもしれません、 - 通りがかりです (2012-10-20 17:15) /中 確認待ち
エラーの表記は助かります、解決へ導くかもしれません。

[ヒント] (11): <-- 実は、この一つ上の行が、エラーになっています。
つまり、10行目に問題を引き起こす、関連する何かが存在している可能性があります。

一歩踏み込んで類推するに、余分ないし不足している括弧があるような気がします。これがもし一対でワンセットでなければ、エラーになってしまうのです。

この前提でエラーの再現を試みてみました。結果はご説明のようなトラック1の影響?で音が出たり出なかったりする部分が難しく、トラック2途中からエラーにすることしかできていません。..それでもよろしければ、何らかのお役に立つかもしれないので、参考がてら再現ソースとして載せておきます。

//↓------↓
Include(gs.h);
ResetGS(); r4
調#(ドファ))  // <-- ) が一つ多い
拍子4,4)  // <-- ( が抜けている

トラック1 音量66 音階5 ゲート100
音色(Goblins)

時間(2:1:0)
音符1「ドファソシ」ー
音符1「ドミソシ」ー

トラック2 音量111 音階7 ゲート66
音色(Kalimba)

時間(2:1:0)
[6 音符(12) ドファソシ]
[6 音符(12 ドミソシ]  // <-- ) がないため、これ以降の表記はエラー扱いとなり音が出なくなる
//↑------↑

(#195) エラーは改善しました - なも (2012-10-21 10:14) /緊急 未処理
エラーは改善しましたが音は出ず..

今は別々に和音のトラックを作って
鳴らないところは2つ目のトラックを使って
鳴らしてますが、どっちも鳴らないときがあるので
困っています..

(#197) 処理落ちな気がしてます、 - 通りがかり (2012-10-23 05:44) /中 確認待ち
もし、よろしければTW-music2で再生してみて下さい。
全ての音が問題なく発音されているならば、ボイス数不足か何らかの処理落ちの可能性があります。

実はこちらも同じような現象で苦戦してまして、サクラ標準プレイヤーに於いて再生をすると何度再生しても途中からリズムの音が消えてしまうのです。、同じケースとも考えられたので一通り調べてみました。

ここからは、サクラと音源関連の話なので少し難しめです。
サクラ標準プレイヤーはMidiデータをテンポラリに書き出して、それを音源のMicrosoft Wavetable GS SW Synthに送りこんで演奏しています。なのでもし、このデータをTW-music2の使用する音源、Microsoft Synthesizerで普通に再生できれば、サクラ自身は正しくデータ出力できていると証明できます。

結果: Midiデータ -> TW-Music2 (Microsoft Synthesizer)     問題なし
    Midiデータ -> Domino (Microsoft Wavetable GS SW Synth) 音が消える

音源のMicrosoft Wavetable GS SW Synthがどうも問題引き起こしているようだ、と解りました。
恐らく、処理限界を超えてしまうため?と考えられます。
この確認のため、イレギュラーな手段で演奏してみます。

サクラ標準 -> Virtual Midi -> DirectMusic Producer (Microsoft Synthesizer)      問題なし
サクラ標準 -> Virtual Midi -> DirectMusic Producer (Microsoft Wavetable GS SW Synth) 音が消える

音源サイドに問題を抱えているようです。
このような難しいケースは、記述のみの修正ではあまりうまくいかないことが多いです。問題の近辺の音数を減らす、強弱指定を減らすなどの手段を講じて処理負担の軽減を計るか、処理の速い音源を使用するソフトTW-Music2(Microsoft Synthesizer)を指定するなど対応を考えなければなりません。

曲のデータが多くなれば、どうしても音源の負担が増えるのでどれぐらいまで許容できるか、このさじ加減がサクラでは難しいです。ソースを見てないので何とも言えませんが、ひょっとすると同じケースではないかと思い、取り急ぎ書き込みました。

なのでこれ以後に載せてある前回に書き込んだ文面は、なんとなく可能性としては薄い気がするので参考程度に見るだけで構わないと思いますが、一応残しておきます、、

//------
サクラに以下の記述をしてみて下さい。

//↓------↓
Include(gs.h); //--初期化に必要なファイルを読む--
ResetGS; r4    //--音源初期化--

トラック1 音量120 音階5 音符4 ゲート99 音色17
時間(2:1:0) //--時間指定--、1小節後から、を全てのトラックに書き込む

//だいたいで構いませんのでこの後に、問題の部分の和音を含むトラックの
//前後8小節くらい、合計16小節程度ペーストします。


//↑------↑

これで鳴らなければ、この記述の中に問題があります。
もし、鳴ったなら別の問題です。

別の問題であったなら、必要な音源初期化がなされていないからかもしれません。
初期化は、前の曲によって変更されたパラメータ、V(50),EP(0),M(11)などのデータを最初の状態にもどします。
上記のこの行がない場合、音源のパラメータが変更されたままになっているので、幾許かの影響が出ます。

この初期化リセットは、4分音符位の時間がかかるので、演奏を1小節後からにします。、
なのでトラック1の前に前記の--音源初期化--と、ストトン等やMMLの前に--時間指定--を記述すると良いです。
//------

(#188)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を平仮名で記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能