音価を維持して和音をペーストする MuseScore のプラグイン を書いてみた。(Claude Codeが書いた)

ギターの譜面を作ろうと思うと同じリズムでコードだけ違うのをいっぱい入力する必要がでてくる。MuseScore 標準だとコピペがかなり不自由で嫌気がさしていた。普通に考えて、コピーしているものをペースト先の音価を維持して置き換える機能があっていいと思うんだけど (もしかしてある?)

使いかた

プラグインを起動するとコピーとペーストのボタンが出るので、コピー元の和音を1つ選択してコピーボタンを押し、ペーストしたい先の範囲を指定してペーストボタンを押す。すると音価は維持されたまま、指定した範囲の和音が置き換わる。

あーだこーだ

  • プラグインからはクリップボードを触れないので、こういうやりかたにするしかない
  • MuseScore のプラグインシステムはかなりひどい (ずっと改修中になっているが)
    • console.log がサンプルに書かれているが、どこにも書かれない
    • C:\Users\cho45\AppData\Local\MuseScore\MuseScore4\logs に書かれそうだと思うだろ? 書かれないんだなこれが。
    • エラーが出ても無言
    • どのリファレンスが最新なのかわからない
  1. トップ
  2. tech
  3. 音価を維持して和音をペーストする MuseScore のプラグイン

久しぶり VPS の top を眺めていたら systemd-journald が9%食っていることに気付いた。2GB のマシンなのに。

どうやら SystemMaxFileSize を小さくするとメモリ消費量も減るらしい。ので以下のように設定した。

[Journal]
SystemMaxFileSize=32M
SystemMaxFiles=100
systemctl restart systemd-journald

ディスクの消費

/var/log/journal はあり、こちらでディスクを 4GB ほど消費している。

$ ls -altrh /var/log/journal/*/
-rw-r-----+ 1 root systemd-journal 128M Apr 29 13:41 'system@...68e.journal'
...

1ファイルあたり128MBが32個ほどあった。SystemMaxUse のデフォルト値はややこしいので man 確認する必要がある。自分の環境の場合、ディスクが48GBで、デフォルトの最大は10%の4.8GB、ただし 4GB が上限。

ファイルの数 (SystemMaxFileSize) は SystemMaxUse の 1/8 らしいので過去ログは7件しかないはずだけど、なんかいっぱいあって謎。しらべてもよく挙動がわからんかった

ref

  1. トップ
  2. tech
  3. systemd-journald がメモリ食いすぎ

Text-Xatena というはてな記法に近い記法をパースしてフォーマットする Perl のモジュールがある (ややこしい言いかただが……)。この日記も Text-Xatena + 拡張インライン記法でフォーマットされている。

golang にも同様のものが欲しくなったので作ってみることにした。

一応もとの Text-Xatena 同様、HatenaCompatible モードというのをつけてある

GOOS=js GOARCH=wasm によるデモページ

https://cho45.github.io/xatena-go/

golang は wasm に直接出力できるので、これでデモページを作ってみた。.wasm ファイルが 6MB超あるけど……

実装

Text-Xatena のほぼ単純移植として実装する方針で、Copilot (GPT 4.1) と共にやってみたけどまぁまぁ面倒だった。

元実装があり、あまりデザインを変えずに言語を変更するという感じなので、AIでもできるだろと思ったけど、案外うまくいかず、結構いちいち指示やら手を入れることが必要になってしまった。とはいえ自分で書くよりは早くできたと思う。

ある程度できてくれば複数ファイルにまたがる変更もやってくれるけど、微妙に修正漏れがあったりして面倒。

テストの雛形をつくったあと、Perl のテストファイルをコピペして、それぞれ分けてテストファイルつくるように指示したけど、テストの中身を適当に書きかえられてひどかった。

コンテキストを小さくするために、先に全体の要約とか実装方針とかをまとめたほうがよかったのかも…… 自分は元コードを理解してるから、元コードの要約をさせる発想がなかったのが敗因かもしれない。

  1. トップ
  2. tech
  3. xatena-go (はてな記法のような記法フォーマットパーサー) を作った

IT技術者なのに情報処理系の試験はまったく受けずに生きてきてしまった。アマチュア無線技士第二種電気工事士とは違って法的に別にできることが増えるわけではなく特に受けるモチベがなかったからだけど、諸事情によりITパスポート試験は受けてみることにした。

毎週試験が受けれるみたい。過去問を1週間で1450問ほど解いた。

出題範囲が広い割に問題数は100しかないから、問題運で結構ブレそう。結果はテクノロジがストラテジより低くなってしまった。個別の正誤判定はないから何ミスったかはわからない。

なんかよく意図がわからない問題があった。あとは普通に知らない言葉の意味を聞かれる問題があった。ので、そのあたりを順当に間違えてそう……

定義が問題文に書いてある(ほぼ無知識で回答できる)やつと、聞かれてるものはわからないけど消去法で1択のものを落とさないように気をつけた。知ってないと答えようがない問題はあきらめた……

  1. トップ
  2. tech
  3. ITパスポート試験を受けてきた