2020年8月28日

Windows 10休止状態から復帰時のディスクI/Oを減らす

ThinkPadが休止状態から復帰すると大量のディスクアクセスが発生する」という記事を2017年に書いたのだが、似たような話が別のコンポーネントで起きていた。

ThinkPad T430sが休止状態から復帰したとき、ディスクI/Oが10分以上100%に張り付き、アプリケーション起動などのレスポンスが悪い。タスクマネージャーで調べると、ディスクI/OしているのはMicrosoft Compatibility TelemetryとSysmainのふたつだった。

Microsoft Compatibility TelemetryはWindowsカスタマーエクスペリエンスの一環で、利用状況を収集するサービスらしい。Sysmainは、以前はSuperfetchと呼ばれていたもので、利用状況から必要なプログラムを予測して、あらかじめメモリーにロードしてサービスらしい。メモリー8GBのHDDシステムではあまり意味がないかもしれない。

Microsoft Compatibility Telemetryは、グループポリシーでWindowsカスタマーエクスペリエンスプログラムをオフにしても動き続けるので、タスクスケジューラでMicrosoft Compatibility Appraiserを無効にした。Sysmainはサービスを無効にすることで動かなくなった。

グループポリシー
コンピューターの構成 > 管理用テンプレート > システム > インターネット通信の管理> インターネット通信の設定 > [Windowsカスタマエクスペリエンス向上プログラムを無効にする]

タスクスケジューラ
Microsoft > Windows > Microsoft Compatibility Appraiser

この2つの対処で休止状態から復帰後は、Windows UpdateとかLenovo関係のプロセスとかが数分間、かなりディスクアクセスするが、以前より短時間でHDDアクセスランプが点かなくなり、快適だ。

| | コメント (0)

2018年10月 9日

Apple MusicやYouTubeをHPL2で気持ちよく聴く(Windows編)

HPL2 Processorは、ヘッドホンやイヤホンで音楽を聴いても、スピーカーで聴くのと同じようなミックスバランスで気持ちよく聴けるようにするVSTプラグインソフトウェアである。

HPL music source
https://www.hpl-musicsource.com/

VSTに対応した音楽プレイヤー(foobar2000、Music Bee、JRiver Music Centerなど)でプラグイン使用する方法はネットで探せば見つかるが、再生できるのは自分で音源ファイルを持っているものだけだ。このブログ記事では、Apple MusicやSpotifyなどの定額配信サービスやYouTubeなど、ストリーミング再生でもHPL2 Processorを使えるようにする方法を説明する。

通常のPCでの音楽再生は以下のような経路で行われる。

  アプリ → 再生デバイス(内蔵オーディオアダプタなど)

foobar2000などにVSTプラグインを組み込んだ場合は以下のような経路となる。アプリ内部でHPL2化の処理を施した音が再生デバイスから出力される。

  アプリ(VSTプラグイン) → 再生デバイス

この記事で説明するのは以下のような仕組みである。アプリの出力を仮想ケーブルデバイスに送り込み、DAWに流し込む。そこでVSTプラグインによるHPL2処理を施し、再生デバイスから音を出す。

  アプリ → 仮想ケーブル → DAW(VSTプラグイン) → 再生デバイス

PCのオーディオアダプタにステレオミキサー機能があれば、それを使用してDAWに流し込むことができるが、あいにくオーディオアダプタやドライバによってはステレオミキサーをサポートしていない。その場合は仮想ケーブルのソフトウェアをインストールする。ここではVB-CABLEを使用する。このソフトはフリーウェアではなくドネーションウェアである。寄付額は任意。

https://www.vb-audio.com/Cable/index.htm からZIP形式のパッケージをダウンロードし、解凍してインストールする。VBCABLE_Setup.exeが32ビットOS用、VBCABLE_Setup_x64.exeが64ビットOS用である。.exeファイルを右クリックし、管理者として実行する。インストール後はPCのリブートが必要である。

1_vbcable_3

Windowsのサウンド設定の「再生」タブを開くと、「CABLE Input」というデバイスができているはずだ。それを既定のデバイスにする。プロパティの詳細タブでサンプルレートとビット深度を設定する。ここはデフォルトでも音は出ると思うが、私はここを含め、設定できる箇所は全て44.1kHz/24ビットにしている。余分なサンプルレート変換がない方が音がいいという推測なのだが、劇的に変わるわけではない。

同様にサウンド設定の「録音」タブに行き、「CABLE Output」を既定のデバイスにし、プロパティの詳細タブでサンプルレートとビット深度を設定する。DAWで入力デバイスを明示的に設定できる場合は、既定のデバイスにする必要はないと思うが、念のため。

次にVSTプラグイン対応のDAWをインストールする。ネットで探すとフリーのものがいくつか見つかる。ここではREAPER v0.999を使う。REAPERは有料ソフトウェア(60ドル)なのだが、v0.999は無料で使える。もっとも2006年の古いバージョンなので、そこは自己責任で。

REAPER | Old Versions
https://www.reaper.fm/download-old.php?ver=0x

起動後に出てくるREAPER New Version Notificationのダイアログでは、Check for new versionsのチェックを外し、Closeボタンを押す。

HPL2 Processorは https://www.hpl-musicsource.com/software からWindows用ファイルをダウンロードする。ZIPファイルを解凍し、HPL2 Processor.dllをC:\Program Files (x86)\REAPER\Plugins\FXにコピーする。REAPER 0.999は32ビットソフトウェアなので、VSTプラグインも32ビット版を使う。ちなみにREAPERの最新バージョンは64ビット版も出ていて、その場合は64ビットのHPL2 Processor.dllを使う。コピー先ディレクトリがプラグインのパスに含まれているかどうか確認しておく。もしなければ追加する。

REAPERのOption→Preference→Audio→Devicesで入出力デバイスを以下のように設定する。

Audio System:DirectSound
Input Device:CABLE Output(VB-Audio Virtual Cable)
Output Device:PCの再生デバイス
Sample Format: 24 bit
Samplerate: 44100 hz
(注)サンプルレートとビット深度はデバイスの設定と合わせた。

3_audio_device

さらにFX Plug-insのRescan directoryボタンをクリックして、HPL2 Processorプラグインを認識させる。

メイン画面左下のMASTERにある「fx」ボタン(Show Master FX Window)をクリックすると、プラグインを選択する画面(Add FX to: MASTER)が表示される。VSTツリーの中に「HPL2 Processor」があるはずだ。それを選択してOKを押すとHPL2のUIが表示される。UIは右上の×ボタンで閉じておいてよい。

4_master_fx

5_hpl2

メイン画面TrackメニューのAdd new trackを選択し、新しいトラックを追加する。トラック名は「Virtual Input」とでもしておく。スライダーボリュームの左の赤丸をクリックして録音状態にする。Leftという文字が書いてあるバーを右クリックし、メニューからStereo Input→Left/Rightを選択し、さらにRecord: disable (input monitoring only)を選択する。

6_new_track

この状態でブラウザやiTunesで音楽を再生すると、PCの再生デバイスから音が出て、ミキサーのレベルメーターが上下するはずである。MASTERのfxボタンの下の「ON」ボタン(Toggle Master FX Enabled)をクリックしてHPL2のオンとオフを切り替えられるので、実際にプラグインの処理が行われているかどうか確認できる。HPL2をオンにしたときは音量がやや下がり、音の広がりが狭く感じられるはずである。

7_playing

再生が確認できたら、File→Save Project Asでプロジェクトを保存しておく。

再生時にプチプチとノイズが入る場合は、Audio SystemをDirectSound以外に設定してみたり、Buffersの数字を大きくしてみたりすると改善するかもしれない。ただしBufferを大きくしすぎると、再生遅延が大きくなり、ビデオ映像と音声がはっきりずれて気持ち悪いので、違和感のない範囲で調整する。

fxボタンをクリックするとHPL2のUIが表示される。再生中のスクリーンショットと感想をブログやSNSで公開して、開発者のアコースティックフィールド久保二朗さんに感謝するとともに、HPL2を広めよう。

(補足)REAPERの最新バージョンにはOS X版もある。OS XではRogue AmoebaのLoopback(有料)が仮想ケーブルとして使える。

Rogue Amoeba | Loopback: Cable-Free Audio Routing
https://www.rogueamoeba.com/loopback/

| | コメント (0)

2017年1月 5日

ThinkPadが休止状態から復帰すると大量のディスクアクセスが発生する

ThinkPadの省電力マネージャーにFast Hibernation Resumeという機能があり、これが原因で、復帰時に大量のディスクアクセスが発生する。アプリケーションが応答なしになり、マウスクリックやキーボード入力の反応も悪い。対策は、省電力マネージャーをアンインストールするか、以下のレジストリキーを追加してFast Hibernation Resumeを無効にする。

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Lenovo\PWRMGRV\Data]
"FastHibernationResume"=dword:00000000

(注)このレジストリキーは64ビットWindows用なので、それ以外のバージョンでは使わないこと。私はWindows 7 64ビットと省電力マネージャー6.68.10で動作確認した。

Fast Hibernation Resumeは、休止状態に入る前にアプリケーションをスワップアウトし、ハイバネーションファイルへの書き込みや読み出し量を少なくしようというものである。これで休止状態への移行や復帰は速くなるが、スワップアウトしたメモリページはスワップインしなければならないので、これが大量のディスクアクセスを引き起こす。

ブラウザのタブをたくさん開いていると、1GBくらいのメモリを使っているはず。私の環境(T520、Windows 7 64ビット、Firefox)では、休止状態から復帰した後5分以上ディスクアクセスが治まらず、その間ブラウザが応答なしになり、使い物にならなかった。Chromeはタブ毎にプロセスを分離しているので、応答なしにはならないが、タブを選択しても反応しないなど、やはり影響を受けている。

昔のThinkPadは、省電力マネージャーにIBM独自の電源管理機能が入っていて、それが優位点だったのだが、いまはWindowsの電源管理機能が充実していて、省電力マネージャーは単にWindowsの電源管理に対する独自のUIを提供するだけの役割になっている。実際、Windows 10では省電力マネージャー事態が提供されなくなった。ほとんどの人は省電力マネージャーをアンインストールしても問題ないだろう。

バッテリー充電の閾値設定はいまでも省電力マネージャー独自の機能である。AC電源主体で使っているときは、充電量を50%で抑えることによって、バッテリー寿命を延ばすことができるとされている。これを使いたいときは、上記のレジストリキーでFast Hibernation Resumeを無効にすれば良い。

参考記事

Windows 7 - Resuming from hibernation is slow on Thinkpad
http://asqueella.blogspot.jp/2012/07/windows-7-resuming-from-hibernation-is.html

Bug report: Power Manager causes slow performance after resuming from hibernation
http://forums.lenovo.com/t5/ThinkVantage-Technologies/Bug-report-Power-Manager-causes-slow-performance-after-resuming/m-p/1349923/highlight/false#M24262

| | コメント (0)

2016年7月20日

iCloudミュージックライブラリの諸問題~Apple Muscは曲名とアーティスト名だけでマッチ

以下の記事は2016年夏までの仕様で、現在は音紋(Acoustic fingerprinting)による高精度のマッチ処理になっている。

 

iTunes Matchは音楽ファイルのAcoustic fingerprintingでマッチしているが、Apple Musicのマッチはメタデータだけを使っており、これをiTunes Matchと同じアルゴリズムに変えようとしているという噂が出てきた。

Apple begins rolling out iTunes Match with audio fingerprint to Apple Music subscribers
http://www.loopinsight.com/2016/07/18/apple-begins-rolling-out-itunes-match-with-audio-fingerprint-to-apple-music-subscribers/

iCloudミュージックライブラリはもう使っていないが、テスト環境でいろいろ試してみた。以前調べたときは、メタデータでマッチングしているように見えなかったのだが、曲名とアーティスト名でマッチしている。しかし日本語の処理に問題があるようだ。

Apple Music Matches Files with Metadata Only, not Acoustic Fingerprinting | Kirkville
http://www.mcelhearn.com/apple-music-matches-files-with-metadata-only-not-acoustic-fingerprinting/

Apple Musicに存在しない適当な曲のAACファイルをiTunes 12に取り込み、曲名を「Can’t Feel My Face」、アーティスト名を「The Weeknd」に変えてiCloudミュージックライブラリを更新した。いったんiCloudの状況が「アップロード済み」になってマッチしなかったように見えるが、再度iCloudミュージックライブラリを更新すると「Apple Music」になった。iPhoneからiCloudミュージックライブラリの曲を聴くと「Can’t Feel My Face」が流れる。アートワークも収録アルバム「Beauty Behind the Madness」になった。アルバム名や作曲者名などが空白でもマッチする。要するに曲名とアーティスト名しか見てない。

iTunes 12でApple Musicのカタログを見ると、アーティスト名が「ザ・ウィークエンド」と表示される。しかしアーティスト名を日本語表記にすると、全然マッチしない。マッチに使っているメタデータと、iTunes 12やiPhoneミュージックアプリに表示するデータが必ずしも一致しない。原語表記と各国語表記を処理やUIによって使い分けているようだ。

曲名やアーティスト名が全然違う曲にマッチしているのは、日本語処理のバグ、もしくはバグではないが不適切な仕様によるもののようだ。例えば以下のような誤マッチがある。

  • 「CLOSE YOUR EYES」(山下達郎)が「CLOSE YOUR EYES」(山下久美子)にマッチ
  • 「明日の記憶」(宮本文昭)が「明日への路 (feat. 上間綾乃)」(宮本笑里)にマッチ
  • 「風笛」(宮本文昭)が「風笛」(宮本笑里)にマッチ
  • 「風と少年とタマゴ(宮本文昭)が「風の伝説」(宮本由利子)にマッチ。
  • 「運命の対決」(大島ミチル)が「運命の扉」(大島はるな)にマッチ
  • 「ローマの松 I. ボルゲーゼ荘の松」(小澤征爾/ボストン交響楽団)が「ローマの平日」(小森田実&ALPHA)にマッチ。

この6パターンをじっくり見ると、日本語の曲名やアーティスト名は最初の数文字しか使ってないように思える。ひらがなを無視しているかもしれない(中国語と処理を共通にするため?)。2015年11月に誤マッチしたのと同じことが現在(2016年7月)にも起きるから、Apple Musicのマッチ処理はこの半年で全然変わってない。

さて、噂通りAcoustic fingerprintingでマッチするようになるのだろうか。当のニュース記事は、一部のユーザから徐々に広げていくと書いてある。しばらく経ってiCloudミュージックライブラリを更新すると、誤マッチした上記の曲が正しくマッチもしくはアップロードに変わるのだろうか。ついでにアルバム名もマッチに使ってくれれば、オリジナル盤とベスト盤の曲が混在することもなくなると思うのだが。

(2016年8月2日追記)
私のアカウントがAcoustic fingerprintingでマッチするようになっていた。上に挙げた誤マッチが全て修正され、正しい曲が流れるようになった。以前はマッチした曲のiCloudの状況が「Apple Music」だったのが、いまは「マッチ」と表示される。

アタッカでつながるトラックの片方だけがマッチすると、つなぎの部分が音飛びしたり不自然だったりするものがある。そもそもつなぎ目のないマスターからトラックを切り出しているから、手持ちCDと配信ファイルで違うことがあるんだろう。つなぎ目の不自然さは、真剣に聞いてなければたぶん気付かない。ただしゲルギエフ指揮ウィーンフィルの「展覧会の絵」は、CDとApple Musicでトラックの切り方が完全に違ってて、マッチした「バーバ・ヤガー」とアップロードした「キエフの大門」の間の上昇音型が2回流れる。

(2016年9月21日追記)
トラックの継ぎ目の他に、トラック間の音量差が気になることもある。Apple Musicは全体的に音量が大きめだ。CDから取り込んだファイルはそれに比べて音量が小さめ。アルバムを頭から順に聴いていると、音量が急に大きくなったり小さくなったりする。

| | コメント (0)

2015年11月16日

iCloudミュージックライブラリの諸問題(再生回数・日時が反映されない)

再生回数や最後に再生した日をベースにスマートプレイリストを作り、今日聞いた曲を振り返ったり、最近あまり聞いてない曲を掘り返したりしている。iCloudミュージックライブラリを使ってない場合は、iPhoneやiPodを母艦iTunesに同期したときに、デバイスから再生情報がiTunesライブラリに反映されていた。

iCloudミュージックライブラリをiPhoneでオンにした場合、再生回数と最後に再生した日時は、すぐにはiCloudミュージックライブラリに反映されない。2015年11月現在、12時間の反映中断期間がある。例えば9:00に曲を再生してiCloudに反映したとすると、21:00まではiPhoneで再生してもiCloudに反映されず、iPhone内にキューイングされる。21:00過ぎに何か再生すると、それまでの未反映分がまとめて反映される。反映中断期間は、以前は24時間だったらしい。

iTunes Match vs. Play Counts | Apple Support Communities
https://discussions.apple.com/thread/3495653?start=450&tstart=0

再生情報がキューイングされているときにiCloudミュージックライブラリをオフにすると、当然のごとく情報は消失してしまう。

なぜこんな期間を設けてバッチで反映しているのか。トランザクションを減らしてクラウド側の負荷を減らしたいのか?面白いことにラブやレートをiPhoneで変更すると、それは即座にiCloudに反映される。これができるのに、なぜ再生情報を反映しないのか。全くAppleのやることはよく分からない。

iTunesとiPodが出たときは、そのシンプルさに感動したものだ。iCloudミュージックライブラリで一気に複雑になり、思うようなライブラリ管理ができなくなった。CDから取り込んでiTunesライブラリを育てるような面倒なことはするな、Apple Musicのストリーミングで聞き、Apple MusicになければiTunesで買えということなんだろうか。最近のMacにはCDドライブすら付いてないから、あながち的外れではないような気がする。

確認したバージョンはiTunes 12.3.1.23 (Windows 7)とiOS 9.1。

(2015年11月28日追記)
マイミュージックに登録してないApple Musicプレイリストを再生しても、iPhoneの中に溜まっている再生情報をiCloudに反映できるようだ。ステーションの再生ではだめだった。

(2016年8月23日追記)
2016年夏のApple Music仕様変更でマッチ精度が上がったのだが、再生回数・再生日時の反映は相変わらずリアルタイムではなく、一日2回のバッチ処理だ。

(2016年9月21日追記)
iOS 10でも一日2回のバッチ反映のままだ。タイミングはiOSアップグレード時刻(とその12時間後)に移動した。

| | コメント (0)

iCloudミュージックライブラリの諸問題(アートワークが違う)

iCloudミュージックライブラリで違う曲にマッチすると、アートワークも別のアルバムのものが表示されてしまう。曲ファイルのタグ情報にアートワークを自分で埋め込んでいても、マッチした曲にはApple Musicのアートワークが使われる。そのため、オリジナルアルバムなのにコンピレーション盤のアートワークが表示されたり、ベスト盤のトラックなのにオリジナルアルバムのアートワークが表示されたりする。

せっかく時間を掛けてアートワークを設定してきたのに、一枚のアルバムの中で曲毎にアートワークがバラバラという残念なことになってしまう。アルバム一覧で表示されるアートワークは、複数あるアートワークのどれかが自動的に選ばれる。見慣れないジャケ写がアルバム一覧に並ぶわけだ。

さいわいiCloudミュージックライブラリ側に違うアートワークが表示されていても、母艦iTunesのアートワークは上書きされてないようだ。もっとも、アートワークをファイルに埋め込まずにiTunesからダウンロードした場合、それがめちゃくちゃにされたという事例もあるから安心はできない。

Apple Music によってめちゃくちゃにされた iTunes のアルバムアートワークを修正する方法 | R
http://wp.me/p4kidi-1nj

解決策は今のところ見つかってない。強制アップロードさえできれば、自分で設定したアートワークも一緒にiCloudに反映されるのだが・・・

(2015年11月17日追記)

解決策を見つけた。アルバムの一部の曲がアップロードされ、一部がApple Musicにマッチして別のアートワークが設定されている場合には、マッチした曲のアートワークをiCloud側で削除すればよい。アートワークが設定されてない曲には、同じアルバムの別の曲のアートワークを使う仕組みになっているのだろう。

母艦iTunesと別のPCにiTunesをインストールし、Apple IDでログインして、iCloudミュージックライブラリをオンにする。このiTunesはiCloudミュージックライブラリ管理専用だ。意図しないアートワークが付いている曲のプロパティを開き、アートワークを削除すると、iPhoneに表示されるアートワークが、マッチしてない曲と同じものに置き換わる。念のため母艦iTunesのアートワークを確認したが、ファイルに埋め込んだものがそのまま残っている。母艦の曲ファイルの更新日付が書き換わるが、それ以外のメタデータや曲データ以外に変化はない。

確認したバージョンはiTunes 12.3.1.23 (Windows 7)とiOS 9.1。

(2016年8月2日追記)
Acoustic fingerprintingでマッチするようになったので再度テストしてみたら、マッチしてもしなくても、ファイルに埋め込んだアートワークが表示されるようになっていた。ファイルに埋め込んでない場合は、Apple Musicで見つかったアートワークをあてがっている。改めて埋め込むと、それが表示される。面倒なことは考えず、iTunesライブラリでアートワークをファイルに埋め込めばよいので楽だ。

これを応用して、マッチ先を探すこともできる。マッチした曲の聞こえ方がなんかおかしいときは、いったんiCloudミュージックライブラリから削除し、ファイルに埋め込んだアートワークをiTunesで削除し、再びiCloudミュージックライブラリに登録する。マッチしたアルバムのアートワークが使われるはずだから、それを手がかりに、マッチしたアルバムを調べられる。
確認したバージョンはiTunes 12.4.3.1 (Windows 7)とiOS 9.3.3。

| | コメント (0)

iCloudミュージックライブラリの諸問題(違う曲にマッチする)

Apple Musicで見つけた曲やプレイリストを保存するには、iCloudミュージックライブラリが必須だ。iCloudミュージックライブラリをiPhoneでオンにすると、iTunesとの同期はiCloud経由になる。USBケーブルで接続しても音楽は同期しない。iTunesからiPhoneに曲を転送するには、iTunesでもiCloudミュージックライブラリをオンにしなければならない。すると母艦のライブラリをスキャンして、Apple MusicにマッチしたものはアップロードせずにiPhoneで聴けるようになるし、マッチしないものは曲ファイルをiCloudにアップロードして、やはりiPhoneで聴けるようになる。便利だ、素晴らしい。もしマッチがうまくいけば。

実際にはマッチ精度が低くて、別の曲にマッチすることがよくある。これはiTunes Matchの頃からの問題で、Appleのディスカッションフォーラムにいくつもスレッドが立っている。ビートルズのモノラル録音がステレオ盤にマッチするというのが有名のようだ。

私が経験したのは次のようなパターンだ。同じ曲の別録音や別のライブ音源にマッチする。例えばカラヤンとベルリン・フィルがEMIで1971年に録音したチャイコフスキー交響曲第4番の第4楽章が、グラモフォンでの1966年の録音にマッチしたり、佐野元春「Heartland」の「インディビジュアリスト」が、「THE GOLDEN RING」収録の別のライブ音源にマッチしたりした。全然違う曲にマッチすることもある。宮本文昭の「明日の記憶」が娘・宮本笑里「明日への道」にマッチしていて、ちょっと笑ってしまった。

おそらく音楽の波形を部分的に採取してハッシュを取って比較しているのだろう。ビットレートを高くしておけばマッチしやすいという噂もあるが、AAC 256kbpsでも起きた。

iCloud側の曲をiPhoneで削除して、母艦iTunesでiCloudミュージックライブラリに追加すると、再びマッチング処理が始まって、こんどは誤マッチせずアップロードすることもある。おかしな曲を見つけたら、とりあえずiPhoneで削除しておくというのも手である。母艦iTunesでiCloudの状況が「削除されました」になるから、そういう曲を自動抽出するスマートプレイリストを作っておけば、あとでまとめて処理できる。運が良ければ、誤マッチを訂正できる。運が良ければ、というのが玉に瑕だ。

波形編集ソフトでファイルを編集してマッチしないようにし、アップロードが始まる前に元のファイルに差し替えるという力業を考え出した人もいるが、これを全ての曲でやるのはとても無理。

WORKAROUND — Found a Way to Force iTunes ... | Apple Support Communities
https://discussions.apple.com/thread/4544764?start=0&tstart=0

強制アップロードするオプションが必要という声が海外でも上がっている。しかしAppleがわざわざiTunes Matchの仕組みを捨てるようなことをするわけがない。

Some User Tips (April 2015) | Apple Support Communities
https://discussions.apple.com/docs/DOC-4113

いろいろ調べてようやく編み出したのが、iPhoneに曲を転送したあとiCloudミュージックライブラリで置き換えるという方法だ。

  1. 母艦iTunesからiCloudミュージックライブラリに曲を全てアップロードもしくはマッチしておく。
  2. iPhoneでiCloudミュージックライブラリをオフにする。Apple Musicの曲やプレイリストがiPhoneから消える。もしiPhoneに曲が残っていたら、それも削除する。もちろん原本が母艦iTunesにあることが前提だ。これでiPhoneの音楽ライブラリが空っぽになった。
  3. iPhoneをUSBケーブルで母艦に接続し、曲をiPhoneに転送する。
  4. iPhoneを母艦から取り外し、iCloudミュージックライブラリをオンにする。「結合」か「置き換え」かを聞いてくるので、「置き換え」を選ぶ。

これで、母艦から転送したファイルはそのまま残り、ライブラリの曲情報がiCloudからダウンロードされて曲と紐付けられる。曲毎にダウンロード済みのアイコンが表示されていて、ファイルがiPhoneに存在することが分かる。

母艦iTunesにCDから曲を追加したときは、上の手順を頭からもう一度やり直せば良い。面倒だが、おかしな曲が流れるよりよほどマシだ。

確認したバージョンはiTunes 12.3.1.23 (Windows 7)とiOS 9.1。

(2015年12月5日追記)

再アップロードで「アップロード済み」になったのでしめしめと思っていたが、iTunesで「iCloudミュージックライブラリを更新」を実行したら「Apple Music」になってしまった。そしてアートワークは母艦iTunesのもの、曲自体はApple Musicにマッチしたもの(モノラル録音)というおかしなことになっている。

(2016年7月20日追記)

Apple Musicのマッチの仕組みが分かったので、別ブログ記事に書いた。

iCloudミュージックライブラリの諸問題~マッチは曲名とアーティスト名だけで比較
http://raven.air-nifty.com/night/2016/07/apple-music-34d.html

(2016年8月23日追記)

2016年夏のApple Music仕様変更でマッチ精度がかなり上がり、トラック間のつながりがおかしいのがたまにあるだけで、違う曲が流れてくることはなくなった。

| | コメント (0)

2012年12月16日

エクスプローラで開いているディレクトリでCygwinのminttyを開く

エクスプローラで見えているファイルに対してgzipやtar、grepをしたいとき、スタートメニューからminttyを起動してcdで移動するのは面倒だ。ディレクトリが深い階層にあるときなどは、とてもやっていられない。コンテキストメニューから開けるようにした。

  1. Cygwinのセットアッププログラムでchereをインストールする。
  2. minttyを管理者権限で起動し、「chere -i -t mintty」を実行する。そのほかのオプションは「chere -h」を参照。
  3. エクスプローラでディレクトリを右クリックすると、「Bash prompt here」というメニューができている。これを選ぶと、そのディレクトリをカレントディレクトリとしてminttyが起動する。

コンテキストメニューを削除したいときは、管理者権限のminttyで「chere -u」を実行する。Windowsの「プログラムのアンインストール」ではうまくいかない。

エクスプローラのカレントディレクトリで開けないのが難点だ。対策は二つある。

  1. Alt-Dでアドレスバーに移動し、Alt-↑でひとつ上のディレクトリに移動してから、目的のディレクトリのコンテキストメニューでminttyを開く。キーボードだけで操作できるが、手数が多い。
  2. エクスプローラの整理→フォルダーと検索のオプション→全般で、「自動的に現在のフォルダまでを展開する」をオンにする。開いているフォルダがエクスプローラ左側のナビゲーションバーに現れるので、それを右クリックしてBash prompt hereを実行する。

| | コメント (0)

2012年11月 1日

tcpdumpの reply ERR

NFSの接続障害時にtcpdumpを取ったら、エラーらしきパケットがたくさん出てきた。

08:14:47.092825 IP (tos 0x0, ttl 63, id 39670, offset 0, flags [none], proto: TCP (6), length: 1500) .nfs > .<ポート>: reply ERR 1460

1460はいかにもエラーコードのような顔をしているが、実際はパケットもしくはどこかのフィールドの長さである。このトレースではエラーが起きていることしかわからない。Wiresharkを使う必要がある。

(参考記事)
Re: [tcpdump-workers] RPC responde code question (print-nfs.c)
http://www.mail-archive.com/tcpdump-workers@lists.tcpdump.org/msg03154.html


| | コメント (0)

特定の拡張子のファイルだけをコピーするrsyncのパラメータ

複数のディレクトリの複数の階層にある特定の拡張子(もしくは特定の名前パターン)のファイルだけをrsyncするときは、以下のように指定すればよい。これは.binファイルだけを対象にしている。

rsync -av --include="*/" --include="*.bin" --exclude=*

rsyncのmanページに例として載っている。

--include "*/" --include "*.c" --exclude "*" would include all directories and C source files

| | コメント (0)

«vim起動時に「E568: duplicate cscope database not added」