linh0983
Well-Known Member
Tuyệt vời dùng chung đi bác 357 , 246 hihi .Hôm anh oder phí ship cao quá nên em nhờ oder bên đó luôn. Hi hi. Em tưởng anh oder lúc đó luôn nên k hỏi anh. Nên chỉ có 1 cái ah .
Tuyệt vời dùng chung đi bác 357 , 246 hihi .Hôm anh oder phí ship cao quá nên em nhờ oder bên đó luôn. Hi hi. Em tưởng anh oder lúc đó luôn nên k hỏi anh. Nên chỉ có 1 cái ah .
Mình mount nas nhiều thư mục từ wrbui đặt tên cho nó bt a .
em làm hoài vẫn chưa được, nên quay lại nghe bằng ropieee XLBác dùng Moode TC được chưa?
Lát nữa bác check PM nhé. Mình hướng dẫn xong không thấy bác nói gì nên nghĩ Ok rồi.em làm hoài vẫn chưa được, nên quay lại nghe bằng ropieee XL
vì trình IT của em cũng dở, chỉ biết copy - paste thôi, mà hỏi bác hoài cũng ngại lắm ahLát nữa bác check PM nhé. Mình hướng dẫn xong không thấy bác nói gì nên nghĩ Ok rồi.
Sao lạ nhỉ usb pcm 1794 mình và bác giống nhau chọn NONE trong setting nghe liền mà ? Chú ý là mở dac trước sau 5 giây mở moode a . ( nó detech usb vì chú usb pcm 1794 này dùng nguồn 5v của dac ) .em làm hoài vẫn chưa được, nên quay lại nghe bằng ropieee XL
Trước đây mình cũng có ý giống bác và có phối ghép Q Acoustics 3020i với IQAudio Digiamp+ nhưng nghe không hài lòng lắm, nghe hơi yếu. Mình ghép Pi Amp với Fostex 204 nghe hay hơn Q 3020i, có vẻ loa với độ nhạy cao sẽ dễ chơi hơn.Chào các bác,
Trước em dùng active speaker + Pi + Boss DAC, nay định đổi qua Q Acoustics 3020i nhưng ngại phối ghép AMP/DAC, các bác tư vấn giúp em đã có solution AMP/DAC trên 1 Pi chưa ạ, nếu chưa thì có nhưng con AMP/DAC tích hợp nào kéo cặp loa trên, bugdet <5tr thôi ạ
bản bác cho em ....toẹt vời ông mặt trời, nó tự nhận được DAC luôn (em xem trong Audio info thấy đúng tên luôn), set trong Volume mixer là hadware là hót cả TC và MPD luônLát nữa bác check PM nhé. Mình hướng dẫn xong không thấy bác nói gì nên nghĩ Ok rồi.
Trong file mpd_event.sh thì có dòng:Mount nhiều Nas khác nhau trong SMPD
Điều khó khăn của SMPD là nếu Nas mình có nhiều folder gốc khác nhau (hoặc nhiều NAS) cần add mount vào SMPD không được. Mod chút sẽ Ok ngay.
#1./ Tạm ngưng mount fstab
Mã:sudo chown pi:pi /etc/fstab
WinSCP edit file /home/pi/configs/fstab
Thêm dấu # trước những dòng đã mout trước nếu có
#//192.168.1.16/.....
Reboot lại
#2./ Tạo sub folder
VD: Tạo folder CD, HIRES, FLACMã:sudo chown pi:pi /var/lib/mpd/music/NAS
Mã:mkdir /home/pi/mpd/music/NAS/CD mkdir /home/pi/mpd/music/NAS/HIRES mkdir /home/pi/mpd/music/NAS/FLAC
#3./ Mount vào sub folder
WinSCP edit edit /etc/fstab, bỏ dấu # và edit mount tương ứng NAS
VD folder //192.168.1.16/disk01/CD của NAS sẽ mount vào folder /var/lib/mpd/music/NAS/CD
Mã://192.168.1.16/disk01/CD /var/lib/mpd/music/NAS/CD cifs ro,noauto,x-systemd.automount,sec=ntlmssp,vers=1.0,rsize=129940,cache=none,iocharset=utf8,username=nas,password=admin //192.168.1.16/disk02/HIRES /var/lib/mpd/music/NAS/HIRES cifs ro,noauto,x-systemd.automount,sec=ntlmssp,vers=1.0,rsize=129940,cache=none,iocharset=utf8,username=nas,password=admin //192.168.1.16/disk03/FLAC /var/lib/mpd/music/NAS/FLAC cifs ro,noauto,x-systemd.automount,sec=ntlmssp,vers=1.0,rsize=129940,cache=none,iocharset=utf8,username=nas,password=admin
#4./ Mod xíu
Trong 3 file này: spotify_event.sh, shairport_event.sh, mpd_event.sh
Thêm dấu * vào chỗ nào có chữ NAS/ thành NAS/*
Mã:/var/lib/mpd/music/NAS/*
Xong. reboot
Có thể an tâm nghe nhạc được rồi hihi!
/var/lib/mpd/music/NAS/
/var/lib/mpd/music/NAS
/var/lib/mpd/music/NAS/*
Tất cả /* vậy là đúng rồi bác, dấu * nghĩa là tất cả thư mục con.Trong file mpd_event.sh thì có dòng:
Còn trong 2 file còn lại là spotify_event.sh và shairport_event.sh (và file tidal_event.sh nữa) thì chỉ có:Mã:/var/lib/mpd/music/NAS/
Nghĩa là thiếu "/" ở cuối dòng, Tất cả các file *.sh trên mình đều chỉnh dòng có NAS thành như dưới đây pk bác Lâm:Mã:/var/lib/mpd/music/NAS
VÀ sau cùng,Mã:/var/lib/mpd/music/NAS/*
Làm cách này có còn mount NAS tự động trên WebUI ko bác Lâm.
SAu khi chỉnh sửa như vậy, thì về sau mount NAS là mình mount thủ công bằng cách sửa file fstab pk bác?
Học từ bài của anh @tml3nr , thanks anh!Hi anh Minh, anh Quạt và cả nhà.
Em mò việc tự động start stop service, xào chẻ cóp nhặt ra được cái script svccheck.sh này thấy chạy OK.
Kịch bản là khi startup. TC và aprenderer (AP) cùng start.
Giả dụ sau đó mình dùng AP.
Script này sẽ nhận biết AP đang được dùng vì số process tăng lên. Nó sẽ stop TC.
Sau khi hết dùng AP. Process giảm xuống.
Script này nhận biết AP đang free. Nó sẽ restart TC.
Nếu như mình dùng TC. Mọi việc sẽ ngược lại.
Em test script chạy OK. Vấn đề là phải dùng timer cho script start định kỳ sau một thời gian nào đó. Thí dụ như 30 giây.
Đây là một việc rất dở.
Vậy có cách nào làm cho script này chỉ tự động chạy khi mình dùng / ngưng dùng TC hoặc AP hay không ạ?
Cái script svccheck.sh xào chẻ của em. Mời các anh test thử và cho ý kiến thêm ạ:
svccheck.sh
Mã:#!/bin/bash if [ "$(pgrep -wc ap2renderer)" -gt 10 ]; then echo "aprenderer gt 10 - stop tidal if exist" pidof tidal_connect_application >/dev/null && sudo systemctl stop ifi-streamer-tidal-connect || echo "tidal not exist" exit fi if [ "$(pgrep -fwc tidal_connect_application)" -gt 14 ]; then echo "tidal gt 14 - stop aprenderer if exist" pidof ap2renderer >/dev/null && sudo systemctl stop aprenderer || echo "aprenderer not exist" exit fi if [ "`pidof ap2renderer`" = "" ];then sudo systemctl restart aprenderer fi if [ "`pidof tidal_connect_application`" = "" ];then sudo systemctl restart ifi-streamer-tidal-connect fi exit 0
TC và AP khi đang free:
pgrep -wc tidal_connect
sudo tar -xf /tmp/ympd.tgz --overwrite -C /home/pi/misc/
sudo tar -xf /tmp/configs.tgz --overwrite -C /home/pi/configs/
sudo tar -xf /tmp/soundcheck.tgz --overwrite -C /home/pi/
sudo tar -xf /tmp/service.tgz --overwrite -C /etc/systemd/system/
sudo systemctl enable soundcheck1.service
sudo reboot
sudo tar -xf /tmp/ympd.tgz --overwrite -C /home/pi/misc/
sudo tar -xf /tmp/configs.tgz --overwrite -C /home/pi/configs/
sudo tar -xf /tmp/soundcheck.tgz --overwrite -C /home/pi/
sudo tar -xf /tmp/service.tgz --overwrite -C /etc/systemd/system/
sudo tar -xf /tmp/spotifyd_service.tgz --overwrite -C /lib/systemd/system/
Hay quá anh, các service k chạy sẽ đỡ tài nguyên, tối ưu cho âm thanhCác bác đam mê cải tiến SMPD có thể theo cách sau để tối ưu hệ thống tắt các service khi đang play TC.
Lệnh kiểm tra TC
Khi TC đang idle, kết quả là số 14Mã:pgrep -wc tidal_connect
Khi TC có phone kết nối, kết quả là số 16
Khi TC đang play, kết quả là số 17
Nhờ vào điều trên mình làm 2 việc:
1. Mod lại file /home/pi/misc/ympd_event.sh
#START ADDON
#CHECK PLAY
---------
Mã:#!/bin/bash urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; } parse() { echo `cat "$1" | sed -n "s/^[ \t]*$2[ \t]*[=]*[ \t]*//p" | head -n1 | sed -e "s/\"//g"` } case "$1" in r) # read conf (plain text) parse $2 $3 ;; w) # write conf tmp=$(urldecode "$3") if [[ $tmp == *=* ]];then key=`echo $tmp | cut -f1 -d'='` val=`echo $tmp | cut -f2 -d'='` else key=$tmp val="" fi if [ "$key" = "" ];then echo error elif [ "$val" = "" ];then # read parse $2 $key else # write line=`grep -nE "^\s*$key(\s|=)+" "$2" | head -n1 |sed -e 's/:.*//g'` echo $2 $key $val $line sed -i -e "$line s|\(^\s*$key\s*[\s|=|\"]\{1\}\s*\)[^\"]*\(\"*\)|\1$val\2|" "$2" sync fi ;; p) # list plugins (json) TARGET=.$2 cd /home/pi/plugins CMD="" i=0 for dir in `ls -d $TARGET/*` do CMD=$CMD'.['$i'].path="'$dir'"|' let ++i done CMD=$CMD. cat $TARGET/*/app.json|jq -s -c '.'| jq $CMD ;; isolate) systemd-run --nice=19 systemctl stop spotifyd systemd-run --nice=19 systemctl stop shairport-sync systemd-run --nice=19 systemctl stop tidal systemd-run --nice=19 systemctl stop aprenderer systemd-run --nice=19 systemctl stop minidlna #systemd-run --nice=19 systemctl stop upmpdcli sleep 0.4 ;; #STOP ADDON addon-stop) systemd-run --nice=19 systemctl stop shairport-sync systemd-run --nice=19 systemctl stop aprenderer systemd-run --nice=19 systemctl stop minidlna #systemd-run --nice=19 systemctl stop upmpdcli sleep 1 systemctl start soundcheck.service sleep 1 systemctl stop ympd systemctl stop ympd.socket systemctl stop mpd umount /var/lib/mpd/music/NAS/* sync sleep 0.4 exit ;; ###### END START ADDON ###### #START ADDON addon-start) sleep 2 if [ "`pgrep -wc tidal_connect`" = "16" ];then #echo "It's start addon" systemctl start ympd.socket mount -a systemctl start mpd systemctl start shairport-sync systemctl start aprenderer systemctl start minidlna fi sync sleep 0.4 exit ;; ###### END START ADDON ###### stop-avahi) #systemd-run --nice=19 systemctl stop avahi-daemon #systemd-run --nice=19 systemctl stop avahi-daemon.socket sleep 0.4 ;; pause) #CHECK PLAY if [ "`pgrep -wc tidal_connect`" = "17" ];then echo "It's play" systemd-run /home/pi/misc/ympd_event.sh addon-stop fi ###### END CHECK PLAY ###### if [ "`pidof spotifyd`" = "" ];then if [ `journalctl -u spotifyd|grep "Authenticated as" | wc -l` -gt 0 ];then systemd-run /home/pi/misc/ympd_event.sh spotifyd-start fi fi ;; spotifyd-start) sleep 2 systemctl start spotifyd ;; stop) if [ $(mpc|grep "\[playing\]"|wc -l) = 1 -o $(mpc|grep "\[paused\]"|wc -l) = 1 ];then exit fi #CHECK PLAY if [ "`pgrep -wc tidal_connect`" = "17" ];then echo "It's play" systemd-run /home/pi/misc/ympd_event.sh addon-stop fi ###### END CHECK PLAY ###### if [ "`pidof spotifyd`" = "" ];then if [ `journalctl -u spotifyd|grep "Authenticated as" | wc -l` -gt 0 ];then systemd-run /home/pi/misc/ympd_event.sh spotifyd-start fi fi ;; browse) ls /var/lib/mpd/music/RAM/* >/dev/null 2>&1 if [ $? -eq 0 ]; then mpc update RAM fi ;; dashboard) /home/pi/util-plot.sh /home/pi/util-dashboard.sh ;; esac exit
2. Tạo thêm file /lib/systemd/system/soundcheck.service
Không enable service
Mã:[Unit] Description=Sound check for Addon After=sound.target [Service] Type=simple ExecStart=/home/pi/misc/ympd_event.sh addon-start Restart=always StartLimitInterval=5 User=root Group=root [Install] WantedBy=multi-user.target
Kết quả việc này là khi bấm play TC, giao diện YMPD, MPD, AP, DLNA... sẽ tắt đi.
Khi stop TC thì những cái trên tự động bật trở lại.
Các bác test thử nhé! Hy vọng con đường này sáng sủa.
Món này gọi là update #3 cho smpd, dev Nhật ko support smpd 0.96 nữa, giờ đã có bác @quatmo supoort.Học từ bài của anh @tml3nr , thanks anh!
Các bác đam mê cải tiến SMPD có thể theo cách sau để tối ưu hệ thống tắt các service khi đang play TC.
Lệnh kiểm tra TC
Khi TC đang idle, kết quả là số 14Mã:pgrep -wc tidal_connect
Khi TC có phone kết nối, kết quả là số 16
Khi TC đang play, kết quả là số 17
Nhờ vào điều trên mình làm 2 việc:
1. Mod lại file /home/pi/misc/ympd_event.sh
Những phần mod:
#START ADDON
#STOP ADDON
#CHECK PLAY (2 vị trí)
---------
Mã:#!/bin/bash urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; } parse() { echo `cat "$1" | sed -n "s/^[ \t]*$2[ \t]*[=]*[ \t]*//p" | head -n1 | sed -e "s/\"//g"` } case "$1" in r) # read conf (plain text) parse $2 $3 ;; w) # write conf tmp=$(urldecode "$3") if [[ $tmp == *=* ]];then key=`echo $tmp | cut -f1 -d'='` val=`echo $tmp | cut -f2 -d'='` else key=$tmp val="" fi if [ "$key" = "" ];then echo error elif [ "$val" = "" ];then # read parse $2 $key else # write line=`grep -nE "^\s*$key(\s|=)+" "$2" | head -n1 |sed -e 's/:.*//g'` echo $2 $key $val $line sed -i -e "$line s|\(^\s*$key\s*[\s|=|\"]\{1\}\s*\)[^\"]*\(\"*\)|\1$val\2|" "$2" sync fi ;; p) # list plugins (json) TARGET=.$2 cd /home/pi/plugins CMD="" i=0 for dir in `ls -d $TARGET/*` do CMD=$CMD'.['$i'].path="'$dir'"|' let ++i done CMD=$CMD. cat $TARGET/*/app.json|jq -s -c '.'| jq $CMD ;; isolate) systemd-run --nice=19 systemctl stop spotifyd systemd-run --nice=19 systemctl stop shairport-sync systemd-run --nice=19 systemctl stop tidal systemd-run --nice=19 systemctl stop aprenderer systemd-run --nice=19 systemctl stop minidlna #systemd-run --nice=19 systemctl stop upmpdcli sleep 0.4 ;; #STOP ADDON addon-stop) systemd-run --nice=19 systemctl stop shairport-sync systemd-run --nice=19 systemctl stop aprenderer systemd-run --nice=19 systemctl stop minidlna #systemd-run --nice=19 systemctl stop upmpdcli sleep 1 systemctl start soundcheck.service sleep 1 systemctl stop ympd systemctl stop ympd.socket systemctl stop mpd umount /var/lib/mpd/music/NAS/* sync sleep 0.4 exit ;; ###### END STOP ADDON ###### #START ADDON addon-start) sleep 2 if [ "`pgrep -wc tidal_connect`" = "16" ];then #echo "It's start addon" systemctl start ympd.socket mount -a systemctl start mpd systemctl start shairport-sync systemctl start aprenderer systemctl start minidlna fi sync sleep 0.4 exit ;; ###### END START ADDON ###### stop-avahi) #systemd-run --nice=19 systemctl stop avahi-daemon #systemd-run --nice=19 systemctl stop avahi-daemon.socket sleep 0.4 ;; pause) #CHECK PLAY if [ "`pgrep -wc tidal_connect`" = "17" ];then echo "It's play" systemd-run /home/pi/misc/ympd_event.sh addon-stop fi ###### END CHECK PLAY ###### if [ "`pidof spotifyd`" = "" ];then if [ `journalctl -u spotifyd|grep "Authenticated as" | wc -l` -gt 0 ];then systemd-run /home/pi/misc/ympd_event.sh spotifyd-start fi fi ;; spotifyd-start) sleep 2 systemctl start spotifyd ;; stop) if [ $(mpc|grep "\[playing\]"|wc -l) = 1 -o $(mpc|grep "\[paused\]"|wc -l) = 1 ];then exit fi #CHECK PLAY if [ "`pgrep -wc tidal_connect`" = "17" ];then echo "It's play" systemd-run /home/pi/misc/ympd_event.sh addon-stop fi ###### END CHECK PLAY ###### if [ "`pidof spotifyd`" = "" ];then if [ `journalctl -u spotifyd|grep "Authenticated as" | wc -l` -gt 0 ];then systemd-run /home/pi/misc/ympd_event.sh spotifyd-start fi fi ;; browse) ls /var/lib/mpd/music/RAM/* >/dev/null 2>&1 if [ $? -eq 0 ]; then mpc update RAM fi ;; dashboard) /home/pi/util-plot.sh /home/pi/util-dashboard.sh ;; esac exit
2. Tạo thêm file soundcheck (Không enable service)
Mã:sudo nano /lib/systemd/system/soundcheck.service
Mã:[Unit] Description=Sound check for Addon After=sound.target [Service] Type=simple ExecStart=/home/pi/misc/ympd_event.sh addon-start Restart=always StartLimitInterval=5 User=root Group=root [Install] WantedBy=multi-user.target
Kết quả việc này là khi bấm play TC, giao diện YMPD, MPD, AP, DLNA... sẽ tắt đi.
Khi stop TC thì những cái trên tự động bật trở lại.
Các bác test thử nhé! Hy vọng con đường này sáng sủa.
--------
Nếu không muốn chỉnh code, các bác download mấy file này, dùng WinSCP copy vào thư mục /tmp/ rồi chạy từng dòng sau:
Mã:sudo tar -xf /tmp/ympd.tgz --overwrite -C /home/pi/misc/ sudo tar -xf /tmp/configs.tgz --overwrite -C /home/pi/configs/ sudo tar -xf /tmp/soundcheck.tgz --overwrite -C /lib/systemd/system/ sudo tar -xf /tmp/service.tgz --overwrite -C /etc/systemd/system/
https://drive.google.com/drive/folders/1KSxHF75me0sdcqSSQmx32bDSpt25h4Zo?usp=sharing
Bên em hiện tại âm thanh hay nhất khi phát Tidal từ mconnect sang NP5 upnp các anh ạ. pi2 + asset upnp + shanti vẫn không bằng.Offline vẫn là số 1 các bác a .