プロが教えるわが家の防犯対策術!

今現在visual studio2019のc++において、AとBという二つのmidiファイルがあり、Aの曲が半分流れた後に、Bの曲の半分より後ろの部分がつながるというのを想定した、プログラミングコードを書こうとしているのですが、調べてみるとソフトでつなげるという内容の話がほとんどでコードについてのっているものを見つけられませんでしたので、よろしければどなたかこの作業ができるプログラムのコードを知っていらっしゃる方がいればお教えいただけると幸いです。

A 回答 (1件)

MIDI ファイルの構造は公開されていますので、これを参考にしてプログラムから内容を読みとってください。


https://www.midi.org/specifications/file-format- …

全てを実装するのが面倒ならば、既存ライブラリを活用するのもよいでしょう。
https://github.com/search?q=MIDI+File

プログラムの内容としては、以下のような処理となります

ファイル C を新規作成
ファイル A の演奏時間を測り、半分の時刻を求める
ファイル B の演奏時間を測り、半分の時刻を求める
トラックごとに以下を繰り返し
+ ファイル A から半分時刻までのノートを読み取り、そのまま C へ出力
+ 半分時刻にて発音中ノートがあれば、消音ノートを追加で C へ出力
+ ファイル B から半分時刻からのノートを読み取り、そのまま C へ出力
ファイル C を書き込み保存
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!