99 lines
2.9 KiB
Bash
Executable File
99 lines
2.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
echo "=============================="
|
|
echo "🔊 POWERCONF AUDIO CHECK"
|
|
echo "=============================="
|
|
echo
|
|
|
|
# ----------------------------------
|
|
# Detect PowerConf card + device
|
|
# ----------------------------------
|
|
POWERCONF_LINE=$(arecord -l | grep -i "PowerConf" | head -1)
|
|
|
|
if [ -z "$POWERCONF_LINE" ]; then
|
|
echo "❌ PowerConf device not found"
|
|
exit 1
|
|
fi
|
|
|
|
CARD_INDEX=$(echo "$POWERCONF_LINE" | sed -n 's/.*card \([0-9]\+\):.*/\1/p')
|
|
DEVICE_INDEX=$(echo "$POWERCONF_LINE" | sed -n 's/.*device \([0-9]\+\):.*/\1/p')
|
|
|
|
echo "✅ PowerConf detected:"
|
|
echo " Card = $CARD_INDEX"
|
|
echo " Device = $DEVICE_INDEX"
|
|
echo " ALSA = hw:${CARD_INDEX},${DEVICE_INDEX}"
|
|
echo
|
|
|
|
# ----------------------------------
|
|
# Capture devices (PowerConf only)
|
|
# ----------------------------------
|
|
echo "🎤 CAPTURE DEVICE (PowerConf only)"
|
|
arecord -l | grep -i -A4 "PowerConf"
|
|
echo
|
|
|
|
# ----------------------------------
|
|
# Playback devices (PowerConf only)
|
|
# ----------------------------------
|
|
echo "🔈 PLAYBACK DEVICE (PowerConf only)"
|
|
aplay -l | grep -i -A4 "PowerConf"
|
|
echo
|
|
|
|
# ----------------------------------
|
|
# Capture HW params (forced safe)
|
|
# ----------------------------------
|
|
echo "🎤 MICROPHONE HARDWARE PARAMETERS (PowerConf)"
|
|
|
|
MIC_HW=$(arecord -D hw:${CARD_INDEX},${DEVICE_INDEX} \
|
|
-f S16_LE -r 48000 -c 1 \
|
|
-d 0.1 --dump-hw-params 2>/dev/null)
|
|
|
|
echo "$MIC_HW" | grep -E "FORMAT:|CHANNELS:|RATE:"
|
|
echo
|
|
|
|
# ----------------------------------
|
|
# Playback HW params (forced safe)
|
|
# ----------------------------------
|
|
echo "🔈 SPEAKER HARDWARE PARAMETERS (PowerConf)"
|
|
|
|
SPK_HW=$(aplay -D hw:${CARD_INDEX},${DEVICE_INDEX} \
|
|
-f S16_LE -r 48000 -c 1 \
|
|
-d 0.1 --dump-hw-params /dev/zero 2>/dev/null)
|
|
|
|
echo "$SPK_HW" | grep -E "FORMAT:|CHANNELS:|RATE:"
|
|
echo
|
|
|
|
# ----------------------------------
|
|
# Extract clean values
|
|
# ----------------------------------
|
|
FORMAT=$(echo "$MIC_HW" | grep -m1 "FORMAT" | awk '{print $2}')
|
|
RATE=$(echo "$MIC_HW" | grep -m1 "RATE" | awk '{print $2}')
|
|
CHANNELS_IN=$(echo "$MIC_HW" | grep -m1 "CHANNELS" | awk '{print $2}')
|
|
CHANNELS_OUT=$(echo "$SPK_HW" | grep -m1 "CHANNELS" | awk '{print $2}')
|
|
|
|
FORMAT=${FORMAT:-S16_LE}
|
|
RATE=${RATE:-48000}
|
|
CHANNELS_IN=${CHANNELS_IN:-1}
|
|
CHANNELS_OUT=${CHANNELS_OUT:-1}
|
|
CHUNK=960
|
|
|
|
# ----------------------------------
|
|
# Final verified Python config
|
|
# ----------------------------------
|
|
echo "=============================="
|
|
echo "✅ VERIFIED POWERCONF PYTHON CONFIG"
|
|
echo "=============================="
|
|
echo "FORMAT = pyaudio.paInt16 # ${FORMAT}"
|
|
echo "RATE = ${RATE}"
|
|
echo "CHANNELS_IN = ${CHANNELS_IN}"
|
|
echo "CHANNELS_OUT = ${CHANNELS_OUT}"
|
|
echo "CHUNK = ${CHUNK}"
|
|
echo "INPUT_DEVICE = ${CARD_INDEX}"
|
|
echo "OUTPUT_DEVICE = ${CARD_INDEX}"
|
|
echo
|
|
echo "✔ PowerConf USB Audio"
|
|
echo "✔ Mono mic + Mono speaker"
|
|
echo "✔ hw:${CARD_INDEX},${DEVICE_INDEX}"
|
|
echo "=============================="
|