40歳になってた

2022年10月3日 に 40 歳になった。
で、その前日の10月2日に、久々に DJ しないかとお声がけいただき、青山蜂で行われた atrip ってパーティーで DJ をさせてもらった。コロナの色々があったり、コロナなんてなくても子育てがあるので、なかなか外出もままならない状況がずーっと続いているなかで、 DJ をして欲しいと頼まれた、なんていうのは自分にとっては絶好の外出の口実だった。
で、 10月2日 23時に、 DJ とパーティーが終わった後、遊びに来ていた友人とそこからさらに一緒に飲み屋に行って日付が変わる40歳になる瞬間を一緒に過ごしてもらった。
全員でスマホに表示した時計を覗き込んで日付が変わったタイミングで祝ってもらった。少し経ってから手に持って、写真をとってもらった。

もうここ数年、自分の誕生日であっても、子供から見て親の誕生日がどうあるべきかみたいなことをずーっと考えてしまってそればっかりになってしまっていた。なので、そういうのなしに単純に祝ってもらえる事と、祝ってくれる人がいるということがとてもありがたかった。
23時に渋谷駅近くでのパーティーが終わった後、更に飲みに行って戸塚の家に帰れるわけもなく、その日はまだ新婚ほやほやの友人宅に転がり込ませてもらった。友人宅の生活は、自分という普段は居ない人間がいるわけだから、もちろんいつも通りというわけではないだろうけど、その生活の一端を見られたのが面白かった。

自宅のTV録画サーバ兼NASを新調した

自宅のTV録画サーバ兼NASを新調した。
録画サーバとNASを前に作ったのは 8 年前で、ほぼ8年間稼働しっぱなしだったので、さすがに古くなってきたと思って新調した。
今年始めにメインのデスクトップPCを組んだので、今年に入ってから2台目の自作PCとなった。まぁ、そういうこともある。

ハードウェア構成

ハードウェア構成はこんな感じ。ケースとケースファンは流用。

項目型番とか大体の値段
マザーボードASRock H610M-HDV/M.2\11000 くらい
CPUintel Celeron G6900(Alder Lake)\7000 くらい
メモリADATA AX4U320088G16A-DCBK20 8GBの2枚セット\7300 くらい
システム用 m.2 SSDWestern Digital WDS480G2G0C 480GB\6300 くらい
電源Scythe CORE-TFX275\3300 くらい
データ保存用 HDDSeagate ST8000DM004 8TB\15000 くらいを2台
合計\65000 くらい

データ保存用のHDD を除くと \35000 くらいで、既製品の NAS の箱と同じくらいの値段になったりするのだけど、メモリを16GB積めていてこれがキャッシュとしてきいてくれていい感じであってくれ、という気持ち。
でも家のネットワークが未だに 1GBit Ethernet なので結局こっちがネックになる感じはある。

CPU はAlder Lake世代で一番性能が低いものだけど、用途を考えれば十分だと思う。というか、シングル性能は i9-10900 と変わらないということらしくなんか未だに CPU は進化を続けているのだなぁと思う。
いろいろなことをしたくなって性能に不足を感じるようになってきても、多分 i3 くらいまでは載せ替えても電源の面でも熱の面でも問題は起きないと思う。

録画機能の選定

8年前は、chinachu というTV録画用のwebサービスを使って、環境を構築した。
今回も chinachu を使おうと考えていたのだけど、この8年の間に chinachu のテレビ録画ボードを操作するAPIを提供することを目的とした部分が Mirakurun として切り出され、 chinachu 自体にはこの API を操作するための Web UI が残されるという機能分割が行われたようだった。
で、その Web UI の方についても obsolete になるらしく、じゃあどうやって使えばいいのかと思ったんだけど、 Web UI の部分を置き換えるいくつかの代替品があるらしく、それと組み合わせて使うといった形になったらしい。

今回は、Web UI としては EPGStation というものを使うことにした。
EPGStation と chinachu はともに Docker 内で動くようになっており、両方をまとめて起動できる docker-compose 用のファイルも配布されていたので、これを使うことにした。

心残り

標準の状態では Quick Sync Video を使わずに、完全にソフトウェアでトランスコードするので、トランスコード時の CPU の負荷が高い。
Dockerfile 内で FFMpeg をコンパイルしているので、ここで必要なライブラリやコンパイルオプションの追加をすれば、 QSV を利用可能になる。でも、とりあえずソフトウェアエンコーディングでも性能が足りているようなので、後回しにすると決めた。

OS の選定

録画機能がDocker コンテナの中で動くということで、物理マシンに直接インストールする OS についての制限はなさそうだったので、長期的にちゃんとアップデートを行っていくことを念頭に置き、 arch linux をホストの OS として用いることにした。

NAS 機能

録画機能が docker-compose で管理されているので、NAS機能の方も docker-compose で管理することにした。
debian のベースに samba をインストールした Dockerfile を書いて、それを使った。
NAS 用のディスクは btrfs の RAID 1 でフォーマットした。1台壊れても大丈夫だし、容量足りなくなったら大きめのディスクを足せば良いだけのはず。

心残り

samba に対する書き込みを行っている際に、 docker-proxy というプロセスがそこそこ CPU を使っていることに気づいた。
このプロセスはコンテナの中と外の通信を仲介する役割であり、–userland-proxy=false オプションを docker daemon に与えるとこれを使わずに、iptables で代替の処理を処理を行うようになるようだ。多分、iptables でやったほうが軽くなるだろうとは思うのだけど、とりあえず性能面で今すぐ困る感じにはならなかったので、標準の状態でいいやと言うことにした。
今後、コンテナで大量の通信を行うような利用法を考えるときにはこのオプションについて真面目に検討しようと思う。

ARM64 な VM に サーバーの引っ越しをした

今あなたが見ているこの blog の html は ARM プロセッサ上の VM から送られてきているんだ。(唐突)

Oracle Cloud の ARM インスタンスの無料枠に引っ越した

というわけで、海外の VPS (vultr) に乗り換えてから2年くらい経って、なんだか大したことしてないのに結構高くついちゃってるのが気にかかっている状況が割と長く続いていたので、この blog を含む各種サービスを Oracle Cloud の ARM インスタンスの上に引っ越しました。

VM の上では、この blog であったり、ちょっとしたツールを雑に作るための nodered であったり、grafana や chronograf といった可視化ツールを docker-compose で管理して動かしています。この blog には大したアクセスはないし他のサービスは自分しか使っていなくて CPU の負荷は小さい一方、いろんなサービスを動かし続けて置く必要はあってメモリは割りと多く使う状況で、CPU弱くてもメモリがたくさんある、安く使える環境があったらいいなぁと思っていました。

そんな中、 Oracle Cloud では ARM の CPU を 4コア分、メモリは24GB 分無料で使えるぞということを聞きつけ、こりゃあいいと思って、思い切って移行しました。

もともと各種サービスはすべて docker-compose による管理を行っていたものの、 x86_64 で動かすことしか考えておらず、ちゃんと移行できるんだろうかというのがネックでしたが、サーバサイドの ARM64 も出てきてずいぶん時間が経ったせいか、使っていた docker のイメージについては cAdvisor 以外は ARM64 のイメージがあり、MySQL については新しいメジャーバージョンにしか ARM64 用のイメージがなくバージョンを移行する必要があったりもしましたが、おおよそつつがなく移行できました。

昔、docker とサーバーサイドの ARM64 が出て来つつあるのを、自分はほぼほぼ同じタイミングで認識しました。で、イメージが cpu のアーキテクチャにがっつりと依存する docker が流行ったので、docker のせいで ARM64 がサーバサイドで広く使われるようになるのは少し遠のいたようなきがするなぁと思ったりもしたのですが、それから結構経って、ARM64 でも docker がずいぶん普通に使えるようになったことが確認できました。
今や macbook さえ ARM64 な時代ですしね。そんなもんなのかもしれません。

そんなわけで、 ARM1コア 6GBメモリで機嫌よく動いています。
無料の範囲だ。本当にええんか。

今後の予定

引越し後も相変わらず docker-compose でサービスを管理しているのですが、まだARMが 3コア、メモリは18GB 残っていて、かつ k8s のマネージドサービス自体はこっちも無料で使える ので、残ったコアとメモリで k8s の素振りでもして慣れてきたあたりでまたそちらへ引っ越そうかなぁと思っています。
最近、仕事で k8s に触れる機会が増えてきたので、趣味と実益を兼ねてぼちぼちやっていきたいですねぇ。

オレンジスケール / 長瀬有花 が好きすぎるので語らせてくれ

2022年1月31日に、youtube で一本のミュージックビデオ、オレンジスケール – 長瀬有花 (Official Video) が公開されました。友人に勧められるがままに見てみたら随分好きになってしまい、何度も見返してすっかりハマってしまいました。

この曲がなんでそんなに好きなのか、自分にはどう聞こえているのかをすきたい放題書いて行こうと思います。

オレンジスケールという単語

この曲のタイトルである「オレンジスケール」は、検索しても広く知られた用例などはないようで一般的な名詞ではなく、一般的な名詞である「オレンジ」と「スケール」をつなげて作られた造語であるようです。

この曲において用いられる「スケール」の曖昧さ

この曲の歌詞には幾度となくスケールという単語が使われています。
一般的に、スケールといわれて最初に思いつくのは、物差し等の大きさや重さを測るための基準、あるいは計測のための道具、という人がほとんどだと思います。
この曲においても、1番のサビの歌詞の、傾く陽とそれによりできる夕焼けの中で伸びていく影という描写において、この意味を持って使われています。
また、2番のBメロにおいて自分と宇宙の大きさの対比においては、基準により計測されたものの大きさそのもの、すなわち「スケールが大きい」といった言い回しに近い意味で使われています。
上記の2つの用例を混ぜて用いることで、スケールという概念を異なる視点から見たり、あるいは、陽の傾きにより計測基準自体が伸び縮みするという描写により、なんとも言えない曖昧さが表現されていてすごく良いなと思います。

でも、歌を歌う女の子の視点から描かれたこの曲におけるスケールは、上記の意味だけにはとどまらないと考えます。

オレンジという色はブルーではない

先にも書いたように、「オレンジスケール」は造語です。
オレンジは、色の三原色である、赤、黃、青のうち、青を除く、赤と黄を混ぜて作られるものです。つまり、オレンジスケールというのは、青くはないスケール、ブルーではないスケールを意味していると考えます。

色の三原色

ブルースケールという単語

逆にブルースケールとは何であるかについて考えると、ブルースケールという単語そのものはないものの、これに似ているブルーススケールという音楽用語に自然とたどり着くことになります。
音楽用語としてのスケールとは、曲の中で使われる音名の集合です。例えば、ハ長調ないしイ短調は白鍵盤だけで構成され、黒鍵盤は使わないといったことは多くの方がご存知であると思います。
スケールは、曲全体の雰囲気に強く影響します。例えば、長調なら明るい雰囲気であり、短調なら暗い雰囲気であるとされています。
ブルーススケールは、正確な定義については調べていただければと思うのですが、簡単に説明すると、短調(ナチュラル・マイナー・スケール)にフラットファイブを足したものです。
ブルーススケールを用いた曲は、その名の通り一般的にブルーな、すなわち憂鬱な雰囲気の曲となるとされています。

そして、ブルーススケールは、このオレンジスケールという曲のAメロで使われています。
しかし、ブルーススケールを特徴づけるフラットファイブを鳴らす機会が限られており、ブルーススケールであるにも関わらず、ブルーススケールが持つとされる憂鬱な雰囲気を特段強く感じることはないように思います。

また、Bメロでは、ブルーススケールからブルーススケールを特徴づけるフラットファイブを含む4つの音を取り除き、4音のみで構成されています。
ブルーススケールを特徴づけていたフラットファイブを完全に取り除いたことで、憂鬱さは完全に失われ独特な雰囲気が生じています。これはなんというか、前後関係から考えてブルーススケールから音を抜いたものですが、むしろブルーススケールではないということを主張しているようでもあります。

オレンジスケールとは

1番のサビは、5音で形成されています。これは、A♭を基音とした長調の下から4つ目の音と6つ目の音を抜いたものです。
長調から2つ音を抜くものとしては、4つ目と7つ目を抜くヨナ抜きと呼ばれるスケールや、2つ目と6つ目を抜く琉球音階と呼ばれるスケールがよく知られています。一方、1番サビで使われている4つ目と6つ目を抜くものについては、調べた限りではこのスケールを示すよく知られた呼び方は存在していないようです。

また、2番のサビは、1番のサビで用いられた5音に下から6つ目の音を足した6音です。これは結果的には、長調から4つ目の音のみを抜いたものです。
1番のサビの一部と、これに相当する2番サビ下から6つ目の音が出てくる部分の抜粋は以下のようになっています。

1番がこっちで、
1番サビ抜粋

2番がこっちです。
2番サビ抜粋

2番の、オレンジスケールと歌っているところで、まさに背伸びをしているように見えませんか?僕には見えます。

このことから、オレンジスケールとは、1番のサビで使われていた5音、並びに2番で使われる6音、さらに使われる音が6音に増えることを示しているのだと思います。
2番で使われる音が増える部分の旋律は、1番の歌詞にあるように少し背伸びしたようであり、スケールに使われる音の数が大きくなったこと、すなわち成長し、この曲で描かれる女の子のスケールが大きくなることを表すのだろうと僕には聞こえました。

まとめ

オレンジスケールという曲は、ブルーススケールとの対比、1番と2番のサビで使われるスケールの変化、音楽的要素とも呼応する作り込まれた歌詞によってふわふわとした釈然としない日々の中にある確かな成長を描いた、優しい中にも力強さがある素敵な曲だなと思います。
他にもこの曲の好きなところはたくさんあるけれども、ここまでに書いたことがいちばん大切な部分なんじゃないだろうかと思って、文章に書き起こしてみました。

先にも書いたように、1番のサビで使われている4番目と6番目の音が抜けた長音階には、広く知られた呼び方はありません。
でも、この曲が多くの人に聞かれれば、この曲のサビで使われている音階である46抜き長音階が、オレンジスケールと広く呼ばれ親しまれるようになる、いつかそんな日も来るのかもしれません。その時はきっと、長瀬有花さんや共にある作編曲及び映像作成を行ったいよわさんを始めとする周囲の人々の存在も、いくつもの次元を超え、広く知られることになるのだろうとおもいます。

素敵な曲をありがとう。これからも楽しみにしています。

core i7-12700 を CPU に使ったPCを組んだ

あけましておめでとうございます。
最近、メインで使っている Windows のデスクトップ PC で曲を書いているときに CPU の不足を如実に感じるようになってきたので、PC を新調しました。
前回、前々回購入したデスクトップ PC は、 mouse computer で買って、出来合いのデスクトップ PC に SSD やら GPU やらのパーツを足して使っていました。
今回は、core i7-12700 という CPU がどんなもんなのか気になって仕方なかったので、パーツごとに自分で買って、いわゆる自作 PC を作りました。

今回使ったパーツ類

最後に PC を自作したのは、およそ 8 年前で、そのときには celeron j1900 ベースの録画マシンを作りました。
その頃と比べると、最近は CD-ROM/DVD-ROM ドライブはそもそもつけなかったり、HDD/SSDも m.2 でマザーボードに直接つけるようになっていたりと、配線が随分少なくなり最近は随分手軽になったんだな、という印象を持ちました。

主目的は先に書いたように CPU の性能不足の解消なのですが、CPU の新しい機能に興味があってそれがどのように動くかを見るというのもサブの目的としてある。というのも今回選んだ core i7 12700 には高性能な Performance-cores と高電力効率の Efficient-cores が乗っており、Windows 11 ではこれらをうまいこと使い分けることで高性能を実現しているらしい。
当然 Linux にも今後類似の機能が実装されていくことになるわけなので、その進化をソースコードレベルで負いつつ実感してみたいなと思っている。

というわけで、CPU の機能を直接叩くために、久々に VM 上ではなくベアメタルで Linux を動かす必要があるので、すごく久しぶりに、 Windows と Linux の dual boot 環境も作ってみるつもり。
楽しみだなぁ。