試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

圧縮された形式のサウンドフォントを伸長

サウンドフォントという形式の音色データファイルは、独自の圧縮形式で配布されている場合がある。*1
ここでは、それらを展開するための方法についてを扱う。

sfArk形式

後述するSFPackが無くなったためか、圧縮されたサウンドフォントの形式として広く使われている。

sfArkXTc

sfArk形式で圧縮されたサウンドフォントを伸長するsfarkxtcには、x86_32のGNU/Linux版が用意されている。*2

動作にはx86_32版libstdc++.so.5が必要。

x86_32版libstdc++.so.5を含むパッケージ
ディストリビューションパッケージ名
Gentoo x86_32libstdc++-v3
Gentoo x86_64emul-linux-x86-compat
Debian/Ubuntu x86_32libstdc++5
Debian/Ubuntu x86_64ia32-libs
Mandriva(x86_32,x86_64)libstdc++5*3
(2008/11/28)Mandriva Linuxの記述を追加

$ objdump -p /usr/bin/sfarkxtc | grep NEEDED
  NEEDED      libstdc++.so.5
  NEEDED      libm.so.6
  NEEDED      libgcc_s.so.1
  NEEDED      libc.so.6

もしDebian/Ubuntulibgcc_s.so.1が無い場合、libgcc1(x86_64版ではlib32gcc1)のパッケージにあるようなので、これを入れればよさそう。

Gentoo Linux向けのebuild
http://cid-3f9be5b1cd4a806c.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/Gentoo%20Linux%20ebuild/app-arch/sfarkxtc/sfarkxtc-1.03.ebuild.txt
に作成・アップロードした。

作業例

下はSGM V2.01(http://www.geocities.jp/shansoundfont/)というサウンドフォントでの作業例。ZIPファイルに含まれるSGM-V2.01.sfArkを処理する。

$ sfarkxtc SGM-V2.01.sfArk
======================================================================
sfArkXTc 1.03 (using sfArkLib version: 224)
copyright (c) 1998-2004 melodymachine.com, free for non-commercial use
======================================================================
Uncompressing SGM-V2.01.sfArk...
Progress: 100%
Created SGM-V2.01.sf2 (241608 kb) successfully.

Time taken xx.xx seconds
Result: Successful

ファイル情報: SGM-V2.01.sf2
項目
ファイルサイズ247,406,594バイト
MD59910298f36840b6ad78e2ff758b870d6
SHA-15f18381d80d98c88786e802d1170c8ec009b6f24
もちろん、これを使用せずにWindows版をWineで動かすのもあり。GUIで操作したい場合などにも使える。
(2008/5/16)WinesfArkを使用した場合、インストール後にsfArkファイルを開いてから

「Start」を押すことで伸長処理が始まり、終了すると

このようになり、sf2ファイルが得られる。

SFPack形式

古いものでは、SFPackという形式で圧縮されている場合がある。これはSFPackというWindowsアプリケーションを使用して伸長するしかないが、公式に入手することはできず、
http://timidity.s11.xrea.com/cfg.htm (バージョン1.0.0.4)
などに転載されているものをダウンロード後Wineで動かすことになる。GNU/Linuxネイティブなツールはない。

Splendid Grand SoundFont(136M)での例

ここでは例として、「Splendid Grand - 136 MB SoundFont」というピアノのサウンドフォントを入手して伸長する。
2008年4月現在、公式ページからのダウンロードはできないが
http://web.archive.org/web/20040615221310/http://www.soundcreationsinc.com/splendid/index.html*4
から全ての分割ファイルがダウンロードできる。*5これらはunrarコマンドで結合・展開できるが、Win32向け自己展開書庫なので、Wineでそのまま実行しても展開できる(そのほうが楽な気もする)。
wgetでダウンロードする場合、「2457663 バイトで接続が終了しました。」のように切れるため、再試行しないように-t 1を付ける。
unrarで展開する場合、下のようになる。

$ unrar x splendid_136.part01.exe

UNRAR 3.71 beta 1 freeware      Copyright (c) 1993-2007 Alexander Roshal


Extracting from splendid_136.part01.exe

Extracting  splendid_136.sfpack

Extracting from splendid_136.part02.rar

...         splendid_136.sfpack
(中略)
Extracting from splendid_136.part16.rar

...         splendid_136.sfpack

Extracting from splendid_136.part17.rar

...         splendid_136.sfpack                                       OK
All OK

「All OK」が出れば、正常に展開されたことになる。

ファイル情報: splendid_136.sfpack
項目
ファイルサイズ39,665,015バイト
MD571d2721b11c67207cd86585a948f57eb
SHA-1316f1878c847aa6b4ba00f96698a5025f6886bde
得られるファイルは上の通り。
この後、WineSFPackを起動してこれを開く。

開く際にはファイルの種類を.sfpack形式にする。
リストに登録されたら「Go!」ボタンを押し、伸長処理の完了を待つ。

完了後の状態はこのようになる。
ファイル情報: splendid_136.sf2
項目
ファイルサイズ138,147,666バイト
MD5716b34322e2067ecb9da147e4fdcf03f
SHA-1c2e2c6b721c6bf13a158f6adaf0b5031d902e57c
これで約132MiB(136ではない)のsf2ファイルが得られる。

sfArk形式を扱うツールのアーカイブ

(2008/11/28)2008年11月末の時点で、配布サイトにはアクセスできない。しかし、Internet ArchiveWayback MachineではWindows版・GNU/Linux版ともに入手可能。
(2009/2/3)2009年2月はじめの時点ではmelodymachine.comからアクセスできる。www.melodymachine.comではアクセスできない。
Windows版は
http://web.archive.org/web/*/http://www.melodymachine.com/files/sfark_setup.exe
から
GNU/Linux版は
http://web.archive.org/web/*/http://www.melodymachine.com/files/sfarkxtc_lx86.tar.gz
からそれぞれダウンロードできるが、GNU/Linux版のファイルは、milkjfフォントと同様、.tar.gzファイルの最後の1バイト(0x00)が抜けているため、展開時にメッセージが出るのが気になるのであればバイナリエディタなどで後ろに「00」を追加する。

ファイル情報: sfark_setup.exe
項目
ファイルサイズ521,092バイト
MD51b9f4e1d7eb42464483565f58d19a0a3
SHA-1ed38670784ac10bdd491290c4f1704b62c303adb
ファイル情報: sfarkxtc_lx86.tar.gz
項目
ファイルサイズ34,127バイト
MD53350e57ed3d09e9477d125dfc23e21f1
SHA-10961a12f7b8eb58684d8b616fe59f7ae8b82989a
本家サイトのWebページは
http://web.archive.org/web/20080131075630/http://melodymachine.com/sfark.htm
となる。

関連記事:

使用したバージョン:

  • sfArkXTc 1.03
  • SFPack 1.0.0.4
  • sfArk 2.15
  • unrar 3.7.8
  • Wine 0.9.59

*1:データ量が非常に小さくでき、配布する上でのメリットが大きいため、独自の圧縮形式で縮められている

*2:実行ファイルのみの配布となっている

*3:x86_64版ではx86_32版のファイルとx86_64版のファイルの両方が含まれる

*4:http://web.archive.org/web/20040603062301/http://soundcreationsinc.com/splendid/index.htmlでもページにはアクセスできるが、リンクされているファイルの一部がダウンロードできない

*5:このページからもSFPackが入手できるが、バージョンが少し古い