• Disclaimer: This Vendor's Forum is a paid-for commercial area. Unlike the rest of diyAudio, the Vendor has complete control of what may or may not be posted in this forum. If you wish to discuss technical matters outside the bounds of what is permitted by the Vendor, please use the non-commercial areas of diyAudio to do so.

Support for Botic Linux driver

francolargo

Member
Paid Member
2007-03-12 8:07 am
Twin Cities, MN
I couldn't get a solution with ALSA so I decided to try it through JACK.





ALSA splits channels into left-right and changes the phase.
Code:
pcm.!default {
	type plug
	slave {
	pcm botic-split
	channels 2
	}
 }
pcm.botic-split {
	type route;
	slave {
	pcm "hw:0,0"
	channels 4
	}
	ttable.0.0 -1;
	ttable.1.1 -1;
	ttable.0.2 1;
	ttable.1.3 1;
 }

I wanted to build the following chain: TidalConnect->JACK->Alsa(default output)->Botic

I think can try to solve the problem through a virtual alsa loopdevice. But so far, I also do not understand how to do this.

If TidalConnect is working into Jack, then let's try eliminating Jack and direct the output of TidalConnect to your default Alsa plug instead of creating a virtual device. The syntax is either:
Code:
(-X or whatever the TidalConnect output option is..) alsa plug:default'
or leave off the 'alsa'
Code:
plug:default
One or the other syntax should work - not sure if the '!' is needed before 'default' - try either way. Also, I suggest the following for your Alsa plugs:

Code:
pcm.!default {
	type plug
	slave {
	pcm "botic-split" # added quotes, which works for me inside brackets
	channels 2 # this line should be optional but probably doesn't hurt
        rate "unchanged" # same comment as line above
	}
 }
pcm.botic-split {
	type route;
	slave {
	pcm "hw:0,0"
	channels 4
	}
	ttable.0.0 -1;
	ttable.1.1 -1;
	ttable.0.2 1;
	ttable.1.3 1;
 }
pcm.plughw.slave.rate = "unchanged";

Obviously, best to not specify any output sample rate in the tidalconnect configuration.
If directing to your default plug doesn't work, then perhaps we can create a new virtual 'card'.

Good luck,

Frank
 
Tidalconnect does not see "default" and "sysdefault"
Code:
Could not find device: 'default'. Fallback to default device
Valid devices are: 'Botic: - (hw:0,0)' 'sysdefault' 
Could not find a default playback device

Requires hardware emulation of the audio device.
Tidalconnect only sees real devices. Therefore, without loopback, cannot solve this problem.
 

francolargo

Member
Paid Member
2007-03-12 8:07 am
Twin Cities, MN
OK then, loopback it is.

Creating a loopback is quite simple. Here is a good link:
Playing with ALSA loopback devices | Playing with Systems
Simply use 'modprobe snd-aloop'. Then use 'aplay -l' to display the card groups available. When things are working to your satisfaction, you can add 'modprobe snd-aloop' to one or another boot script. To list all of the options within each card group, use 'aplay -L', which is also good for debugging the alsa plugs.

To begin, I suggest you direct TidalConnect to plughw:... or dmix:... Once that works then you can try hw:...

One other important suggestion - *never use tabs in alsa plugs*. Only indent using spaces!

Good luck,

Frank
 
Using the "Pure firmware" with BBB/Hermes/Cronus, music plays way too slow. Can anyone guess what is going on here?
Thanks
Probably wrong clock speeds configured. The firmware assumes that you are running higher speed clocks whereas the mounted clocks have lower frequency or you have the clock divider active... Either set the clock divider to 1:1 / off or (if that is already done) try to adjust the frequency settings for the clocks in the firmware. There should be some parameters probably in bootEnv.txt or similar file.
 
Hey All,

Back in 2018 I built two DSCv2's. One of them used the integrated reclocker on the board and the other had an external FIFO and reclocker (Ian Canada's dual XO board).

The one with the integrated reclocker has been going strong since I built it. I just pulled the one with the external reclockers off the shelf and flashed with the latest version of PURE. Whenever I try to send HQPlayer audio NAA logs show:

[/sbin/networkaudiod] (189): push to queue timed out!
[/sbin/networkaudiod] (189): begin disconnection
[/sbin/networkaudiod] (189): ALSA engine stopping...
[/sbin/networkaudiod] (189): ALSA engine stop request...
[/sbin/networkaudiod] (189): clALSAMiniEngine::Stop(): snd_pcm_wait()
[/sbin/networkaudiod] (189): snd_pcm_drain() failed: (-5) Unknown error -5

I did change uEnv to : snd_soc_botic.ext_masterclk=3 snd_soc_botic.clk_44k1=45158400 snd_soc_botic.clk_48k=49152000
My clock signal is coming from the FIFO into the beaglebone on pin 25of P9. I see voltage on that pin so I believe the beaglebone is getting a clock signal.

Any thoughts?
 

francolargo

Member
Paid Member
2007-03-12 8:07 am
Twin Cities, MN
Hey All,

Back in 2018 I built two DSCv2's. One of them used the integrated reclocker on the board and the other had an external FIFO and reclocker (Ian Canada's dual XO board).

The one with the integrated reclocker has been going strong since I built it. I just pulled the one with the external reclockers off the shelf and flashed with the latest version of PURE. Whenever I try to send HQPlayer audio NAA logs show:

[/sbin/networkaudiod] (189): push to queue timed out!
[/sbin/networkaudiod] (189): begin disconnection
[/sbin/networkaudiod] (189): ALSA engine stopping...
[/sbin/networkaudiod] (189): ALSA engine stop request...
[/sbin/networkaudiod] (189): clALSAMiniEngine::Stop(): snd_pcm_wait()
[/sbin/networkaudiod] (189): snd_pcm_drain() failed: (-5) Unknown error -5

I did change uEnv to : snd_soc_botic.ext_masterclk=3 snd_soc_botic.clk_44k1=45158400 snd_soc_botic.clk_48k=49152000
My clock signal is coming from the FIFO into the beaglebone on pin 25of P9. I see voltage on that pin so I believe the beaglebone is getting a clock signal.

Any thoughts?
Seeing no other ideas, perhaps try the HQPlayer forums?