\\\\ ٩( 'ω' )و ////

いろんな形がなかったりするものをこねてこねてこねまくります

#RubyMusicMixin2023 でVJをしてきました

2023年5月11日〜13日に長野県松本市で開催されたRubyKaigi 2023で併催されたpixiv主催のイベント、RubyMusicMixin 2023 でVJをしてきたので3年ぶりぐらいにブログってやつを書いています。ブログ書くのむずくない?

conference.pixiv.co.jp

togetter.com

当日はVJをするのがほぼ初めてだったんですが、いろんな人によかったよと言ってもらえて本当に嬉しかったです。ありがとうございました。

-- 2023/05/18 追記

いっしょにやってくれたゆーちくんもブログを書いてくれたので感謝の念をこめてリンクを置いておきます

yuchi51.hatenablog.com

-- 2023/05/18 追記おわり

初心者なのでもっとこうした方がいいみたいなところは大量にあるんですが、RubyMusicMixin 2023で自分がやったVJの裏側について簡単に書いていきたいと思います。

左側がVJをしてくれたゆーちくんの機材で右側が自分の機材

機材とか

映像を出す端末はM1 Proのメモリ32GB積んだMacbook Proです。4Kを2枚出すにはM1 Proにするしかなかったのでそうしています

映像を出すソフトウェアはResolume Arenaを使いました。去年のブラックフライデーに半額セールしていたので諭吉6人を溶かして錬成しています。普段は諭吉が12人さようならします、高いね。Resolumeには安いけどGroupとかプロジェクションマッピングの機能がないAvenueと全部盛りのArenaのエディションがあるんですが買うなら最初から全部ある方が良くね?となったので高い方を買いました、なんで?? (隣のゆーちくんはVDMXです。隣で見ててこれもいいなーってなったりした)

resolume.com

Macの前に置いてあるペカペカ光ってる板なんですが、これは会社の後輩からの借りたLaunchpad Xです。貸してくれてマジで感謝しています。ResolumeのMIDI inとoutを設定することでペカペカ光らせることができます。用途としてはストロボの制御だったり映像の上に載せるエフェクトの選択、BPMのtap・resyncとかを割り当てていました。

写真の下に見切れてるのがみんな大好きKORGのnanoKONTROL2です。これは松本に出発する10日の朝に届いて開封したての新品です。初めて使ったんですがそこそこ安いしめっちゃ軽くていいですね、みんなこれ使う理由がわかった気がする。エフェクトのつまみとか各レイヤーの透過率とかをスライダーでガチャガチャする用に使っています。

もう一人のVJのゆーちくんと交代するためのスイッチャーはRolandのV-1HDをレンタルしました。これがあるおかげでトイレに行けたり他の人と話せたりして良かったです。 proav.roland.com

「Aiobahn vs HoneyWorks - set you free × 可愛くてごめん」のmashupがかかったときには2台のMacから流したYouTubeにあるMVを半分ずつ混ぜたりして活躍しました。

どうやって映像を出していたか

基本的にはResolumeにBOOTHで買った動画素材を登録してぽちぽちしていました。

Resolumeのレイアウト

一番下にOBSから送られてくるNDIのレイヤー、ベースとなる素材のレイヤー3列、上に載せるトランジションエフェクトのレイヤー3列、ロゴとストロボ用のレイヤーが各1列の配置で運用していました。実際はトランジションエフェクトをほぼ使わなかったりしたんで次は減らしてもいいかもですね…

レイヤー構成

ロゴとストロボ部分のレイヤー

Resolumeは基本Clip(各素材のこと)を押したらずっと流れ続けるんですが、ストロボに関しては1拍ごとに切り替えたいみたいな意図があったのでClipを選択している間だけ流れるようにToggle StyleをPianoに変更したのちLaunchpad Xの上の列あたりに割り当ててビカビカさせたりしていました。

PVなどのポン出し

DJからセトリを共有してもらっていないので、当日どんな曲が流れるか全くわかりませんでした。そのため事前にYouTubeから映像を落としてきてDXV*1に変換するのは無理なため、その場でYouTubeを再生し、その映像を直接Resolumeに流す方式を採用しました。Resolumeではデフォルトでwindow captureの機能がない*2のでOBSを介してNDIでResolumeに送るようにして再生するようにしました。今回はやっていないんですが、NDIも普通のvideo sourceと同じなのでRGB ShiftでサイケぽくしたりHue Rotateで色を変えたりできます。

YouTubeにあるGOLDFINGER '99のライブ映像にRubyMusicMixinのロゴを重ね合わせたりした

反省点とか次はこうしたいな、みたいなの

今回VJ卓がソファーとローテーブルだったこともあってか姿勢が常にやばい状態でVJをしていたので、シンプルに腰をやりました。4日経っても痛いです。流石につらかったのでその場にあったティッシュケースをMacの下に噛ませてなんとか高さを稼いだんですが、それでもしんどいのでちゃんとしたスタンドを買おうと思います。

最後の方はPVのポン出しが半分イントロクイズになってて、なんだっけこれ〜〜〜〜!!!ってゆーちくんや周りにいた人とずっと言ってたので次はBeat Link Triggerとか使って常に次の曲を手元に出しておきたい、最後の方MOGRAみたいにDJ卓にカンニングしに行ってたの大変だった。 それとYouTubeの動画と音声合わせるのめちゃ大変すぎるので誰かsmpteのタイムコード受け取ってyoutubeのシークバー同期するツール作ってくれ〜〜〜〜〜

最後に

会場の配置上、DJの後ろにスクリーンを配置できなかったのでVJを頑張っても見てくれる人が少なかったのがちょっと悲しかったけど、ちゃんと映像ではしゃぎまくっていた人もいて見ててめちゃ楽しかったです。最後に前で挨拶できたのも良かったですね。

VJやってる時にいろんな人が飲み物を持ってきてくれて嬉しかったです。ありがとうございました。一緒にVJやってくれたゆーちくん本当にありがとう。隣で見てたけどめちゃかっこよかったです。

急にVJやる!って言い出したのにうまいこと調整してくれた運営の方々ありがとうございました。めちゃ楽しかったので沖縄でもVJやります。よろしくお願いします。

*1:Resolumeが作ったGPUを最大限使うようにしたビデオコーデック。ファイルサイズが3倍ぐらいになるが処理がめちゃかるになる https://resolume.com/support/ja/rendering-to-dxv

*2:VDMXだとwindow captureができるらしい、いいな〜〜

preztoのExternal Modulesを使ってdotfilesを綺麗に保つ

prezto使ってますか。軽くていい感じに module が揃っていて最高ですね。

ところで prezto で自分で魔改造したカスタムプロンプトを使っている方はどうやって適用しているでしょうか。 更新なんかしないから zip で落としてきて modules の prompt フォルダに突っ込んで終わりの人や、submodule にしてシンボリックリンクを貼ったりするでしょうか。

更新なんかせんわ〜って人はいいでしょうが、メンテナンス性を考えてせっかく更新できるように submodule にしたのに unstaged changes に自分の追加したファイルが残っていたり、更新したらシンボリックリンクが消えて貼り直しみたいなことが多くあると思います。

そこで、prezto の機能であるExternal Modulesを使って自分が追加したいプロンプトを module 化してしまうことで、prezto 本体と疎結合にすることができメンテナンス性が増します。

今回はプロンプトの分離を例にとりますが、iterm2 の拡張など、様々な拡張機能を自分で作ることもできます。

続きを読む

Prometheusとdcgm-exporterを使ってGPUの監視をする

Prometheus を使うとなったとき、 node-exporter を使ってマシンの CPU 使用率やメモリの使用量を監視すると思います。 しかし、GPU の監視をしようとしたとき、node-exporter だけでは GPU のメトリクスを取ることができません。 そこで NVIDIA/gpu-monitoring-tools にある dcgm-exporter という exporter を使うことで GPU のメトリクスを取ることができます。

dcgm-exporter は何をしているのか

dcgm-exporter 自身は NVIDIA が公開している Data Center GPU Manager(DCGM) というデータセンター向けの GPU 管理ツールを用いて GPU のメトリクスを取得しています。そのデータを Shell Script で node-exporter の Textfile Collector にメトリクスを渡している仕組みです。

インストール

(ここは基本的にNVIDIA/gpu-monitoring-toolsの README と同じことが書いてあります)

dcgm-exporter は systemd と Docker Image (nvidia/dcgm-exporter)が提供されています。

dcgm-exporter を使うには systemd と Docker の両方の場合で NVIDIA Driver のバージョン 384 以上を先にインストールしておく必要があります。

README には NVIDIA Tesla drivers と書いてありますが GeForce でも使えることを確認しています。ただし、EEC メモリなどに対応してないため一部のメトリクスは取得できません。

続きを読む

Ubuntu 16.04にNVIDIAドライバをインストールしようとしたらハマった話

研究室にある深層学習マシンのNVIDIAドライバがおかしくなったので再インストールしたんですが、その時にどハマりしたので書いておきます。

先に結論

結論から言うとインストールCDで入るカーネルが古すぎることが原因でしたので、カーネルを4.13.0に上げることでうまく動きました

ハマった時の状況

まず、ハマった時の構成を以下に記しておきます

この状態で

sudo add-apt-repository ppa:graphics-drivers/ppa

をして現時点(2018/06/26)のLatest Long Lived Branchである nvidia-390 をインストールします

sudo apt update
# 今回はサーバ用途として使用するのでGUI環境はいらない
sudo apt install -y nvidia-390 --no-install-recommends

そうすると nvidia-smi コマンドが使えるはずですが以下のようなメッセージが出て使えません

$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

インストールできたーと思ったらこれです。悲しいですね…

ちなみに nvidia-384 にしてみても変わらなかったので何が正解なのかこの時点ではわかりませんでした

続きを読む

LEGO Mindstorms NXTをMacでEclipseを使わずごにょる

授業で LEGO Mindstorms EV3 ではなく NXT をいじることになりました。
授業的には Mac はできるかもしれないけどサポートはしないので Windows 使っとけって感じなんですが、仮想環境使いたくないマンなので Mac でゴリ押しました。

おおまかな構成としてはGitHub - j-selby/Rescue-2016: LejOS NXT implementation of the AU Junior Rescue challenge.を元に leJOS NXJ のツール郡を Gradle を使ってごにょるだけです。

ダウンロードしなきゃいけないもの

  • Java 6
  • NXT Fantom Driver
  • leJOS NXJ
  • Gradle

Java6

LEGO Mindstorms NXT64bit Java には対応していません。なので Apple のホームページから Java6 という名の遺産をダウンロードしてください

(あなたと Java 今すぐダウンロード)
ダウンロード - Java for OS X 2017-001

インストールが完了したら、32bit に対応した Java がインストールされているか確認するためターミナルで以下のコマンドを実行してみてください。

/usr/libexec/java_home -d32

実行すると以下のような感じになると思います。

$ /usr/libexec/java_home -d32
/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

実行しても何も出ない場合はインストールできてない可能性が高いのでもう一回インストールし直すかしましょう。

続きを読む