Roon Extentionを使ってみた

投稿者: | 8月 10, 2025

LM Studioでgpt-ossが動かせるようになったので早速使ってみた。どうやらメモリが32GBは要りそうな感じ。M4 MacBook Airは32GB RAM積んだので動くが、M2 MacBook Airは、24GBしか積んでいないので、LM Studioの対話形式では動かせるが、API経由だとリソースが足らないと出てしまう。Intel 第12世代のCore i7は、64GB RAM積んでいてAPI動作までできたが、いかんせんGPUが非力すぎるのでM4 MacBook Airとスピードが比較にならない。

RSSリーダーでみていると、今、秋葉原でIntel 第8、第9が安い値段の中古が出回っているが、AIのことを考えるとWindows 11が動く動かない時点でゴミだなぁと思う。また、Macでもやはり64GB RAMとか積んでいないと話にならないかもしれない。昔は仮想環境を建てるためにメモリを大量に積んだが、VMwareの買収の影響で手元に仮想環境はいらなくなったので、これからはAIのためにメモリを積んだマシンが必要になるか?

 

閑話休題

 

Roonの膨大な情報をAIで何かしたいと思ったのだが、まず、Roonの膨大の情報を取り出すために、RoonのExtentionを呼び出す必要があることが判明。

 

Extensionのインストール

注意点は、Roon Coreと同じL2に立てなければいけない。

自分の環境は、Windowsなので、Windowsローカルに建てる羽目に。Linuxにしておけばよかった。

Dockerとかで対応したかったが、Dockerや別サブネットだとL2が異なるので別セグメントになるので認識してくれない。

LinuxのRoon Coreだったら、git行以降でいいはず。

 

# Install Python 3.12 (adjust minor version if different on your machine) and node.js
winget install -e --id Python.Python.3.12
winget install --id OpenJS.NodeJS.LTS -e --source winget

# Allow local scripts to run (current user only)
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

git clone https://github.com/st0g1e/roon-extension-http-api
cd roon-extension-http-api
npm install
node server.js

 

以下にExtentionが表示されたらOK。初回はEnableにするおく必要がある。

 

ちなみに、再起動などをしたらnode server.jsを実行しておく必要がある。つまりターミナルも上げっぱなしにしないとダメ。

 

バイブコーディングで現在再生中の曲が取れるようになった。。。

(.venv) PS C:\RoonRAG> python .\ingest.py

* Zone: Desktop Hifiberry Digi2+ Pro 1F (state=playing)

* NowPlaying: Ariana Grande – supernatural [Eternal Sunshine]

Upserted 1 chunks into music-rag.

(.venv) PS C:\RoonRAG> python .\ingest.py

* Zone: Desktop Hifiberry Digi2+ Pro 1F (state=playing)

* NowPlaying: Anna Maria Jopek / Pat Metheny / Lyle Mays / Paweł Bzim Zarecki – Are You Going With Me? [Upojenie]

Upserted 1 chunks into music-rag.

(.venv) PS C:\RoonRAG> python .\ingest.py

* Zone: Desktop Hifiberry Digi2+ Pro 1F (state=playing)

* NowPlaying: Yuki Saito – 白い炎 [POETIC Live 1986]

Upserted 1 chunks into music-rag.

(.venv) PS C:\RoonRAG> python .\ingest.py

* Zone: Desktop Hifiberry Digi2+ Pro 1F (state=playing)

* NowPlaying: Ella Mai – Boo’d Up [Ready]

Upserted 1 chunks into music-rag.

(.venv) PS C:\RoonRAG> python .\ingest.py

* Zone: Desktop Hifiberry Digi2+ Pro 1F (state=playing)

* NowPlaying: Yellow Magic Orchestra – BEHIND THE MASK [YMO 1979 TRANS ATLANTIC TOUR LIVE ANTHOLOGY]

Upserted 1 chunks into music-rag.

(.venv) PS C:\RoonRAG> python .\ingest.py

* Zone: Desktop Hifiberry Digi2+ Pro 1F (state=playing)

* NowPlaying: Anderson Bruford Wakeman Howe – Brother of Mine: The Big Dream/Nothing Can Come Between Us/Long Lost Br [Anderson Bruford Wakeman Howe]

Upserted 1 chunks into music-rag.

 

これをRAGに入れて。。。となるんだが。よくよく考えたら、RoonのExtention使わなくてもLast.fmのAPIからコレ取れるんじゃないかと。。。自分は、Last.fmの課金ユーザだし。

 

export LF_USER=‘USER名’
export LF_API_KEY=‘APIキー’
curl -sG 'https://ws.audioscrobbler.com/2.0/‘ \
--data-urlencode 'method=user.getRecentTracks’ \
--data-urlencode "user=${LF_USER}” \
--data-urlencode "api_key=${LF_API_KEY}” \
--data-urlencode 'format=json’ \
  --data-urlencode 'limit=1'

うーん、時間を返して欲しいw

コメントを残す