7/11日記 ===== プログラム ===== * 進捗。 - ファイル読み込み(最初は同期、可能なら非同期読み込み)\\ 完了。ファイルのセーブ状況検知・UI改善予定 - Miniscriptプログラムのコンパイル\\ 完了 - 組込み関数の追加\\ 完了。今後拡張予定。 - コンパイルしたデータとサウンドの譜面を紐づける実装\\ MIDI出力の制御や譜面読み込みが未済。 - ADSR、フィルタの実装、加えてエフェクトの実装\\ 未済 ---- * MIDI用の別スレッドを動かしてみたところ、問題なく動いてる。 * https://x.com/__machia__/status/1811163277365240186 * 高精度タイマーでスレッド内の間隔秒数を計測できるようにした。 * http://s170199.ppp.asahi-net.or.jp/tech/cpp/timeMeasurement.html * 実は以前ArduinoでMIDIシーケンサを作っていたんだけど、そのときは割り込み処理でループを流して、タイマーでタイミングを計測して出力してた。 * Arduinoの時と同じ作りにできるのであれば、開発難易度はだいぶ下がる。 * スレッドを作ったままケアせずアプリ終了するとメモリリークが発生するので、終了時にフラグを立ててきれいに終わるのと、join関数でスレッド終了を待つようにしておけば問題はなさそう。思ったよりもうまく動いてる。 * 最初再生時に接続命令を入れてデフォルト接続させたため、何故か本体のGM音源しか鳴らない状態だったけど、これも解決。 ---- * MIDI入出力について自分で書くのでもいいんだけど、せっかく便利なライブラリがあるんだからそっち使うよ・・・ * と思ったら利用中の各種ライブラリの衝突によっていくつか使えないことが判明。 * 仕方ないので使えそうなやつだけ使うことにした。 * 大体1時間ほどの試行錯誤。 ---- * 動的にデバイスを検出して、選択できるようにしてみた。これならMIDI出力を変えたりするのも便利かなと。 * https://x.com/__machia__/status/1811330649891979717 ---- * imguiのコンボボックス * https://github.com/ocornut/imgui/issues/1658 * これすげえ便利 * https://pthom.github.io/imgui_manual_online/manual/imgui_manual.html * syoyoさんの記事参考にする * https://qiita.com/syoyo/items/f6c219f243c3527f6121 ===== PC/音楽 ===== * PC9821版のDesireが届いたので、音楽抽出してみる。 * 音楽を流してズッコけたw * どうもPC98のOPN版はPMD使っているんだけど、OPNA版(86)はD.O.のドライバを使っているためか、譜面は同じでも音色の表現がまったく違うものになっている。 * 雑音領域が好きなのもあって、譜面が同じでこうも違うのか、という味わいを楽しんでる。