Topic: HDSPe Raydat

Hi,

I'm wondering if anyone has had any success with the Raydat card in Linux.  I tested the card in windows latest drivers and updated to the latest firmware and everything worked fine so the hardware is functional.  I've seen some posts on the net where people say they have this working in linux so I'm interested in how they achieved this, in particular which alsa version and firmware version is required.

I've built and installed the hdspm module ALSA 1.0.22 from the source code.  The module loads and I can send audio to the card but the audio is choppy.  If I play a continuous sine wave, I get a gated sine wave like it is being turned on/off every half a second or so.   Also the output channels are not in the right places, for example the  Alsa output channels 1-8 don't map directly to the ADAT channels 1-8

Changing the buffer size or samplerate doesn't solve the problem.

here are the results of my cat /proc/asound/card0/hdspm...

RME HDSPM MADI (Card #1) Rev.d3 Status2first3bits: 0
IRQ: 10 Registers bus: 0xfaef0000 VM: 0xffffc20000c20000
--- System ---
IRQ Pending: Audio=0, MIDI0=0, MIDI1=0, IRQcount=4913
HW pointer: id = 0, rawptr = 0 (0->1984) estimated= 0 (bytes)
MIDI FIFO: Out1=0x0, Out2=0x0, In1=0x0, In2=0x0
Register: ctrl1=0x44d4, ctrl2=0x0, status1=0x0, status2=0xc0030000
--- Settings ---
Size (Latency): 256 samples (2 periods of 1024 bytes)
Line out: off,   Precise Pointer: off
Inputsel = Coaxial, SyncRef = WordClock
ClearTrackMarker = off, Transmit in 64 Channel Mode, Auto Input off
Sample Clock Source: Internal 48 kHz
System Clock Mode: Master
Preferred Sync Reference: Word Clock
System Clock Frequency: 48000
--- Status:
Inputs MADI=NoLock, WordClock=NoLock
AutoSync: Reference= Word Clock, Freq=0 (MADI = 0, Word = 0)
Input: Optical, Mode=56 channels

Should the Raydat be giving 56 Channels?  I thought this was specific to the HDSPe MADI.

I checked some posts on here by florian with regards to his changes to the alsa hdspm module code.  I couldn't get his code to build but I looked through it and noted he changed a clock rate setting from 105 MHz to 100 MHz in some raydat specific code so I added that change to my driver and my external ADAT box can lock the sync on 48kHz now.

I'm hoping I can get 32 ins/out via adat at a fixed rate of 48kHz working.

Any suggestions would be greatly appreciated.

Re: HDSPe Raydat

I did a bit more experimenting and found the following...

If I force the hardware to use only Float 32 instead of Integer 32 by altering the driver's snd_pcm_hardware.formats  = SNDRV_PCM_FMTBIT_FLOAT_LE  then the choppy sound stops and I get a continuous but scrambled audio.  It seems to fill the buffer once and to not update it continually.

I fixed this by changing the driver enable the use of the precise pointer for the buffer position from the status register (bits 6..15).  After this change, the driver plays audio properly for larger buffer settings but not for smaller ones. 

Any tips about using the buffer position value in the status register would be appreciated.

Re: HDSPe Raydat

widdly wrote:

I did a bit more experimenting and found the following...

If I force the hardware to use only Float 32 instead of Integer 32 by altering the driver's snd_pcm_hardware.formats  = SNDRV_PCM_FMTBIT_FLOAT_LE  then the choppy sound stops and I get a continuous but scrambled audio.  It seems to fill the buffer once and to not update it continually.

I fixed this by changing the driver enable the use of the precise pointer for the buffer position from the status register (bits 6..15).  After this change, the driver plays audio properly for larger buffer settings but not for smaller ones. 

Any tips about using the buffer position value in the status register would be appreciated.

Where did you do the edits? Do you have a driver package that you can share?