独自のMIDIツール開発記 #5「stringからmidi音符変換機能」

2023年9月7日

Javascript MIDI プログラミング

eyecatch midiシステム開発、仕様に行き詰まるポイントが見えてきました。 それは、自分があまりmidiソフトに精通していないがために、通常の音楽制作で、音符をどのように配置してオペレーションするのが便利なのかが分からないという点です。 これは致命的なUI不備に繋がりそうですね。

今回の機能追加ポイント

とりあえず、簡易な機能として、midi文字列を、音符表示をリアルタイムにする機能について搭載してみました。 abc(ラシド)を配置してみました。 つながる音階になるには、オクターブがabは4、cは5なので、文字列には、O4AB O5Cという風に記述しています。 ちゃんと、画面にも、音符が連なっているのがわかります。 これを文字列を書き込むだけで、自動的に音符表示がされるので、見た目的にわかりやすいという程度の機能です。

和音機能

地味に難しかった機能として、和音(音を同時に鳴らす)機能を密かに搭載してみました。 同時に音が鳴らせることで、単音のメロディからめちゃくちゃ複雑な音楽を再生することが可能になりました。 仕組みとしては、[CEG](ドミソ和音)のように、ブラケットで書く配列のように記述することで、ブラケット内の音を同時に鳴らすという仕様にしてみました。 まあまあわかりやすいと思っているんですが、このデメリットとしては、同じ和音は、同じテンポでしか書けないので、互い違いに音を鳴らすという処理の場合は、共通部分のみブラケット記載して、音が切り替わる時に、ブラケットを切り替える必要があるんですね。 この場合の文字列は、次のようになります。 [O4CE][O4EG] まあ、文字列は音符からの変換された値であればいいので、文字列の見た目は正直どうでもいいので、技術的に和音が実現できたかどうかがポイントと考えると正解と考えて良いかもしれません。 ※正直他にいい方法が思い浮かびませんでした・・・

次回予告

というわけで、次回は、音符から文字列を作る処理を作ってみたいと思います。 まだまだ機能が足りていないんですが、もう少しでファイナルベータという感じです。

不足機能一覧

・音符 to midi文字列変換機能 ・音符のサイズ(テンポ)変更機能(音の長さを変える) ・独自midiファイルの出力機能 ・独自midiファイルの入力機能 ・全体テンポ切り替え機能

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。