再生ソフト設定

フィルタも出来たので音楽を再生できるようにする。今回はBruteFirじゃなくてjconvolverを使ってみる。jconvolverはBruteFir同様の多チャンネル・リアルタイムのConvolution Engine。多機能で様々な入出力に対応しているBruteFirに対してjconvolverはjackのみに対応。IRの形式もwavファイルのみ。その分設定ファイルは簡単になっている。README.CONFIGファイルを読めば設定ファイルの書き方が分かる。

voyageとかUbuntuServerなどで設定して、HDMIから再生。フィルタの係数はoctaveのwavwrite関数で保存しておく。

mpd、jackd1、jconvoler、schedtoolなどをインストール。

jconvolverの設定ファイル 2way1.conf


/cd/home/user1

#                in  out   partition    maxsize
# ---------------------------------------------
/convolver/new     2    4       8192    10000
#
#              num   port name     connect to
# -----------------------------------------------
/input/name     1     in.L
/input/name     2     in.R
/output/name    1     out.Llow       system:playback_3
/output/name    2     out.Rlow       system:playback_4
/output/name    3     out.Lhigh      system:playback_7
/output/name    4     out.Rhigh      system:playback_8

#                in out  gain  delay  offset  length  chan      file
# ----------------------------------------------------------------------
#/impulse/read    1   2    1     0      0       0       1     weird1.wav
#/impulse/read    2   1    1     0      0       0       1     weird2.wav
/impulse/read     1   1    1     0      0       0       1     h1.wav
/impulse/read     2   2    1     0      0       0       1     h1.wav
/impulse/read     1   3    1     0      0       0       1     l1.wav
/impulse/read     2   4    1     0      0       0       1     l1.wav

jackとjconvolverの起動スクリプト。jack経由でHDMIに出力するとMPDの操作でjackがtimeoutを起こして再生がとまってしまう。jackの設定をいくつか試してみたけど改善しない。あきらめてjackのエラー出力をチェックして再起動をかけることにした。

起動スクリプト /home/user1/jstart.sh


#!/bin/bash
/etc/init.d/mpd restart
sleep 3
ps -A | grep -m 1 mpd | awk '{print$1}' | xargs -I{} schedtool -R -p 15 -n -4 {}

while true; do
  a=`grep "cannot clean up byte from graph" /var/log/mpd/jack.log`
  b=`ps aux | grep "[j]convolver"`
  if [ -n "$a" ] || [ -z "$b" ]; then
    killall jackd
    killall jconvolver
    rm /var/log/mpd/jack.log
    jackd -dalsa -r96000 -dhw:0,3 -p512 -n4 2>> /var/log/mpd/jack.log &
    sleep 2
    ps -A | grep -m 1 jackd | awk '{print$1}' | xargs -I{} schedtool -R -p 20 -n -6 {}
    jconvolver /home/user1/2way1.conf &
    sleep 2
    ps -A | grep -m 1 jconvolver | awk '{print$1}' | xargs -I{} schedtool -R -p 10 -n -2 {}
  fi
  sleep 3
done

/etc/mpd.confの出力設定

audio_
output {
 type "jack"
 name "jconvolver"
 format "96000:32:2"
 destination_ports "jconvolver:in.L,jconvolver:in.R"
}

/etc/rc.local

/home/user1/jstart.sh &
setterm -blank 0
exit 0

こんな設定でやや不安定ながら再生できるようになった。

2014年6月4日

次ページへ

スピーカー製作目次へ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.