先日導入したMagentaは最初の数音を与えるとそれ以後を作曲するというAI作曲なのだが、その最初の数音の指定がMIDI形式というかいわゆるC4のドの音なら60という数値で表すし、音の長さは基本となる長さを16分音符の長さにしていてそれを続ける場合は-2、止める場合は-1と指定する。
一方俺がこれまで譜面の打ち込みで使っていたLilypondの形式は最初の高さを指定しておいて、その後cdefgabで相対的高さを指定し長さは4分音符ならc4というように指定する。
プログラマーとしては、これを変換するプログラムを作りたいと思ったが、考えただけで面倒になって手が付けられない。
Lilypondは入力の手間を省くために、前の音に近い方の音になるようになっている。cdefgabcなら最初のドに対して最後のドは1オクターブ高い音になる。そうじゃない絶対指定も出来るけど、これまでに入力したデータがもうそうなっているのでこれに対応するのも面倒である。
こういうのはエイヤっと変換テーブルを作って、前処理と後処理をよいしょっとくっつける力技プログラミングで作れて、そんなに頭を使ってスマートにやる必要はないという方針まではすぐに立てられたのだが、なんとも面倒でやる気が出ない。
と、ここで、LilypondはMIDI出力が出来るし、MagentaはMIDI入力が出来るのだから、変換プログラムは必要ないと気がついた。
作らなくて済むならそれに越したことはない。と思いつつ既に大雑把なプログラムの流れは頭の中にあるので、これを捨てるのもちょっともったいない気もする。でも実際に作るのは面倒だから作らないことにする。