問題タブ [mpd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - MPD、FIFO、Python、Audioop、Arduino、Voltmeter: VU メーターの「偽装」
古い学校のステレオVUメーターを「偽造」するために、Arduino(それ自体が5Vの電圧計に接続されている)に接続されたコンピューターを使用しようとしています。私の目標は、オーディオ ファイルを再生しているコンピューターで信号を分析し、振幅情報をシリアル接続を介して Arudino に送信し、電圧計に表示させることです。
MPD を使用してオーディオをレンダリングし、USB DAC (ODAC) に送信しています。MPD は、Python スクリプトを使用して読み取った FIFO にも出力しています。FIFO から 4096 バイトのチャンクで読み取り、audioop ライブラリを使用してそのチャンク/サンプルを左右のチャネルに分割し、各チャネルの最大振幅を計算します。
ここに問題があります。私はデータに圧倒されています。私の計算が間違っているか、FIFO がどのように機能するか (あるいはその両方) を理解していないのではないかと推測しています。MPD はすべてを 44100:16:2 形式で出力しています。これは、1 秒あたり 44,100 の 4 バイト サンプルを書き出すことを意味していると思いました。したがって、4096 バイトのチャンクを取得する場合、1 秒あたり約 43 チャンクを期待する必要があります。しかし、私はそれよりもはるかに多く (100 以上) 取得しており、チャンク サイズを大きくしても、1 秒あたりに取得するチャンクの数は変わりません。たとえば、チャンク サイズを 2 倍の 8192 にしても、1 秒あたりのチャンク数はほぼ同じです。明らかに私は何か間違ったことをしていますが、それが何であるかはわかりません。誰にも考えはありますか?
私の mpd.conf ファイルの関連部分は次のとおりです。
Python スクリプトは次のとおりです。
streaming - MPD ファイルの検証 - MPEG-DASH を使用
c057623_ISO_IEC_23009-1_2012 仕様に従って、(クライアント側から) MPEG-DASH の使用を開始しました。
私が受け取ったMPDファイルを検証するためのパブリックライブラリまたはオープンソースがあるかどうかは誰にもわかりませんか?
xml の処理に問題はありません。
どんな助けでも大歓迎です。
audio - mpd 経由で USB-DAC を使用するためのボリューム コントロールの設定
Raspbian を搭載した Raspberry Pi と NuForce uDAC-3 USB-DAC を使用して音楽プレーヤー システムを構築しています。
/etc/mpd.confのこれらの行を使用して、Piのサウンドシステムの代わりにDACを使用するmpdを取得しました。私の知る限り、ここで重要なことは、デフォルトの 0 ではなくハードウェア デバイス 1 を選択することです。
ただし、私の DAC (snd_usb_audio) に使用されているドライバーは、ハードウェアのボリューム コントロールをサポートしていません。たとえば、alsamixer で使用できるボリューム コントロールはありません。私の知る限り、それはそのドライバーの既知の「機能」であるか、その DAC のサポートです。/etc/mpd.confでこれをコメント解除することで、mpdがボリュームを制御できるようになりました。
現在の主な問題は、統合されたサウンドシステムにはなかったボリュームコントロールに遅延があることです. つまり、クライアント プログラム (QMPDClient) で音量コントロールをスライドすると、音量の変化が聞こえるまでに、短いながらも顕著な遅延があります。それは耐えられますが、すべてが本当に正常に機能するかどうか疑問に思います.
2 つ目の問題は、最初の問題に多少関連していますが、構成ファイルに関する限り、サウンドをより完璧にする方法がないかどうか疑問に思っていることです。
インターネットで見つけた /etc/asound.conf のさまざまな例を試しましたが、それらが何をすべきか理解できないか、単に機能していません。私が得ると思ったのは、mpdによって認識されるDACのマスターボリュームコントロール、またはマスターボリュームコントロールを備え、サウンドをDACに供給する仮想サウンドカードのいずれかです。最初、 /etc/asound.conf は空でしたが、今でも空であり、何も影響を与えていないようです。
関連性がある場合に備えて、音楽は CD からリッピングされた .flac ファイルにあります。
mpi - 「127.0.0.1:6600」へのバインドに失敗しました: アドレスは既に使用されています
MPI (メッセージ パッシング インターフェイス) 構成に ubuntu 12.10 を使用しています。インストール後に mpd をインストールしました。mpd を開始しました。正常に開始され、エラー メッセージは表示されませんが、コマンド「mpd &」を実行しようとすると、 「'127.0.0.1:6600' にバインドできませんでした: アドレスは既に使用されています」というエラー メッセージが表示される 多くの解決策を試しましたが、結果は同じです。
root@ub0:~# service mpd start
Music Player Daemon mpd を起動中
[ OK ] root@ub0:~# service mpd restartMusic Player Daemon mpd を停止中
[ OK ] Music Player Daemon mpd を起動中
[ OK ] root@ub0:~# mpd &[1] 2881 root@ub0:~# '127.0.0.1:6600' へのバインドに失敗しました: アドレスは既に使用されています
[1]+ 出口 1 mpd
root@ub0:~#
linux - pulseaudio を使用してデバイスを解放する任意のコマンド
私はオーディオとalsaをパルスするのはまったく初めてです。状況は次のとおりです。
- alsa用にmpdをコンパイルしました。これは組み込みシステムであり、mpd 用のパルス オーディオ プラグインは使用できません。
- パルスオーディオを開始しないと、alsaを使用してmpdが正常に動作します
- 残念ながら bluetooth オーディオに必要なパルスオーディオを起動するとすぐに、mpd/alsa が動作しなくなります。
どうやら、パルスオーディオがデバイスをつかんで離さないようです。パルスオーディオデーモンを停止した後でも。
後で mpd を実行しようとすると、次のようになります。
root@FINGI_GCC:~# mpc play http://relay3.slayradio.org:8000/ [一時停止] #1/1 0:00/0:00 (0%) volume:100% repeat: off random: off single:オフ消費: オフ エラー: オーディオ デバイスを開く際の問題
それで、パルスオーディオをリセットする方法を考えていましたか?pulse audio、mpd、alsa をすべて同じデバイスで実行し続ける必要がありますが、すべてを同時に実行する必要はありません。
これに関する提案はありますか?
node.js - npm mpd - mpd サーバーへの認証方法
node.js と npm モジュールmpdを使用して、別のホスト上の mpd サーバーと通信しています。クライアントは mpd サーバーに接続されますが、サーバーにコマンドを送信できません。コマンドを送信しようとすると、
mpd-server はパスワードで保護されています。私はこれで認証しようとしました
これは機能しません。このモジュールでパスワードを使用して mpd サーバーに接続するにはどうすればよいですか?
python - プロキシ クラスで利用できないホスト (ConnectionRefusedError) に対処する方法
私はpython-mpd2用の非常に基本的なプロキシクラスを持っています(コーディングを手伝ってくれた友人は、代わりにデコレータクラスだと主張しています)。
クラスはこんな感じ
これは、接続可能な mpd ホストがある限り、これまでのところうまく機能します。mpd サーバーがない場合は、
ConnectionRefusedError: [Errno 111] 接続が拒否されました
この例外に対処するための適切なパターンを探しています
- 利用可能なホストがない場合に、プログラムがクラッシュするのを防ぐエレガントな方法を思いつくことができますか?
- プロキシが呼び出されるたびに、プロキシ内または外部で例外をキャッチする必要がありますか?
- 戻り値として文字列 "Host not available" (または同様のもの) を使用することをお勧めしますか、それともプロキシを呼び出すメソッド/関数により良い方法で通知できますか?