1 Aug 2026

雅楽のサウンドフォント

下記のサイトにまとまっている。リンクが切れているものもある。

私がダウンロードしてみたSoundFont集 【和楽器、雅楽器、民族楽器】

その中から雅楽の楽器は以下の2つ。

龍笛

ロシア語でサウンドフォントを公開しているサイトに書かれているFlute-Ruteki(5.3M)というリンクをクリックするとダウンロードされる。

aptでunrarをインストールし、それで解凍したらMusescore4で読み込めた。

篳篥

雅楽|緑茶の音 雅楽の音素材(サウンドフォント)に書かれている転載先のリンクをクリックするとダウンロードされる。

dev.sfsを読み込んで解凍用コマンドをbuildする。sfArkLib-masterとsfarkxtc-masterをダウンロードして、展開。sfark_buildなるディレクトリを作って、そこへ各masterのディレクトリから*.cppと*.hをコピーし、buildする。これがなかなかコンパイルが通らない。

sfArkLib-masterから

sfArkLib.h

sfklCoding.cpp

sfklCrunch.cpp

sfklDiff.cpp

sfklFile.cpp

sfklLPC.cpp

sfklString.cpp

sfklZip.cpp

wcc.h

sfarkxtc-masterから

sfarkxtc.cpp

BuildスクリプトはGeminiに作ってもらった。

#!/bin/sh
#2026/08/01
#errorが多くなかなかbuildできなかった。
#buildする際は、このスクリプトを実行する。
###################################################################################
# 1. libgcc.a / libgcc_s.so の位置を特定
LIBGCC_DIR=$(dirname "$(find /initrd /usr -name "libgcc.a" 2>/dev/null | head -n 1)")

echo "libgcc の配置場所: $LIBGCC_DIR"

if [ -n "$LIBGCC_DIR" ]; then
    mkdir -p /usr/lib/gcc/x86_64-linux-gnu/12/
    
    # 該当ディレクトリ内のすべてのライブラリ/オブジェクトファイルを標準パスへリンク
    ln -sf $LIBGCC_DIR/* /usr/lib/gcc/x86_64-linux-gnu/12/
    
    echo "GCC ライブラリ群のリンク完了"
fi

####################################################################################

cd /tmp/sfark_build

LIBGCC_DIR=$(dirname "$(find /initrd /usr -name "libgcc.a" 2>/dev/null | head -n 1)")

g++ -O2 -fpermissive -w -fno-use-linker-plugin \
  -B"$LIBGCC_DIR/" \
  -L"$LIBGCC_DIR" \
  -DUSE_MANUAL_ENDIANNESS -DMANUAL_LITTLE_ENDIAN \
  -isystem /usr/lib/gcc/x86_64-linux-gnu/12/include-fixed \
  -isystem /usr/lib/gcc/x86_64-linux-gnu/12/include \
  -I. sfkl*.cpp sfarkxtc.cpp -o sfarkxtc -lz > build.log 2>&1

# ログ確認
cat build.log

できあがったsfarkxtcを~/my-applications/binに入れる。これでGagaku_Hichiriki.sfArkを解凍し、PoliphoneでGagaku_Hichiriki.sf2を開いて、名前を付けて保存する。Gagaku_Hichiriki_fixed.sf2とした。これでMusescoreで読み込める。


琴、箏

三味線のよさげなSoundFont

wineをインストールしてsfPack.exeを使用して解凍。wine32もインストールする必要があった。aptでwine、wine32、wine64をインストールして、

# dpkg --add-architecture i386
# apt update
# apt install wine wine32
# wine sfPack.exe yk_koto.sfPack

この後wineをアンインストール

# apt purge --auto-remove wine wine32

なのだが、簡単にはいかなかった。i386関連の数個のパッケージは強制的に削除した。その後、

# dpkg --remove-architecture i386
# apt update

して元へ戻しておく。