Sound Signal Processing Library for Spresense を使うためのメモ
Spresenseの音源再生用ライブラリ、Sound Signal Processing Library for Spresenseを使うためのメモ。
チュートリアルがあるので、使い方はわかるが、再生する音源ファイルの作成方法が、ちゃんとしたDAWをもっていないので、わからなかった。
ということで、サンプル音源(assets.zip)だけではなく、オリジナル音源を作成するための便利なプログラムをメモしておく。
その1 音源ファイル形式変換
./tools/README.md
に
ssprocLibが提供しているSFZSinkモジュールには、いくつかの制約があります。
...
音源サンプルファイルの制約
ファイル形式はWAVファイルであること。
サンプリング周波数は48kHz、ビット幅は16bit、チャンネル数は2であること。
この制限は、MacでGarageBandを利用していると、ちょっとめんどい。
GarageBand のFile保存を利用して、.wavを作成すると、選択の余地なく、サンプリング周波数がCDの44.1kHzになってしまう。
また、ちょっといい音源を購入すると、ビット幅が24bitsだったりする。
プログラム
pythonのプログラムで、.wavの形式をSound Signal Processing Library for Spresense用にビシッと形式変換する。
起動方法
例えば、プログラム名を convert16bitswav.py
、変換元のディレクトリを in
、変換後のディレクトリを out
とした場合、こんな感じで実行する。
python3 convert16bitswav.py in out
想定するディレクトリ構成は、これ。
convert16bitswav.py
in/
└── nya-ngruuu.wav
out/
└── nya-ngruuu.wav ... 16bits 48kHz
必要なpackage
ffmepg とか面倒くさいので、入れたくない。
以下のpip packageのみでOK。
pip install soundfile numpy
source code
サンプル音源
44.1kHz
48kHz
その2 音量UP
オリジナル音源だと、音量が小さいことがある。
1個くらいならDAW上で手動調整でもいいけど、たくさんあると面倒なので、これもプログラムでなんとかする。
プログラム
ffmpegの実行環境が必要。
dockerでpythonの最新版を起動(きっとubuntu)しておくか、mac nativeがよさそう。
setup
for ubuntu
apt-get update -y
apt-get install ffmpeg -y
pip install AudioSegment
起動方法
例えば、プログラム名を volume_up.py
、factor
を 10
倍、変換元のファイルを x.wav
、変換後のファイルを x2.wav
とした場合、こんな感じで実行する。
python3 volume_up.py 10 x.wav x2.wav
音量UPのfactorは、変換後の音源を再生して、耳で聞いて調整する。
最終的に80dBくらいが楽器としてはちょうどいいかも。
source code
変換元の音源ファイルを読み込むときに、AudioSegment.from_mp3(in_file)
との記述があるが、 .wav
でも問題なし。
waveform
Garage Band waveform を比較するとこんな感じ。