• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:midiのからくり?)

midiのからくり?

このQ&Aのポイント
  • midiの音源の問題により、midiファイルを再生する際に音が発音されない場合や、音色が異なって聞こえる場合があります。
  • また、あるmidiファイルを再生した後に別のmidiファイルを再生すると、一部の音が外れて聞こえる場合があります。
  • さらに、midiファイルを開くときに音色番号が変わることがあり、同じファイルでも再生する度に音が変化する場合があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • hikaly
  • ベストアンサー率39% (47/119)
回答No.1

まずはじめに、Cherryなどのシーケンスソフトでmidiファイルを再生すると音が鳴る(鳴らない場合もあるようですが)仕組みは、WAVやMP3を再生して音が鳴る仕組みとは違います。WAVやMP3には音の情報そのものが記録されていますが(ちょうどカセットやMDと同じです)、MIDIファイルは譜面のようなもので、楽器の種類、音程、音の長さ、音の強さなどが記されているに過ぎません。 この楽譜をCherryが読み取り、指揮者となって指示を与えるわけですが、演奏者がいないと音が鳴りません。演奏者に当たるのが「MIDI音源」と呼ばれるものです。途中の説明を大幅に省略するので厳密には誤りがありますが、このMIDI音源には16人の演奏者がいます。この演奏者を「パート」と呼びます。つまり、指揮者は16人のパートに対して、「あなたはピアノ担当です。あなたはトランペット…。」のように演奏楽器を指定し、それからMIDIファイル楽譜の記述に従って演奏命令を与えるのです。 実は、MIDI音源によって(MIDI音源の製造会社の規格やモデルによって)、演奏者の挙動や用意されている楽器の種類が違います。同じ楽器名であっても音源が変われば音色も変わります。なので、「音が出ません」とだけ症状を報告されても、どういう環境(どういう音源)で聴いているのかが分からないと正確なことは答えられないのです。 そういう事情は度外視して<質問1>の音が出ない原因の可能性を考えてみるに、同時発音数の不足が思い当たります。16人の演奏者が同時に鳴らせる音数には限りがあります。例えば同時発音数が16だったとすると、16人分賄えるように思えますが、ピアノを両手で弾けば10発音を消費します。ギターの6つの弦を掻き鳴らせば6発音です。もうこの時点で他の演奏者は音を出せなくなってしまいます。もし、ピアノとギターが音を鳴らす前に鳴っている音があった場合は、発音数が足りなくなった時点で音が止まってしまいます。ソフトウェア音源の場合は、同時発音数を設定できる場合があるので、確認してみてください。 もう一つ考えられるのが、その前に再生したMIDIファイルの情報が残っていることです。MIDIには「ボリューム」という情報があって、演奏者16人にはそれぞれマイクが立っていて、それで音を広い、指揮者がミキサーでボリュームのバランスを調整してリスナーに届けてくれます。指揮者が徐々にミキサーのボリュームを絞れば、いわゆる「フェードアウト」になります。で、フェードアウトして曲が終了を迎えると、ミキサーのボリュームは当然ゼロですよね。次の曲を演奏するとき、ミキサーのボリュームを元に戻すことを忘れていると、演奏が行われても音は聞こえません。こういう失敗を防ぐために、MIDIファイルの頭にボリュームや定位、音程、楽器名などを初期化する情報を入れておくべきなのですが、それらの情報が入っておらず、前の演奏情報を引きずっているのかもしれません。 <質問2>は、この「引きずり」が原因だと思います。MIDIにはピッチベンドという、音程を変化させる情報があります。ピアノはドとド#の間の音は出せませんが、ピッチベンドを使うと、微妙な音程の揺れを表現できるのです。ギターのチョーキングやサックスのしゃくり上げ奏法のシミュレートによく使います。ピッチベンドで音程をずらしたまま曲が終了し、次の曲を再生する際に初期化されないと、ピッチベンドで音程がずれたまま再生され気持ち悪いことになります。ピッチベンドの他にキーシフトというものもありますが、これはあまり使われません(と思う)。 <質問3>の原因として、全パートの出力チャンネル番号が同じになっている、ということも考えられますが、可能性は低いと思います。チャンネル番号とは、「何番目の演奏者に演奏命令を伝えるか」という番号のことで、例えば、1と2パートの出力チャンネルを1にしておくと、両パートの演奏命令は演奏者1に渡されます。演奏者2には何も渡されません。もし、1~16パートの出力チャンネルが1になっていて、演奏者1の担当楽器がピアノの場合は、ピアノの音しか出てこなくなります。でも、こんな設定をするMIDI制作者はまずいませんので、可能性は低いです。 trackさんが使用されているMIDI音源には、音源の状態を把握できる画面などはありませんか? これがあると、音源にCherryからの情報が届いているのかどうかわかるんですが。 長文、失礼しました。

track
質問者

お礼

回答ありがとうございます。 分かりやすい説明でなんとなくですが事情が分かりました。 発音数ですか…。ゲームではそういうことがあるのは知っています。効果音でBGMが途切れるとかそういうのと同じことですよね? 音量は、cherry上で視覚的にはちゃんと100以上などになってました。 最初に開いても聞こえない場合があります。 ソロ演奏でも無理でした。 つまり、閉じたときに前の情報がリセットされていないということですね。 そのピッチベンドですが、cherry上で再生していると視覚的に分かる赤いバー?ですよね。 ファイルを閉じて開くとちゃんと0の値になってますが…。 同じチャンネルというのはもしかしてこういうことですか? あるmidiをcherryで開くと1パートしかなく、再生すると変に聞こえ、音色番号もコロコロ変わり、ついにはおかしくなる…ということがありました。 この状態で閉じて(保存してません)、そのmidiをメディアプレイヤーで再生するとピアノ音になっていたということがありました。元々はちゃんと聞けました。 <音源> パソコンを買った状態から音源に関してはいじっていません。 最初から搭載されているGS音源です。 音源の状態を把握できる画面とは例えば何ですか? 長々とすみません…。

関連するQ&A