RME PCIe AES32

Installing the sound card

Yes, it is supported by Linux, using the driver snd=hdspm

After putting the sound card in the PCIe slot, you can switch on the computer and SPBLinux should recognize it. To confirm, you can use the following command

cat /proc/asound/cards

0 [default ]: HDSPAES32 - HDSPM MADI

RME HDSPM AES32 at 0xe5300000, irq 5


cat /proc/asound/card0/hdspm

RME HDSPM AES32 (Card #1) Rev.e9

IRQ: 5 Registers bus: 0xe5300000 VM: 0xd0820000

--- System ---

IRQ Pending: Audio=0, MIDI0=0, MIDI1=0, IRQcount=15809

HW pointer: id = 0, rawptr = 0 (0->32704) estimated= 0 (bytes)

MIDI FIFO: Out1=0x0, Out2=0x0, In1=0x0, In2=0x0

Register: ctrl1=0x10102dc, status1=0x10000, status2=0x80, timecode=0x3

--- Settings ---

Size (Latency): 4096 samples (2 periods of 16384 bytes)

Line out: on , Precise Pointer: off

ClearTrackMarker off, Emphasis off, Dolby off

Sample Clock Source: Autosync

System Clock Mode: Slave

Preferred Sync Reference: Word

System Clock Frequency: 192000

Double speed: Single wire

Quad speed: Single wire

--- Status:

Word: Sync Frequency: 192000

AES1: Sync Frequency: 192000

AES2: Sync Frequency: 192000

AES3: Sync Frequency: 192000

AES4: Sync Frequency: 192000

AES5: No Lock Frequency: 0

AES6: No Lock Frequency: 0

AES7: No Lock Frequency: 0

AES8: No Lock Frequency: 0

AutoSync ref = Word

If you get the above lines, or something similar, then your sound card is installed properly.

Setting up configuration file

The configuration file is placed under the folder named /brutefir/start/hdspaes. To know more about this configuration settings, you can display all the settings using the command

amixer contents

To display to current setting, run the script first than ^C to stop. Type

amixer > /test

Then look for the information under the main directly under /test

One thing to note is that in the pass, the max value for RME sound card is 32768. If you set it at 65535, you are actually adding gain to the incoming signal and you can have the problem of clipping.

To make things simpler, I will attach the contents here

numid=1,iface=HWDEP,name='Mixer'

; type=INTEGER,access=rw------,values=3,min=0,max=65535,step=1

: values=0,0,0

numid=9,iface=MIXER,name='Line Out'

; type=BOOLEAN,access=rw------,values=1

: values=off

numid=16,iface=MIXER,name='AES Lock Status',index=1

; type=ENUMERATED,access=r-------,values=1,items=3

; Item #0 'No Lock'

; Item #1 'Lock'

; Item #2 'Sync'

: values=0

numid=17,iface=MIXER,name='AES Lock Status',index=2

; type=ENUMERATED,access=r-------,values=1,items=3

; Item #0 'No Lock'

; Item #1 'Lock'

; Item #2 'Sync'

: values=0

numid=18,iface=MIXER,name='AES Lock Status',index=3

; type=ENUMERATED,access=r-------,values=1,items=3

; Item #0 'No Lock'

; Item #1 'Lock'

; Item #2 'Sync'

: values=0

numid=19,iface=MIXER,name='AES Lock Status',index=4

; type=ENUMERATED,access=r-------,values=1,items=3

; Item #0 'No Lock'

; Item #1 'Lock'

; Item #2 'Sync'

: values=0

numid=20,iface=MIXER,name='AES Lock Status',index=5

; type=ENUMERATED,access=r-------,values=1,items=3

; Item #0 'No Lock'

; Item #1 'Lock'

; Item #2 'Sync'

: values=0

numid=21,iface=MIXER,name='AES Lock Status',index=6

; type=ENUMERATED,access=r-------,values=1,items=3

; Item #0 'No Lock'

; Item #1 'Lock'

; Item #2 'Sync'

: values=0

numid=22,iface=MIXER,name='AES Lock Status',index=7

; type=ENUMERATED,access=r-------,values=1,items=3

; Item #0 'No Lock'

; Item #1 'Lock'

; Item #2 'Sync'

: values=0

numid=23,iface=MIXER,name='AES Lock Status',index=8

; type=ENUMERATED,access=r-------,values=1,items=3

; Item #0 'No Lock'

; Item #1 'Lock'

; Item #2 'Sync'

: values=0

numid=5,iface=MIXER,name='AutoSync Reference'

; type=ENUMERATED,access=r-------,values=1,items=10

; Item #0 'WordClock'

; Item #1 'AES1'

; Item #2 'AES2'

; Item #3 'AES3'

; Item #4 'AES4'

; Item #5 'AES5'

; Item #6 'AES6'

; Item #7 'AES7'

; Item #8 'AES8'

; Item #9 'None'

: values=9

numid=24,iface=MIXER,name='Chn',index=1

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=32768

numid=25,iface=MIXER,name='Chn',index=2

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=32768

numid=26,iface=MIXER,name='Chn',index=3

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=32768

numid=27,iface=MIXER,name='Chn',index=4

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=32768

numid=28,iface=MIXER,name='Chn',index=5

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=32768

numid=29,iface=MIXER,name='Chn',index=6

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=32768

numid=30,iface=MIXER,name='Chn',index=7

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=32768

numid=31,iface=MIXER,name='Chn',index=8

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=32768

numid=32,iface=MIXER,name='Chn',index=9

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=33,iface=MIXER,name='Chn',index=10

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=34,iface=MIXER,name='Chn',index=11

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=35,iface=MIXER,name='Chn',index=12

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=36,iface=MIXER,name='Chn',index=13

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=37,iface=MIXER,name='Chn',index=14

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=38,iface=MIXER,name='Chn',index=15

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=39,iface=MIXER,name='Chn',index=16

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=40,iface=MIXER,name='Chn',index=17

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=41,iface=MIXER,name='Chn',index=18

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=42,iface=MIXER,name='Chn',index=19

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=43,iface=MIXER,name='Chn',index=20

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=44,iface=MIXER,name='Chn',index=21

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=45,iface=MIXER,name='Chn',index=22

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=46,iface=MIXER,name='Chn',index=23

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=47,iface=MIXER,name='Chn',index=24

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=48,iface=MIXER,name='Chn',index=25

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=49,iface=MIXER,name='Chn',index=26

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=50,iface=MIXER,name='Chn',index=27

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=51,iface=MIXER,name='Chn',index=28

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=52,iface=MIXER,name='Chn',index=29

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=53,iface=MIXER,name='Chn',index=30

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=54,iface=MIXER,name='Chn',index=31

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=55,iface=MIXER,name='Chn',index=32

; type=INTEGER,access=rw------,values=1,min=0,max=65536,step=1

: values=0

numid=56,iface=MIXER,name='Chn',index=33

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=57,iface=MIXER,name='Chn',index=34

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=58,iface=MIXER,name='Chn',index=35

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=59,iface=MIXER,name='Chn',index=36

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=60,iface=MIXER,name='Chn',index=37

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=61,iface=MIXER,name='Chn',index=38

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=62,iface=MIXER,name='Chn',index=39

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=63,iface=MIXER,name='Chn',index=40

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=64,iface=MIXER,name='Chn',index=41

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=65,iface=MIXER,name='Chn',index=42

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=66,iface=MIXER,name='Chn',index=43

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=67,iface=MIXER,name='Chn',index=44

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=68,iface=MIXER,name='Chn',index=45

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=69,iface=MIXER,name='Chn',index=46

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=70,iface=MIXER,name='Chn',index=47

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=71,iface=MIXER,name='Chn',index=48

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=72,iface=MIXER,name='Chn',index=49

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=73,iface=MIXER,name='Chn',index=50

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=74,iface=MIXER,name='Chn',index=51

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=75,iface=MIXER,name='Chn',index=52

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=76,iface=MIXER,name='Chn',index=53

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=77,iface=MIXER,name='Chn',index=54

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=78,iface=MIXER,name='Chn',index=55

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=79,iface=MIXER,name='Chn',index=56

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=80,iface=MIXER,name='Chn',index=57

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=81,iface=MIXER,name='Chn',index=58

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=82,iface=MIXER,name='Chn',index=59

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=83,iface=MIXER,name='Chn',index=60

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=84,iface=MIXER,name='Chn',index=61

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=85,iface=MIXER,name='Chn',index=62

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=86,iface=MIXER,name='Chn',index=63

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=87,iface=MIXER,name='Chn',index=64

; type=INTEGER,access=rw-v----,values=1,min=0,max=65536,step=1

: values=0

numid=13,iface=MIXER,name='Clear Track Marker'

; type=BOOLEAN,access=rw------,values=1

: values=off

numid=14,iface=MIXER,name='Double Speed Wire Mode'

; type=ENUMERATED,access=rw------,values=1,items=2

; Item #0 'Single'

; Item #1 'Double'

: values=0

numid=10,iface=MIXER,name='Emphasis'

; type=BOOLEAN,access=rw------,values=1

: values=off

numid=7,iface=MIXER,name='External Rate'

; type=ENUMERATED,access=r-------,values=1,items=10

; Item #0 '32000'

; Item #1 '44100'

; Item #2 '48000'

; Item #3 '64000'

; Item #4 '88200'

; Item #5 '96000'

; Item #6 '128000'

; Item #7 '176400'

; Item #8 '192000'

; Item #9 'None'

: values=9

numid=11,iface=MIXER,name='Non Audio'

; type=BOOLEAN,access=rw------,values=1

: values=off

numid=4,iface=MIXER,name='Preferred Sync Reference'

; type=ENUMERATED,access=rw------,values=1,items=9

; Item #0 'Word'

; Item #1 'AES1'

; Item #2 'AES2'

; Item #3 'AES3'

; Item #4 'AES4'

; Item #5 'AES5'

; Item #6 'AES6'

; Item #7 'AES7'

; Item #8 'AES8'

: values=1

numid=12,iface=MIXER,name='Professional'

; type=BOOLEAN,access=rw------,values=1

: values=on

numid=15,iface=MIXER,name='Quad Speed Wire Mode'

; type=ENUMERATED,access=rw------,values=1,items=3

; Item #0 'Single'

; Item #1 'Double'

; Item #2 'Quad'

: values=0

numid=2,iface=MIXER,name='Sample Clock Source'

; type=ENUMERATED,access=rw------,values=1,items=10

; Item #0 'AutoSync'

; Item #1 'Internal 32.0 kHz'

; Item #2 'Internal 44.1 kHz'

; Item #3 'Internal 48.0 kHz'

; Item #4 'Internal 64.0 kHz'

; Item #5 'Internal 88.2 kHz'

; Item #6 'Internal 96.0 kHz'

; Item #7 'Internal 128.0 kHz'

; Item #8 'Internal 176.4 kHz'

; Item #9 'Internal 192.0 kHz'

: values=2

numid=3,iface=MIXER,name='System Clock Mode'

; type=ENUMERATED,access=r-------,values=1,items=2

; Item #0 'Master'

; Item #1 'Slave'

: values=0

numid=6,iface=MIXER,name='System Sample Rate'

; type=INTEGER,access=r-------,values=1,min=0,max=0,step=0

: values=44100

numid=8,iface=MIXER,name='Word Clock Lock Status'

; type=ENUMERATED,access=r-------,values=1,items=3

; Item #0 'No Lock'

; Item #1 'Lock'

; Item #2 'Sync'

: values=0


For current configuration file, please see the previous section