2017/11/25

Pianoteq6 on Raspberry Pi3

IMG_9332.jpg

以前使っていた、パソコンにインストールして使うソフトウェア音源のPianoteq5ですが、Pianoteq6が出たということでサイトを見ていると、Pianoteq6から、Raspberry Piに対応したということで、試してみることに。
最終的には、お手軽に電子ピアノやMIDIキーボードにつなげて使える、Pianoteq音源モジュール的なものができるといいなぁと。

過去記事
Pianoteq5で今持ってる電子ピアノをアップグレード!?


そもそもRaspberry Piって?


IMG_9334.jpg
コンピューター教育向けの手のひらサイズのコンピュータです。
5000円程度で購入できます。
HDDではなくSDカードにOSをインストールして使います。
CPUはクアッドコア、1.2GHzで、キーボードやマウス、ディスプレイをつないで、普通のパソコンのように使うこともできます。


Pianoteqをインストールするには


Pianoteqのサイトの以下のフォーラムにインストール手順をまとめたpdfファイルがアップされているので、基本的にはそれに従います。
http://www.forum-pianoteq.com/viewtopic.php?id=5351


Pianoteq6を動かすために必要なもの


・Raspberry Pi3 本体
・電源アダプタ
・SDカード
・キーボード&マウス
・ディスプレイ
・USB-DAC(USBオーディオインターフェイス) もしくは I2S-DAC
 →これはなくても音は出せますがあまり実用的ではないです。


OSのインストール


OSは公式推奨のRaspbianを使います。
OSのインストールは既に色々なサイトで紹介されているので割愛します。
上記のpdfファイルにも書かれています。

とりあえずPianoteqを動かす


Pianoteq6のLinux版をダウンロードして、解凍します。
解凍したフォルダの中の
arm/Pianoteq 6 STAGE
というファイルに実行権限を付け、ダブルクリックすれば、とりあえず起動します。
私は、最初にリビングのTVにHDMI接続して試したのですが、何もしなくてもTVから音が出ました(^^)
ただ、このままだとレイテンシーがひどかったり、レイテンシーを小さくするとブツブツ音がひどかったりします。
パソコンのように使えるといっても、やはり非力です。
とりあえず、サンプリングレートを下げることによってましにはなりますが、演奏に使うには難しいそうな感じです(^^;;
ということで、USB-DACやI2S-DACを使うことになります。
私は、とりあえず手元にあった、BEHRINGER XENYX 302USB(USB接続のミキサー)を使っています。
これはドライバーとか特に気にせずにUSBに接続するだけで認識しました。
あと、この前買ったYAMAHA AG06(USB接続のミキサー)も特に何もせずとも接続するだけで認識しました。

Pianoteqを実用的に演奏できるようにするための設定


上記のフォーラムのpdfには、/etc/security/limits.confに設定を追加していますが、実際には、この設定はしても意味がありません。
プロセスの優先順位やリアルタイムの優先度を上げるように設定しているようですが、この設定ファイルでは上限を設定するだけなので、意味がありません。
実際にtopコマンドで確認しましたが、PI/NI値ともに標準の順位でした。
niceコマンドを使って、優先順位を上げて起動してみましたが、そもそも、余分なプロセスは動かしていないので、パフォーマンス的には特に良くなることもなし。
chrtコマンドも使ってみましたが、こちらもとくに良くなることはありませんでした。
パフォーマンスは、Pianoteqの設定画面の[Pref]タブの"Performance index"の値で確認しました。
この値は、ザクッとしたものみたいですが、合わせて、実際に、サンプリングレートや同時発音数を変えてみて、同時発音数とブチブチ音の感じ、cpuのオーバーロード具体も確認しています。

ということで、pdfの方の「6.1 Elevate Account Privileges」の設定はやる必要はないと判断しました。
ダウンロードしたPianoteqのファイルの中のREADME_Linux.txtのRaspberry Piのことについて書かれている設定だけすればOKだと思います。
※正直、ちゃんと分かっていないところもありますが・・・

・CPUのクロックを最高速で固定する。
そのためには、cpufrequtilsをインストールします。
$ apt-get install cpufrequtils
インストールしたら、以下ののコマンドを実行して、パフォーマンス優先にすればOK
$ cpufreq-set -g performance
※pdfでは、起動用のスクリプトにcpuのコア毎に設定していますが、このコマンド1行で全部のコアの設定が変わるので、4行書かなくとも1行で十分です。
※このコマンドを実行しても、再起動すると元のondemandに戻ってしまうので、起動スクリプトでperforamnceに設定するようにします。

・マルチコアのオプションを有効にして起動する。
起動用のスクリプトで -- multicore maxをつける。
pdfの手順で起動用のスクリプトを作成した場合は、
/home/pi/'Pianoteq 6 STAGE'/arm/'Pianoteq 6 STAGE' -- multicore max
となっている部分です。

・LANコントローラーの設定
/boot/cmdline.txtに下記設定を追加する。
smsc95xx.turbo_mode=0
Raspberry PiはLANとUSBが一緒になっていて、ターボモードが有効だと、カーネルクラッシュすることがあるとのこと。

他にも・・・
有線LANを無効化したり、bluetoothを無効にしたりも試してみましたが、劇的にパフォーマンアップすることはありませんでした。
要は、PianoteqのREADME_Linux.txtの内容以上に、いじっても面倒なだけということですね(^^;;
と、言いつつ、まだ他にも試しますけどね(笑)

あとは、Pianoteqの設定。
今回はUSB接続のミキサーを使っています。
デバイスの設定で、Outputには、USB Audio ・・・ without any conversionsを選びました。
cpuに余分な負荷をかけないように”without any conversions”のものを選ぶのがいいようです。
あとは、[Pref]タブの方の"Internal sample rate"
パソコンだと、44100Hzで動かしていましたが、Raspbery pi3ではcpuの能力不足ということで、29400Hzに設定します。
同時発音数を稼ぎたい場合は、22050Hz。
USBデバイスの方は44100Hzで問題ありません。落とすのはInternal saple rateの方。
そして、Audio buffer sizeを384 samples(レイテンシーは8.7ms)に設定。
レイテンシーは10ms以内なら、演奏に支障がないと言われているので。

実際に実用になるか?


上記の設定状態で、
22050Hzなら、同時発音数64までなら、オーバロードは発生しませんでした。
96音だと、めいいっぱい音数を鳴らすと、ギリギリオーバーロードが発生する感じです。
ブチブチと音が切れるほどではないですが、安心して使えるという意味で64音。
29400Hzなら、32音ではいけましたが、48音でギリギリオーバーロードが発生する感じです。
ペダル多用&和音が多い曲だと無理がありそうです。

あと、同時発音数の設定はAutoもあるので、これにしておけば、cpuがオーバーロードになることはありません。
22050Hzなら30音前後。
29400Hzなら10音前後。
44100Hzなら10音前後。
という感じの同時発音数でした。だいぶ、余裕を持って音は切られちゃうみたいです。
さすがに、10音だと曲を弾くと薄っぺらい感じになっちゃうし、重要な音がブツっと切れるのがわかります。
ということで、安定的に使うには、22050Hzで64音設定が無難そうです。

ちなみに、Internal sample rateの違いによる音質ですが・・・
私の耳では、違いが・・・
わかりません(笑)

なので、22050Hzでいいかな(笑)

同時発音数が少なくていいなら、Internal sample rateが44100Hzでも動きます。
44100Hzと最低の11025Hzで比べてみると、さすがに11025Hzは篭った感じの音になってしまい、せっかくのPianoteqの響きの良さが感じられなくなってしましますが・・・
22050Hzとだと、そんなに違いがわかりません(^^;;
私の耳がポンコツなのか、ヘッドホンがポンコツなのか?(笑)


今後の予定


・オーバークロック
フォーラムのpdfでは、オーバークロックの設定についても書かれていました。
オーバークロックの設定をすると、Internak sample rateを上げれるようです。
でも、オーバークロックなので、発熱の問題とか、そもそも、ちゃんと動かないとか、安定して使うのはめんどくさそう。
とはいえ、一応試しておきたい。

・リアルタイムカーネルの導入
できれば、オーバークロックせずに、もうちょっとパフォーマンスアップできないかな?
変化があるのかないのか・・・
試しにやってみたい。

・単体の音源モジュールとして使えるような形にしたい
今は、キーボードやディスプレイをつないで、デスクトップパソコンのような格好で試しています。
せっかくの、小型なRaspberry Piなので、タッチスクリーン&I2S-DACを使って、パソコンじゃなくて、単体のハードウェア音源として使えるような形にしてみたいです。
まぁ、作ったところで、これが必要な状況ではないんですけどね(^^;;
ゴゾゴゾしたいということで(笑)

すっかり、ピアノの練習時間が短くなっています。


タッチパッド付きの小型ワイヤレスキーボードも買ってみました。
普通のキーボードだと大きすぎて邪魔だったので(^^;;
キーが小さいので、普通のキーボードに比べると、打ちにくいこともありますが、全然問題ありません。
今のところ、問題なく使えています。
充電しながらでも使えます。
時々、打ち損じますが、場所を取らないし、片付けも楽なので気に入っています(^^)/






スポンサーリンク

関連記事

コメント

非公開コメント

No title

すべて外国語のように思えました・・・(笑)

ねこぴあのさんへ

> すべて外国語のように思えました・・・(笑)
でしょうね(笑)

元々、こんな遊びが大好きなんです(^^)/