The best performer in terms of latency was SoX!
Here is just a bit more experience concerning SoX for spdif->USB->ALSA streaming through the BBB. It's a very welcome addition to the core capabilities of Botic.
While I'm enthusiastic about the low latency of SoX, caution is in order. I tried a variety of different streaming and on-air video sources. Lip-synch latency ranged from practically perfect (e.g. Netflix) to annoyingly late. Also, one's display monitor matters greatly both in its firmware and setup. Please be forewarned, YMMV!
A little more on SoX:
a) I'm using version 14.4.1-101. This version has been stripped of many of the interesting capabilities of earlier versions.
b) I'm testing with a generation 3 AppleTV , which outputs only 48kHz, connected via wifi of ~40mbs bandwidth. There can be dropouts at the BBB, usually due to under-runs. The frequency depends on the sox parameters. Sox benefits from using 'nice' to increase the thread priority. I also found that the default buffer size (8192) is too large and needed to be reduced.
c) There were two setups that seemed best.
1: To optimize fidelity, one can upsample the 48k AppleTV output on the way to ALSA. This helps slightly with redbook files. The up sampling is not very high quality, but to my ear, still a small improvement. You may notice an occasional brief dropout due to a data over/underrun [with my 3-way crossover also running, maybe one per 10 minutes?]. CPU demand runs about 65% for me.
Code:
nice -n -20 sox --buffer 2048 -c 2 -t alsa hw:1,0 -r 96000 -t alsa default
Code:
nice -n -20 sox --buffer 2048 -c 2 -t alsa hw:1,0 -t alsa default
d) I can't deny the convenience of having the good sound equipment available via AirPlay! 🙂 AirPlay will definitely get used by the spouse. For critical SQ, though, it can't compare to the great output from squeezelite in the BBB.
Over 'n out,
F.
Last edited:
I am digging deeper into Linux / MPD / ALSA optimization and would love your thoughts on it and maybe miero will consider to integrate some of the stuff into the distro, so that it becomes as audiophile as possible...
just found tons of tweaks here...
https://sites.google.com/site/computeraudioorg/linux-for-audio/setting-up-alsa
https://www.ibm.com/developerworks/...bc23c550/page/OS Jitter Mitigation Techniques
...is debian with botic running completly from ram ? if not not, can we get it there ?
just found tons of tweaks here...
https://sites.google.com/site/computeraudioorg/linux-for-audio/setting-up-alsa
https://www.ibm.com/developerworks/...bc23c550/page/OS Jitter Mitigation Techniques
...is debian with botic running completly from ram ? if not not, can we get it there ?
Last edited:
Perhaps top priority is launching the unfinished Botic 6. Best to keep our eyes on the prize.
Miero has also offered to accommodate the HQPlayer NAA, for those of us interested in an extremely creative approach to playing DSD: http://www.diyaudio.com/forums/digital-line-level/273474-best-dac-no-dac.html
Certainly, this is the place for all of us to compare/contrast results of incorporating additional tweaks to Botic.
Botic 5 flashes to eMMC: bottom of http://bbb.ieero.com
Miero has also offered to accommodate the HQPlayer NAA, for those of us interested in an extremely creative approach to playing DSD: http://www.diyaudio.com/forums/digital-line-level/273474-best-dac-no-dac.html
Certainly, this is the place for all of us to compare/contrast results of incorporating additional tweaks to Botic.
Botic 5 flashes to eMMC: bottom of http://bbb.ieero.com
I just tried to install squeezelite as described in the instruction by kinko earlier...ran into the following error:
root@botic:~/soxr-code# cmake ./
CMake Error at CMakeLists.txt:4 (cmake_minimum_required):
CMake 3.0 or higher is required. You are running version 2.8.11.1
...when i try to install cmake new with apt-get cmake install...it tells me I am runnaning already the latest version...?! I am stuck...
root@botic:~/soxr-code# cmake ./
CMake Error at CMakeLists.txt:4 (cmake_minimum_required):
CMake 3.0 or higher is required. You are running version 2.8.11.1
...when i try to install cmake new with apt-get cmake install...it tells me I am runnaning already the latest version...?! I am stuck...
Last edited:
This works: HOWTO: Install squeezelite for logitech media server on Debian Squeeze as a service.
BUT N.B.! don't mess with the kernel - start with the step "apt-get install git"
Here is how I have compiled: http://www.diyaudio.com/forums/twis...lters-digital-crossovers-bbb.html#post4400385
I now start squeezelite using the -a option: -a 8192:2048::0
You can find all the options available in your distro using 'squeezelite -?'
BUT N.B.! don't mess with the kernel - start with the step "apt-get install git"
Here is how I have compiled: http://www.diyaudio.com/forums/twis...lters-digital-crossovers-bbb.html#post4400385
I now start squeezelite using the -a option: -a 8192:2048::0
You can find all the options available in your distro using 'squeezelite -?'
Last edited:
Thx a lot...which iser do you use in the conf-file ? I used root and when i try to start squeezelite, i get "permission denied"
Blitz, you PM'ed me about my Botic set-up.
Can I ask you a basic question; what are you trying to achieve?
I ask because you seem to be scatter-gunning all over the place and appear to be over-complicating things by digging into the Linux kernel, Alsa config, web servers etc. Miero's excellent Botic distro is known to pretty much just work after a little configuration. I don't have a clear picture of where you are trying to get to so it's difficult to help.
Ray
Can I ask you a basic question; what are you trying to achieve?
I ask because you seem to be scatter-gunning all over the place and appear to be over-complicating things by digging into the Linux kernel, Alsa config, web servers etc. Miero's excellent Botic distro is known to pretty much just work after a little configuration. I don't have a clear picture of where you are trying to get to so it's difficult to help.
Ray
nauti, as stated above in the thread:
I want to experiment with different setups, the twistedpear one is clear and well documented. Therefore the not so straight-forward solutioms are the ones I try to understand better. Diyaudio is all about learning, right ?
Asyou had a different setup alreadya year ago productive with an acko setup/clock, I wanted to learn from you simply a bit more. I would love to use my dual-xos from Ian with Pulsar-clock to be the master-clock for the bbb, following Ian'sresampler. From there into dual mono biii or soekris as described above.
I apologize if I ask the question in different place, but different people with different setups and experience are active in different threads, so its a bit fishing for the knowledge...
I want to experiment with different setups, the twistedpear one is clear and well documented. Therefore the not so straight-forward solutioms are the ones I try to understand better. Diyaudio is all about learning, right ?
Asyou had a different setup alreadya year ago productive with an acko setup/clock, I wanted to learn from you simply a bit more. I would love to use my dual-xos from Ian with Pulsar-clock to be the master-clock for the bbb, following Ian'sresampler. From there into dual mono biii or soekris as described above.
I apologize if I ask the question in different place, but different people with different setups and experience are active in different threads, so its a bit fishing for the knowledge...
Thx a lot...which iser do you use in the conf-file ? I used root and when i try to start squeezelite, i get "permission denied"
Hmmm... 🙄
Check permissions by going to your squeezelite directory and execute: 'ls -l'
I get: -rwxr-xr-x 1 root root 120916 Aug 7 2015 squeezelite
if you need execute permissions (no 'x' among permissions) use 'chmod +x squeezelite'
good luck
Blitz, you didn't answer my question so I'll assume you're on a journey without any particular destination in mind - fair enough.
I run Botic 'out of the box' with the only configuration being that specified on mieros web page to set the clock options etc. I run Botic as a UPnP renderer (the distro includes upnpdcli) and control it via BubbleUPnP on an Android tablet (there are other good UPnP control points, such as PlugPlayer) with no need for mpd control installations or web servers.
I've used BBB Botic to render PCM up to 384/24 and DSD to DSD256.
BBB clocking on my set up is external, using the clocks on my isolator/reclocker board. Botic 'previews the incoming data, selects the right clock on the external reclocker board which then provides the correct clock signal to the BBB.
All of this is achieved using the header pin assignments that are configured in Botic by miero. With some preparation, apart from the mecahics of the actual connections I don't see a big issue with sorting out the correct connectivity as long as the corresponding outputs/inputs are available at both ends.
As you know I don't use Chronos/Hermes but as this is a TPA forum I won't discuss the solution I use here but as you know what I use it shouldn't be difficult for Google to find the website or to track down the relevant threads on DIYAudio. Let's just say that it was all pretty simple really.
Ray
I run Botic 'out of the box' with the only configuration being that specified on mieros web page to set the clock options etc. I run Botic as a UPnP renderer (the distro includes upnpdcli) and control it via BubbleUPnP on an Android tablet (there are other good UPnP control points, such as PlugPlayer) with no need for mpd control installations or web servers.
I've used BBB Botic to render PCM up to 384/24 and DSD to DSD256.
BBB clocking on my set up is external, using the clocks on my isolator/reclocker board. Botic 'previews the incoming data, selects the right clock on the external reclocker board which then provides the correct clock signal to the BBB.
All of this is achieved using the header pin assignments that are configured in Botic by miero. With some preparation, apart from the mecahics of the actual connections I don't see a big issue with sorting out the correct connectivity as long as the corresponding outputs/inputs are available at both ends.
As you know I don't use Chronos/Hermes but as this is a TPA forum I won't discuss the solution I use here but as you know what I use it shouldn't be difficult for Google to find the website or to track down the relevant threads on DIYAudio. Let's just say that it was all pretty simple really.
Ray
Alternatively you can download all-in-one-self-contained compiled version of squeezelite from Ralph Irving site:I just tried to install squeezelite as described in the instruction by kinko earlier..
https://www.mediafire.com/folder/4q8dvq20iyz9e/Builds#lllwjg7xjl1by
just download and unpack newest *armv6hf.tar.gz file from: Builds/SqueezeLite/linux
In the archive there are two files:
squeezelite with and without FFMPEG support. Use one you prefer.
Greetings @Blitz,I am digging deeper into Linux / MPD / ALSA optimization and would love your thoughts on it ...
I took a good look at the two links and they both are intended to optimize much busier computers. None of the 'tricks' applied directly to Botic.
However, I did learn about the command 'chrt', which allowed me to significantly reduce the buffer (and latency) in my current USB streaming project - down to a mere 256 bytes! Now there is always virtual synchronization with video. For example:
Code:
chrt -f 52 sox --buffer 256 -c 2 -t alsa hw:1,0 -t alsa default
I am currently running the latest botic5 on my bbb and I'm able to playback audio but the recording option does not work and no capture device shows when I used the command "arecord -l". Does anyone have any suggestions?
Sean, a new botic7 is being prepared, with fixed record capability and mostly improved modularity:
- (whole build) https://github.com/miero/linux-dev/tree/botic7
In the current state a shutdown function is broken. I hope I will fix it soon. After that I'll change development model, to release fast and often. But only kernel module, that is being developed in the:
- https://github.com/miero/botic-dev
- (whole build) https://github.com/miero/linux-dev/tree/botic7
In the current state a shutdown function is broken. I hope I will fix it soon. After that I'll change development model, to release fast and often. But only kernel module, that is being developed in the:
- https://github.com/miero/botic-dev
Hi, I'm working on botic7 and there is an early version for adventurous users. I'd be glad for feedback on this botic7pre3 version:
wget http://repo.ieero.com/botic/pool/ma...6-botic7pre3-armv7-devel-r53_1cross_armhf.deb
dpkg -i linux-image-4.5.0-rc6-botic7pre3-armv7-devel-r53_1cross_armhf.deb
sync
reboot
(after reboot, check if the kernel version matches)
uname -r
It's based on the most recent kernel, so it might be better than botic5, or also not better.
Visible changes:
- fixed S/PDIF playback
- fixed I2S capture
At least 100MB of free disk space is needed for installation.
Previous kernel can be returned by editing /boot/uEnv.txt ... the uname_r= variable.
Questions for testers:
- any problems with the installation?
- does it play sound without skips?
- does it play high sample rates >192kHz as well as previous version?
Thanks.
wget http://repo.ieero.com/botic/pool/ma...6-botic7pre3-armv7-devel-r53_1cross_armhf.deb
dpkg -i linux-image-4.5.0-rc6-botic7pre3-armv7-devel-r53_1cross_armhf.deb
sync
reboot
(after reboot, check if the kernel version matches)
uname -r
It's based on the most recent kernel, so it might be better than botic5, or also not better.
Visible changes:
- fixed S/PDIF playback
- fixed I2S capture
At least 100MB of free disk space is needed for installation.
Previous kernel can be returned by editing /boot/uEnv.txt ... the uname_r= variable.
Questions for testers:
- any problems with the installation?
- does it play sound without skips?
- does it play high sample rates >192kHz as well as previous version?
Thanks.
A new 3.3.0 version of networkaudiod of HQPlayer plays DSD well with botic 4/5/7.
- https://www.signalyst.eu/bins/naa/v3/stretch/
- https://www.signalyst.eu/bins/naa/v3/stretch/
Hey miero,
I followed your steps and when I do the command uname -r it does show the 4.5.0-rc6-botic7pre3-armv7-devel-r53
But now when I do either arecord -l or aplay -l it doesnt show any devices, compared to before with the earlier version it did show playback devices.
Also, the directory, /sys/module/snd_soc_botic is gone.
I followed your steps and when I do the command uname -r it does show the 4.5.0-rc6-botic7pre3-armv7-devel-r53
But now when I do either arecord -l or aplay -l it doesnt show any devices, compared to before with the earlier version it did show playback devices.
Also, the directory, /sys/module/snd_soc_botic is gone.
A new 3.3.0 version of networkaudiod of HQPlayer plays DSD well with botic 4/5/7.
- https://www.signalyst.eu/bins/naa/v3/stretch/
Thanks miero, anything particular about the install?
I'll give it a try over the weekend and report back...
sean03: It seems to different DTB, please check also this:
edit the /boot/uEnv.txt and check if there is single line starting with dtb= and it should be equal to:
dtb=am335x-boneblack-botic.dtb
(previously there was no "-botic" suffix needed)
edit the /boot/uEnv.txt and check if there is single line starting with dtb= and it should be equal to:
dtb=am335x-boneblack-botic.dtb
(previously there was no "-botic" suffix needed)
Questions for testers:
- any problems with the installation?
- does it play sound without skips?
- does it play high sample rates >192kHz as well as previous version?
Thanks.
Hi miero, thank you for this info.
Well, installation was okay:
root@botic:~# uname -r
4.5.0-rc6-botic7pre3-armv7-devel-r53
However, aplay failed to show Botic driver:
root@botic:~# aplay -l
aplay: device_list:268: no soundcards found...
Also, cifs mount failed like below:
root@botic:~# mount -a
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Any advices? TIA
- Home
- More Vendors...
- Twisted Pear
- Support for Botic Linux driver