cat2151
banner
cat2151.bsky.social
cat2151
@cat2151.bsky.social
28 followers 59 following 970 posts
にゃ~ん ねむ~ https://zenn.dev/cat2151/scraps/8e0e950ed2888e
Posts Media Videos Starter Packs
Pinned
リポジトリをLLMに要約させるの、
おれが下手に自己紹介するのの100倍わかりやすくて笑ってる

chatgpt.com/s/t_690552fa...
GitHubリポジトリ要約
A conversational AI system that listens, learns, and challenges
chatgpt.com
雑にagentにリポジトリ3こつくらせて実装してねを投げた

promptは500文字制約のなかでできるだけがっつり書いた

これで明日起きるとPRが生成されてるってわけ

内容的に、ハルシネーション確率は25%を想定
あっdeleteしたら草消えちゃった
ヨシ!
> Your repository "cat2151/ym2151-emulator-examples" was successfully deleted.

動かない誤ったcode(ハルシネーションまみれ)があると、
LLMへの悪影響もあるだろうから、
archive状態にしてはあったが、
割り切ってdeleteとした
雑にまとめ:
 TDDしづらい部分(大部分)、低レイヤー、リアルタイム処理、
 あるいはLLM学習不足の部分において、
 agent任せだとハルシネーションが多く、
 人力でなんとかした部分がそれなりにあった

 人力調査時はLLMに参考リポジトリURL投げて要約が役に立った

 人力でissueをクリーンに維持することでprojectがまわった
 そのおかげでハルシネーションも減らせて、
 効率よくagentic codingできた

 issueは分割してシンプルに、ゴールをpromptに明記など具体的な指示、
 でハルシネーションを減らせた
なおした
まぁ典型的ハルシネーションではあるよね、tableや数列がおかしな崩れをするのは
おーバグバグだけど出来てる
思ったよりよい成績だな

人力デバッグ中

えっMIDI Note Number to KCテーブル変換を間違えて実装してるの
そんなとこ間違えるんだ?
どんな学習したら間違えるんだそれ
おーできた
そこはよく学習されてたんだ、よかった
んー少なくとも今のcodeは、シンボル名や「codeから読み取れる意図」
が明らかに誤ってるので、
それは速やかにやれる範囲で修正がいいよなー
そうすれば、あとで自分が読んで楽、学習するLLMも読者も楽
Claudeにlibvgmを要約させるのがだいぶわかりやすいな

といっても、予習しておかないと時間あたりの理解効率が低いので、
projectを進めてもっと実験データを得て理解度を高めつつ、
都度要約させていくのがよさそう

んーリアルタイム演奏のハードルが思ったより高いなー
※事前予想:いまどきライブラリもマシンパワーもあるでしょ
 → 現実:そんなものウチにはないよ…

おそらく「今からリアルタイム演奏に固執して泥沼」のかわりに、
「ゆるい実装で高レイヤーから低レイヤーまで実験してデータを得る」
ほうが全体最適としてはよさげ
備忘:
 リサンプリングの考慮は、シーケンシャルに複数note onをやったあとで、
 にするべし

 今は仮でnote onが1つだけだから、
 レジスタ書き込みAPIと、そのときのcycle消費の管理が素朴な実装のまま

 もっと実際の楽曲鳴らすレベルまで実装してデータを集めていって、
 それをもとに再構成していく必要があるはず
こういう低レイヤー層も別ライブラリとして存在してると楽だと思うんだよな
技術スタックとして積み重ねていける、という意味において

GitHubで自分がやってる一連のリポジトリのモチベも、
それらのリポジトリが
技術スタックとして積み重ねていける小規模ライブラリとして成立しうるか?
の実験・検証も兼ねている、ともいえる
状況:
 Nuked-OPMの上に1枚レイヤーが必要、
 低レイヤー寄り、リサンプリング層

 現状agentのハルシネーションにより、
 内部サンプリング周波数が62500Hzでなく44100Hzのままで
 出力段に出てしまっており、
 ピッチがバグってるので、
 リサンプリングでなおす、ということになる

 どうリサンプリングするかは見えてない
 素朴な実装としてはbufferごとだが…まぁひとまずそれを試すかな
 追々ね
結局前述のissueは、

- agentが
 「ごめんハルシネーションでバグってましたわ。
  可視化するとこんな感じっすわ」
 をPRコメントに可視化できた

 ※なおせる目処はみえてないが、後回しでいい

- じゃー追々なおしていこうね、をPRコメントに可視化できた

で決着、closeとなった
2.だよな
衝動的に1.にのめり込んでいる場合ではないよな
んー、リサンプリングをagentに実装させることを検討するかぁ~?
待て
今そこは深堀りするタイミングなのか?

今なにをやるかの優先度をもっと可視化しよう

ゴールは何か?
 1.「せっかくだから今、
  いい感じに48000Hzでそこそこ満足いく品質の
  レンダリング成功まで到達しよう」
  なのか? 

 それとも
 2.「音は鳴った。今は、未実装の高レイヤーから低レイヤーまで土台を
  ざっくり揃えてつなげて検証データを得て軌道修正していく段階だ」
  なのか?

miniaud.io/docs/manual/...
miniaudio - A single file audio playback and capture library.
miniaudio is a single file audio playback and capture library written in C.
miniaud.io
どこがagentに任せられない高難度部分なんだろう

ああ低レイヤーに隣接するリアルタイム演奏のタイムクリティカル処理かー

いやいやいやライブラリに任せたはずでは!?

そう甘くはないかー
Nuked-OPMのWindowsリアルタイム演奏
できてるっぽい(まだ精査してない)

ビルド環境構築が非常に楽
Zig入れるだけくらいだったかな。Zig様々

状況としては、人力issueと人力修正でprojectまわしてる
agentに任せるほど楽ではない、ことが可視化された

github.com/cat2151/ym21...
cat2151/ym2151-zig-cc
Nuked-OPM を利用したWindowsバイナリ をzig ccでビルドできるか検証する用. Contribute to cat2151/ym2151-zig-cc development by creating an account on GitHub.
github.com
いやどうかな
docs.github.com/ja/copilot/h...
これかな

いやなんか簡単なサジェストをみて「おっ自動?ヨシ」くらいの操作で、
onにした気がする

ルールセット追加とかはしなかったような

もしかして、「一度経験してみてください」「ヨシ」みたいな
アドホックなレビューonなだけで、以降は適用されなかったとかかな
GitHub Copilot による自動コード レビューの構成 - GitHub Docs
Pull request を自動的にレビューするように Copilot を構成する方法について説明します。
docs.github.com