«前の日記(2020年12月01日) 最新 次の日記(2020年12月08日)» 編集

一往確認日記


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はきっと効果音を狙ったコマンドなんですよね。

Image from Gyazo

ということで早々に諦めて、関連ということで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

つづく

Amazon | 【国内正規品】 ROLAND ローランド JU-06A JUNO-106+JUNO-60 がBoutique シリーズで復活 JU-06A アナログモデリングシンセ | シンセサイザー | 楽器