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

quatmo

Well-Known Member
# Cập nhật thêm cho bản xenomaipi v1.1:

- Sau khi thay đổi account Tidal. Các anh nhớ chọn Restart OpenHome. Em quên thêm lệnh "sudo systemctl restart openhome.service" sau khi tráo đổi acc.

- Lệnh reset trial Asset UPnP hoạt động tốt. Vậy bản sau em sẽ đưa vào crontab cho nó chạy tự động hàng tuần vào một giờ nhất định nào đó:

crontab -e

Mã:
# 0m0h every week on friday
0 0 * * 6 /opt/scripts/assetresetcron.sh

Tuyệt vời bác ơi! Tiếc là cuối tuần không ở nhà để nghe.
  • Cập nhật thêm cái webpage: Setting, chọn DAC, add Cloud.. nữa là ngon.
  • Có lẽ mình dùng Lighttpd để chạy webpage cho nhẹ.
  • Mình có cách dùng AssetUpNP Premium cho tất cả mọi người trên XenomaiPi, rảnh build 1 bản cho các bác dùng.
 

VugiaA9

Active Member
Các bác ở đây có kinh nghiệm dùng daphile với LMS tư vấn giúp em vụ này với ạ.
Chẳng là em có cục bryston bdp-1 đang làm server kiêm transport xuất spdif. Âm thanh rất ổn mà phần mềm nó hơi ngu, lại hỗ trợ mỗi dịch vụ streaming là tidal nên em đang tính làm 1 con SBC khác làm server để chơi cả spotify nữa. Con Bdp-1 có hỗ trợ roon mà roon đắt quá lại đầu tư thêm con Nuc nữa thì hơi oải, lại còn vẫn có quạt.
May sao em lọ mọ được là con BDP- 1 có tích hợp Squeezelite nên có thể dùng daphile hoặc LMS cài trên server để đẩy nhạc sang BDP-1 phát ra dac.
Em đang lăn tăn giữa vụ dùng main fanless kiểu j5005 hay Atomic Pi cài daphile hay chơi raspberry pi cài picoreplayer + lms. Yêu cầu của em đầu tiên là tiếng phải hay rồi lần lượt là khởi động phải thật nhanh như bật CDP (con BDP khởi động nhanh lắm ạ) cài đặt đơn giản, điều khiển thông minh, dễ dùng.
Em đang sợ con Raspberry Pi với Atomic Pi khởi động hơi lâu. Raspberry Pi 2 em thử Picoreplayer mất tầm 30s, ko rõ lên 4 có nhanh hơn nhiều ko. Mong muốn của em khoảng 10s thôi.
 

tml3nr

Moderator
Về hướng SMPD openhome

Quote trả lời của bạn papalius
Originally Posted by thanhvo31
@papalius
Is it possible to install Openhome to Smpd 1.0.6? It is binary package.
Raspberry Pi
Hi thanhvo31,

The source for openhome was made available to the public.
With a few libraries(glib, libxml, libxslt) built and a few modifications to the OpenHome Player's Makefile for aarch64, it looked like I could build it, but...
A large number of dependent library errors occurred late in the build

usr/bin/ld: cannot find -lSourceSongcast
I get about 20 errors like this.

If you install the dependent libraries one by one, I'm sure you'll be able to successfully build them at some point.

If you're willing to take the time to try, we can provide some support.

However, even if you do succeed in building it, whether or not you can get the sound out of the rtalsa/xsink driver is a different matter.
It may be easy to set up, or you may need to modify the source. This depends on how openhome is using the ALSA library.


By the way, RoonBridge was able to cope with the problem with a few source modifications. Squeezelite on the other hand has a hard time. openhome, well... I don't know.

If you're going to use the ALSA driver to produce sound instead of going through the rtalsa/xsink driver, then there's no advantage to using symphonic-mpd.
It's the same as running a low-latency kernel with the overhead of Xenomai kernel.

You can get good real-time performance only when you build your application with Xenomai API and RTDM

Mấy anh lại đau đàu đây.
Hi anh @TuanQuynhAudio @quatmo và cả nhà.

Vậy anh em mình sẽ tìm hiểu thêm về aplay-rt / rtalsa / xsink để áp dụng vào MPD và các loại renderer khác ạ o_O

Trong smpd 0.96 đường đi của output em thấy như sau:

asound.conf:

Mã:
pcm.!default{
  type plug
  slave.pcm{
   @func getenv
   vars [ DEFAULT_SAMPLE_FORMAT ]
   default "PIPE"
  }
}

pcm.S16{
  type plug
  slave{
   pcm "PIPE"
  }
}

pcm.S24{
  type plug
  slave{
   pcm "PIPE"
   format S24
  }
}

pcm.S32{
  type plug
  slave{
   pcm "PIPE"
   format S32
  }
}

pcm.PIPE{
  type file
  slave.pcm null
  file "|exec /home/pi/misc/pcminfo.sh %f %r %c DEFAULT"
  format raw
}

mpd.conf:

Mã:
audio_output {
   dop "yes"
   type "pipe"
   name "pipe"
   command "exec /home/pi/misc/pcminfo.sh"

pcminfo.sh:

Mã:
#!/bin/sh

sync

pcminfo=/run/pcminfo
pipeout=/dev/xsink
APP=MPD

if [ ! "$4" = "" ];then
  APP=$4
fi

if [ ! "`cat $pcminfo`" = "$1 $2 $3 $APP" ];then
  echo "$1 $2 $3 $APP"> $pcminfo
  sudo systemctl restart pipe
fi

exec cat - > $pipeout

exit

pipe.service:

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

[Service]
EnvironmentFile=/etc/environment
Type=simple
CPUAffinity=1
CPUSchedulingPolicy=fifo
CPUSchedulingPriority=99
LimitRTPRIO=99
LimitMEMLOCK=infinity
StartLimitBurst=0
User=root
Group=root

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

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

ExecStart=/home/pi/configs/pipe.sh exec

Restart=always
StartLimitInterval=5

[Install]
WantedBy=multi-user.target

pipe.sh:

Mã:
#!/bin/bash

device="hw:0,0"
pcminfo=/run/pcminfo

opt_aplay="--device=${device} -i ${pcminfo}"

case "$1" in
  exec)
  if [ ! -e $pcminfo ]; then
  touch $pcminfo
  chmod 666 $pcminfo
  echo "$DEFAULT_SAMPLE_FORMAT 44100 2 DEFAULT" > $pcminfo
  fi

  read format rate ch < $pcminfo
  gravity='$GRAVITY_'$rate
  eval echo "$gravity" > /proc/xenomai/clock/coreclk
  exec /usr/local/bin/aplay-rt $opt_aplay
  ;;
esac
 
Chỉnh sửa lần cuối:

tml3nr

Moderator
Các bác ở đây có kinh nghiệm dùng daphile với LMS tư vấn giúp em vụ này với ạ.
Chẳng là em có cục bryston bdp-1 đang làm server kiêm transport xuất spdif. Âm thanh rất ổn mà phần mềm nó hơi ngu, lại hỗ trợ mỗi dịch vụ streaming là tidal nên em đang tính làm 1 con SBC khác làm server để chơi cả spotify nữa. Con Bdp-1 có hỗ trợ roon mà roon đắt quá lại đầu tư thêm con Nuc nữa thì hơi oải, lại còn vẫn có quạt.
May sao em lọ mọ được là con BDP- 1 có tích hợp Squeezelite nên có thể dùng daphile hoặc LMS cài trên server để đẩy nhạc sang BDP-1 phát ra dac.
Em đang lăn tăn giữa vụ dùng main fanless kiểu j5005 hay Atomic Pi cài daphile hay chơi raspberry pi cài picoreplayer + lms. Yêu cầu của em đầu tiên là tiếng phải hay rồi lần lượt là khởi động phải thật nhanh như bật CDP (con BDP khởi động nhanh lắm ạ) cài đặt đơn giản, điều khiển thông minh, dễ dùng.
Em đang sợ con Raspberry Pi với Atomic Pi khởi động hơi lâu. Raspberry Pi 2 em thử Picoreplayer mất tầm 30s, ko rõ lên 4 có nhanh hơn nhiều ko. Mong muốn của em khoảng 10s thôi.
Con này có MPD tại sao anh lại không dùng nhỉ?

Em có một thời gian khác dài rất mê LMS. Nhưng sau đó em thích MPD hơn LMS. Vì các lý do sau (Dĩ nhiên là chủ quan):

- MPD nhanh, rất nhẹ. Renderer của MPD theo em tiếng tốt hơn squeezelite.

- LMS server chạy trên Java. Em không thích java, nhất là dùng trong âm thanh. Processes khi chạy qua một lớp virtual machine hiệu suất rất kém. Nó sẽ bị trễ và kéo theo jitter.

- LMS server chạy khá nặng. Muốn nhanh mình phải tăng sức mạnh phần cứng. Việc này dẫn tới khó xử lý noise hơn.

Được lọ mất chai là chuyện bình thường trong audio. Muốn được cả 2 ta lại phải thêm tiền o_O

Tại sao anh lại quan tâm quá nhiều đến thời gian khởi động của thiết bị ạ? 10s hay 60s em thấy vẫn ngắn hơn thời gian mình cởi cái quần hay lấy ly nước :D

Khi ra khỏi nhà em chỉ tắt amp và dac. Pi em để chạy suốt 24/7.

PS: Anh đang phát Tidal với BDP-1 bằng cách nào và dùng app gì ạ?
 
Chỉnh sửa lần cuối:

tml3nr

Moderator
Tuyệt vời bác ơi! Tiếc là cuối tuần không ở nhà để nghe.
  • Cập nhật thêm cái webpage: Setting, chọn DAC, add Cloud.. nữa là ngon.
  • Có lẽ mình dùng Lighttpd để chạy webpage cho nhẹ.
  • Mình có cách dùng AssetUpNP Premium cho tất cả mọi người trên XenomaiPi, rảnh build 1 bản cho các bác dùng.
Tiếc là em dốt đặc về webui anh ạ :(

Để em thử mò mẫm làm một trang config để set những việc cơ bản.

Nếu mình cho nó chạy với http server nào đó có sẵn trong OS thì quá tốt. Khỏi phải thêm một service.

Hoặc là mình dùng mongoose như archphile. Nó chạy rất nhẹ :rolleyes:

PS: mongoose chạy ok anh ạ. Em sẽ so sánh với lighttpd xem ku nào dễ chịu hơn:

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

zeze

Well-Known Member
Phù phù xong rồi. Mời cả nhà dùng thử ạ :eek:
Sau khi dùng Chromecast cho Tidal online. Với bản OpenHome này, giấc mơ của em về việc stream Tidal trực tiếp coi như đã trọn vẹn.
..........................................
https://www.mediafire.com/?nm8ndm21t7aoro0
Con này có MPD tại sao anh lại không dùng nhỉ?
Em có một thời gian khác dài rất mê LMS. Nhưng sau đó em thích MPD hơn LMS. Vì các lý do sau (Dĩ nhiên là chủ quan):
........................................
PS: Anh đang phát Tidal với BDP-1 bằng cách nào và dùng app gì ạ?
Mình đang xài LMS. công nhận sao nó thực hiện lệnh chậm.
Cái bản OpenHome này nghe hay hơn LMS không H?
 

VugiaA9

Active Member
Con này có MPD tại sao anh lại không dùng nhỉ?

Em có một thời gian khác dài rất mê LMS. Nhưng sau đó em thích MPD hơn LMS. Vì các lý do sau (Dĩ nhiên là chủ quan):

- MPD nhanh, rất nhẹ. Renderer của MPD theo em tiếng tốt hơn squeezelite.

- LMS server chạy trên Java. Em không thích java, nhất là dùng trong âm thanh. Processes khi chạy qua một lớp virtual machine hiệu suất rất kém. Nó sẽ bị trễ và kéo theo jitter.

- LMS server chạy khá nặng. Muốn nhanh mình phải tăng sức mạnh phần cứng. Việc này dẫn tới khó xử lý noise hơn.

Được lọ mất chai là chuyện bình thường trong audio. Muốn được cả 2 ta lại phải thêm tiền o_O

Tại sao anh lại quan tâm quá nhiều đến thời gian khởi động của thiết bị ạ? 10s hay 60s em thấy vẫn ngắn hơn thời gian mình cởi cái quần hay lấy ly nước :D

Khi ra khỏi nhà em chỉ tắt amp và dac. Pi em để chạy suốt 24/7.

PS: Anh đang phát Tidal với BDP-1 bằng cách nào và dùng app gì ạ?
Con BDP-1 nó chạy firmware (Os) riêng của nó gọi là Manic Moose bác ạ. Cái này cũng là nền tảng Linux tương tự các Os trên Pi thôi nhưng Bryston đặt hãng phần mềm nào đó viết riêng thôi. Điều khiển thì qua giao diện Web trên điện thoại/máy tính. Cái Manic Moose này có tích hợp một vài tính năng như chơi nhạc từ ổ cứng gắn qua cổng usb, từ Nas và từ Tidal và ko có các dịch vụ stream trực tuyến khác. Nó đồng bộ luôn nhạc từ ổ cứng riêng của người dùng với playlist tidal về 1 giao diện chơi nhạc luôn. Em muốn dùng Spotify thì ko đc, phải dùng qua 1 server và biến BDP-1 thành Renderer thì mới chạy được nhiều nền tảng trực tuyến. Em thấy con BDP có hỗ trợ đủ cả MPD, Squeezelite, Squeezeslave, Shairplay,... nên muốn dùng 1 server nào cho âm thanh sạch, tốt và chạy được đa nền tảng. Dùng 1 app duy nhất để điều khiển thôi chứ chứ chuyển đổi qua lại giữa Server và Manic moose,/BDP để điều khển riêng spotify, tidal, nhạc offline thì ko thích lắm. Tóm lại là em sẽ bỏ phần điều khiển mặc định của BPD mà biến nó thành 1 renderer/endpoint thuần túy thôi. Còn lại phần server thì các bác tư vấn giúp em phương án nào hiệu quả nhất cả phần cứng cả phần mềm luôn, MPD cũng được. Miến là chạy được nhạc từ ổ cứng, usb flash, tidal, sportify là được, điều khiển đơn giản từ điện thoại, headless ko cần màn hình hiển thị.
Em cần vụ khởi động nhanh vì dùng quen con loa active ls50w rồi ạ. Bật nó có 5-10s là nhận thiết bị và phát nhạc luôn thành ra bật pi cứ đợi đợi thấy khó chịu thôi á :D
 

quatmo

Well-Known Member
Con BDP-1 nó chạy firmware (Os) riêng của nó gọi là Manic Moose bác ạ. Cái này cũng là nền tảng Linux tương tự các Os trên Pi thôi nhưng Bryston đặt hãng phần mềm nào đó viết riêng thôi. Điều khiển thì qua giao diện Web trên điện thoại/máy tính. Cái Manic Moose này có tích hợp một vài tính năng như chơi nhạc từ ổ cứng gắn qua cổng usb, từ Nas và từ Tidal và ko có các dịch vụ stream trực tuyến khác. Nó đồng bộ luôn nhạc từ ổ cứng riêng của người dùng với playlist tidal về 1 giao diện chơi nhạc luôn. Em muốn dùng Spotify thì ko đc, phải dùng qua 1 server và biến BDP-1 thành Renderer thì mới chạy được nhiều nền tảng trực tuyến. Em thấy con BDP có hỗ trợ đủ cả MPD, Squeezelite, Squeezeslave, Shairplay,... nên muốn dùng 1 server nào cho âm thanh sạch, tốt và chạy được đa nền tảng. Dùng 1 app duy nhất để điều khiển thôi chứ chứ chuyển đổi qua lại giữa Server và Manic moose,/BDP để điều khển riêng spotify, tidal, nhạc offline thì ko thích lắm. Tóm lại là em sẽ bỏ phần điều khiển mặc định của BPD mà biến nó thành 1 renderer/endpoint thuần túy thôi. Còn lại phần server thì các bác tư vấn giúp em phương án nào hiệu quả nhất cả phần cứng cả phần mềm luôn, MPD cũng được. Miến là chạy được nhạc từ ổ cứng, usb flash, tidal, sportify là được, điều khiển đơn giản từ điện thoại, headless ko cần màn hình hiển thị.
Em cần vụ khởi động nhanh vì dùng quen con loa active ls50w rồi ạ. Bật nó có 5-10s là nhận thiết bị và phát nhạc luôn thành ra bật pi cứ đợi đợi thấy khó chịu thôi á :D
MiniPc 4 port Lan có thể phù hợp với yêu cầu của bác. Như mình và bác @linh0983 đang chơi. Đáp ứng nghe nhạc nhanh tức thời vì không tốn nhiều điện, không lo nóng máy nên không bao giờ tắt.
 

zeze

Well-Known Member
Là mấy link mình và bác Phước post á bác, là 2 loại đang sử dụng, ruột gan nó xem qua rõ ràng. Link bác gửi mình khong biết nó thế nào. Made in China vậy chứ nhiều cái hình thức như nhau nhưng ruột nó khác.
À thấy rồi bác. Con J1900. Cách mua ntn vậy bác? Đặt mua cấu hình loại nào?
https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-22059225208.10.4c644b6f98ndRI&id=583238909657
 

do_long_khach

Well-Known Member
Con BDP-1 nó chạy firmware (Os) riêng của nó gọi là Manic Moose bác ạ. Cái này cũng là nền tảng Linux tương tự các Os trên Pi thôi nhưng Bryston đặt hãng phần mềm nào đó viết riêng thôi. Điều khiển thì qua giao diện Web trên điện thoại/máy tính. Cái Manic Moose này có tích hợp một vài tính năng như chơi nhạc từ ổ cứng gắn qua cổng usb, từ Nas và từ Tidal và ko có các dịch vụ stream trực tuyến khác. Nó đồng bộ luôn nhạc từ ổ cứng riêng của người dùng với playlist tidal về 1 giao diện chơi nhạc luôn. Em muốn dùng Spotify thì ko đc, phải dùng qua 1 server và biến BDP-1 thành Renderer thì mới chạy được nhiều nền tảng trực tuyến. Em thấy con BDP có hỗ trợ đủ cả MPD, Squeezelite, Squeezeslave, Shairplay,... nên muốn dùng 1 server nào cho âm thanh sạch, tốt và chạy được đa nền tảng. Dùng 1 app duy nhất để điều khiển thôi chứ chứ chuyển đổi qua lại giữa Server và Manic moose,/BDP để điều khển riêng spotify, tidal, nhạc offline thì ko thích lắm. Tóm lại là em sẽ bỏ phần điều khiển mặc định của BPD mà biến nó thành 1 renderer/endpoint thuần túy thôi. Còn lại phần server thì các bác tư vấn giúp em phương án nào hiệu quả nhất cả phần cứng cả phần mềm luôn, MPD cũng được. Miến là chạy được nhạc từ ổ cứng, usb flash, tidal, sportify là được, điều khiển đơn giản từ điện thoại, headless ko cần màn hình hiển thị.
Em cần vụ khởi động nhanh vì dùng quen con loa active ls50w rồi ạ. Bật nó có 5-10s là nhận thiết bị và phát nhạc luôn thành ra bật pi cứ đợi đợi thấy khó chịu thôi á :D
Bác đặt thanh niên HNE (Nam) build cho cái pc yếu chip celeron 1900, 4005, 5005 v.v...với bộ nguồn đa điện áp để làm endpoint, có thể nói là gần hết thuốc về mặt phần cứng. Lúc ko dùng thì cho nó ngủ, bật lên thì tích tắc thôi.
 

VugiaA9

Active Member
MiniPc 4 port Lan có thể phù hợp với yêu cầu của bác. Như mình và bác @linh0983 đang chơi. Đáp ứng nghe nhạc nhanh tức thời vì không tốn nhiều điện, không lo nóng máy nên không bao giờ tắt.
Cảm ơn bác.
Mấy con main barebone này em cũng khoái, làm server ít tốn điện, ít nhiễu. Có lẽ em sẽ nghiên cứu nó với atomic pi.
 

VugiaA9

Active Member
Bác đặt thanh niên HNE (Nam) build cho cái pc yếu chip celeron 1900, 4005, 5005 v.v...với bộ nguồn đa điện áp để làm endpoint, có thể nói là gần hết thuốc về mặt phần cứng. Lúc ko dùng thì cho nó ngủ, bật lên thì tích tắc thôi.
Em cảm ơn ạ.
Em có bdp-1 làm endpoint rồi bác. Giờ cần server thôi ạ. Em thấy xuất âm qua BNC và AES/EBU hay hơn qua usb và cũng ko cần phải xử lý phần tín hiệu cầu kỳ như usb nên cũng ko có ý định dùng endpoint xuất usb như bác HNE làm.
Phương án như bác nói làm server cũng là khá hết thuốc :D
 

dungsin_lqd

Well-Known Member
Là mấy link mình và bác Phước post á bác, là 2 loại đang sử dụng, ruột gan nó xem qua rõ ràng. Link bác gửi mình khong biết nó thế nào. Made in China vậy chứ nhiều cái hình thức như nhau nhưng ruột nó khác.
Có thể ship giủm 1 con giống bác không? Về đến sài gòn giá bao nhiêu? Cảm ơn bác?
 
Bên trên