音楽とかソフトとか

今回もtcl/tk関係についてメモ書きします。

私の現在の環境は以下のとおりです。
・OS ・・・ Windows7
Tcl/tk ・・・ version 8.6.4をソースからビルドしたもの
tclkit ・・・ githubで6 Oct 2014にコミットされたソースをtcl/tk8.6向けにビルドしたもの
sdx・・・24-Feb-2008 21:03、103Kbyte版

tcl/tkをtclkitでexe化するとき、以下のように「tclkit.ico」というファイル名でアイコンファイルを入れることでexeファイルのアイコンを自作アイコンに変えられます。
----

(典型的な手順例:foo.tclからfoo.exeを作る。アイコンにはfoo.icoを使う)
./sdx.bat qwrap foo.tcl
./sdx.bat unwrap foo.kit
cp foo.ico foo.vfs/tclkit.ico
./sdx.bat wrap foo.exe -runtime tclkit-gui.exe

----


tclkit.icoの内容は、tclkitバージョン8.5.8で変更されたようです(参考:こちらのwiki)。8.5.8用のtclkit.icoのサンプルはこちらから入手できます。このサンプルには以下のicoが合成されています。以前の仕様に比べて種類が増えたようです。
----

サイズ=64x64、256カラーパレット、32(bit/pixel)
サイズ=48x48、256カラーパレット、32(bit/pixel)
サイズ=32x32、256カラーパレット、32(bit/pixel)
サイズ=24x24、256カラーパレット、32(bit/pixel)
サイズ=16x16、256カラーパレット、32(bit/pixel)
サイズ=48x48、256カラーパレット、24(bit/pixel)
サイズ=32x32、256カラーパレット、24(bit/pixel)
サイズ=24x24、256カラーパレット、24(bit/pixel)
サイズ=16x16、256カラーパレット、24(bit/pixel)
サイズ=48x48、256カラーパレット、8(bit/pixel)
サイズ=32x32、256カラーパレット、8(bit/pixel)
サイズ=24x24、256カラーパレット、8(bit/pixel)
サイズ=16x16、256カラーパレット、8(bit/pixel)

----

ところがこの仕様に沿ったicoファイルを用意して上述の「./sdx.bat wrap foo.exe -runtime tclkit-gui.exe」を行ってもアイコンがreplaceされませんでした(一部のアイコン情報はreplaceされ、残りは「NOT SAME SIZE」と言われて置き換えられませんでした)。先のサンプルでwrapしても同じ結果です。

そこで、以下の手順でsdx.kitを改造することで解決しました。
----

./sdx.bat unwrap sdx.kit
mv sdx.vfs mysdx.vfs
vi mysdx.vfs/lib/app-sdx/wrap.tcl

  proc decICO内の一行を以下のように変更。
(変更前) lappend result ${w}x${h}/$cc $image
(変更後) lappend result ${w}x${h}/$cc/$bc $image

./sdx.bat wrap mysdx.kit

mv sdx.kit sdx.kit-org   # バックアップ
mv mysdx.kit sdx.kit   # sdx.kitに置き換える

----

なおこちらのwikiに他の対応方法が紹介されていました。

スポンサーサイト

PageTop
いつもの弊ブログとは違う傾向のことを書き記します。

UTAUの合成波形ビューアを開発中ですが、F0抽出法を試行錯誤していたところpYINというものがあると教えて頂きました。ビューアへの導入は今の所未定ですが、ひとますmsys2でコンパイルしてコマンドラインで駆動する所までいきましたので、手元の環境でやったことをメモ書きします。


libsndfileのインストール
libsndfile-1.0.26.tar.gzをダウンロードして展開。
cd libsndfile-1.0.26
./configure
make
make install

これで/usr/local/include/や/usr/local/lib/にライブラリ一式がインストールされる


boostのインストール
msys2のpacmanにboostがあったので、mingw32/mingw-w64-i686-boost 1.60.0-1 をpacmanコマンドでインストール。


vamp-plugin(のvamp-simple-host.exe)のコンパイル
vamp-plugin-sdk-2.6.tar.gzをダウンロードして展開。
cd vamp-plugin-sdk-2.6
export SNDFILE_CFLAGS=-I/usr/local/include
export SNDFILE_LIBS="-L/usr/local/lib -lsndfile -static"
./configure
make host


pYINをコンパイル
pyin-v1.1.tar.gzをダウンロードして展開。
cd pyin-v1.1
cp Makefile.mingw32 Makefile
vim Makefile

(変更前) TOOLPREFIX ?= i586-mingw32msvc-
(変更後) TOOLPREFIX ?=

(変更前) CXXFLAGS += $(CFLAGS) -I../include -I../boost_1_53_0
(変更後) CXXFLAGS += $(CFLAGS) -I../include -I/mingw32/usr/include -I../vamp-plugin-sdk-2.6

(変更前) PLUGIN_LDFLAGS := $(LDFLAGS) -static -shared -L../lib -lvamp-sdk -Wl,-Bsymbolic -static-libgcc -Wl,--retain-symbols-file=vamp-plugin.list -fno-exceptions $(shell $(CXX) -print-file-name=libstdc++.a)
(変更後) PLUGIN_LDFLAGS := $(LDFLAGS) -static -shared -L../lib -L../vamp-plugin-sdk-2.6 -L/mingw32/lib/ -lvamp-sdk -Wl,-Bsymbolic -static-libgcc -Wl,--retain-symbols-file=vamp-plugin.list -fno-exceptions $(shell $(CXX) -print-file-name=libstdc++.a)

vim Makefile.inc

(変更前) OBJECTS := $(SOURCES:.cpp=.o)
(変更後) OBJECTS := $(SOURCES:.cpp=.o) \
../vamp-plugin-sdk-2.6/src/vamp-sdk/acsymbols.o \
../vamp-plugin-sdk-2.6/src/vamp-sdk/FFT.o \
../vamp-plugin-sdk-2.6/src/vamp-sdk/PluginAdapter.o \
../vamp-plugin-sdk-2.6/src/vamp-sdk/RealTime.o
TEST_LDFLAGS := -L/mingw32/lib \
-lboost_atomic-mt \
-lboost_chrono-mt \
-lboost_container-mt \
-lboost_context-mt \
-lboost_coroutine-mt \
-lboost_date_time-mt \
-lboost_exception-mt \
-lboost_filesystem-mt \
-lboost_graph-mt \
-lboost_iostreams-mt \
-lboost_locale-mt \
-lboost_log_setup-mt \
-lboost_log-mt \
-lboost_math_c99f-mt \
-lboost_math_c99l-mt \
-lboost_math_c99-mt \
-lboost_math_tr1f-mt \
-lboost_math_tr1l-mt \
-lboost_math_tr1-mt \
-lboost_prg_exec_monitor-mt \
-lboost_program_options-mt \
-lboost_python3-mt \
-lboost_python-mt \
-lboost_random-mt \
-lboost_regex-mt \
-lboost_serialization-mt \
-lboost_signals-mt \
-lboost_system-mt \
-lboost_test_exec_monitor-mt \
-lboost_thread-mt \
-lboost_timer-mt \
-lboost_type_erasure-mt \
-lboost_unit_test_framework-mt \
-lboost_wave-mt \
-lboost_wserialization-mt

(※ TEST_LDFLAGSの設定は本来上記のライブラリ全部をリンクさせなくて良いはずですが、調べるのが面倒だったのでboostのライブラリを全部突っ込みました)

make


pYINを使ってみる

cd ../vamp-plugin-sdk-2.6/host/
./vamp-simple-host.exe -pし、表示されたフォルダにpyin.dllをコピーする。

temp.wavを用意し、以下のコマンドでF0抽出してみる。
./vamp-simple-host.exe pyin:pyin temp.wav
./vamp-simple-host.exe pyin:yin temp.wav
./vamp-simple-host.exe pyin:localcandidatepyin temp.wav
それぞれ標準出力にF0抽出結果らしき数値データが出ます。
./vamp-simple-host.exe -lすると出力結果の概説らしいものが出ます(あまりよく精査していませんが…)。



現状はここまでです。もし導入するなら単体のexeで動くような形になって欲しいかなと思っています。

PageTop
作り始めたソフトはまだ完成していませんが、1ヶ月過ぎてしまいました。最近良かったものを書きます。

伊福部先生の特集本で「リトミカ・オスティナータ」がよく挙げられている印象だったので買って聴いてみましたが、とても良いです。解説を読むと奇数拍らしいのですが聴いても何拍子なのか全然分からないのにリズミカルで心地よく、なんだこれ!?といった感覚があります。

ネットで見ると、この曲の演奏は以下のアルバムの評判が総じて良かったのでこちらを入手しました。発注するとCD-Rに焼いてくれる、合理的な仕組みでした。
「現代日本の音楽名盤選5 伊福部昭・小山清茂・外山雄三」(MEG-CD)


それと、平沢進さん特集目当てで「サウンド&レコーディング・マガジン 2016年2月号」を入手しました。表紙のポーズはステルスメジャーのポーズでしょうか。曲作りの手順など面白い内容でした。


あと、鈴木慶一さんのセルフプロデュースアルバム「Records and Memories」を楽しみにしています。発売済みなのですが、まだ奥さんが聴いていて私はあまり聴いていません。ライブもあるようなので見に行けたら良いなと思います。

PageTop