一往確認日記 |
2016年12月02日
_ Escalatorのラダー表記
今の所Escalatorはニーモニックで記述するので、自己保持回路はこの様に書きます。
LD X0
OR Y0
ANI X1
ANI Y1
OUT Y0
表現方法ということで、下の様なことも考えられます。
記号的な表記
視覚的に分かりやすい様に接点やコイルを記号的に記述します。 接続が+がいいのか*が良いのかなど検討の余地はあります。
|X0|-+-|/X1|-|/Y1|---(Y0)
|Y0|-+
論理式表記
更に論理式で書くこともできます。 反転が/がいいのか~が良いのかというのもあります。 SET RSTなどをどう表現するかもあります。
(X0+Y0)*/X1*/Y1=Y0
---
分かりやすいのと自由度があるという面で記号的な表記が良いと思っていますがおいおいどうするか考えたいと思います。
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
つづく