TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

2026-01-01から1年間の記事一覧

ピッチ検出モデルのSwiftF0を試す(その3:疑似ラベリング)

前回、SwiftF0の推論処理をC++で実装してチューナーアプリに組み込んでみたが、誤差が20cent近くあることが分かった。チューナー用途では、20centの誤差は許容できないため、ピッチ推定のアルゴリズムは既存のものを使い、決定木の機械学習モデルの訓練デー…

ピッチ検出モデルのSwiftF0を試す(その2:Windows MLでリアルタイム推論)

前回、Pythonで試したSwiftF0の推論を、WindowsのC++プログラムでリアルタイムに行う方法を検討した。 SwiftF0のモデル SwiftF0のモデルは、ONNXで公開されているので、それをそのまま使うことを検討する。Netronで、ONNXモデルを確認すると、STFTもONNXで処…

ピッチ検出モデルのSwiftF0を試す

先日、Windowsのチューナーアプリを開発してMicrosoft Storeで公開した。ピッチ検出のアルゴリズムは、ボーカル音程モニターと同じアルゴリズムを使用したが、特定の弦でオクターブエラーが発生することが分かった。精度改善のため、ギターとベースで様々な…

【Windowsアプリ】Pitch Tuner(ピッチチューナー)

作成中の本物のギターを使う音ゲーで、弦がチューニングされていないと誤判定が増えるため、チューナー機能を搭載したい。チューナーの処理は独立しているので、先に単独のチューナーアプリを作ることにした。 実装 チューナーのピッチ推定アルゴリズムは、…

【バイブコーディング】ギターの音ゲーを作る(メトロノーム)

前回は、音声入力とリアルタイム音程/和音解析を実装した。今回は、メトロノームを実装する。 メトロノーム 録音時と、再生時にメトロノームを鳴らす。録音の開始時は、1小節分メトロノームを鳴らしてから開始するカウントインオプションを設ける。 メトロ…

【バイブコーディング】ギターの音ゲーを作る(音声入力とリアルタイム和音解析)

前回、タブ譜からギター奏法に対応したピアノロールを描画するところまで実装した。今回は、音声入力とリアルタイムに和音を解析する処理を実装する。 検討事項 音声入力 WASAPI共有モードのイベント駆動で入力する。 サンプリングレートは録音再生時にリサ…

【バイブコーディング】ギターの音ゲーを作る(ピアノロール)

前回、ギターの音ゲーのタブ譜の描画まで実装した。今回は、ピアノロールを実装する。 ピアノロール ピアノロールは、音符(ノート)を、縦軸を音階(12音階)、横軸を時間として表したものである。 縦軸はラベルの代わりに、ピアノ鍵盤を縦に表示することで、音…

【バイブコーディング】ギターの音ゲーを作る(タブ譜の描画)

先日、タブ譜(.gp5)を読み込んで、MIDIを再生するプログラムができたので、今回はタブ譜の描画を行う処理を作る。ゴールは、本物のギターから音を入力して、採点をする音ゲーを目指している。採点部分に関しては、以前にCQT+NNLSでリアルタイムに和音解析す…

【バイブコーディング】Guitar Pro 5 (.gp5)フォーマットをKaitai Structで定義する

ロックスミス2014というギターの音ゲーがあり、発売当初、結構遊んでいた。 本物のギターを使い、ギターフレットの抑える場所を示して、流れてくる目印に合わせて演奏するというゲームである。 音ゲーとしては、それで楽しめるのだが、曲を練習しようと思う…

【バイブコーディング】Codex + GPT-5.2-CodexでWinUI 3(C++/WinRT)を使ったテキストビューアを作る

Codex + GPT-5.2-Codexの組み合わせは、コーディング能力が以前より飛躍的に向上したという手応えがある。 GPT-5.2-Codexはコンテキスト圧縮が強化されており、比較的規模の大きなプロジェクトでも1回の指示でほぼ修正なく作成できるようになっている。そこ…

【メモ】Visual StudioでvcpkgでC++ライブラリを追加する方法

Visual Studio 2026のC++のプロジェクトで、vcpkgで公開されているC++のライブラリを追加する方法について記述する。Visual C++ 向けのビルド済みライブラリは NuGet で配布されている場合がある一方、ソースからのビルドが必要なライブラリは vcpkg で提供…