
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
JSで読んだSMFをファミコン風音源でとりあえず鳴らす - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
JSで読んだSMFをファミコン風音源でとりあえず鳴らす - Qiita
これの続きです 実時間変換 まず各イベントのデルタタイムを実時間に変換する 基本的に 60000000/分解能... これの続きです 実時間変換 まず各イベントのデルタタイムを実時間に変換する 基本的に 60000000/分解能/テンポ*デルタタイム積算 テンポは途中で変更が入る 個人的に悩んだのは例えばノートオンからノートオフまでの間に別トラックでテンポ変更が入った場合のテンポの扱い 自明といえば自明だがもともとmidiはリアルタイムで動くものなのでノートオンからテンポ変更までとテンポ変更からノートオフまで別のテンポで計算する必要がある気がした 実装としては一度すべてのトラックでデルタタイム(相対的なtick)から絶対的なtickに変換してトラックを結合してソートしてから相対的なtickに戻してテンポを考慮して積算していくような感じ できたものがこれ //let w=smfin(blob); //トラックを結合して絶対時間に変換 const smfuni=w=>w.tracks .flatMap((x,