Johan Le Baut 22 ore fa
parent
commit
bf9adcffe1
2 ha cambiato i file con 93 aggiunte e 0 eliminazioni
  1. 47 0
      README.md
  2. 46 0
      check-umc.sh

+ 47 - 0
README.md

@@ -1,2 +1,49 @@
 # config-looper
 
+## Sur Olimex
+
+branchement:
+ - interface audio UMC404:  USB côté power
+ - pedalboard midi FBC1010: USB côté ethernet
+
+**avec user olimex**
+
+en désactive le mdp sur sudo pour olimex avec:
+```
+sudo visudo
+
+# a la fin
+olimex ALL=(ALL) NOPASSWD: ALL
+```
+
+vérifier les branchements USB:
+```
+aplay -l
+arecord -l
+aconnect -l
+```
+
+installer le minimum pour loop
+```
+sudo apt update
+sudo apt install --no-install-recommends pipewire pipewire-jack wireplumber libspa-0.2-modules sooperlooper
+
+# activer 
+systemctl --user enable --now pipewire.socket wireplumber.service
+systemctl --user status pipewire.socket wireplumber.service
+```
+
+commandes pratiques de status et reset:
+```
+wpctl status
+pw-link -o
+pw-link -i
+
+# rédemarrer wp si problème UMC pas détecté
+while true; do wpctl status | grep UMC404HD && echo "OK" || { echo "KO restart wp" ;systemctl --user restart wireplumber.service ; }; sleep 2; done
+```
+
+script check:
+```
+mkdir -p ~/.config/systemd/user
+```

+ 46 - 0
check-umc.sh

@@ -0,0 +1,46 @@
+#!/bin/sh
+
+state=""
+
+while :; do
+    alsa_four=0
+
+    for stream in /proc/asound/card*/stream0; do
+        [ -r "$stream" ] || continue
+        grep -q '^BEHRINGER UMC404HD' "$stream" || continue
+
+        if awk '
+            /^Capture:/ { capture=1; next }
+            capture && /Channels: 4/ { found=1 }
+            END { exit !found }
+        ' "$stream"; then
+            alsa_four=1
+        fi
+        break
+    done
+
+    if [ "$alsa_four" -ne 1 ]; then
+        if [ "$state" != "usb" ]; then
+            echo "UMC absente ou moins de 4 canaux ALSA : pas de redémarrage WirePlumber"
+        fi
+        state="usb"
+        sleep 20
+        continue
+    fi
+
+    ports=$(pw-link -o 2>/dev/null |
+        grep -c '^alsa_input\.usb-BEHRINGER_UMC404HD_192k-00\..*:capture_')
+
+    if [ "$ports" -ne 4 ]; then
+        echo "UMC : 4 canaux ALSA, mais $ports ports de capture PipeWire ; redémarrage WirePlumber"
+        state="pipewire"
+        systemctl --user restart wireplumber.service
+        sleep 60
+    else
+        if [ "$state" != "ok" ]; then
+            echo "UMC : 4 canaux de capture disponibles dans PipeWire"
+        fi
+        state="ok"
+        sleep 20
+    fi
+done