一往確認日記 |
2020年12月02日 [長年日記]
_ ENVELOPE - その4 (MIDI編)
前回ENVELOPE - その3の続きです。
何回も出てますが、このコマンドで鳴る音をMIDIデータに変換して鳴らしてみたいと思いました。
ENVELOPE 2,1,2,-2,2,10,20,10,1,0,0,-1,100,100
SOUND 1,2,100,100
が、ここではたと気付きました。
ENVELOPEでは半音を4分割しているんです。
下表では音階しか書いてませんが、その間隔が4になっているのにようやく気付きました。
ガーン、MIDIで鳴らすことなんてできません。
ENVELOPEはきっと効果音を狙ったコマンドなんですよね。
ということで早々に諦めて、関連ということでMIDIファイルを作るには?に変えてお送りします。
MIDIの知識はありますがスタンダードMIDIファイルについては全く知識を持ち合わせていません。
Wikiを見るとOpcode社のフォーマットが元になっているんですね。Visionは使ってたことがあるので、あのファイル(って覚えてませんが)がスタンダードMIDIファイルに発展していたんですね。
OMSって何?とか思ったりしたもんでした。
RubyでスタンダードMIDIファイルを扱うgemを探したところ、midilibが検索で見つかりました。
GitHub - jimm/midilib: Pure Ruby MIDI file and event manipulation library
とりあえずexampleを確認してみます。 from_scratch.rbというのが参考になりそうです。
midilib/from_scratch.rb at main · jimm/midilib · GitHub
つづく