wav以外のファイルをSoundEngineでシームレスに開く方法(デコード編) 【チュートリアル】


コマンドライン機能廃止に伴い、wav以外の拡張子をSoundEngineで開く別の方法を考えてみました。

今回考えてみた方法は、バッチファイルを使います。音声ファイルをコマンドラインアプリケーションでデコードしてからシームレスにSoundEngineで開くという方法です。といいますか、これはSoundEngineの機能とは全く関係なく、Windowsのバッチファイルの機能とコマンドラインアプリケーション(デコーダー)の機能を使うだけといえば使うだけです。

ということで、おそらくバッチファイルだとセキュリティ上問題にならないでしょうし、ユーザーが意図的にバッチファイルを作成・駆動するということであれば、Windowsの機能をただ使うだけですのでセキュリティ上は何ら問題無いかと思います。

ヘルプカフェでも動画で解説中!「01. wav以外のファイルをSoundEngineでシームレスに開く方法 (1:06) | SoundEngine #4 番外編」から。

スポンサーリンク

コマンドラインアプリケーションのインストール

まずはじめにコマンドラインアプリケーションのデコーダーをインストールします。

今回は例として、soxとflacを使って説明します。それぞれダウンロードしてきたインストーラーを起動してインストールします。

soxのインストール

flacのインストール

コマンドラインアプリケーションは、インストーラーが付属してないものもあるので、その場合は自分で適切な位置に実行ファイルを配置します。

バッチファイル作成

デスクトップもしくはエクスプローラーの右クリックメニューの「送る」にでも作るとよいでしょう。

「送る」に置きたい場合は、エクスプローラーで「shell:sendto」を開くとそのフォルダが現れます。(よくわからない人は、shell:sendtoあたりで検索するとよいでしょう)

今回例として作ったバッチファイルは以下のものです。

[text]
@echo off

set PROGRAM_FILES_PATH=%ProgramFiles(x86)%
set EXE_FOLDER_PATH=%PROGRAM_FILES_PATH%\SoundEngine Free\
set EXE_FILE_NAME=SoundEngine.exe

if not exist %temp%\SoundEngine MKDIR %temp%\SoundEngine
if not exist %temp%\SoundEngine\Scv MKDIR %temp%\SoundEngine\Scv

set DECODE_FILE_PATH=%temp%\SoundEngine\Scv\%~n1.wav
set EXTENSION=%~x1

if %EXTENSION% == .wav goto sox
if %EXTENSION% == .aiff goto sox
if %EXTENSION% == .aif goto sox
if %EXTENSION% == .flac goto flac

:sox
"%PROGRAM_FILES_PATH%\sox-14-4-0\sox.exe" "%~1" -s "%DECODE_FILE_PATH%"
start /d "%EXE_FOLDER_PATH%" %EXE_FILE_NAME% "%DECODE_FILE_PATH%"
exit

:flac
"%PROGRAM_FILES_PATH%\FLAC\flac.exe" -d "%~1" -o "%DECODE_FILE_PATH%"
start /d "%EXE_FOLDER_PATH%" %EXE_FILE_NAME% "%DECODE_FILE_PATH%"
exit
[/text]

簡単に解説しますと、まず1行目はおまじないです。3~5行目はプログラムファイルのパスなどを設定しています。7~8行目で出力先フォルダを作成し、10~11行目で出力ファイルのパスや拡張子を設定しています。13~16行目で拡張子別に場合分けし、18~21行目ではsoxのコマンドライン起動及びSoundEngineの起動を、23~26行目ではflacのコマンドライン起動及びSoundEngineの起動をしています。

バッチファイルを作る際には、デコーダーの実行ファイルのパスが正しいかどうかはちゃんとチェックして下さい。例えば、soxの場合デフォルトのインストール先は、C:\Program Files (x86)\sox-14-4-0となっていて、バージョンが違うとフォルダも変わるようです。

音声ファイルをバッチファイルへ

デスクトップにバッチファイルを置いた場合は、音声ファイルを作成したバッチファイルへドロップして下さい。

「送る」にバッチファイルを置いた場合は、音声ファイルを右クリックして送るメニューからバッチファイルを選んで下さい。

今回の例では、AIFF(AIF)ファイルとFLACファイル(とsoxが対応しているADPCMのようなPCM以外のWavファイル)をシームレスに開くことできるようになります。たたし、SoundEngine本体へのドラッグアンドドロップには対応してませんのでご注意を。また、別の拡張子でも同様な形で記述すれば簡単に使えるようになるでしょう。

サンプルバッチファイル

sox
http://sourceforge.net/projects/sox/files/sox/
から、
flac
http://sourceforge.net/projects/flac/files/flac-win/
からダウンロード可能です。

また、今回例として作ったものがこちらからダウンロードできます。64bit版のWindowsで使えるかと思います。32bitの場合は、Program Filesのパス(3行目)が違うのでそれを修正すれば使えるかもしれません。

スポンサーリンク
カテゴリー: チュートリアル   タグ: ,   この投稿のパーマリンク

wav以外のファイルをSoundEngineでシームレスに開く方法(デコード編) への1件のコメント

  1. ピンバック: SoundEngineでエラーが表示され音声ファイルを開くことができない場合 | 豆知識