Em setup test thử mô hình 3 trong một: Tidal Connect HiTide, aprenderer và minidlna 3 patch. Mọi thứ hoạt động hoàn hảo như ý bà cụ. Ngoại trừ vướng một việc hơi khó chịu. Khi Tidal Connect và aprenderer cùng start. Chỉ có 1 trong 2 play được do service kia đang giữ alsa. Vậy mình chỉ để startup service nào dùng nhiều hơn. Cái kia start thủ công. Cách giải quyết hoàn hảo cho việc này. Là tìm được cách nào cho nó tự động stop service còn lại khi play. Tương tự như tính năng "onevent" của spotifyd. Em không rõ bản dastereo giải quyết việc này như thế nào. Vì em test aprenderer chưa chạy được. Em nhớ là dev paparius của smpd có mấy cái script về event rất hay. Để em mò thử. Hoặc mình có thể đưa vào giao diện web nút bật tắt service? Về web em dốt đặc hic. Cách dễ nhất là tạo script rồi start... bằng cơm: Để start Tidal Connect: sudo nano /home/pi/tcstart.sh Code: #!/bin/bash sudo systemctl stop aprenderer.service sudo service minidlna stop sudo systemctl restart ifi-streamer-tidal-connect.service sleep 1 sudo chrt -f -p 50 $(pidof tidal_connect_application) exit sudo chmod +x /home/pi/tcstart.sh Khi nào dùng TC mình sẽ chạy lệnh: ./tcstart.sh Để start aprenderer: sudo nano /home/pi/upnpstart.sh Code: #!/bin/bash sudo systemctl stop ifi-streamer-tidal-connect.service sudo service minidlna restart sudo systemctl restart aprenderer.service exit sudo chmod +x /home/pi/upnpstart.sh Khi nào dùng aprenderer mình sẽ chạy lệnh: ./upnpstart.sh Mình cũng có thể chạy các scripts này từ PC bằng putty hoặc plink. Có thể tạo shortcut để chạy bằng 1 click. Em dốt quá nên chỉ mò được tới đây. Nhờ các anh cho ý kiến thêm ạ. PS: Bản TC HiTide của dev shawaj có vẻ dễ kết nối với Tidal trên PC.
Em mới test sơ một vòng vụ optimize âm thanh cho pi. Trước mắt em thấy chỉ cần set real-time scheduling cho process "tidal_connect_application" là hiệu quả nhất anh ạ. Vậy mình sẽ thêm vào lệnh "sudo chrt -f -p 50 $(pidof tidal_connect_application)" sau khi start service "ifi-streamer-tidal-connect.service" là xong. Anh xem thêm ở đây ạ: https://vnav.vn/posts/2597707/ Nếu rãnh anh test thử script này. Em dựa theo thông số của dev dynobot. Test để gia giảm thông số rất khó và mất thời gian nên em chưa làm nổi. Code: #!/bin/bash echo 60 > /proc/sys/vm/swappiness echo 1000000 > /proc/sys/kernel/sched_latency_ns echo 1000000 > /proc/sys/kernel/sched_rt_period_us echo 950000 > /proc/sys/kernel/sched_rt_runtime_us echo 1 > /proc/sys/kernel/sched_autogroup_enabled echo 100 > /proc/sys/kernel/sched_rr_timeslice_ms echo 100000 > /proc/sys/kernel/sched_min_granularity_ns echo 25000 > /proc/sys/kernel/sched_wakeup_granularity_ns echo 16777216 | sudo tee /proc/sys/net/core/rmem_max > /dev/null 2>&1 echo 16777216 | sudo tee /proc/sys/net/core/wmem_max > /dev/null 2>&1 echo performance | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor > /dev/null 2>&1 #Reduce Audio thread latency chrt -f -p 54 $(pgrep ksoftirqd/0) chrt -f -p 54 $(pgrep ksoftirqd/1) chrt -f -p 54 $(pgrep ksoftirqd/2) chrt -f -p 54 $(pgrep ksoftirqd/3) Để trả lại default anh chạy script này: Code: #!/bin/bash echo 60 > /proc/sys/vm/swappiness echo 18000000 > /proc/sys/kernel/sched_latency_ns echo 1000000 > /proc/sys/kernel/sched_rt_period_us echo 950000 > /proc/sys/kernel/sched_rt_runtime_us echo 1 > /proc/sys/kernel/sched_autogroup_enabled echo 100 > /proc/sys/kernel/sched_rr_timeslice_ms echo 2250000 > /proc/sys/kernel/sched_min_granularity_ns echo 3000000 > /proc/sys/kernel/sched_wakeup_granularity_ns echo 180224 | sudo tee /proc/sys/net/core/rmem_max > /dev/null 2>&1 echo 180224 | sudo tee /proc/sys/net/core/wmem_max > /dev/null 2>&1 echo ondemand | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor > /dev/null 2>&1 #Reduce Audio thread latency chrt -f -p 20 $(pgrep ksoftirqd/0) chrt -f -p 20 $(pgrep ksoftirqd/1) chrt -f -p 20 $(pgrep ksoftirqd/2) chrt -f -p 20 $(pgrep ksoftirqd/3)
Kiến thức bác @tml3nr hướng dẫn thiệt là quý. Mình chỉ nghe online nên set up có phần đơn giản hơn, có TC là quá mừng rồi, đang apply mấy cái dễ dễ bác chỉ trước, mấy cái phức tạp hơn phải lúc nào có đk cũng thử xem sao. Nói thật bt ko có nhiều tgian để lọ mọ vì F1 nó ồn ào lắm , bởi vậy ngày thường toàn phải khuya chút mới vô forum được.
Dạ khi nào rảnh hãy mò thêm anh ạ. Em thấy setup đơn giản như vậy là đã hay rồi. Chắc may mắn là nhờ cái renderer đó ngon, và cái OS version đó tiếng khá tốt.
Các anh cho em bổ sung một thông tin quan trọng ạ. Trước đây do test chưa kỹ nên em kết luận không chính xác Khi mình dùng app như bubbleupnp hay mconnect phát Tidal sang upnp renderer truyền thống (Không tính đến OpenHome). Renderer lấy nhạc từ app hay từ internet là tùy theo đặc tính của renderer. Vậy nếu như renderer lấy được link trực tiếp từ internet. Phát Tidal, Qobuz bằng app bubbleupnp hay mconnect. Mình không bị ảnh hưởng bởi thiết bị đang chạy app. Chỉ cần test như sau là sẽ thấy liền: - Dùng JMC ngó vào upnp renderer. - Dùng mconnect và bubbleupnp, play Tidal xuất sang upnp renderer. Khi nhạc đang phát. Nhìn vào JMC ta sẽ thấy link nhạc đang phát. Thí dụ như hình bên dưới em phát Tidal từ mconnect sang NP5 và aprenderer: mconnect Tidal sang NP5 - Nhạc lấy từ internet: mconnect Tidal sang aprenderer - Nhạc lấy từ thiết bị đang chạy app mconnect: Lúc này ta gọi là app mconnect đang làm proxy streaming.
À anh nhớ lưu ý là có một số dac (Hoặc amp, loa, kernel...). Khi set volume alsa ở 100%, tiếng có thể hơi sạn dải trên. Trong trường hợp đó. Nên hạ volume xuống khoảng 86% (-4.00 dB).
Có cách nào bypass luôn cái volume này không bác tức là không dùng volume mềm chỉ dùng volume cứng cho âm thanh nó nguyên bản.
Trên pi khi mình bypass thực chất là alsa volume nó giữ ở 100% anh ạ (Nếu như dac có hardware volume). Về lý thuyết khi volume 100% data sẽ không bị mất bit. Nhưng nếu như âm thanh nghe hơi sạn thì mình giảm tí sẽ êm tai hơn. Coi như dùng mẹo. Chỉ những device nào có volume hardware mình mới chỉnh được. Thí dụ như boss dac, dac+ pro... DigiOne, Schiit Eitr không có volume. Lúc nào cũng 100%.
B1: Mình kiểm tra aplay -l thì ra đúng tên Dac ở card 1 (mình xuất USB) B2: Kiểm tra theo lệnh "cat /usr/ifi/ifi-tidal-release/pa_devs/devices" thì ra iFi Pro Dsd gì đó. B3: Alsamixer thì đúng tên Dac nhưng báo "sound devices does not have any controls" Dac mình M500 có volumn cứng bác ạ
Có nhiều git về tidal connect đã bị xóa. Không biết mấy dev này có bị Tidal hay ifi complain bản quyền hay không. Tình hình xấu nhất là Tidal đổi api. Khả năng này có thể xảy ra vì trong khoản 6 tháng gần đây. Tất cả các api cũ đều bị cắt. Động thái này cho thấy có vẻ tidal muốn người dùng tập trung vào các sản phẩm có liên kết với Tidal như roon và các device được chứng nhận. PS: TC có speaker_controller_application. Nó liên kết được với volume alsa và app tidal. Nhưng chỉ được một chiều từ control panel. https://github.com/balenalabs/balena-sound/pull/399
B1: Mình kiểm tra aplay -l thì ra đúng tên Dac ở card 1 (mình xuất USB) B2: Kiểm tra theo lệnh "cat /usr/ifi/ifi-tidal-release/pa_devs/devices" thì ra iFi Pro Dsd gì đó. Anh làm như vầy: Code: sudo systemctl stop ifi-streamer-tidal-connect cd /usr/ifi sudo ifi-tidal-release/pa_devs/run.sh Rồi kiểm tra lại: cat /usr/ifi/ifi-tidal-release/pa_devs/devices Nếu thấy tên dac của anh trong đó là ok. Sau đó: sudo systemctl restart ifi-streamer-tidal-connect Em chưa rõ lợi ích của việc này. Nếu nó play ra tiếng thì không làm cũng được. Sau này mình sẽ tìm hiểu thêm. Thí dụ như của em sau khi run.sh là (Topping E30): Code: device#0=E30: USB Audio (hw:1,0) device#1=default Number of devices = 2 More info: https://github.com/seniorgod/ifi-tidal-release B3: Alsamixer thì đúng tên Dac nhưng báo "sound devices does not have any controls" Dac mình M500 có volumn cứng bác ạ Volume hardware là cái trong alsa mixer anh ạ. Khác với núm volume trên thiết bị. Chắc là cái dac của anh không có hardware volume mixer trong alsa. Vậy anh không cần quan tâm đến nó. Coi như lúc nào nó alsa cũng out 100%.
Vâng bác, nếu TC áp được lên rpi thì không còn nhiều khoảng cách giữa rpi và các sản phẩm hãng tuy nhiên khi đó Tidal sẽ phổ cập hơn. Đây là bài toán KD nên bên nào có lợi hơn họ sẽ theo hướng đó. Sắp tới khi Spotify có lossless cuộc đua sẽ càng thú vị, khi đó Tidal thất thế biết đâu họ sẽ thả nổi.
Dạ đúng vậy ạ. Tùy theo chiến lược kinh doanh của mỗi hãng mà họ sẽ quyết định chuyện xiết hay thả. Cuộc chiến sắp tới rất gay cấn khi Spotify ra lossless. Hy vọng là có lợi cho anh em audiophile nghèo quê ta
Có giao diện config network trong menu đó anh. Ở nhà em gán ip theo mac address trong router quang luôn cho tiện.
Em mò mò ra được cách giải quyết việc giữ alsa của TC và aprenderer rồi các anh ạ. Rất đơn giản. - pi start cả 2 services TC và aprenderer - Sau khi play TC. Chỉ cần đổi sang output khác là alsa release. - Sau khi play aprenderer. Chỉ cần xóa hết nhạc trong playlist (queue) cùa bubbleupnp là alsa release. Vậy là giải quyết được cái OS 3 in one TC, aprenderer và minidlna rồi.
Chỉ cần set wifi 1 lần là nó nhớ luôn mà anh? Y như các os khác ạ. PS: Em test bản dastereo rpi3_20210202 nha anh. Bản rpi4_20210210 chạy khó quá.
Em mê bộ tam sên Tidal Connect, aprenderer và minidlna quá nên mò mẫm build thử xem thế nào. Đến hôm nay tạm ổn. Em xin phép share với cả nhà dùng thử. Em đặt tên là hitidepi, dựa theo tên project của dev shawaj. Âm thanh của TC và aprenderer rất hay. Thoát tốt và tự nhiên. 3 em này trong 1 OS theo em là rất lý tưởng cho Tidal và nhạc offline. Em có build thử trên xenomai 3.0.8 thì âm thanh không như mong đợi. Nên em quay về Raspbian. Sau khi test qua một vài version em phát hiện ra là bản Raspbian 4.19.118 rất ngon. Chạy nhanh nhẹn, tiếng thanh thoát. Đây là bản cuối cùng của v4.x. Nó là Debian 10 nên chạy được từ pi2 đến pi4 luôn. Em có làm cái menu để chuyển đổi setting thay đổi latency kernel. Profile em mượn theo các OS đã có trước đây. Chỉ cần chạy "sudo config" rồi chọn trong menu. http://hitidepi:8200/ | Dùng để xem status minidlna. http://hitidepi:7779/ | Dùng để setup aprenderer. Mời cả nhà dùng thử ạ! Em xin cảm ơn tất cả các dev đã viết các module, package dùng trong OS này. Xin cảm ơn tất cả các anh em trên diễn đàn đã chia sẻ, mở mang kiến thức cho em. Ở bản sau, có thể em sẽ đưa vào shellinabox để chạy được SSH và kéo volume trên giao diện web. Download: https://www.mediafire.com/?qphd57qxs05b0bo
Đã cài và đang thưởng thức Chạy nhanh và tiếng dải cao sáng hơn thì phải. Default là profile Archphile phải ko bác, bác có thể giải thích các profile thích hợp với các thể loại nào được không. Cám ơn bác
Cảm ơn anh đã ủng hộ Bản 4.19.118 này em thấy tiếng tốt hơn bản 5.4.83. Em thấy profile Archphile có vẻ hợp với OS này, nên để default. Theo em âm thanh do OS quyết định 60%. Renderer 40%. Các thứ optimize có thể tăng thêm được khoảng 10-20% tổng thể. OS phiên bản nào âm thanh hay. Mình tune rất dễ. Gia giảm thấy liền. Âm thanh mấy profile này theo em có xu hướng tăng dần từ chậm - dịu lên nhanh - nét. Thường tiếng chậm, mềm hợp với nhạc Việt hay vocal. Tiếng nhanh, sắc nghe nhạc cụ sướng hơn ạ. Mình có thể chuyển đổi khi đang play nhạc. Nên rất dễ cảm nhận. Em cố gắng đặt tên cho nó dễ hình dung Code: pi@hitidepi:~ $ sudo config -- Select Sound Signature v1.4 -- 1. Set default Raspbian (Relax) 2. Set profile RuneAudio (Fluid) 3. Set profile Dynobot (Strongly) 4. Set profile Archphile (Delicate) 5. Show current setting 6. System information 7. Restart HiTidePi 8. Shutdown HiTidePi 9. Exit menu