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