kalax’s diary

日本語の勉強のためのブログ

spotifyで田村ゆかりの特定曲が途中から無音になる

AndroidSpotifyでシャッフル再生中に、プレイリストに入れていた曲「眠れぬ夜につかまえて」(「蒼空に揺れる蜜月の小舟。」収録)の後半が無音になっていることに気づいた。「消えちゃった」という歌詞の後に本当に無音になったので一瞬何かのギミックかと思ってしまった。1ヶ月前に再生した際には問題なかったので、サブスク解禁に伴うトラブルであろう。

この曲が入ったアルバム・シングル3作品をWindows版アプリで再生したところ、以下の結果となった。

収録作品 エラー内容
アルバム「Sincerely Dears... 問題なし
シングル「眠れぬ夜につかまえて」 問題なし
アルバム「蒼空に揺れる蜜月の小舟。」 2:28あたり(歌詞でいうと「ページをとばすみたいに あなたは消えちゃった」の直後)から曲の終わりまで無音

問題があったのはアルバム「蒼空に揺れる蜜月の小舟。」だけであった。

ここで気になって、このアルバムに収録されたほかの曲も確認してみることにした。

01. Primary Tale 3:40~無音
02. Lovely Magic 2:04~無音
03. 大好きと涙 2:10~無音
04. フルーツ 2:34~無音
05. きらら時間旅行 2:16~無音
06. Snow bird 2:46~無音
07. 月華 1:35~無音
08. 眠れぬ夜につかまえて 2:28~無音
09. 虹の奇跡 2:46~無音
10. 恋歌姫 ~蜜月夜バージョン~ 2:46~無音
11. 不可触な愛 2:10~無音
12. Honey Moon 2:16~無音

このアルバムに収録された曲すべてが途中で無音になっていることが分かった。
また2曲目「Lovely Magic」は同名のシングルにも収録されているが、そちらでは問題なく再生することができた。

追記

twitterで調べると他の曲でも問題が発生しているようである。
新たに見つけたものは次の通り。

シングル「Baby's Breath

1.Baby's Breath 1:11~無音
2.わがままな I LOVE YOU 0:53~無音
3.こっちを向いて 0:30~無音

シングル「summer melody

1.summer melody 2:58~無音
2.A Day Of Lttile Girl ~姫とウサギとおしゃべりこねこ~ 2:46~無音
3.青空にあいたい 3:27~無音
4.summer melody -karaoke- 1:52~無音
5.A Day Of Lttile Girl ~姫とウサギとおしゃべりこねこ~ -karaoke- 3:09~無音
6.青空にあいたい -karaoke- 2:47~無音

PCで見ているページをQRコードでスマホにシェアする

PCのブラウザで閲覧しているページを、ブラウザの同期機能などを使わずにスマホに送りたい。

そんな時には以下のブックマークレットが役に立つ。

javascript:window.open('https://m.qrqrq.com?bookmarklet='+encodeURIComponent(document.location.href));

QRコード作成|QRの解析|クーポン発行 無料|商用利用可|クルクル マネージャー より引用)

 

このブックマークレットをブックマークバーに登録しておき、シェアしたいページ上で呼び出せばQRコードが生成される。あとはそれをスマホ側で読み込むだけである。

ブックマークレットについて詳しくはこのあたりが参考になると思う)

必要なアプリは大抵のスマホに入っているQRコードリーダだけなので、問題があって同期機能が使えない場合にとても便利である。

 

 

なお、AndroidChromeでもQRコードを作成できる機能が追加されている(vivaldiなどchromeベースブラウザも可)。これについては以下のページが詳しい。

www.howtogeek.com

 

要約すると、

chrome://flags に飛んで「Chrome Sharing Hub」と「Chrome Share QRCodes」をenableに設定後、下部に表示されるRelaunchを押して再起動

することで、シェアメニューからQRコードが選択可能になる。

select the share icon from the address bar

tap the qr code icon

How to Generate a URL QR Code in Google Chrome on Androidから引用)

 

Windowsの通知音を消す

20H2にアップデートしたら今まで切っていた通知音がまた鳴り出した。
前設定してから時間が経っているのもあり、設定方法を忘れてしまっていたのでここに書いておくことにする。

設定→システム→通知とアクション→通知→「通知時にサウンドを再生する」を切れば良い。
もしくはその下にある「送信元ごとの通知の受信設定」から、通知音を消すアプリを個別に指定できる。

この際に無駄な通知を整理するのもいいかもしれない。

弐寺を始める際に役立つリンク集(CS)

自分の使っていた(いる)サイトをまとめる。

音ゲー上達の理屈 Wiki

w.atwiki.jp
弐寺の基本情報から、運指(鍵盤を叩く指の配置)、段位認定に必要なスキルなど、上達するための情報が詳しく載っている。
特に始めたばかりの際には、運指についてこのページで確認したほうが良いであろう。
またある程度上達してからは、段位別練習法が参考になると思う。

beatmaniaIIDX 譜面集(CS版)

textage.cc
おそらく最も充実した譜面集。
上部の「version」からバージョンを選択すると曲リストが表示される。
リストの真ん中には曲名が、その左側には難易度が記載されている。
青がNormal、黄がHyper、赤がAnotherである。
それぞれのセルに入っている「1P/2P」という文字を押せば、譜面が表示される(1Pを押せば1P側、2Pを押せば2P側の譜面が出る。スクラッチの位置が違うだけである)。
さらにリスト上部にある三角マークを押すことで難易度ごとのソートが可能である。

またCS RED以前の曲は難易度区分が現在と違う(最高レベル8)ため、戸惑うこともあるだろう。
その時は上部「LIST OP.」から「AC LV」を選択すれば、現在の難易度に直されたリストが表示される。
RED以前は難易度同士のつながりが分かりづらかった[1]ため、このオプションはとても有用である。

[1]例えば自分には「NormalどこまでクリアしたらHyperできるようになるだろう」という疑問が生じていた。HappySky以降の表記ではNormalもHyperも混ざりあっているため、このような疑問は生まれずに済むだろう。

CS版 beatmaniaIIDX 収録曲リスト

sion-lab.net
左側の「表示範囲」からバージョンを選ぶことで、そのバージョンに収録された曲を調べることができる。とてもわかりやすい。
自分の好きな曲がどのバージョンに収録されているのかを知ることができるため、買うソフトを決める際に非常に有効。
例えば「RED」をクリックすれば、リストの中に有名な「RED ZONE」や「ピアノ協奏曲第1番"蠍火"」があることがわかる。

また単に「このバージョンに入っていたあの曲なんだっけ」というときにも使える。

CS beatmania IIDX データベース

sion-lab.net
それぞれのバージョンについて詳しく記載されているページ。
特に「段位認定」「隠し要素」を参照する機会が多いと思う。
「段位認定」ページでは、その名の通り段位認定の課題曲がまとめられている。課題曲をゲーム内から確認できないバージョンにおいては非常に有効。
「隠し要素」ページは隠し曲の解禁条件などについて書かれている。

詐称・逆詐称・特殊詐称・個人差譜面リスト(SP LV1~8)

bemaniwiki.com
bemaniwiki.com

上のリンクは詐称・逆詐称譜面について、下のリンクは個人差譜面について記述されている。AC用のページではあるが、CS勢にも役立つ情報が多く乗っている。
「詐称」とはレベルの割に難しいこと、「逆詐称」はその逆でレベルの割に簡単なことを指す。
また「個人差譜面」はそのままの意味で、ある人にとってはとても易しいが、別の人にとってはクリアすらできないような譜面のことである。
このような譜面を事前に知っておくことで自分にあった難易度の曲をプレイでき、効率的な上達にもつながる。
リストが見にくいかもしれないが、青文字が簡単な曲、赤文字が難しい曲、太文字は特に簡単/難しい曲だと考えてもらえばよい。

SP LV9~12のリストも以下に示しておく。
beatmania IIDX 27 HEROIC VERSE/旧曲詐称・逆詐称譜面リスト(SP LV9〜12) - BEMANIWiki 2nd
beatmania IIDX 27 HEROIC VERSE/旧曲特殊詐称・個人差譜面リスト(SP LV9〜12) - BEMANIWiki 2nd

スマホにいつの間にか入っていたアプリを消した

あとでなにか起きた際の記録として。
機種はHUAWEI P30 Lite、EMUIバージョンは10.0.0.271。

SIM App Dialog

軽く検索しても情報が出てこない。
スマホの中にいつの間にかSimAppDialogというアプリが入っ... - Yahoo!知恵袋

おそらくシステムが勝手に入れたものと思われるので消した。

basic daydreams

充電時のスクリーンセーバだろうか?
What is basic daydreams? ( App ) - Android Community

必要ないため消した。

Windows TerminalでLinuxを使う&find -deleteで一括ファイル削除してみる

rmしようとしたら受け付けなかったので。

Ubuntuを入れる

このサイトを参照。
WindowsでLinuxコマンドを使えるようにした (WSLでUbuntuを使う)|Toshi Akazawa|note

windows terminalでも同じように操作すればLinuxコマンドを使えるようになる。

一括ファイル削除

教材用の動画ファイルが不要になったため消したいが、フォルダ構成がちょいと複雑なため手作業だと面倒。
rmで消そうとしていたがこれではカレントディレクトリ内のファイルしか消せない。
(つまりカレントディレクトリ内のフォルダの中にあるファイルは消せない)
rm — 特定の拡張子を持つすべてのファイルを再帰的に削除します

こんなときにはfind -delete が使える。
www.atmarkit.co.jp

具体的には「find . -name *.mp4 -delete」と入力することで、「カレントディレクトリ以下の全ファイルから拡張子mp4のファイルを見つけて削除する」ことができる。
この表記だと削除対象の確認ができないので、予め「find . -name *.mp4」を実行して確認したほうがいい。

twitterのフォロワー数を書き換えるブックマークレットを作りたい

タイトルの通り。
プログラムの知識は殆どないため見苦しいことになっているが悪しからず。

javascriptで要素を取得する

普通ならdocument.getElementById()を使えば良いのだが、今回はそうも行かない。
twitterのHTMLソースを見てもらえばわかるように、id名がほとんど使われていないからである。
かろうじて使われているclass名もランダムな文字列になっているので(Reactの仕組みによるものらしい)、あまり使いたくない。

そこで出てくるのがdocument.querySelector()である。
CSSセレクタを与えれば、どんな要素も指定することができる。
Document.querySelector() - Web API | MDN
余談だがこの関数にたどり着くまでに数時間を要した。

CSSセレクタを書く

CSSセレクタの書き方はこちらのサイトがとても参考になった。
意外と知らない!?CSSセレクタ20個のおさらい|Webpark

さて、フォロワー数を示す要素を特定したいのだが、前述の通りidやclassは使えない(使いたくない)ので、今回はtitle属性を用いることにする。
 
以下はtwitterのソースの一部である。クラス名など煩雑な部分は省いた。

<a href="ここにユーザーIDが入る/followers" dir="auto" 
role="link" data-focusable="true" class="クラス1" title="0">
  <span class="クラス2">
    <span class="クラス3">
      0
    </span>
  </span>
  <span class="クラス4">
    <span class="クラス5">
      Followers
    </span>
  </span>
</a>

0やFollowerという文字が見えると思う。0というのはフォロワー数を表す数字である(つまりフォロワーが100人いれば100になる)。
最終目標はこの数字を書き換えることであるが、この数字を囲むspan要素には煩雑なclass要素しかない。
そのため、2段上のaタグに含まれるtitle属性を目印にしようというわけだ。


この方針でできたセレクタは次になる。

 a[title="0"] :first-child span

意味としては「title属性が"0"のaタグの中で、最初に現れる子要素の中の、spanタグ」を指定している。

ブックマークレットを作る

まずjavascriptを組む。フォロワー数は適当に1千万人にした。

var element = document.querySelector('a[title="0"] :first-child span');
element.textContent = "10000000";

次に、実際にブックマークレットを作っていく。
参考にしたのはこれらのサイト。 
ブックマークレット/Bookmarkletの作り方 - catch.jp-wiki
Bookmarkletを作ろう(準備編) - Qiita


作ったjsコードを
javascript:(function(){ここにそのまま入れれば良い})();
ということはわかった。

以下のサイトで作成するとデバッグしてくれるので便利。
Closure Compiler Service


できた

こちら。

javascript:(function(){document.querySelector('a[title="現在のフォロワー数を入力"] :first-child span').textContent="なりたいフォロワー数を入力"})();

2つの入力欄に適切な数値を入力すると正常に動作した。