24bit/96kHz のハイレゾ WAVE ファイルを 48kHz の AAC ファイルに変換する

e-onkyo などで提供されてるハイレゾ音源の WAVE ファイルを iTunes でAAC変換すると 44.1kHz になってしまう。 個人的に 96kHz なのだから 48kHz にしたく調べたところ、MAC OS X で afconvert コマンドを用いて変換することで可能なことがわかった。 wav(WAVE) から caf 形式を経由して2段階で m4a(AAC) に変換します。 変換方法 source.wav を intermediate.caf にする。さらに final.m4a に変換する。 $ afconvert source.wav -d LEF32@48000 -f caff --soundcheck-generate --src-complexity bats -r 127 intermediate.caf $ afconvert intermediate.caf -d aac -f m4af -u pgcm 2 --soundcheck-read -b 288000 -q 127 -s 2 final.m4a 上記オプションは、アップル - iTunes - Mastered for iTunes を参考にした。

2013年3月29日 · Toshimitsu Takahashi

C# から iTunes COM Windows SDK を試す

参照設定で COM - iTunes Type Library を追加する。フォームにラベルを貼って、現在 iTunes で再生中のトラックの アーティスト名 - 曲名 (アルバム名) を表示するサンプル。 COM のため Marshal.ReleaseComObject で参照解除をしてあげないと、iTunes を終了するときに握っている旨のメッセージが表示されてしまう。次にサンプルは終了時に連動して終了するようにしている。 ラベルの書き換えは、別スレッドからの操作だから Invoke してやること。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using iTunesLib; namespace WindowsApplication1 { public partial class Form1 : Form { private iTunesApp itunes; public Form1() { InitializeComponent(); init(); } private void init() { itunes = new iTunesApp(); itunes.OnAboutToPromptUserToQuitEvent += new _IiTunesEvents_OnAboutToPromptUserToQuitEventEventHandler(itunes_OnAboutToPromptUserToQuitEvent); itunes.OnPlayerPlayEvent += new _IiTunesEvents_OnPlayerPlayEventEventHandler(itunes_OnPlayerPlayEvent); } private void unhock() { itunes.OnPlayerPlayEvent -= new _IiTunesEvents_OnPlayerPlayEventEventHandler(itunes_OnPlayerPlayEvent); itunes.OnAboutToPromptUserToQuitEvent -= new _IiTunesEvents_OnAboutToPromptUserToQuitEventEventHandler(itunes_OnAboutToPromptUserToQuitEvent); Marshal.ReleaseComObject(itunes); itunes = null; } void itunes_OnPlayerPlayEvent(object iTrack) { IITTrack track = itunes.CurrentTrack; if (track != null) { label1.Text = track.Artist + " - " + track.Name + " (" + track.Album + “)”; Marshal.ReleaseComObject(track); } } void itunes_OnAboutToPromptUserToQuitEvent() { unhock(); this.Invoke((System.Windows.Forms.MethodInvoker)delegate() { this.Close(); }); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (itunes != null) unhock(); } } }

2007年6月11日 · Toshimitsu Takahashi