How do you tell if a display is 6800 or something else? How do you adapt it? Jumper?The display routine does not use SPI but rather 6800 parallel. It could be adapted to SPI but I have not done it.
Michael
How do you tell if a display is 6800 or something else? How do you adapt it? Jumper?The display routine does not use SPI but rather 6800 parallel. It could be adapted to SPI but I have not done it.
Michael
How do you tell if a display is 6800 or something else? How do you adapt it? Jumper?
pi@mypi:~$ aplay -v -D hw:CARD=DAC,DEV=0 /dev/zero --dump-hw-params <-----------------XtremPro X1 USB DAC
Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw:CARD=DAC,DEV=0":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S24_3LE
SUBFORMAT: STD
SAMPLE_BITS: 24
FRAME_BITS: 48
CHANNELS: 2
RATE: [44100 96000]
PERIOD_TIME: [1000 1000000]
PERIOD_SIZE: [45 96000]
PERIOD_BYTES: [270 576000]
PERIODS: [2 1024]
BUFFER_TIME: (937 2000000]
BUFFER_SIZE: [90 192000]
BUFFER_BYTES: [540 1152000]
TICK_TIME: ALL
--------------------
aplay: set_params:1352: Sample format non available
Available formats:
- S24_3LE
pi@mypi:~$ aplay -v -D hw:CARD=EX5,DEV=0 /dev/zero --dump-hw-params<-----------------Topping EX5 USB DAC
Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw:CARD=EX5,DEV=0":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S32_LE SPECIAL DSD_U32_BE
SUBFORMAT: STD
SAMPLE_BITS: 32
FRAME_BITS: 64
CHANNELS: 2
RATE: [44100 768000]
PERIOD_TIME: [125 1000000]
PERIOD_SIZE: [8 768000]
PERIOD_BYTES: [64 6144000]
PERIODS: [2 1024]
BUFFER_TIME: (20 2000000]
BUFFER_SIZE: [16 1536000]
BUFFER_BYTES: [128 12288000]
TICK_TIME: ALL
--------------------
aplay: set_params:1352: Sample format non available
Available formats:
- S32_LE
- SPECIAL
- DSD_U32_BE
pi@mypi:~$
You can only set one DAC as playback device in camilladsp, at least at the moment.I had missed this wonderful thread. Thank you very much @mdsimon2 for putting in all this effort!
I have not gone through in detail over the entire thread, but before embarking on it, quick question for anyone that knows. I want to use rpi4 and two DACs. One to send high pass to speakers, and one lowpass to sub. Can I use two different DACs (clock issues?) for this and if so do the two DACs need to match in capabilities, especially format?
For my speakers (Kali Audio LP-6) I would use Topping EX5, and was thinking for sub to use whatever other DAC I can find, potentially even use the headphone out of the rpi4 (bcm2835) if it would work.
I am noticing that these two DACs may not have the same format capabilities though:
Code:pi@mypi:~$ aplay -v -D hw:CARD=DAC,DEV=0 /dev/zero --dump-hw-params <-----------------XtremPro X1 USB DAC Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono HW Params of device "hw:CARD=DAC,DEV=0": -------------------- ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED FORMAT: S24_3LE SUBFORMAT: STD SAMPLE_BITS: 24 FRAME_BITS: 48 CHANNELS: 2 RATE: [44100 96000] PERIOD_TIME: [1000 1000000] PERIOD_SIZE: [45 96000] PERIOD_BYTES: [270 576000] PERIODS: [2 1024] BUFFER_TIME: (937 2000000] BUFFER_SIZE: [90 192000] BUFFER_BYTES: [540 1152000] TICK_TIME: ALL -------------------- aplay: set_params:1352: Sample format non available Available formats: - S24_3LE pi@mypi:~$ aplay -v -D hw:CARD=EX5,DEV=0 /dev/zero --dump-hw-params<-----------------Topping EX5 USB DAC Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono HW Params of device "hw:CARD=EX5,DEV=0": -------------------- ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED FORMAT: S32_LE SPECIAL DSD_U32_BE SUBFORMAT: STD SAMPLE_BITS: 32 FRAME_BITS: 64 CHANNELS: 2 RATE: [44100 768000] PERIOD_TIME: [125 1000000] PERIOD_SIZE: [8 768000] PERIOD_BYTES: [64 6144000] PERIODS: [2 1024] BUFFER_TIME: (20 2000000] BUFFER_SIZE: [16 1536000] BUFFER_BYTES: [128 12288000] TICK_TIME: ALL -------------------- aplay: set_params:1352: Sample format non available Available formats: - S32_LE - SPECIAL - DSD_U32_BE pi@mypi:~$
I had missed this wonderful thread. Thank you very much @mdsimon2 for putting in all this effort!
I have not gone through in detail over the entire thread, but before embarking on it, quick question for anyone that knows. I want to use rpi4 and two DACs. One to send high pass to speakers, and one lowpass to sub. Can I use two different DACs (clock issues?) for this and if so do the two DACs need to match in capabilities, especially format?
For my speakers (Kali Audio LP-6) I would use Topping EX5, and was thinking for sub to use whatever other DAC I can find, potentially even use the headphone out of the rpi4 (bcm2835) if it would work.
I am noticing that these two DACs may not have the same format capabilities though:
Code:pi@mypi:~$ aplay -v -D hw:CARD=DAC,DEV=0 /dev/zero --dump-hw-params <-----------------XtremPro X1 USB DAC Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono HW Params of device "hw:CARD=DAC,DEV=0": -------------------- ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED FORMAT: S24_3LE SUBFORMAT: STD SAMPLE_BITS: 24 FRAME_BITS: 48 CHANNELS: 2 RATE: [44100 96000] PERIOD_TIME: [1000 1000000] PERIOD_SIZE: [45 96000] PERIOD_BYTES: [270 576000] PERIODS: [2 1024] BUFFER_TIME: (937 2000000] BUFFER_SIZE: [90 192000] BUFFER_BYTES: [540 1152000] TICK_TIME: ALL -------------------- aplay: set_params:1352: Sample format non available Available formats: - S24_3LE pi@mypi:~$ aplay -v -D hw:CARD=EX5,DEV=0 /dev/zero --dump-hw-params<-----------------Topping EX5 USB DAC Playing raw data '/dev/zero' : Unsigned 8 bit, Rate 8000 Hz, Mono HW Params of device "hw:CARD=EX5,DEV=0": -------------------- ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED FORMAT: S32_LE SPECIAL DSD_U32_BE SUBFORMAT: STD SAMPLE_BITS: 32 FRAME_BITS: 64 CHANNELS: 2 RATE: [44100 768000] PERIOD_TIME: [125 1000000] PERIOD_SIZE: [8 768000] PERIOD_BYTES: [64 6144000] PERIODS: [2 1024] BUFFER_TIME: (20 2000000] BUFFER_SIZE: [16 1536000] BUFFER_BYTES: [128 12288000] TICK_TIME: ALL -------------------- aplay: set_params:1352: Sample format non available Available formats: - S32_LE - SPECIAL - DSD_U32_BE pi@mypi:~$
You can only set one DAC as playback device in camilladsp, at least at the moment.
Thx for the insight. I talked to an ESS engineer few days ago. He is very interested in CDSP and if aggregate device is an option, there might be a way to modify DM7 and clock them together. Anyway, he also talks about about making something like a Hifime S2 digit but with multiple spdif input to have cdsp on NUC/MAC to work like a USB Gadget on raspi.You can create an aggregate device in ALSA from more than one DAC. Henrik gives an example configuration here -> https://github.com/HEnquist/camilladsp-config. But I don't believe it has the ability to adaptively resample like Mac OS so it is only an option if your DACs are already clock sync'd.
Michael
Ah, was hoping it might be an easy way to do it, but I was afraid it would be an issue. Thank you for setting me straight before I wasted any time on it!Using two clock synced DACs is a bad idea for crossover applications.
Mac OS has a drift correction option where it will adaptively resample in attempt to sync two separate USB DACs, this seems to work OK for bass but would be unusable at high frequencies. I explored this a bit here -> https://www.audiosciencereview.com/forum/index.php?threads/i’m-searching-for-a-cheap-digital-spdif-“bit-perfect”-only-delay-device-i-need-ca-25-ms-delay.40051/post-1411908.
The only other way around this issue is to use a device like the miniDSP U-DIO8 which provides multiple clock sync'd SPDIF outputs. But that in itself is more expensive than say a MOTU M4.
Michael
He is very interested in CDSP and if aggregate device is an option, there might be a way to modify DM7 and clock them together.
Anyway, he also talks about about making something like a Hifime S2 digit but with multiple spdif input to have cdsp on NUC/MAC to work like a USB Gadget on raspi.
I’m looking for some unsynced stereo SPDIF input for source selection. Hifime s2 would have worked but it only has one spdif input. And also, I’m not very confident about Hifime in general since amirm reviewed one of their poorly measured DACs before.Or just get one of the many pro audio multichannel DACs that are designed to this, even the Okto has the ability to sync a second device via it's AES output.
Another great option if you need more than 8 channels of sync'd output is to use the ADAT output of an interface. With one MOTU Ultralite Mk5 on a device running CDSP you can send 8 channels of ADAT output to another MOTU Ultralite Mk5 (or other ADAT input DAC) and get 18 channels of analog output all visible to CDSP with no aggregate device. To me this is by far the simplest option.
Are you looking for sync'd stereo SPDIF inputs for something like multichannel audio or multiple unsync'd stereo SPDIF inputs for source selection? There are lots of existing options that do both.
Michael
I bought two for my two optical sources (TV and MacBook dock).I’m looking for some unsynced stereo SPDIF input for source selection. Hifime s2 would have worked but it only has one spdif input.
Apples to oranges. The particular hifime devices recommended in this thread are strictly being used for optical input/output with the signal never leaving the digital domain (i.e. no D/A conversion).And also, I’m not very confident about Hifime in general since amirm reviewed one of their poorly measured DACs before.
This will not change. There are too many issues with using several devices to make it worth implementing. And there are alternative solutions such as aggregate devices and Alsa multi plugins for the few cases when it is actually is a good idea.You can only set one DAC as playback device in camilladsp, at least at the moment.
I’m looking for some unsynced stereo SPDIF input for source selection. Hifime s2 would have worked but it only has one spdif input. And also, I’m not very confident about Hifime in general since amirm reviewed one of their poorly measured DACs before.
I figured CDSP’s sample rate is actually playback device’s sample rate. So in theory, is it possible to connect spdif source to UL5 with UL5’s clock set to internal and to a fixed rate . Then have CDSP capture that source from spdif and resample it to a fixed sample rate?
Edit: I verified that spdif input of motu does not have to be on the same clock as USB playback of CDSP. Intuitively, this makes sense since UL5 is a capture device itself, but it does required the input spdif sample rate to be less than 96khz(not sure why but 32bit works as well). Anyway, I don’t need to buy the hifime s2 digi anymore.
I connect my PC to a topping d10s and connect d10s to UL5 with toslink. UL5 is connected to raspi with USB (clock is set to internal). I toggled “enable rate adjust” in CDSP, with resampler disabled and synchronize selected. Sample rate is fixed to 96khz. Capture rate is 44.1khz. I play music with foobar using ASIO driver outputting all different kind of sample rates from 44.1khz all the way up to 96khz. D10s clearly shows the output rate is changing but UL5’s sample rate is fixed to 96khz since it’s locked to internal clock. I read everything on github relating resampling and enable rate adjust, but I don’t know why my setting is working.Are you sure? This is not my experience.
I connect my PC to a topping d10s and connect d10s to UL5 with toslink. UL5 is connected to raspi with USB (clock is set to internal). I toggled “enable rate adjust” in CDSP, with resampler disabled and synchronize selected. Sample rate is fixed to 96khz. Capture rate is 44.1khz. I play music with foobar using ASIO driver outputting all different kind of sample rates from 44.1khz all the way up to 96khz. D10s clearly shows the output rate is changing but UL5’s sample rate is fixed to 96khz since it’s locked to internal clock. I read everything on github relating resampling and enable rate adjust, but I don’t know why my setting is working.
Edit: i think what’s going on is that UL5’s spdif is working as a capture device in raspi(not cdsp). So by enabling the rate adjust feature, so alsa virtual clock is adjusted by the playback device of cdsp.
This is documented in github:
- If the capture device is an Alsa Loopback device, the adjustment is done by tuning the virtual sample clock of the Loopback device. This avoids any need for resampling.
Here is my config, I did not have any clicking sound unless I play anything above 96khz (this should be a limit of motu UL5 spdif input).Have you tried listening with 44.1 kHz SPDIF input when CDSP is running at 96 kHz?
Here is my config, I did not have any clicking sound unless I play anything above 96khz (this should be a limit of motu UL5 spdif input).
2023-04-30 02:03:07.080720 DEBUG [src/alsadevice.rs:413] Playback: supported channels, min: 10, max: 22, list: [10, 18, 22]
2023-04-30 02:03:07.080879 DEBUG [src/alsadevice.rs:414] Playback: setting channels to 18
2023-04-30 02:03:07.081104 DEBUG [src/alsadevice.rs:418] Playback: supported samplerates: Discrete([88200, 96000])
2023-04-30 02:03:07.081226 DEBUG [src/alsadevice.rs:419] Playback: setting rate to 96000
2023-04-30 02:03:07.081394 DEBUG [src/alsadevice.rs:423] Playback: supported sample formats: [S24LE3]
2023-04-30 02:03:07.081516 DEBUG [src/alsadevice.rs:424] Playback: setting format to S24LE3
2023-04-30 02:03:07.085946 DEBUG [src/alsadevice.rs:455] Opening audio device "hw:UltraLitemk5" with parameters: HwParams { channels: Ok(18), rate: "Ok(96000) Hz", format: Ok(S243LE), access: Ok(RWInterleaved), period_size: "Ok(512) frames", buffer_size: "Ok(4096) frames" }, SwParams(avail_min: Ok(2048) frames, start_threshold: Ok(1536) frames, stop_threshold: Ok(4096) frames)
2023-04-30 02:03:07.086124 DEBUG [src/alsadevice.rs:460] Audio device "hw:UltraLitemk5" successfully opened
2023-04-30 02:03:07.086312 DEBUG [src/bin.rs:323] Playback thread ready to start
2023-04-30 02:03:07.087157 DEBUG [src/alsadevice.rs:413] Capture: supported channels, min: 16, max: 16, list: [16]
2023-04-30 02:03:07.087310 DEBUG [src/alsadevice.rs:414] Capture: setting channels to 16
2023-04-30 02:03:07.087433 DEBUG [src/alsadevice.rs:418] Capture: supported samplerates: Discrete([96000])
2023-04-30 02:03:07.087540 DEBUG [src/alsadevice.rs:419] Capture: setting rate to 96000
2023-04-30 02:03:07.087644 DEBUG [src/alsadevice.rs:423] Capture: supported sample formats: [S24LE3]
2023-04-30 02:03:07.087750 DEBUG [src/alsadevice.rs:424] Capture: setting format to S24LE3
2023-04-30 02:03:07.088155 DEBUG [src/alsadevice.rs:455] Opening audio device "hw:UltraLitemk5" with parameters: HwParams { channels: Ok(16), rate: "Ok(96000) Hz", format: Ok(S243LE), access: Ok(RWInterleaved), period_size: "Ok(512) frames", buffer_size: "Ok(4096) frames" }, SwParams(avail_min: Ok(2048) frames, start_threshold: Ok(0) frames, stop_threshold: Ok(4096) frames)
2023-04-30 02:03:07.088317 DEBUG [src/alsadevice.rs:460] Audio device "hw:UltraLitemk5" successfully opened
2023-04-30 02:03:07.088504 DEBUG [src/bin.rs:333] Capture thread ready to start
2023-04-30 02:03:07.088619 DEBUG [src/bin.rs:336] Both capture and playback ready, release barrier
2023-04-30 02:03:07.088744 DEBUG [src/bin.rs:338] Supervisor loop starts now!
2023-04-30 02:03:07.088775 DEBUG [src/alsadevice.rs:958] Starting captureloop
2023-04-30 02:03:07.088793 DEBUG [src/processing.rs:21] Processing loop starts now!
2023-04-30 02:03:07.088838 DEBUG [src/alsadevice.rs:863] Starting playback loop
2023-04-30 02:03:07.089264 DEBUG [src/alsadevice.rs:249] Starting capture from state: SND_PCM_STATE_PREPARED, Ready to start
After testing the streaming and source switching via FLIRC and OLED, I have taken your advice and removed my NAD pre-amp from the audio chain.Recommended hardware to take the NAD analog out put and digitise or can the MOTU Ultralight MK5 do that as well as the outputs?
MOTU Ultralite Mk5 can do this. It would also be a fun option because you can start with using the Ultralite Mk5 analog inputs but also experiment with using RPi4 + Ultralite Mk5 without the Allo streamer and NAD preamp. You might have other reasons for using the NAD preamp (other sources for example) but the RPi4 + Ultralite Mk5 can do everything your Allo + NAD + miniDSP setup can with much better analog performance and less DA / AD conversions.
Michael
# Defaults for squeezelite initscript
# sourced by /etc/init.d/squeezelite
# installed at /etc/default/squeezelite by the maintainer scripts
# The name for the squeezelite player (no blanks):
SL_NAME="CDSP-ULMK5"
# ALSA output device:
SL_SOUNDCARD="hw:Loopback,1"
# Squeezebox server (Logitech Media Server):
# Uncomment the next line if you want to point squeezelite at the IP address of
# your squeezebox server. This is usually unnecessary as the server is
# automatically discovered.
#SB_SERVER_IP="192.168.x.y"
# Additional options to pass to squeezelite:
# Please do not include -z to make squeezelite daemonise itself.
#SB_EXTRA_ARGS=""
SB_EXTRA_ARGS="-W -C 30 -r 96000-96000 -R v::4:28:95:105:45"
Michael, I have just got this working (I think) by configuring Optical Out to TOS as you specified and then Source to Phones 1-2 Mix (L-R) as it did not turn off the amps when Source was set to USB Out Optical 1-2.rigger Output
It is easy to add a trigger output to the Ultralite Mk5 using a Bobwire DAT1. Simply connect the TOSLINK output of the Ultralite Mk5 to the Bobwire DAT1 and use the Audio Detect output port. All of my configuration files are set to stop after 5 seconds of output less than -100 dB, as a result CamillaDSP will stop after 5 seconds and after 60 seconds the trigger from the Bobwire DAT1 will stop and your amplifiers will turn off. Once CamillaDSP starts playing the Bobwire DAT1 trigger will fire up immediately.