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

linh0983

Well-Known Member
Pi5(Lyrion-RT-1.2) . :confused:
MKJUHTm20.jpg


SYNCHRONIZED : Pi5 , Pi2 . :cool:

MKJUHTm21.jpg


Pi2(rAudio) . :mad:
MKJUHTm22.jpg


Cùng 1 giải mã : Pi5 giải trầm nghe nhức nách các bác tròn trịa ui . . . :eek:

Pi2 rAudio cài thêm squeeze như thế nào bác lâm ạ ? ;)
 

linh0983

Well-Known Member
Nhạc vàng phải có tiếng trầm mới hay lúc trước Pi2 hơi mỏng Pi5 sâu tách bạch tuyệt . :mad:
Bên đây phát nhà hàng hàng xóm hát theo mình cũng chịu ui . . . :(

MKJUHTm23.jpg
 

quatmo

Well-Known Member
Nhạc vàng phải có tiếng trầm mới hay lúc trước Pi2 hơi mỏng Pi5 sâu tách bạch tuyệt . :mad:
Bên đây phát nhà hàng hàng xóm hát theo mình cũng chịu ui . . . :(

MKJUHTm23.jpg
Thông tin tuyệt vời!

Anh cài như sau:



1./ Download
wget https://raw.githubusercontent.com/lovehifi/raudiolms-32bit/main/sq32.tgz

2./ Giải nén
tar -xzf sq32.tgz --overwrite -C /opt/


3. Copy nguyên cụm, pate - enter

Mã:
echo "[Unit]
Description=SQ Player
After=local-fs.target remote-fs.target nss-lookup.target network.target

[Service]

Type=simple
WorkingDirectory=/opt/sq
ExecStart=/opt/sq/squeezelite32 -o default -n SQ32-rAudio -s 127.0.0.1 -W
Restart=always
[Install]

WantedBy=multi-user.target" > /opt/sq/sq.service || { echo "Creating systemd unit /opt/sq/sq.service failed"; exit 1; }


4.
ln -fs /opt/sq/sq.service /etc/systemd/system/sq.service

5.
chmod -R 777 /etc/systemd/system/sq.service

6. systemctl enable sq.service

7. systemctl restart sq.service

8. systemctl status sq.service

Anh chỉnh xuất âm file này: /opt/sq/sq.service

-o default hay -o hw:1,0
 
Chỉnh sửa lần cuối:

linh0983

Well-Known Member
Chú DVD build-in Chromecat Audio 4 in 1 Pi5 phát cùng lúc 4 player vẫn mượt mà thích player nào stream player đó các bác ạ tiện lợi ui . . . :p

Player 1 : Pi2 > ReceiverPi > FifoPiQ3 > ReclockPi > TransportPi > Dual AD1865R

Player 2 : Pi5 > I2s-hdmi > ReceiverPi > FifoPiQ3 > ReclockPi > TransportPi > Dual AD1865R

Player 3 : Chromecat Audio > ReceiverPi > FifoPiQ3 > ReclockPi > TransportPi > Dual AD1865R

Player 4 : Pi5 > Vsound > Router > Pi4 > Aoe > Usb-Xmos > ReceiverPi > FifoPiQ3 > ReclockPi > TransportPi > Dual AD1865R


mnjhuytb01.jpg


mnjhuytb02.jpg


mnjhuytb03.jpg


Ngoài ra os arch64 Lyrion rt bác Lâm build-in vsound aoe cho Pi5(FE) phát mượt mà . :eek:
 

ko853

Well-Known Member
Dạ đúng phải vậy, xuất vsound nhẹ tải. Tuy nhiên không biết nguyên nhân gì nhiệt CPU máy anh cao (có thể do Data nhạc lớn...)


Pi 5 em play SQ nhạc trong USB Latency từ 8-15us, nhiệt độ loanh quanh 50 độ.
Play Youtube Cast thì cao, Latency 40us, nhiệt 65 độ.


----------------------

FE chỉ “đóng gói” PCM​

  • PCM từ SQ (hoặc MPD) renderer vào vsound → CPU copy vào netmap ring → NIC transmit frame: Netmap.
    FE (Front-End) chỉ đóng gói mẫu PCM từ ALSA vào frame Ethernet qua vsoundnetmap, không phải xử lý I²S bit-banging.

  • CPU FE không phải điều khiển clock/word-select của I²S, giảm tải real-time scheduling so với local I²S (Xuất trực tiếp tại chỗ ra DAC )

BE dùng DMA cho I²S​

  • snd_aoe nhận frame → atomically write vào DMA descriptor → phần cứng DMA filler “đẩy” mẫu PCM ra bus I²S theo clock.
  • BE (Back-End) dùng kernel patch snd_aoe để “bóc” header Ethernet, lấy payload PCM và nạp vào DMA ring buffer của driver I²S, sau đó phần cứng DMA tự đẩy dữ liệu ra bus I²S


DMA là viết tắt của Direct Memory Access, tức “Truy cập bộ nhớ trực tiếp”. DMA cho phép các thiết bị ngoại vi (như ổ đĩa, card âm thanh, hoặc I²S controller) trao đổi dữ liệu trực tiếp với RAM mà không cần CPU phải can thiệp vào từng byte, giúp giảm tải CPU và tăng tốc độ truyền dữ liệu

Jitter trong hệ thống real-time audio chính là độ dao động (variation) của interrupt latency – thời gian từ khi thiết bị yêu cầu ngắt đến khi trình xử lý ngắt (ISR) bắt đầu chạy. Khi CPU bận chạy nhiều tiến trình hoặc xử lý ngắt khác, interrupt latency bị kéo dài không đồng đều, tạo ra jitter. AoE của Symphonic-MPD hướng tới giảm thiểu jitter này bằng cách cô lập và ưu tiên rõ ràng đường data audio (DMA/I²S) trên BE và bypass toàn bộ stack mạng trên FE để đảm bảo interrupt latency ổn định ở mức micro-giây.
Jitter do CPU bận chạy nhiều task sẽ làm interrupt latency dao động, ảnh hưởng trực tiếp đến chất lượng playback audio real-time. AoE Symphonic-MPD giảm jitter này bằng cách:

  • Bypass network stack với netmap
  • Tách biệt FE/BE
  • Tối ưu interrupt và process scheduling với RT-kernel và công cụ rtirq/rtapp
  • Isolate CPU cores

Nhờ vậy, hệ thống đạt interrupt latency rất thấp và ổn định, đảm bảo DMA/I²S buffer luôn được refill đúng lúc, tránh underrun và xrun.

Tóm lại CPU trên FE không phải xử lý từng byte dữ liệu. Mục tiêu AoE FE/BE là để giảm nhiễu jitter do CPU làm việc nhiều gây ra.
dữ liệu từ FE truyền sang BE có auto sửa lỗi như copy file từ máy A sang máy B ko bác? Chơi FE, BE sợ nhất vụ này.
 

quatmo

Well-Known Member
Bản Lyrion LT 1.3

Bản này chạy cả Pi 4 (real-time cách ly xuất âm 1 CPU).

Bản này chạy cho Pi 5 (real-time cách ly xuất âm 2 CPU). (khuyến nghị dùng để có âm thanh tốt, độ trễ thấp hơn Pi 4).

Có Play Youtube Cast. (Điều khiển tìm, play bằng app Youtube trên phone)

------------

Trên máy tính điều khiển thì vào web http://lyriano.local/, trên phone thì vào web http:// địa chỉ ip máy/


Lần đầu chọn tên I2S DAC xong thì reboot máy sau đó vào chọn tên DAC, bấm nút "Save & Restart Lyrion SQ".


Đổi với USB DAC thì chọn AUTO, bấm chọn tên DAC, bấm nút "Save & Restart Lyrion SQ".


2025-06-18-22-31-03-Lyrion-Music-Server.png



@linh0983 Anh thử xem tắt BE được chưa.
--------------
@sadays In Vietnam get the code Ok, You can try, in this version, I added dns 8.8.8.8 for get Youtube code.
-------------
 
Chỉnh sửa lần cuối:
Bên trên