2013年6月21日金曜日

LAME mp3エンコーダーを使う(3)

前回に続いてAppleScriptでLAME mp3エンコーダーの繰り返し(=バッチ)処理する手順を説明する。

今回は曲情報をLAME MP3 エンコーダーの入力ファイル名と出力ファイル名に加工する手順である。前回 trackTagList 変数にiTunesのプレイリスト上で選択されたアイテムの曲情報が格納されたので、そこから話を続ける。

repeat with aTrackTag in trackTagList(1)
    set anInputPath to (quoted form of (POSIX path of item 15 of aTrackTag))(2)
    set anTrackNumber to (item 7 of aTrackTag) as number(3)
    set aTrackCount to (item 9 of aTrackTag) as number
    if aTrackCount = 0 then
        say TrackCountError
        set errorFlag to true
        exit repeat
    else if aTrackCount ≤ 99 then
        set aTrackNumber to text -2 thru -1 of ("00" & aTrackNumber)(4)
        set aTrackNumber to aTrackNumber & " "
    else
        set aTrackNumber to text -3 thru -1 of ("000" & aTrackNumber)(4)
        set aTrackNumber to aTrackNumber & " "
    end if
    set anOutputName to anTrackNumber & (item 1 of aTrackTag) & ".mp3"(5)
    set anOutputPath to quoted form of ((POSIX path of outputPath) & anOutputName)(6)
end repeat(7)
  1. trackTagList の1項目を aTrackTag として呼び出す繰り返し処理の開始
  2. aTrackTag の15番目の項目(入力ファイルの場所)をUNIX形式かつクオートで囲んだ状態で取得
  3. aTrackTag の7番目の項目(曲番号)を anTrackNumber として取得
  4. 曲番号( anTrackNumber )の桁揃え処理。(Thanks for 鳶嶋工房
  5. 曲番号と曲名をつなげて出力するファイル名に加工
  6. あらかじめ定義したファイルの出力場所(次回説明)とファイル名をつなげ、クオートで囲んだ状態で outputPath 変数に格納
  7. trackTagList についての繰り返し処理終了

これで anInputPath と anOutputPath に入力ファイルの場所パスと出力ファイルパスが格納された状態となった。次回はこれらを用いてLAME MP3 エンコーダーでエンコードする手順を説明する。

2015.1.1改訂

  1. 曲番号桁揃え処理を変更。
  2. AppleScriptコードの見栄えを改良

2013年6月11日火曜日

LAME mp3 エンコーダーを使う(2)

前々回、LAME MP3 エンコーダーをインストールする方法を説明した。ターミナル.appでエンコードもできるし、その方が文字だけとは言え進捗も分かるのだが、CDを1枚分(それ以上)エンコードするとなると、連続(=バッチ処理)したいものである。

幸いMacにはAppleScriptというアプリケーション間のやりとりを橋渡しが得意なスクリプト言語が標準で添付されている。これから4回に分けてAppleScriptを用いてLAME MP3 エンコーダーとiTunesを連携させて、連続(=バッチ処理)エンコードする方法を説明していきたい。

AppleScriptでのおおまかな処理の手順は以下のようになる。

  1. iTunesからの曲情報の取得
  2. 曲情報をLAME MP3 エンコーダーの入力ファイル名と出力ファイル名に加工
  3. LAME MP3 エンコーダーを用いたエンコード
  4. エンコードしたファイルのiTunesへの登録

それでは、今回は「iTunesからの曲情報の取得」を説明する。

  1. 始めに「iTunesに命令する」と記述する
    tell
        application "iTunes"
    end tell
    
  2. 対象となる曲リストはiTunesのプレイリスト上で選択されたアイテムとする。これは次のように記述する
    set srcTrackList to selection
    

    これに加えてiTunesのプレイリスト上で何も選択されていない場合のエラー処理を記述する

    if (srcTrackList is {}) then
        say "Please Select 1 item"
        set errorFlag to true
    else
    end if
    
  3. プレイリストで選択されたアイテムから、その曲情報を取得する。これは次のように記述する

    set trackTagList to {}
    
    repeat with aTrack in srcTrackList
    tell aTrack to set trackTags to {name, artist, album artist, album, composer, comment, genre, track number, track count, year, disc number, disc count, bpm, compilation, duration, location}
    copy trackTags to end of trackTagList
    end repeat
    

これで trackTagList にiTunesのプレイリスト上で選択されたアイテムの曲情報が格納された状態となった。次回はこの曲情報をLAME MP3 エンコーダーの入力ファイル名と出力ファイル名に加工する手順を説明する。

2013年6月5日水曜日

MacKeeperは必要ない!!

LAME mp3 エンコーダーの続編を書くつもりだったが、予定を変更してMacKeeperというソフトウェアについて書く。理由は、このソフトウェアが無用の長物であるにもかかわらず、Googleの広告に掲載されるようになってしまったためである。

この無用の長物は、2013年に開発元であるZeoBit社からKromtech Alliance a technology investment group社売り渡された経緯を持つ。今回Googleの広告に食い込んでしまったのはKromtech社が絡んだ事によるのではないかと思われる。

以下、このソフトウェアを実際にインストールしてレビューする。

公式サイトからダウンロードできるMacKeeperのバージョンは3.9.6(2016.11.23現在)である。ダウンロードボタンを押すと、わずか175,242バイトのパッケージがダウンロードされる。(パッケージをダブルクリックしてインストールする際にソフトウェア本体がダウンロードされる仕組みになっている)
インストールが終了すると、直ちにMacKeeperが起動してシステムのスキャンを開始する。

次の画像は筆者のMacをスキャンした結果である。

ことさらに問題があるように見せつけるが、実態は後述する通り、大した問題ではない。

次の画像はスキャン終了時点でのシステムステータス(笑)である。

これも、ことさらにパフォーマンスに影響する重要な問題があるように見せつけるが、実態は後述する通り、大した問題ではない。

次の4枚の画像はクリーニング機能の高速クリーニングタブを開いたものである。

バイナリカッターはIntelベースのMacにおいて不必要なPowerPCアーキテクチャのコードを除去するという。実行コードはソフトの起動時にハードウェアに合わせたものが読み込まれる。別にPowerPCのコードが含まれているからパフォーマンスに影響することはあり得ない。

通常キャッシュするとは、読み込みに時間がかかるデータをそのソフトに取って都合の良い場所に保存しておくことを意味する。キャッシュを削除することは古いデータを更新する際には有効だ。しかし更新のないデータは不必要な再読み込みを行うことになり、却ってパフォーマンスを下げることになる。

ランゲージカッターはマルチリンガル対応のMacのソフトウェアから不必要な言語パックを削除するという。言語はソフトの起動時にその環境(ロケール)に合ったものが読み込まれるのであって、言語が多いからパフォーマンスに影響することはあり得ない。

ログクリーナー。システム関連のログファイルは多くの場合ローテーションという機能が備わっている。古いログは一定期間経つと自動的に更新され、消えてなくなる。そのサイズを気にする必要は全くない。
第一、自分が吐いたログを全て読み込んで立ち上がるソフトなど聞いたことがない。何故ログを削除するとパフォーマンスが上がるのか聞いてみたいものである。

残りの機能を個別にレビューする。

  • セキュリティー
    インターネットセキュリティー盗難防止ソフトがある。
    インターネットセキュリティはウイルス、マルウェア対策のソフトらしいが、専門のソフトに任せるべきである。第一MacKeeperは数ヶ月この機能をアップデートしなかったことがある。
    盗難防止ソフトはOS X 10.8.x以降であればiCloudの機能に同じ機能があるので必要ない。

  • 高度な機能

    • メモリクリーナー
      字面を読むと、起動したことがあるアプリケーションの再起動を高速化するためにシステムがマッピングしている領域を削除するように読める。興味のある方は試すと良いが、こんなことをすればアプリの再起動は遅くなりイライラが募るのみである。
      参考:Macが重い時にメモリ解放をする方法
    • 重複ファイル検索
      どこまでできるのか知りたいが、例えば同じ画像でファイル名が異なるケースも検出できるのだろうか? GoogleがAIを使ってやっていることをMacKeeperが実装している? にわかには信じがたい。
    • スマートアンインストーラー
      無料かつほぼ完全に関連ファイルを削除できるAppCleanerがあるので不要。ちなみにこのAppCleanerはインストラータイプの場合では有効ではない場合もある。
    • ファイルの復元
      いわゆるサルベージ機能だが、HFS+の構造上、削除したファイルは元のファイル名も、保存されていたディレクトリも失われる。それでも拾えれば良いという向きは試すべきだが、どちらかと言えばTime Machineを用いたほうが良いのではないだろうか?
    • データの暗号化
      必要ならばOS標準のFileVaultを使えば良い。
    • ファイル検索
      SpotLightは最高の検索ツールだ。これを超える検索機能を筆者は知らない。
    • ログイン項目
      インストラーによってログイン項目を増やされて対応できないような素人向けの機能である。システム環境設定のユーザーとグループからログイン項目は管理できることぐらいは学ぶべきである。
    • ディスク使用量
      アップルメニューから実行する「このMacについて」でストレージタブを開けば分かる。
    • デフォルトアプリケーション
      Finderの情報を見るからいつでも変更できるし、必要ならば副ボタン=右クリックで「このアプリケーションで開く」を使えば良い。
    • 更新トラッカー
      Mac App Storeからダウンロードしたアプリは、すべて自動でアップデートされる。それ以外の場合も、多くのアプリは自己更新機能を備えている。なぜMacKeeperに頼む必要があるのだろう?
    • 高速クリーニング
      既に図を用いて説明した。すべて不必要な機能である。
    • バックアップ
      Time Machineがあれば不要。
    • シュレッダー
      ディスクユーティリティの空き領域の消去でセキュリティオプションを選べば同様のことができる。
  • ギーク・オンデマンド
    ユーザーサポートのようだが良くわからないので言及は避ける。

以上、このソフトウェアパッケージは、どれもが不要か、それとも無料のソフトウェアで代用できるものでしかない。これが必須16種類54,000円相当を、たった9,999円で入手できると称していることの実態である。

MacKeeper価格情報

MacKeeperのアンインストール方法
最後にMacKeeperのアンインストール方法を書いておく。と言っても賢察な方であれば、もう言わずもがなのことである。AppCleanerを起動してMacKeeper.appをドラッグ&ドロップすれば、関連ファイルを含めて全てアンインストールできる。

2013.12.8追記
MacPaw社よりCleanMyMac 2なるMacKeeperと似たようなアプリケーションが出ている。インストールして試す気はないが、これもMacKeeperと同様の機能である。すなわち使うべきソフトウェアではない。

2014.6.8追記
MacKeeperは、現在バージョン2.5.1と2.10.3の2種類がある。2.10.3は本稿ではレビューしていないが、確認した限りでは2.5.1と同じであった。筆者を信じるか、MacKeeperを信じるかは、お任せする。

2014.12.31改訂

  1. 記事の内容に一般のソフトウェアの仕組みについて理解が未熟だった部分があったので修正。MacKeeperの理解が不足だった訳ではない。
  2. MacKeeper 2.17.1にて実機確認を実施。

2016.11.23改訂
MacKeeper 3.9.6にて実機確認を実施。内容をソフトの構成に沿って再構成。