信助さんのオーディオ

いい音で音楽を聴きたい

Quicktimeでアルバム一枚聞きたい その2

2008-03-12 13:15:00 | オーディオ
もし、曲をつなげて一曲にしてしまうスクリプトがあったら、
Quicktimeでアルバムが聴けるのにとブログにと書いたら、
Westacularさんの作ったスクリプトを40番さんに教えていただいた。
いい情報ありがとうございました。ブログをやって良かったと感じました。

そのスクリプトを私なりにモディファイしてみた。
以下は変更点。

1. Chapter番号しか表示されなかったので、
曲名がチャプターに表示されるようにした。

2. ファイルをつなげた後、ポインタが先頭に来るようにした。
(スタートボタンを押せば、すぐ再生出来るようにした。
オリジナルバージョンでは最後の位置)

3. 高域を少し持ち上げた。
(私のシステムではこれぐらいがちょうどいい)

アルバム名も表示されるようにしたいが、現在アイデアなし。
誰か、そこだけ作ってくれるとありがたい。

以下はモディファイしたスクリプト。
赤字は私がモディファイしたところ。

on run {input, parameters}
tell application "Finder" to set input
to sort input by name
repeat with i from 1 to the count of input
set this_item to (item i of input)
tell application "QuickTime Player"
if i is equal to 1 then
make new movie
end if
open this_item
tell movie 1
set MusicName to name of this_item
rewind
select all
copy
select none
end tell
close movie 1 saving no
tell movie 1
add
select none
if i is equal to 1 then
set this_track to make new track at beginning with data "Chapter 1"
set enabled of this_track to false
set the name of this_track to "Chapter Track"
set chapterlist of track 1 to track "Chapter Track"
set the movie_length to the duration
tell chapter 1
set the time to 0
set the duration to movie_length
set the name to MusicName
end tell
else
set the newmovielength to the duration
set the duration of this_track to newmovielength
set the chapter_list to the name of every chapter
set the new_chapter_list to chapter_list & (i as string)
set the contents of the current chapter track to the new_chapter_list
set the time of chapter i to movie_length
set the duration of chapter i to newmovielength - movie_length
set the name of chapter i of this_track to MusicName
set movie_length to the duration
end if
end tell
end tell
end repeat
tell application "QuickTime Player"
tell movie 1
set treble gain to 95
rewind
end tell
end tell

return input
end run

最新の画像もっと見る

30 コメント

コメント日が  古い順  |   新しい順
納得 (信助)
2008-03-29 22:56:29
なるほど、Finderへの命令になっていたのですね!!! 納得です。丁寧に教えて下さりありがとうございます。
返信する
なるほど (40番)
2008-03-29 11:41:44
二重投稿の修正、ありがとうございます。

> 一つでも日本語のファイルがあったら、
> すべてWestacularさんのプログラムで連続ファイルを作ろうと

なるほど! そういう意図だったんですね。大変失礼しました。

「my」はそもそも「ローカル変数」を示すために使います。これをサブルーチン名に付けることで、「tell application "xxx"」 で呼び出しているアプリケーション(今回は Finder)にローカル変数だと認識させるわけです。そうしないと、アプリケーション は「Westacular()」「Nobusuke()」をそのまま自分自身への命令だと受け取るので「意味わかんないよ」とエラーになってしまうんですね。

サブルーチン処理は呼び出したアプリケーションではなく、AppleScript がするので、こういう手間が必要となります。

ちなみに「tell application "xxx" ~ end tell」の外でサブルーチンを呼び出す場合は、イコール AppleScript への命令ですから my を付ける必要はありません。
返信する
動きました (信助)
2008-03-29 10:08:53
40番さん、myを付けたら動きました。
ありがとうございます。
教えてもらわなかったら相当悩んでいたと思います。

フォルダの中に一つでも日本語のファイルがあったら、すべてWestacularさんのプログラムで連続ファイルを作ろうと思っていて、repeat ~ end repeatの外にサブルーチン呼び出しを書いていました。でも、英語表記出来るファイルは出来るだけ、曲名が表示されるようにした方が良いような気がしてきました。私が良く聞いているアン・サリーのライブ盤は数曲しか日本語の曲が入っていないのに、すべて曲名が表示されないのはもったいないと思えてきました。

返信する
サブルーチン呼び出し (40番)
2008-03-28 16:15:17
問題箇所が3つありました。
1.サブルーチンの呼び出しに「my」を付けていない。
2.サブルーチンの呼び出しが repeat の外に書いてある。
3.「set Mojibake to false」が repeat の外に書いてある。

↓こうすると上手くいきます。

-- 結果で振り分け
set Mojibake to false --チェックするたびにfalseにする
if not (ASCII_Name as string) is (FName as string) then
-- 文字化けなく変換された
set Mojibake to true
end if
--直後にサブルーチン呼び出し
if Mojibake is true then
set a to my Westacular()
else
set a to my Nobusuke()
end if

「repeat ~ end repeat」でファイルをひとつずつ繰り返して処理していますから、repeat の中に書くのです。
返信する
ramdiskで再生 (40番)
2008-03-28 15:33:58
これも uta さんからの情報です。
option キーを押しっぱなしで iTunes を起動すると
「iTunes ライブラリを選択」のダイアログが表示されます。
[ライブラリを作成...]ボタンで ramdisk を選択して、そこを新規ライブラリにしてしまえば OK です。

> 自然な音でいい音でした(高域がきれいに延びる)

ですねよ。本当の帯域バランスで再生されている感じです。
返信する
ramdiskで再生 (信助)
2008-03-28 15:13:25
あっ、もしかして、「ライブラリへの追加時にファイルをiTunes Musicフォルダにコピーする」のチェックボックスを外せば良いのでしょうか?
返信する
ramdiskで再生 (信助)
2008-03-28 15:08:37
uta さんのramdiskの方法を試してみました。iTunesをramdiskに置いて再生してみましたが、自然な音でいい音でした(高域がきれいに延びる)。AIFFファイルもramdiskに置いてiTunesに取り込みましたが、ハードディスクに新たにAIFFファイルが作られてしまいました。iTunesの保存場所をramdiskに設定すれば良いのかもしれませんが、保存場所を変えるのは怖いので、ramdisk上のファイルの再生はまだ出来ていません。簡単にramdiskのAIFFファイルをiTunesする方法はありますか?
返信する
サブルーチンの呼び出し (信助)
2008-03-28 15:02:10
40番さんに作っていただいた日本語判定スクリプトをQuicktime結合スクリプト用に書き換えました。日本語かどうか判定して、日本語ならWestacularさんのサブルーチンへ、日本語でなければ私がモディファイしたサブルーチンへ飛ぶようにしたかったのですが、うまく動きません。サブルーチーンへ飛ばすための記述がうまく行っていないようです(Applescriptでサブルーチンへ飛ばす方法が良くわかっていないのだと思います)。下のスクリプトはテストスクリプトで、サブルーチンに飛ばして、"文字化けあり"か"文字化けあり"と表示させるプログラムです。set a to Westacular()やset a to Nobusuke()のところで止まってしまいます。どうしてうまく動かないか教えていただけないでしょうか?よろしくお願いします。

tell application "Finder"
set Mojibake to false
set Select_Items to selection --選択アイテム取得

repeat with theItem in Select_Items --選択アイテムをひとつずつ
if (class of theItem) is folder and number of (items of theItem) > 0 then
-- 属性が folder で、なおかつ中身が空ではない

repeat with i from 1 to number of (items of theItem) --フォルダの中をひとつずつ
set obj to item i of theItem
if (class of obj) is document file then
set FName to name of obj as Unicode text

-- piconv で ASCII に変換。
set ASCII_Name to ""
set myScript to "echo " & (quoted form of FName) & " | piconv -f utf8 -t ascii"
set ASCII_Name to do shell script myScript

-- 結果で振り分け
if not (ASCII_Name as string) is (FName as string) then
-- 文字化けなく変換された
set Mojibake to true
end if

end if
end repeat
end if
end repeat
if Mojibake is true then
set a to Westacular()
else
set a to Nobusuke()
end if
end tell

on Westacular()
tell application "Finder"
display dialog "文字化けあり"
end tell
end Westacular

on Nobusuke()
tell application "Finder"
display dialog "文字化けなし"
end tell
end Nobusuke

返信する
ramdiskで再生 (40番)
2008-03-28 00:27:10
信助さん、TAKA さんのブログで uta さんが教えてくれた「ramdisk に AIFF ファイルと一緒に iTunes.app も入れてそこから起動再生」という方法は、QuickTime Player.app でもすごい結果でしたよ。ぜひ試してみてください。
返信する
うっかりしてました (40番)
2008-03-27 15:02:25
すいません、ファイル名の中にシングルクォートがある場合のことを失念してました。

set myScript to "echo " & (quoted form of FName) & " | piconv -f utf8 -t ascii"

これでOKです。「quoted form of 」とすることで、AppleScript が
・文字列の前後にシングルクォートを付ける。
・文字列の中にシングルクォートがあれば、それをエスケープ処理する。
この2つを自動的に上手くやってくれます。

例)ABC'DEF → 'ABC'\''DEF' (\は半角のバックスラッシュ)

文字列の前後にシングルクォートを付けるのは、shell に「これは文字列だぞ」と明示するためです。

返信する
ありがとうございます (信助)
2008-03-27 13:38:39
レス遅くなってすいません。日本語チェックのプログラムを作って下さりありがとうございます!しかも、詳しい解説がついていてとても助かりました。

ファイル名に”’”がついているとエラーが起きるようです。「Finder でエラーが起きました:sh: -c: line 0: unexpected EOF while looking for matching `'' sh: -c: line 1: syntax error: unexpected end of file」とエラー表示されます。

set myScript to "echo '" & FName & "' | piconv -f utf8 -t ascii"の命令がまだ良く理解出来ていないのですが、ファイル名に"'"があると、echo以下に"'"が3つで来てしまい、構文エラーになると思われます。"'"は日本語ではないので、set FName to name of obj as Unicode textの直後で、ファイル名に"'"があったら取ってしまうプログラムを入れれば解決するように思いました。自分ではどうやっていいか分かりませんが... すいません。
返信する
早くも修正 (40番)
2008-03-26 15:28:58
たった今仕入れたネタがありまして、ファイル名チェックの箇所を改善できることがわかりました。

-- ファイル名チェック
-- piconv で ASCII に変換。
set ASCII_Name to ""
set myScript to "echo '" & FName & "' | piconv -f utf8 -t ascii"
set ASCII_Name to do shell script myScript

この方がずっとスマートです。tryで囲う必要もありません。「piconv」は AppleScript 内でエンコーディング変換をするのに、汎用的に使えます(変換できない文字は半角の ? になりますけど)。
返信する
作ってみました (40番)
2008-03-26 12:36:43
ファイル名をチェックするスクリプトです。ついでにフォルダの中のAIFFファイルだけを処理するようにしてみました。フォルダを Finder 上で選択してから実行してください。


tell application "Finder"
set Select_Items to selection --選択アイテム取得

repeat with theItem in Select_Items --選択アイテムをひとつずつ
if (class of theItem) is folder and number of (items of theItem) > 0 then
-- 属性が folder で、なおかつ中身が空ではない

repeat with i from 1 to number of (items of theItem) --フォルダの中をひとつずつ
set obj to item i of theItem
if (class of obj) is document file and (file type of obj) is "AIFF" then
-- 属性が document file で、なおかつファイルタイプが「AIFF」
set FName to name of obj as Unicode text

-- ファイル名チェック
-- iconv で US-ASCII に変換。変換できない時(文字化けする時)はエラーになるので try で囲っておく
set ASCII_Name to ""
set myScript to "echo '" & FName & "' | iconv -f UTF-8-MAC -t US-ASCII"
try
set ASCII_Name to do shell script myScript
end try

-- 結果で振り分け
if (ASCII_Name as string) is (FName as string) then
-- 文字化けなく変換された
set Use_Name to FName
else
set Use_Name to "Chapter " & (i as string)
end if

--ダイアログを表示して確認
display dialog FName & " → " & Use_Name

end if
end repeat
end if
end repeat
end tell
返信する
面白いですね~ (40番)
2008-03-26 00:35:56
> ファイルが日本語かどうかの判断はApplescriptで出来そうでしょうか?

Applescript だけでは無理かも。私でしたら「do script」で Perl か iconv を使って、テキストエンコーディングを変換してみます。Westacularさんのスクリプトでは US-ASCII しか受け付けなさそうなので、

とにかくファイル名を US-ASCII に変換してみる。
  → 変換後も同じで変化がなかったらファイル名を使う
  → 変化してイコールじゃなかったら Chapter X にする

こんな感じでしょうか。…って、できるのかな?
面白い課題なので私もちょっとやってみます。

> 指定されたフォルダをどのようにアップルスクリプトで認識するか

選択されたファイルやフォルダでしたら、Finder の「selection」で取得できます。
例)tell application "Finder" to set ItemList to selection

> ファンクションキーでアップルスクリプトを立ち上げることが出来るのか

これも Applescript だけでは無理かも。
http://www16.plala.or.jp/x-tomo/Pages/launcher.html#keyboard
この辺りのフリーウェアで、スクリプト(アプリケーション形式)をFキーに割当てる方法になると思います。

返信する
色々質問 (信助)
2008-03-25 22:10:42
スクリプトを使いやすいようにモディファイ出来ればと考えています。

Quicitimeの日本語表示が厳しいようなので、ファイル名が日本語かどうか判断して、ファイルが日本語でなければ、私がモディファイしたスクリプトで曲名表示、日本語であれWestacularさんのスクリプトでチャプター表示というスクリプトを考えています。ファイルが日本語かどうかの判断はApplescriptで出来そうでしょうか?

また、フォルダを選択してファンクションキーなどを押したら自動でアップルスクリプトが立ち上がり、フォルダ中の曲をつなげるというスクリプトが便利かなと思っています。これまでの方法では、全曲を選択する操作とAutometorを起動するためのプルダウンが面倒なので。指定されたフォルダをどのようにアップルスクリプトで認識するかと、ファンクションキーでアップルスクリプトを立ち上げることが出来るのかが良くわかりません。どこかでそんなスクリプトを見たとか情報がありましたら教えていただけませんでしょうか?
返信する
デジタル再生は難しいです (40番)
2008-03-24 22:32:03
> PropertiesのLanguageを日本語に変えれたら

「set the language of this_track to 11」
「set the language of this_track to "Japanese"」
どちらでもできますよ。
でも、それにしても日本語が化けるんですよね。

「open」でテキストファイルを開いて作る track では化けないのに、
「make new track」でユーザが作った track だと化けてしまうのは
もうバグなんだと思います。いつか治るといいですね。

> エコーが落ちて、天井が低くなるような印象でした。

こちらでもそういう印象でした。悪い音です。
微細情報がなくなってしまった感じですね。
さらにチャプターを付けると、今度はスカスカ気味の音になります。
ん~、難しい!
でも勉強になって、とても面白かったですよ。

返信する
AppleのAppleScriptのページ (信助)
2008-03-24 01:50:21
アップルスクリプトのページ教えて下さって、ありがとうございます。これは良いです。こんなページを探していました。一つ一つの説明ページはグーグルで検索出来たのですが、一覧のページにはたどり着けませんでした。ありがとうございます。
返信する
音質が少し落ちるようです (信助)
2008-03-24 01:45:17
40番さん、boolean値に書き換えてみました。
boolean値がApplescriptで使える事もしらない私でした。

40番さんに作っていただいた修正版のアップルスクリプトの音質を真剣に聞き直したのですが(Airfoil経由で)、Quicktime一曲再生や、Westacularさんのスクリプトの音に比べて、若干音質が落ちる感じがしました。エコーが落ちて、天井が低くなるような印象でした。せっかく作っていただいたのに、また、ケチをつけてすいません。恐らく、一秒おきにApplescriptがQuicitimeにアクセスしているせいじゃないかと感じています。音質をキープしたまま利便性を上げるのはとても難しいと感じました。

Westacularさんのスクリプトの日本語表示はいろいろやってみたのですが、難しいですね。PropertiesのLanguageを日本語に変えれたらと思ってチャレンジしてみたのですが、System defaultから変更出来ませんでした。日本語はあきらめてWestacularさんのスクリプトを使うのが一番音質には良いかもしれません。

text trackを使ってチャプタに日本語を表示させる方法は、Westacularさんのスクリプトの方法と根本的に違うみたいですね。Westacularさんのスクリプトはダイレクトにチャプタを作って、text trackを使う方法はtextをMovieに書き込んでいるみたいです(Movieは表示されませんが)。音楽再生中にMovie処理もしているので音質が落ちるのかなと思っています。

Westacularさんが使った方法で日本語が扱えるようにQuicktimeの仕様が変わってくれれば良いのですが。
返信する
良いアイデアですね~ (40番)
2008-03-22 20:05:10
改良されていくのを見るとうれしくなってしまいます。どんどんいじってください。

ところで追加した箇所ですが、「set StopFlag to true」と文字列ではなく boolean 値を代入して大丈夫ですよ。boolean にしておくと

if not StopFlag is "True" then
start
end if

↑これを「if not StopFlag then start」とギリギリまで簡略に書けます。
こういった省略の仕方を知っておくと、人の書いたスクリプトを読むのがぐっと楽になりますね。

今日、こんなページを見つけました。
http://docs.info.apple.com/help/guide.html?path=AppleScript/2.1/jp/
実は私、AppleScript はちょっと苦手なので、これで勉強します。


返信する
1曲目は自動再生しないようにしました (信助)
2008-03-22 13:16:56
40番さん、修正版ありがとうございます。

QuickTime Player の仕様で日本語表示出来ないのですね。Appleがもう少し、親切にQuickTimeの設計をしてくれたら良かったですね。曲をMovieに貼付けると音は悪くなりそうでしょうか?曲名をムービーに貼付けて、チャプターは曲番だけなんてのも考えたのですが。

40番さんに作っていただいたスクリプトを少し自分好みに変えてみました。
最初の曲は自動で再生せずに、手動でスタートする形にしてみました。
(いきなりフルボリュームで始まらないように)

音は明日、朝、起きてから聞いてみます。

on open these_items
try
set myVol to 256 -- 最初はフルボリューム
set StopFlag to "True" -- 1曲目は自動再生させないためのフラグ
set QTpath to quoted form of POSIX path of (path to application "QuickTime Player")

tell application "Finder" to set sorted_items to sort these_items by name
repeat with this_item in sorted_items

set itemPath to quoted form of POSIX path of (this_item as Unicode text)
do shell script "open -a " & QTpath & " " & itemPath -- QuickTime Player で開く

tell application "QuickTime Player"
set docName to name of front document
tell document docName
rewind
select none
set sound volume to myVol
if not StopFlag is "True" then
start
end if
set StopFlag to "False"
repeat until (not playing) and (current time = duration)
delay 1
end repeat
set myVol to sound volume
close
end tell
end tell

end repeat
end try
end open
返信する
修正版です (40番)
2008-03-21 16:56:16
on open these_items
try
set myVol to 256 -- 最初はフルボリューム
set QTpath to quoted form of POSIX path of (path to application "QuickTime Player")

tell application "Finder" to set sorted_items to sort these_items by name
repeat with this_item in sorted_items

set itemPath to quoted form of POSIX path of (this_item as Unicode text)
do shell script "open -a " & QTpath & " " & itemPath -- QuickTime Player で開く

tell application "QuickTime Player"
set docName to name of front document
tell document docName
rewind
select none
set sound volume to myVol
start
repeat until (not playing) and (current time = duration)
delay 1
end repeat
set myVol to sound volume
close
end tell
end tell

end repeat
end try
end open


こんなところでどうでしょう? 再生中に次のファイルへ移るには、曲の終わりまでジャンプさせて「current time = duration」にしてしまえばOKです。

> Westacularさんのスクリプトを修正して日本語表示することが出来れば

あのスクリプトでは「あ」が「0B」と文字化けします。これはVB風に言うと「chr(asc("あ"))」というような処理をしているとしか考えられません。つまりASCII文字列であることを大前提にしているわけで、この QuickTime Player の仕様では日本語の処理はどうやっても不可能だと思います。

私がRbで作ったソフトでは、Text Track を作成する最も真っ当な方法を採用しています。
http://www.apple.com/quicktime/tutorials/texttracks.html
↑このような text track descriptors を生成して、連結したムービーへ追加しています(日本語はこの方法でしかチャプターにできません)。

ムービーを連結する処理は Westacular さんとまったく同じことをしていますので、この「Text Track を作成する最も真っ当な方法」が音を悪くさせている原因かもしれません。だとすると、これも「仕様」ということで、打つ手はありませんね…。
返信する
使ってみました (信助)
2008-03-21 10:47:53
新しいプログラムを作って下さり、ありがとうございます。
シンプルなプログラムで書けてしまうのですね。びっくりしました。

音を聞いてみたのですが、普通のQuicitime一曲再生やWestacularさんのスクリプトと同じ音のように感じました。ただ、今日少し疲れているので細かいところは聞き取れていないかもしれません。

40番さんのプログラムを使っていて、一時停止をすると次の曲の再生が始まってしまう点、ボリュームを絞って聞いているとき、次の曲始まるときにフルボリュームになってしまう点が気になりました。

Westacularさんのスクリプトを修正して日本語表示することが出来れば、それらの点も音質の問題も解決出来ると思うのですが、難しそうでしょうか?
返信する
連続再生の AppleScript (40番)
2008-03-20 16:36:43
色々と試してみたのですが、連結ムービーはどうやっても音質が劣化してしまいます。それもデジタル的に加工されたようなイヤな感じの音になります。
そこで、そもそもの初めに戻って、AppleScript で連続自動再生するのがやはりベストなのではと考えました。で、作ってみたのが以下のスクリプトです。アプリケーション形式で保存してドラッグ&ドロップで使います。


on open these_items
try
set QTpath to quoted form of POSIX path of (path to application "QuickTime Player")

tell application "Finder" to set sorted_items to sort these_items by name
repeat with this_item in sorted_items

set itemPath to quoted form of POSIX path of (this_item as Unicode text)
do shell script "open -a " & QTpath & " " & itemPath -- QuickTime Player で開く

tell application "QuickTime Player"
tell document 1
rewind
select none
start
repeat until not playing
delay 1
end repeat
close
end tell
end tell

end repeat
end try
end open


「repeat until not playing ~ delay 1 ~ end repeat」のところで、再生が終了したかどうかを1秒ごとに確認しています。終了していれば次のファイルを開いて再生をはじめます。

「do shell script」で ファイルをちゃんと QuickTime Player で開くようにしているので、関連づけは不要です。

「try ~ end try」で囲っているのは、ユーザが途中で QuickTime Player を終了するとエラーメッセージが出るので、それを出さないようにするためです。

欠点はギャップレス再生ができないことですが、音質を考えるとこれがベストでしょうね。
返信する
遠慮なく言ってください (40番)
2008-03-18 16:36:07
大丈夫ですよ。これは原因が QuickTime プレーヤー側にあるので、私はなんとも感じませんから(笑)

> 昔、マシン語やベーシックでプログラムを作っていた
でしたら REALbasic はかなり敷居が低いはずです。購入金額がちょっと高くて、日本では人気も活気もないので強くお薦めはできない状況ですけど、遊んで楽しむには良い玩具です。
返信する
保存する前の音 (信助)
2008-03-18 13:12:12
言語の事、教えて下さり、ありがとうございます。
昔、マシン語やベーシックでプログラムを作っていたのですが、
最近の言葉は高尚すぎて、敷居が高いです。
もっとも、音楽データを切り貼りするプログラムを簡単に書けるのは、夢のようですが。

もう少し確認をしてから書いた方が良いかもしれないのですが、
Westacularさんのプログラムで作った連結ファイルと、
40番さんに作っていただいたプログラムで作った連結ファイルの
音を聞き比べて、Westacularさんの方が音が良いように感じました。
どちらも保存する前のファイルを比較したので、どちらも同じ音になるはずなのですが、
40番さんに作っていただいた方の音はハイ下がりに感じました。
2回ほど聞いてみたのですが、どちらも、そのように感じました。
間違っていたら、失礼なので、もう少しチェックしたかったのですが、
早くお知らせた方が良いかもしれないと思い、書きました。
せっかく作っていただいたのに文句を言って申し訳ありません。
返信する
どうもどうも (40番)
2008-03-18 09:47:18
> このソフトはどの言語で作ったのでしょうか?
REALbasic です。本当は Xcode で作れれば良いのですが、スキルがしょぼしょぼなので、もっぱらこれで楽しんで作ってます。

AppleScript はなかなか良い参考書がありませんね。信助さんはある程度のカスタマイズができる方なので、やりたい処理をネット検索で探して、他の方が書いたコードを参考にするのがベストだと思います。アプリケーション形式で配付されていても、スクリプトエディタで中のコードを見れるものもありますし、やはり他人のコードを見るのが一番参考になりますね。

ところで、QuickTime ムービーですが、参照ムービーで保存してもかなり音質が劣化してしまいますね。どうもインターネット・ストリーミング向けにサウンドをわざと品質を下げて(圧縮して)再生しているようです。通常の「保存」ではどうしてもこうなってしまいます。

解決方法としては、保存ではなく「書き出し」の機能を使って、サウンドを「最高品質」に設定すれば、劣化の度合いは少なくなります。ただこの方法ですと、独立再生形式にするしかなく、しかもチェプターもなくなってしまいます。文字コードの件もそうですが、QuickTime は思いのほかできることが限られているので驚きました。

一応、上記をふまえてソフトを改修してみます。未保存の連結ムービーをAIFFに書き出す機能も追加できればと思っております。
返信する
力作ですね (信助)
2008-03-17 23:09:48
ありがとうございます!!!
ソフト使ってみました。
マイリストが作れるところが良いですね。
日本語表示にするのも大変な作業のようですね。
私は少しの変更するだけでも一苦労ですが、
40番さんぐらいのスキルがあると色々出来て楽しいでしょうね。

このソフトはどの言語で作ったのでしょうか?
アップルスクリプトを勉強してみたいのですが、
お勧めの入門書やホームページがありましたら
教えていただけませんでしょうか?
プログラム例(特にQuicktime)が多いとうれしいのですが。
返信する
Concatenate Movies 0.9.0 (40番)
2008-03-17 01:16:05
お待たせです。一通り仕上げたソフトをUPしました。
http://www.box.net/shared/c97ux75ics
どうぞ良かったらお使いください(Mac OSX 専用です)。
使い方等の詳細は同梱の「Read Me」に書いておきました。

このソフトは前準備(QuickTime Player への関連付け)は不要です。それから、チャプター用のテキストファイルがなくても「参照ムービー」に保存できました。あの AppleScript がどうして参照ムービーにできないのか不明です…。

音質は、AIFF ファイルを直接再生した音より、若干角が取れたような感じに聴こえました。微妙なところです。
返信する
楽しみにしています (信助)
2008-03-13 10:59:03
確かに、私の追加したプログラムだと日本語が文字化けしますね。
今朝気づきました。

また、Westacularさんのスクリプトのスクリプトで出来たファイルを
保存しない方がいい音のように感じました。
(きちんと聞き直さなければいけませんが)
これも40番さんのおっしゃっていることが正しいと思います。

ソフトの完成、楽しみにしております。
返信する
日本語が… (40番)
2008-03-12 20:55:21
Westacularさんのスクリプトには、2つの問題点がありますね。

1.チャプターをファイル名にすると日本語が文字化けしてしまう。
2.チャプター用のテキストファイルがないので「参照ムービーとして保存」ができない。(保存時に選択はできるが、実際には独立再生形式で保存される)

とくに参照ムービーにできないのが残念です。これにすれば、もとのAIFFファイルを直接参照して再生するので、音質劣化が避けられます。

ということで、上記の問題をクリアしたソフトを今作ってます。かなりイイところまで仕上がってるので、お楽しみに。
返信する

コメントを投稿