How do I change sample rate of SPDIF on RME Digi9636

Hello together,

I have searched the web so much but I still don’t find a solution for my problem. Perhaps you can help? I have got a RME Digi9636 Hammerfall light soundcard. It still does a great job on ADAT, but I have got problem with the SPDIF Interface.

First of all, here is the output of /proc/asound/R15/rme9652:
RME Digi9636 (Rev 1.5) (Card #1)
Buffers: capture ef200000 playback eec00000
IRQ: 22 Registers bus: 0xfd000000 VM: 0xf8408000
Control register: 4400a

Latency: 2048 samples (2 periods of 8192 bytes)
Hardware pointer (frames): 0
Passthru: no
Clock mode: autosync
Pref. sync source: ADAT1

ADAT1 Input source: ADAT1 optical

IEC958 input: Coaxial
IEC958 output: Coaxial only
IEC958 quality: Consumer
IEC958 emphasis: off
IEC958 Dolby: off
IEC958 sample rate: error flag set

ADAT Sample rate: 48000Hz
ADAT1: Sync
ADAT2: No Lock
ADAT3: No Lock

Timecode signal: no
Punch Status:

1: off 2: off 3: off 4: off 5: off 6: off 7: off 8: off
9: off 10: off 11: off 12: off 13: off 14: off 15: off 16: off
17: off 18: off

I know, that hdspconf or rmedigicontrol don’t work on this card. So how do I a setup of parameters like IEC958 sample rate. How can I get the “error flag set” changed?

This is the output of alsactl:
state.R15 {
control.1 {
iface PCM
name ‘IEC958 Playback Default’
value ‘0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000’
comment {
access ‘read write’
type IEC958
count 1
}
}
control.2 {
iface PCM
name ‘IEC958 Playback PCM Stream’
value ‘0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000’
comment {
access ‘read write inactive’
type IEC958
count 1
}
}
control.3 {
iface PCM
name ‘IEC958 Playback Con Mask’
value ‘3b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000’
comment {
access read
type IEC958
count 1
}
}
control.4 {
iface PCM
name ‘IEC958 Playback Pro Mask’
value ‘1f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000’
comment {
access read
type IEC958
count 1
}
}
control.5 {
iface MIXER
name ‘IEC958 Input Connector’
value Coaxial
comment {
access ‘read write’
type ENUMERATED
count 1
item.0 ADAT1
item.1 Coaxial
item.2 Internal
}
}
control.6 {
iface MIXER
name ‘IEC958 Output also on ADAT1’
value false
comment {
access ‘read write’
type BOOLEAN
count 1
}
}
control.7 {
iface MIXER
name ‘Sync Mode’
value AutoSync
comment {
access ‘read write’
type ENUMERATED
count 1
item.0 AutoSync
item.1 Master
item.2 ‘Word Clock’
}
}
control.8 {
iface MIXER
name ‘Preferred Sync Source’
value ‘ADAT1 In’
comment {
access ‘read write’
type ENUMERATED
count 1
item.0 ‘IEC958 In’
item.1 ‘ADAT1 In’
item.2 ‘ADAT2 In’
}
}
control.9 {
iface MIXER
name ‘Channels Thru’
value.0 false
value.1 false
value.2 false
value.3 false
value.4 false
value.5 false
value.6 false
value.7 false
value.8 false
value.9 false
value.10 false
value.11 false
value.12 false
value.13 false
value.14 false
value.15 false
value.16 false
value.17 false
comment {
access ‘read write’
type BOOLEAN
count 18
}
}
control.10 {
iface MIXER
name ‘IEC958 Sample Rate’
value -1
comment {
access read
type INTEGER
count 1
range ‘0 - 96000’
}
}
control.11 {
iface MIXER
name ‘ADAT1 Sync Check’
value ‘Lock Sync’
comment {
access read
type ENUMERATED
count 1
item.0 ‘No Lock’
item.1 Lock
item.2 ‘No Lock Sync’
item.3 ‘Lock Sync’
}
}
control.12 {
iface MIXER
name ‘ADAT2 Sync Check’
value ‘No Lock’
comment {
access read
type ENUMERATED
count 1
item.0 ‘No Lock’
item.1 Lock
item.2 ‘No Lock Sync’
item.3 ‘Lock Sync’
}
}
control.13 {
iface MIXER
name ‘Timecode Valid’
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.14 {
iface MIXER
name Passthru
value false
comment {
access ‘read write’
type BOOLEAN
count 1
}
}
control.15 {
iface MIXER
name ‘ADAT1 Input Source’
value ADAT1
comment {
access ‘read write’
type ENUMERATED
count 1
item.0 ADAT1
item.1 Internal
}
}
}

Doing a change of ‘IEC958 Sample Rate’ from -1 to 44100 i.e. doesn’t take effect after a restore. I tried a alsactl -f /file/above restore 0 as user and as root also. And are these values right of the IEC958 parameters above? The look like hexdecimal.

What can I do furthermore to get a good sound through SPDIF and not these “glitchy” sounds?

I also found a post here, where Paul said, that someones working on a tool that possibly can setup the Digi9636/52:
http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg07775.html

Elsewhere I found an entry that someone did a customized version of hdspconf to setup Digi9636/52. If so, where can I get it?

Thanks in advance
Tim

My effort aims to the AES/EBU capability of the Digi9636/52 in the manual:

In chapter 8.1 stands:
An input is selected via the Settings dialog (started by clicking on the hammer symbol in the system tray). Hammerfall accepts the commonly used digital audio formats, SPDIF as well as AES/EBU. Channel status and copy protection are ignored.

In SPDIF mode, identical signals are available at both the optical and the coaxial outputs. An obvious use for this would be simply connecting two devices, i.e. using the DIGI9636 as a splitter.

To receive signals in AES/EBU format, an adapter cable is required. Pins 2 and 3 of a female XLR plug are connected individually to the two pins of a phono plug. The cable shielding is only connected to pin 1 of the XLR - not to the phono plug.

In chapter 12 you will find:
Professional AES/EBU equipment can be connected to the Hammerfall thanks to the transformer-balanced coaxial outputs, and the ‘Professional’ format option with doubled output voltage. Output cables should have the same pinout as those used for input (see section 8.1 ‘Connections’), but with a male XLR plug instead of a female one.

My purpose:
Using AES/EBU format to connect my mastering equipment digitally.

My connections now (view from Hammerfall):
S/PDIF Out -> Behringer DDX3216 (for testing S/PDIF consumer mode)
ADAT1 Out -> Behringer ADA8000 In
ADAT1 In -> Behringer ADA8000 Out
ADAT2 Out -> Behringer DDX3216 / ADT1616 In 1

ADAT works fine in 48kHz.

I hope this information will make it a bit clearer.

Regards
Tim

what do you have connected to the S/PDIF connectors?

Hey Paul,

I only want to use the SPDIF output of the card to a behringer DDX3216 for now. I just tried iecset but it doesn’t work for me. I gui like hdspconf would be the greatest thing fillingmywishlist

Hi ccaudle,

thanks for your advice. I disconnected all adat connection an used jack to drive the spdif output and it worked:

cat /proc/asound/R15/rme9652 :

RME Digi9636 (Rev 1.5) (Card #1)
Buffers: capture f1200000 playback f0c00000
IRQ: 22 Registers bus: 0xfd000000 VM: 0xf840c000
Control register: 244063

Latency: 128 samples (2 periods of 512 bytes)
Hardware pointer (frames): 128
Passthru: no
Clock mode: autosync
Pref. sync source: ADAT1

ADAT1 Input source: ADAT1 optical

IEC958 input: Coaxial
IEC958 output: Coaxial only
IEC958 quality: Consumer
IEC958 emphasis: off
IEC958 Dolby: off
IEC958 sample rate: 48000

ADAT Sample rate: 48000Hz
ADAT1: Sync
ADAT2: No Lock
ADAT3: No Lock

Timecode signal: no
Punch Status:

1: off 2: off 3: off 4: off 5: off 6: off 7: off 8: off
9: off 10: off 11: off 12: off 13: off 14: off 15: off 16: off
17: off 18: off

The ADA800 is now a 48kHz Master for ADAT.

The only thing I need know now is how to change SPDIF from consumer to professional mode. I tried “iecset professional on”:

output of iecset professional on:

Mode: professional
Data: audio
Rate: unknown
Rate Locked: yes
Emphasis: unknown
Stereophonic: not indicated
Userbits: unknown
Sample Bits: unknown
Word Length: unknown

But the mode seems not to be changed. The output of cat /proc/asound/R15/rme9652 is still the same: IEC958 quality: Consumer.
Any ideas? amixer doesn’t give a content of this mode:

amixer scontrols:
Simple mixer control ‘IEC958 Input Connector’,0
Simple mixer control ‘IEC958 Output also on ADAT1’,0
Simple mixer control ‘IEC958 Sample Rate’,0
Simple mixer control ‘ADAT1 Input Source’,0
Simple mixer control ‘ADAT1 Sync Check’,0
Simple mixer control ‘ADAT2 Sync Check’,0
Simple mixer control ‘Channels Thru’,0
Simple mixer control ‘Passthru’,0
Simple mixer control ‘Preferred Sync Source’,0
Simple mixer control ‘Sync Mode’,0
Simple mixer control ‘Timecode Valid’,0

Regards
Tim

The output of /proc/asound/R15/rme9652 you copied shows that the clock mode is autosync and ADAT1 is the preferred source. Does that imply that the RME card is still sychronized to the ADA8000? Try setting the ADA8000 to internal clock and 44.1kk and see if the RME card changes. If it does, then you can either keep using your ADA8000 as the clock master, or figure out how to change the clock source of the RME card to internal and then set the clock to the rate you want.