okuda-koji
2019年7月5日 11時33分
Armadillo-640にて、動作確認を実施しています。
その確認で、音の再生は、以下のURLのHowtoを参照しながら行った結果、音を再生することができました。
https://armadillo.atmark-techno.com/howto/mqs-a640
音量を調節するためには、どのようにすれば良いでしょうか。
コメント
okuda-koji
y.nakamura
中村です。
お断りしておきますが、Linuxのオーディオはそれほど
詳しいわけではなく、6年くらい前にArmadillo-440で
オーディオ再生アプリを作るのにいろいろ調べて、
何とか動かせた、という程度の知識しかありません。
また、そのあとはLinuxオーディオはいじってませんので、
記憶があやふやな部分や間違いもあるかもしれません。
もし間違いがあったときには、どなたがご指摘ください。
昨日の音量調整の実行例は、Armadillo-640で実際に
試してから投稿しましたので、そのとおりに動くと思います。
> なぜ、アプリケーションにより音量が調節出来たり、出来なかったりするのでしょうか。
aplayは、再生に専念するプログラムだからです。
> また、ミキサーを使うとありますが、ミキサーを使用すれば、aplayでも音量調節出来ると
> いうことでしょうか。
amixerやalsamixerが音量設定(など)をして、
aplayが再生、という役割分担をしています。
amixerやalsamixerはALSAのデバイスレベルで
音量設定をします。
これに対して、昨日使ったalsaplayerやmpg123は、
アプリレベルで音データの音量値を変更して、
ALSAデバイスへ出力します。
パソコンでのOSレベルのでスピーカーの音量調節と、
再生アプリでの音量調節のようなものです。
ここまでは、ALSAの一般的な説明です。
(間違いがないか、ちょっと不安)
ALSAの仕組みと関連するプログラムについては、
ここで簡単に説明できるものではありませんので、
解説書やwebの情報(玉石混交ですが)で調べてください。
Armadillo-640のMQSオーディオでは、
私が試したところではamixerとalsamixerは
動きませんでした。
amixerは何も表示せず、
alsamixerは「Card: mqs-audio」と表示されますが、
「This sound device does not have any controls.」
と出て、何もできません。
--
なかむら
y.nakamura
中村です。
> Armadillo-640のMQSオーディオでは、
> 私が試したところではamixerとalsamixerは
> 動きませんでした。
>
> amixerは何も表示せず、
> alsamixerは「Card: mqs-audio」と表示されますが、
> 「This sound device does not have any controls.」
> と出て、何もできません。
原因切り分けのために、USBスピーカーを試してみました。
Armadillo-640の標準イメージではUSBオーディオはOFFなので、
カーネルのコンフィグレーションでUSBオーディオを有効に。
市販のUSBスピーカーを接続して、
# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: mqsaudio [mqs-audio], device 0: HiFi fsl-mqs-dai-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: mqsaudio [mqs-audio], device 1: HiFi-ASRC-FE (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0
amixerの場合:
# amixer -c 1 Simple mixer control 'PCM',0 Capabilities: pvolume pswitch pswitch-joined Playback channels: Front Left - Front Right Limits: Playback 0 - 62 Mono: Front Left: Playback 42 [68%] [-20.00dB] [on] Front Right: Playback 42 [68%] [-20.00dB] [on] # amixer -c 1 set PCM 50% Simple mixer control 'PCM',0 Capabilities: pvolume pswitch pswitch-joined Playback channels: Front Left - Front Right Limits: Playback 0 - 62 Mono: Front Left: Playback 31 [50%] [-31.00dB] [on] Front Right: Playback 31 [50%] [-31.00dB] [on]
alsamixerの場合:
# alsamixer -c 1
amixerとalsamixerの"-c 1"は"-D hw:1"でもいいみたいです。
--
なかむら
okuda-koji
y.nakamura
中村です。
> 以下の認識で間違いないでしょうか?
> 1.ミキサーとして、amixer・alsamixerの2種類がある。
他にもあるかもしれませんが、私は知りません。
> 2.MQSを使用した場合、どちらのミキサーも使用できない。(ミキサーが認識出来ない?)
alsamixerで試したときの表示を見る限りでは、
認識できないのではなくて、
MQSがボリュームコントロールの機能を持っていないようです。
> 3.本当にミキサーが使用できないかどうか確認するために、
> USBオーディオを試した場合、ミキサーが使用できる状態になる。
「USBオーディオ(で)...使用できる状態になる」ではなくて、
MSQデバイスではamixerとalsamixerが使えなかったが、
USBオーディオでは(予想通り)amixerとalsamixerが使えた、
ということです。
> 上記より、MQSの場合、ミキサーを使用しての音量調節は出来ない。
現状で私が試した範囲ではできないみたいですけど、
次の資料を見るとできるみたいです。
[i.MX Linux® Release Notes - Rev. L4.9.88_2.0.0-ga, 05/2018]
https://www.nxp.com/docs/en/release-note/i.MX_Linux_Release_Notes.pdf
「Table 9. Supported features」の中の「SAI/MQS」ところに、
6ULL: Supports amixer alsamixer control from user space.
と書いてあります。
P15の表の中です。
アットマークテクノさんが用意してくれたMQSの実装(ソース)が古いのか、
別の理由(たとえば使い方の問題など)なのかは、わかりません。
--
なかむら
okuda-koji
okuda-koji
y.nakamura
2019年7月6日 17時21分
中村です。
> その確認で、音の再生は、以下のURLのHowtoを参照しながら行った結果、音を再生することができました。
> https://armadillo.atmark-techno.com/howto/mqs-a640
この回路でどの程度の音がでるのか興味があり、
動かしてみました。
こんな簡単なものでもソコソコ使える音が鳴るんですね。
> 音量を調節するためには、どのようにすれば良いでしょうか。
記事にあるaplayでは音量調節はできませんが、
(何年か前に調べたときはaplayではできませんでした)
alsaplayerやmpg123などを使えば音量調節できます。
alsaplayerやmpg123以外の方法もあると思いますが、
(ミキサーを使うとか、別の再生プログラムとか...)
alsaplayerとmpg123での簡単な動作確認手順を
書いておきます。
// Kalimba.mp3はWindows7に入っているサンプル音源です
● alsaplayer
// alsaplayerはwavの他にmp3なども再生できます
インストール
# apt-get install alsaplayer alsaplayer-daemon
まず、GUIなし(-i daemon)で、音源ファイルも指定せずに、
バックグラウンドで動かします。
$ alsaplayer -i daemon -d hw:0 > /dev/null 2>&1 &
音源ファイルを設定すると再生が始まります。
(設定したときに再生させない方法もありますが割愛)
$ alsaplayer -e Kalimba.mp3
音量は、0~1の間の値で指定します。
$ alsaplayer --volume 0.0 # 消音
$ alsaplayer --volume 0.1 # 10%
$ alsaplayer --volume 0.2 # 20%
$ alsaplayer --volume 0.35 # 35%
...
$ alsaplayer --volume 1.0 # 100%
状態表示
$ alsaplayer --status
再生停止
$ alsaplayer --stop
またはフォアグランドにしてCTRL-C
● mpg123
// mpg123はwavファイルは再生できません
インストール
# apt-get install mpg123
音源ファイルを指定せずにリモートモード(-R)で起動。
$ mpg123 -a hw:0 -R
音源ファイルを設定すると再生が始まります。
L Kalimba.mp3
音量調節
画面に連続的に表示が出ますが、
それらを無視して%で入力します。
V 0 // 消音
V 10 // 10%
V 20 // 20%
V 35 // 35%
...
V 100 // 100%
再生停止
S
または
CTRL-C
--
なかむら