Raspberry Pi + Rune Audio ::: Một trải nghiệm nghe nhạc mới

tml3nr

Moderator
Cài đúng, check đủ, stop cả pipe. Chạy TC gì cũng ra cái lỗi này: Segmentation fault. Bản 0.6GA hay 0.96 cũng vậy.

Bản mod_v1.5.1 của anh thì TC chạy.

2021-04-14-09_59_45-pismpd.png
Em test xong xóa mất rồi. Để em làm lại rồi up lên cho các anh test thử nhé.

Em thấy là ở bản 0.9.6 và 0.60GA. Cách set "isolcpus=0,1,2" rất khó cho mình phân bổ cpu khi cài thêm app. Nó hẹp quá.

Em set "isolcpus=0,1" thì các app chạy thoáng hơn.

PS: Cái mpdcheck.sh cực hay anh Quạt ạ. Em mê việc tự động on / off này lắm.
 
Chỉnh sửa lần cuối:

rndce

Well-Known Member
Cài đúng, check đủ, stop cả pipe. Chạy TC gì cũng ra cái lỗi này: Segmentation fault. Bản 0.6GA hay 0.96 cũng vậy.

Bản mod_v1.5.1 của anh thì TC chạy.

2021-04-14-09_59_45-pismpd.png
Bác thử lại từ Bước 7 theo cái này thử:
http://www.hdvietnam.com/threads/ra...nghe-nhac-moi.1174389/page-1060#post-10529364
MÌnh loay haoy mãi, thì làm từ Bước 7 mới chạy được trên smpd 0.96
Nếu chạy /usr/..~/ifi-pa-devs--get thì nó ko ra card id cho mình được. phải làm thủ công từ Bước số 7.
 

tml3nr

Moderator
Em đã làm lại bản smpd 060GA tml3nr_mod_1.5.2 ạ. Setup tc và aprenderer 2.08.

Các bước em làm như sau:

- disable các services sau:

pi@smpd:~ $ sudo systemctl disable mpd.service
pi@smpd:~ $ sudo systemctl disable pipe.service
pi@smpd:~ $ sudo systemctl disable spotify-connect.service
pi@smpd:~ $ sudo systemctl disable ympd.service
pi@smpd:~ $ sudo systemctl disable ympd.socket

- set "isolcpus=0,1" (Cảm ơn anh @mtminh đã khai sáng vụ này)

- install thủ công tc theo script sau:

https://github.com/shawaj/HiTide/blob/main/install.sh

- install aprenderer 2.08

Chạy ok các anh ạ. Tidal next bài tốt.

Em thấy TC và aprenderer nên set RT 2 processes đầu tiên tiếng sẽ hay hơn. Em copy cách của dev Orion@runeaudio:

Mã:
#!/bin/bash

/bin/sleep 2

##### Set priority for tidal connect #####

count=1
for pid in $(pgrep -fw tidal_connect_application);
do
if ((count == 1))
then
sudo chrt -f -p 99 $pid;
fi
if ((count == 2))
then
sudo chrt -f -p 99 $pid;
fi
count=$((count+1))
done

Các anh nào muốn test vui lòng PM cho em để em gửi link nhé. Em sợ bị dev chửi nên không dám public :D

smpd-060ga-tc-aprenderer.png


smpd-060ga-tc.png
 
Chỉnh sửa lần cuối:

quatmo

Well-Known Member
Em đã làm lại bản smpd 060GA tml3nr_mod_1.5.2 ạ. Setup tc và aprenderer 2.08.

Các bước em làm như sau:

- disable các services sau:

pi@smpd:~ $ sudo systemctl disable mpd.service
pi@smpd:~ $ sudo systemctl disable pipe.service
pi@smpd:~ $ sudo systemctl disable spotify-connect.service
pi@smpd:~ $ sudo systemctl disable ympd.service
pi@smpd:~ $ sudo systemctl disable ympd.socket

- set "isolcpus=0,1" (Cảm ơn anh @mtminh đã khai sáng vụ này)

- install thủ công tc theo script sau:

https://github.com/shawaj/HiTide/blob/main/install.sh

- install aprenderer 2.08

Chạy ok các anh ạ. Tidal next bài tốt.

Em thấy TC và aprenderer nên set RT 2 processes đầu tiên tiếng sẽ hay hơn. Em copy cách của dev Orion@runeaudio:

Mã:
#!/bin/bash

##### Set priority for tidal connect #####

count=1
for pid in $(pgrep -fw tidal_connect_application);
do
if ((count == 1))
then
sudo chrt -f -p 99 $pid;
fi
if ((count == 2))
then
sudo chrt -f -p 99 $pid;
fi
count=$((count+1))
done

Các anh nào muốn test vui lòng PM cho em để em gửi link nhé. Em sợ bị dev chửi nên không dám public :D

smpd-060ga-tc-aprenderer.png


smpd-060ga-tc.png
Bản này ngon anh, TC Ok ngay, khỏi phải cài. Thanks anh!

Em add thêm Asset/database, streaming đến AP. Khỏi cần bật mpd/upnp làm chi nữa.

Không dùng MPD thì tắt luôn 2 dòng này (rc.local) để nó không update mpd datatbase
#mpc update RAM
#mpc update USB

SC out pipe aplay-rt cực hay anh nhỉ.

Chiều nay nghe qua lại giữa TC và SC.
Review nhẹ, đúng là hay hết hồn các bác. Máy mình SC sự ngân nga của nhạc cụ kéo dài hơn TC.
 
Chỉnh sửa lần cuối:

binna

Well-Known Member
Settup lại Ropi rất lâu, tốn time. Vậy nên em làm đồ chơi này cho tiện dùng.

Anh Phước và các bác trữ đồ chơi này về, muốn xài cái nào thì copy file bên trong vào /root rồi chạy dòng lệnh ghi trong đó (bỏ qua các dòng wget ... và dòng có dấu#).

Gồm có TC, Aprenderer, Asset, BubbleUpnp, MiniDLNA.
Bản TC này có chỉnh tách thư viện để tránh bị tình trạng update mất UPnP như anh Phước.

Làm 1 bản Ropi update full, rồi ghi ra IMG lưu backup. Sau đó cài các thứ trên sau.

Update#1: Phần cài bung Java đề chạy BubbleUpnp, cần có lệnh tạo folder trước khi bung java.
Mã:
mkdir /opt/jvm

Update#2: Trong file aprenderer.service cần thêm dòng này vào để restart lại nó không bị stop.
Mã:
ExecStartPre=/bin/sleep 30
em cài addon Ropi này, nhưng chưa biết cách add nhạc từ NAS vào miniDLNA, nhờ bác @quatmo hướng dẫn giúp em ạ
 

rndce

Well-Known Member
em cài addon Ropi này, nhưng chưa biết cách add nhạc từ NAS vào miniDLNA, nhờ bác @quatmo hướng dẫn giúp em ạ
sửa file /etc/minidlna.conf
Mã:
sudo nano /etc/minidlna.conf
Mã:
### edit như sau:
media_dir=A,/var/lib/mpd/music
db_dir=/var/cache/minidlna
log_dir=/var/log
log_level=off
port=8200
presentation_url=
friendly_name=Raspi-DLNA
inotify=no
album_art_names=Cover.jpg/cover.jpg
album_art_names=Folder.jpg/folder.jpg
wide_links=yes
/var/lib/mpd/music là nơi chứa nhạc của bác, ví dụ nơi mount nhạc của mình là /mnt/NAS thì dòng trên của mình là: media_dir=A,/mnt/NAS
Lưu lại và thoát minidlna.conf
Chạy các lệnh sau để scan lại nhạc cho miniDLNA
systemctl stop minidlna
systemctl start minidlna
systemctl status minidlna
 

rndce

Well-Known Member
Bản này ngon anh, TC Ok ngay, khỏi phải cài. Thanks anh!

Em add thêm Asset/database, streaming đến AP. Khỏi cần bật mpd/upnp làm chi nữa.

Không dùng MPD thì tắt luôn 2 dòng này (rc.local) để nó không update mpd datatbase
#mpc update RAM
#mpc update USB



Chiều nay nghe qua lại giữa TC và SC.
Review nhẹ, đúng là hay hết hồn các bác. Máy mình SC sự ngân nga của nhạc cụ kéo dài hơn TC.
Bản này mình ko dùng /usr/local/bin/aplay-rt để xuất âm thanh cho TC pk bác Hải.
 

binna

Well-Known Member
Em sorry không nói rõ bác @rndce ui, nhạc của em để trong cục nas synology bác ah, không có cắm vào Pi
Em có etc/fstab để sửa nơi mount nhạc nhưng không biết sửa như thế nào...
 

quatmo

Well-Known Member
em cài addon Ropi này, nhưng chưa biết cách add nhạc từ NAS vào miniDLNA, nhờ bác @quatmo hướng dẫn giúp em ạ

sửa file /etc/minidlna.conf
Mã:
sudo nano /etc/minidlna.conf
Mã:
### edit như sau:
media_dir=A,/var/lib/mpd/music
db_dir=/var/cache/minidlna
log_dir=/var/log
log_level=off
port=8200
presentation_url=
friendly_name=Raspi-DLNA
inotify=no
album_art_names=Cover.jpg/cover.jpg
album_art_names=Folder.jpg/folder.jpg
wide_links=yes
/var/lib/mpd/music là nơi chứa nhạc của bác, ví dụ nơi mount nhạc của mình là /mnt/NAS thì dòng trên của mình là: media_dir=A,/mnt/NAS
Lưu lại và thoát minidlna.conf
Chạy các lệnh sau để scan lại nhạc cho miniDLNA
systemctl stop minidlna
systemctl start minidlna
systemctl status minidlna

Hai bác làm theo bài này, mình vừa test mount từ Windows 10 vào OK.
Tham khảo thêm các tham số mount của anh Hải

Lưu ý: không cần gõ sudo, bỏ qua bước 3 của bài viết.

Mình copy về:

1./ Install cifs-utils
Mã:
pacman -Sy cifs-utils


2./ Mount SMB with mount
Mã:
SMB_USERNAME=nas
SMB_PASSWORD=admin
SMB_SERVER="//192.168.1.4/QOBUZ"
mount -t cifs \
       -o username=${SMB_USERNAME},password=${SMB_PASSWORD} \
       "${SMB_SERVER}" /mnt/NAS


3./ Mount SMB on boot
Mã:
SMB_OPTION="credentials=/etc/samba/credentials,_netdev,x-systemd.automount"
echo "${SMB_SERVER} /mnt/NAS cifs ${SMB_OPTION} 0 0" | \
tee -a /etc/fstab


 
Chỉnh sửa lần cuối:

rndce

Well-Known Member
Em sorry không nói rõ bác @rndce ui, nhạc của em để trong cục nas synology bác ah, không có cắm vào Pi
Em có etc/fstab để sửa nơi mount nhạc nhưng không biết sửa như thế nào...
SSH vào RopieeeXL
#1 Tạo thư mục NAS trong /mnt
Mã:
mkdir /mnt/NAS
#2 Thêm vào /etc/fstab câu sau:

Mã:
//192.168.100.14/Lossless /mnt/NAS cifs _netdev,username=Guest,password=,vers=1.0,uid=1000,gid=1000,sec=ntlm,iocharset=utf8 0 0
câu trên cho trường hợp bác ko dùng username và pass cho NAS, nếu có dùng username và pass thì bác điền vào sau username=xxx,password=yyy (với xxx là username, yyy là pass của bác dùng trên NAS
Lưu lại và thoát /etc/fstab
#3 Chạy câu lệnh sau để mount NAS vào /mnt/NAS
Mã:
mount -av
#4 Sửa file /etc/minidlna.conf
Mã:
nano /etc/minidlna.conf

Mã:
### edit như sau:
media_dir=A,/var/lib/mpd/music
db_dir=/var/cache/minidlna
log_dir=/var/log
log_level=off
port=8200
presentation_url=
friendly_name=Raspi-DLNA
inotify=no
album_art_names=Cover.jpg/cover.jpg
album_art_names=Folder.jpg/folder.jpg
wide_links=yes

/var/lib/mpd/musiclà nơi chứa nhạc của bác, ví dụ nơi mount nhạc của mình là /mnt/NAS thì dòng trên của mình là: media_dir=A,/mnt/NAS
Lưu lại và thoát minidlna.conf
#5 Chạy các lệnh sau để scan lại nhạc cho miniDLNA
systemctl stop minidlna
systemctl start minidlna
systemctl status minidlna

 
Chỉnh sửa lần cuối:

rndce

Well-Known Member
Em build librespot hơn 4 tiếng trên pi2. Nhưng vẫn không chạy được với smpd 0.9.6 alsa. Chưa nói gì tới aplay-rt.

Buồn quá em mò lại đống đồ cổ, may quá thấy bản smpd 0.6GA đã có sẵn librespot output pipe aplay-rt.

Test thử SC chạy luôn, không cần phải khai báo user password.

SC out ra pipe aplay-rt tiếng hay hết hồn các anh ạ. Anh nào muốn test smpd 0.6GA vui lòng PM cho em để em gửi link. Ông dev không muốn public mấy cái này.

Mã:
pi@smpd:~ $ uname -a
Linux smpd 4.14.52-smpd #41 SMP PREEMPT Thu Aug 16 07:48:07 JST 2018 armv7l GNU/Linux

pi@smpd:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
NAME="Raspbian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

spotify-connect.service

Mã:
[Unit]
Description=Spotify Connect
After=network-online.target

[Service]
Type=idle

ExecStart=/usr/local/bin/librespot --name symphonic-mpd --initial-volume 100 --onevent /home/pi/configs/spotify_event.sh --cache /run --bitrate 320 --zeroconf-port 4000 --backend pipe --device /run/pipeout  &

Restart=always
RestartSec=10
StartLimitInterval=30
StartLimitBurst=20

LimitRTPRIO=99
LimitMEMLOCK=infinity
CPUSchedulingPolicy=fifo
CPUSchedulingPriority=99
CPUAffinity=2

# none, realtime, best-effort, idle
IOSchedulingClass=realtime

# 0(highest) - 7(lowest)
IOSchedulingPriority=0

[Install]
WantedBy=multi-user.target

pipe.service

Mã:
[Unit]
Description=symphonic-mpd pipe service
Wants=network-online.target
After=sound.target
After=network.target network-online.target

[Service]
Type=simple
#PIDFile=/run/pipe.pid
LimitRTPRIO=99
LimitMEMLOCK=infinity
CPUSchedulingPolicy=fifo
CPUSchedulingPriority=99
CPUAffinity=1
KillMode=mixed
KillSignal=SIGHUP
User=root
Group=root

# none, realtime, best-effort, idle
IOSchedulingClass=realtime

# 0(highest) - 7(lowest)
IOSchedulingPriority=0

#ExecStartPre=/home/pi/configs/pipe.sh pre
ExecStart=/home/pi/configs/pipe.sh exec
#ExecStartPost=/home/pi/configs/pipe.sh post

Restart=always
StartLimitInterval=5

[Install]
WantedBy=multi-user.target

pipe.sh

Mã:
#!/bin/bash

device="hw:0,0" # default

# for Sabreberry32 (DAC MASTER)
if [ $(aplay -l|grep "SabreBerry32 DAC sabre9018q2c"|wc -l) = 1 ];then
  device="APLAY_S32_LE"
fi

#prealloc=512
prealloc=1024
period_time=5772
buffer_time=1486940

pipeout=/run/pipeout
pcminfo=/run/pcminfo

timer_calibration="/home/pi/configs/timer_calibration.sh"
opt_aplay="--device=${device} -q -M -F ${period_time} -B ${buffer_time} -p ${pcminfo}"

case "$1" in
  exec)
  if [ ! -e $pipeout ]; then
  mkfifo --mode=666 $pipeout
  fi
  if [ ! -e $pcminfo ]; then
  touch $pcminfo
  chmod 666 $pcminfo
  echo "S16_LE 44100 2" > $pcminfo
  fi

  echo $prealloc > /proc/asound/card0/pcm0p/sub0/prealloc
  $timer_calibration
  exec /usr/local/bin/aplay-rt $opt_aplay $pipeout
  ;;
esac
Trong bản SPMD này mình thấy trong file spotify-connect.service ở ExexStart phần âm thanh xuất ra divice chọn: --device /run/pipeout &
Mã:
ExecStart=/usr/local/bin/librespot --name symphonic-mpd --initial-volume 100
--onevent /home/pi/configs/spotify_event.sh
--cache /run --bitrate 320
--zeroconf-port 4000
--backend pipe
--device /run/pipeout  &
SpoSV.png

- Khi install TC trong bản SMPD này mình thấy file ifi-streamer-tidal-connect.service cũng có chọn device xuất âm thanh như hình:
TCSV.png

MÌnh thắc mắc là nếu trong ifi-streamer-tidal-connect.service, phần -- playback-device mình sửa thành
-- playback-device /run/pipeout (giống như trong spotify-connect.service) -> thì TC có chạy ko (vì như vậy sẽ tận dụng được pipe.service (aplay-rt ?) của smpd ko phải tắt mpd.service, và lúc này có cân thêm file tidal-connect-even.sh để release Alsa cho TC?)
Nhờ bác @quatmo , bác Hải @tml3nr xem thử vụ này.
 
Chỉnh sửa lần cuối:

hungpmu

Active Member
Ngoài lề chút. Chả là em cần cái núm Volume để thay cái cũ, tuy nhiên nó có size hơi to 55x22mm nên em chịu không tìm thấy ai bán.
Các cụ biết ai bán hoặc phay nhôm được thì báo em với. Cảm ơn các cụ
Em cần 1 cái như hình bên dưới
volume.jpg
 

toi511

Well-Known Member
Ngoài lề chút. Chả là em cần cái núm Volume để thay cái cũ, tuy nhiên nó có size hơi to 55x22mm nên em chịu không tìm thấy ai bán.
Các cụ biết ai bán hoặc phay nhôm được thì báo em với. Cảm ơn các cụ
Em cần 1 cái như hình bên dưới
volume.jpg
Bác toàn hà nội, mua nhiêu cũng có bác nhé. Bacs alo nhe nhieu quá họ không post lên nổi.
https://vnav.vn/threads/♫♪♪♫audiono...ontaudio-kr-talema-wbt-duelund-mundorf.36903/


Hoặc dũng audio sài gòn
https://vnav.vn/threads/dungaudio-87-2a-tran-dinh-xu-q1.8575/
 

tml3nr

Moderator
Trong bản SPMD này mình thấy trong file spotify-connect.service ở ExexStart phần âm thanh xuất ra divice chọn: --device /run/pipeout &
Mã:
ExecStart=/usr/local/bin/librespot --name symphonic-mpd --initial-volume 100
--onevent /home/pi/configs/spotify_event.sh
--cache /run --bitrate 320
--zeroconf-port 4000
--backend pipe
--device /run/pipeout  &
SpoSV.png

- Khi install TC trong bản SMPD này mình thấy file ifi-streamer-tidal-connect.service cũng có chọn device xuất âm thanh như hình:
TCSV.png

MÌnh thắc mắc là nếu trong ifi-streamer-tidal-connect.service, phần -- playback-device mình sửa thành
-- playback-device /run/pipeout (giống như trong spotify-connect.service) -> thì TC có chạy ko (vì như vậy sẽ tận dụng được pipe.service (aplay-rt ?) của smpd ko phải tắt mpd.service, và lúc này có cân thêm file tidal-connect-even.sh để release Alsa cho TC?)
Nhờ bác @quatmo , bác Hải @tml3nr xem thử vụ này.
- Về lý thuyết thì một app có thể output ra được những cách gì là đã được xác định từ đầu ạ. Thí dụ như librespot và mpd từ đầu họ đã công bố là có support pipe.

- Tham số "--playback-device" mô tả sound device chứ không phải là "type" của backend. Mặc nhiên em nghĩ là TC out ra alsa.

Nhưng em thấy status của TC có dòng này:

Mã:
pi@raspberrypi:~ $ systemctl status ifi-streamer-tidal-connect
● ifi-streamer-tidal-connect.service - RasPi Streamer Tidal Connect Service
  Loaded: loaded (/lib/systemd/system/ifi-streamer-tidal-connect.service; enabled; vendor preset: enabled)
  Active: active (running) since Fri 2021-04-16 08:10:10 +07; 13h ago
  Process: 308 ExecStartPost=/home/pi/ssettidal.sh (code=exited, status=0/SUCCESS)
Main PID: 307 (tidal_connect_a)
  Tasks: 14 (limit: 2181)
  CGroup: /system.slice/ifi-streamer-tidal-connect.service --tc-certificate-path /usr/ifi/ifi-tidal-release/id_certificate/IfiAudio_ZenStream.dat -f HiTide Streamer --codec-mpegh true --codec-mqa false --model-name HiTide RasPi Streamer --disable-app-security false --disable-web-security false --enable-mqa-passthrough false --log-level 3 --enable-websocket-log 0

Apr 16 07:01:05 raspberrypi tidal_connect_application[674]: ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
Apr 16 07:01:05 raspberrypi tidal_connect_application[674]: ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
Apr 16 07:01:05 raspberrypi tidal_connect_application[674]: ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
Apr 16 07:01:05 raspberrypi tidal_connect_application[674]: ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
Apr 16 07:01:05 raspberrypi tidal_connect_application[674]: ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
Apr 16 07:01:05 raspberrypi tidal_connect_application[674]: Cannot connect to server socket err = No such file or directory
Apr 16 07:01:05 raspberrypi tidal_connect_application[674]: Cannot connect to server request channel
Apr 16 07:01:05 raspberrypi tidal_connect_application[674]: jack server is not running or cannot be started
Apr 16 07:01:05 raspberrypi tidal_connect_application[674]: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Apr 16 07:01:05 raspberrypi tidal_connect_application[674]: STARTED TidalConnect services.

jack server is not running or cannot be started ???

Vậy có thể ngoài alsa TC có support jack audio? Có nghĩa là mình có thể bridge âm thanh sang một output khác?

Anh em mình ráng mò thêm anh nhỉ. Em rất ấn tượng với aplay-rt nhưng tiếc chưa có thời gian tìm hiểu kỹ.

- TC sẽ realease alsa khi mình đổi sang output khác trên app Tidal. Vậy mình không cần làm gì thêm.

Trong các bản smpd, có rất nhiều service được set để thực thi khi có một event nào nó xảy ra. Vì vậy mình hay bị ngậm alsa khi smpd init pipe hay aplay-rt. Cần phải theo dõi thật kỹ các process phát sinh và kiểm tra hết các script (pipe.sh, pcminfo.sh).
 

quatmo

Well-Known Member
jack server is not running or cannot be started ???

Vậy có thể ngoài alsa TC có support jack audio? Có nghĩa là mình có thể bridge âm thanh sang một output khác?
Đúng vậy anh, bridge sang ouput khác Ok. PulseAudio Server.
Không biết anh xem cái script này chưa? Là cách Belena làm, họ làm TC bridge từ Alsa sang PulseAudio.
https://raw.githubusercontent.com/balenablocks/audio/master/scripts/alsa-bridge/debian-setup.sh

https://github.com/balenalabs/balen...cb580fbfaca/plugins/tidal/Dockerfile.template
 

toi511

Well-Known Member
Bản này ngon anh, TC Ok ngay, khỏi phải cài. Thanks anh!

Em add thêm Asset/database, streaming đến AP. Khỏi cần bật mpd/upnp làm chi nữa.

Không dùng MPD thì tắt luôn 2 dòng này (rc.local) để nó không update mpd datatbase
#mpc update RAM
#mpc update USB



Chiều nay nghe qua lại giữa TC và SC.
Review nhẹ, đúng là hay hết hồn các bác. Máy mình SC sự ngân nga của nhạc cụ kéo dài hơn TC.
Bản anh gởi em AP khơi động nó chạy được chút là mất luôn anh.
 

tml3nr

Moderator
Đúng vậy anh, bridge sang ouput khác Ok. PulseAudio Server.
Không biết anh xem cái script này chưa? Là cách Belena làm, họ làm TC bridge từ Alsa sang PulseAudio.
https://raw.githubusercontent.com/balenablocks/audio/master/scripts/alsa-bridge/debian-setup.sh

https://github.com/balenalabs/balen...cb580fbfaca/plugins/tidal/Dockerfile.template
Em có rình TC của dev shawaj trong balena nhưng chưa thấy cái này. Hay quá anh nhỉ @@

Hiện tại chung quanh TC có quá nhiều hướng để mò: Set kernel sao cho âm thanh hay, test các loại output, phối hợp với các services khác...

Riêng về việc liên kết volume với alsa mixer. Em thấy có vài manh mối. Hiện tại nếu như mình dùng sound có mixer "Analogue". Set như bài bên dưới sẽ sync được volume của app và alsa:

https://www.raspberrypi.org/forums/...482274aa433a29918b7a8ab37b0&start=25#p1835793

asifjahmed đã viết:
Hey Everyone!

I got this working nicely on the RPi 4 so I figured I would share my learnings here for others:

-DietPi was the platform of choice for me, default install is fine except you also have to install avahi-daemon

-Once I got Tidal connect itself working, I didn't have any volume control. I learned that the "speaker_controller"application" needs to be running in order for that part to work. In order to have this run in the background (and at startup) like the underlying tidal connect service, I created a new service description:

Mã:
[Unit]
Description=Speaker Controller
After=ifi-streamer-tidal-connect.service

[Service]
Type=forking
Restart=on-failure
RestartSec=3
ExecStart=/usr/bin/screen -L -dmS root /usr/ifi/ifi-tidal-release/bin/speaker_controller_application

[Install]
WantedBy=multi-user.target

Create that file in /etc/systemd/system/, chmod+x it, and enable it via systemctl in order to have it start up after tidal connect, at startup. Works great!
 
Bên trên