Arturia Minifuse 2 (and probably any other using SplitPCM macro) - lost sample rate range on each in/out (and forced to 48000)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



alsa-project/alsa-ucm-conf issue #333 was edited from kmarty:

Hi,
I have Arturia MiniFuse 2 card allowing playback/capture sample rate in range 44100 - 192000. But using channel name (e.g. `Mic/Line/Inst 1 (L)`, `Main Output L/R`) created by UCM, it offers 48000 only (and in case of playback, it offers S15_LE only).

Looks like something is lost when `SplitPCM` macro is used or so (I have absolutely no idea what's going on here).

Is there any possibility to make it work as it should?


=================================
`/proc/asound/card4/stream0` output:
```
ARTURIA MiniFuse 2 at usb-0000:16:00.0-6.2, high speed : USB Audio

Playback:
  Status: Stop
  Interface 1
    Altset 1
    Format: S32_LE
    Channels: 4
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
    Channel map: FL FR FC LFE
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 1
    Implicit Feedback Mode: No
  Interface 1
    Altset 2
    Format: S16_LE
    Channels: 4
    Endpoint: 0x01 (1 OUT) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 16
    Channel map: FL FR FC LFE
    Sync Endpoint: 0x81 (1 IN)
    Sync EP Interface: 1
    Sync EP Altset: 2
    Implicit Feedback Mode: No

Capture:
  Status: Stop
  Interface 2
    Altset 1
    Format: S32_LE
    Channels: 4
    Endpoint: 0x82 (2 IN) (ASYNC)
    Rates: 44100, 48000, 88200, 96000, 176400, 192000
    Data packet interval: 125 us
    Bits: 24
    Channel map: FL FR FC LFE
```

`alsaucm -c hw:4 dump text` output:
```
Verb.HiFi {
	Comment "Default Alsa Profile"
	Device.Line1 {
		Comment "Main Output L/R"
		Values {
			CaptureCTL "_ucm0001.hw:M2"
			PlaybackCTL "_ucm0001.hw:M2"
			PlaybackChannels 2
			PlaybackPCM "_ucm0001.minifuse12_stereo_out:M2,0,0,1"
			PlaybackPriority 300
		}
	}
	Device.Line2 {
		Comment "Loopback L/R"
		Values {
			CaptureCTL "_ucm0001.hw:M2"
			CaptureChannels 2
			CapturePCM "_ucm0001.minifuse12_stereo_in:M2,0,2,3"
			CapturePriority 200
			PlaybackCTL "_ucm0001.hw:M2"
			PlaybackChannels 2
			PlaybackPCM "_ucm0001.minifuse12_stereo_out:M2,0,2,3"
			PlaybackPriority 200
		}
	}
	Device.Line3 {
		Comment "Stereo Input 1+2 L/R"
		ConflictingDevices [
			Mic2,
			Mic1
		]
		Values {
			CaptureCTL "_ucm0001.hw:M2"
			CaptureChannels 2
			CapturePCM "_ucm0001.minifuse12_stereo_in:M2,0,0,1"
			CapturePriority 100
			PlaybackCTL "_ucm0001.hw:M2"
		}
	}
	Device.Mic1 {
		Comment "Mic/Line/Inst 1 (L)"
		ConflictingDevices [
			Line3
		]
		Values {
			CaptureCTL "_ucm0001.hw:M2"
			CaptureChannels 1
			CapturePCM "_ucm0001.minifuse12_mono_in:M2,0,0"
			CapturePriority 400
			PlaybackCTL "_ucm0001.hw:M2"
		}
	}
	Device.Mic2 {
		Comment "Mic/Line/Inst 2 (R)"
		ConflictingDevices [
			Line3
		]
		Values {
			CaptureCTL "_ucm0001.hw:M2"
			CaptureChannels 1
			CapturePCM "_ucm0001.minifuse12_mono_in:M2,0,1"
			CapturePriority 300
			PlaybackCTL "_ucm0001.hw:M2"
		}
	}
}
Verb.Direct {
	Comment "Direct MiniFuse 2"
	Device.Direct {
		Comment "Direct MiniFuse 2"
		Values {
			CaptureCTL "_ucm0001.hw:M2"
			CaptureChannels 4
			CapturePCM "_ucm0001.hw:M2"
			CapturePriority 1000
			PlaybackCTL "_ucm0001.hw:M2"
			PlaybackChannels 4
			PlaybackPCM "_ucm0001.hw:M2"
			PlaybackPriority 1000
		}
	}
}
```

Pipewire debug log "spa.alsa:D" excerpts (I have no idea how to get this elsewhere, but it matches to offered reality):
```
[I][12125.973616] spa.alsa     | [      alsa-pcm.c:  618 spa_alsa_open()] 0x562ee6e95448: ALSA device open '_ucm0001.minifuse12_mono_in:M2,0,0' capture
[I][12125.993003] spa.alsa     | [      alsa-pcm.c:  568 probe_pitch_ctl()] minifuse12_mono_in:M2,0,0 could not find ctl device: No such file or directory
[D][12125.993047] spa.alsa     | [      alsa-pcm.c: 1048 debug_hw_params()] enum_pcm_formats:
[D][12125.993065] spa.alsa     | [      alsa-pcm.c:  469 log_write()] ACCESS:  MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED
[D][12125.993075] spa.alsa     | [      alsa-pcm.c:  469 log_write()] FORMAT:  S32_LE
[D][12125.993082] spa.alsa     | [      alsa-pcm.c:  469 log_write()] SUBFORMAT:  STD
[D][12125.993089] spa.alsa     | [      alsa-pcm.c:  469 log_write()] SAMPLE_BITS: 32
[D][12125.993095] spa.alsa     | [      alsa-pcm.c:  469 log_write()] FRAME_BITS: 32
[D][12125.993101] spa.alsa     | [      alsa-pcm.c:  469 log_write()] CHANNELS: 1
[D][12125.993107] spa.alsa     | [      alsa-pcm.c:  469 log_write()] RATE: 48000
[D][12125.993113] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIOD_TIME: 10000
[D][12125.993119] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIOD_SIZE: 480
[D][12125.993124] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIOD_BYTES: 1920
[D][12125.993130] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIODS: [2 50]
[D][12125.993136] spa.alsa     | [      alsa-pcm.c:  469 log_write()] BUFFER_TIME: [20000 500000]
[D][12125.993142] spa.alsa     | [      alsa-pcm.c:  469 log_write()] BUFFER_SIZE: [960 24000]
[D][12125.993148] spa.alsa     | [      alsa-pcm.c:  469 log_write()] BUFFER_BYTES: [3840 96000]
[D][12125.993153] spa.alsa     | [      alsa-pcm.c:  469 log_write()] TICK_TIME: ALL
[D][12125.993165] spa.alsa     | [      alsa-pcm.c:  885 add_rate()] min:48000 max:48000 min-allowed:0 scale:1 interleave:1 all:0
[D][12125.993172] spa.alsa     | [      alsa-pcm.c:  909 add_rate()] rate:48000 multi:1 card:0 def:0
[D][12125.993180] spa.alsa     | [      alsa-pcm.c:  963 add_channels()] channels (1 1) default:1 all:0
[D][12125.993187] spa.alsa     | [      alsa-pcm.c: 1036 add_channels()] 0x562ee6e95448: position 0 2
```
```
[I][12125.637937] spa.alsa     | [      alsa-pcm.c:  618 spa_alsa_open()] 0x562ee6e24218: ALSA device open '_ucm0001.minifuse12_stereo_out:M2,0,0,1' playback
[I][12125.657353] spa.alsa     | [      alsa-pcm.c:  568 probe_pitch_ctl()] minifuse12_stereo_out:M2,0,0,1 could not find ctl device: No such file or directory
[D][12125.657379] spa.alsa     | [      alsa-pcm.c: 1048 debug_hw_params()] enum_pcm_formats:
[D][12125.657398] spa.alsa     | [      alsa-pcm.c:  469 log_write()] ACCESS:  MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED
[D][12125.657407] spa.alsa     | [      alsa-pcm.c:  469 log_write()] FORMAT:  S16_LE
[D][12125.657414] spa.alsa     | [      alsa-pcm.c:  469 log_write()] SUBFORMAT:  STD
[D][12125.657420] spa.alsa     | [      alsa-pcm.c:  469 log_write()] SAMPLE_BITS: 16
[D][12125.657427] spa.alsa     | [      alsa-pcm.c:  469 log_write()] FRAME_BITS: 32
[D][12125.657433] spa.alsa     | [      alsa-pcm.c:  469 log_write()] CHANNELS: 2
[D][12125.657439] spa.alsa     | [      alsa-pcm.c:  469 log_write()] RATE: 48000
[D][12125.657445] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIOD_TIME: 10000
[D][12125.657452] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIOD_SIZE: 480
[D][12125.657458] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIOD_BYTES: 1920
[D][12125.657463] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIODS: [2 50]
[D][12125.657468] spa.alsa     | [      alsa-pcm.c:  469 log_write()] BUFFER_TIME: [20000 500000]
[D][12125.657474] spa.alsa     | [      alsa-pcm.c:  469 log_write()] BUFFER_SIZE: [960 24000]
[D][12125.657481] spa.alsa     | [      alsa-pcm.c:  469 log_write()] BUFFER_BYTES: [3840 96000]
[D][12125.657488] spa.alsa     | [      alsa-pcm.c:  469 log_write()] TICK_TIME: ALL
[D][12125.657499] spa.alsa     | [      alsa-pcm.c:  885 add_rate()] min:48000 max:48000 min-allowed:0 scale:1 interleave:1 all:0
[D][12125.657507] spa.alsa     | [      alsa-pcm.c:  909 add_rate()] rate:48000 multi:1 card:0 def:0
[D][12125.657514] spa.alsa     | [      alsa-pcm.c:  963 add_channels()] channels (2 2) default:2 all:0
[D][12125.657521] spa.alsa     | [      alsa-pcm.c: 1036 add_channels()] 0x562ee6e24218: position 0 3
[D][12125.657528] spa.alsa     | [      alsa-pcm.c: 1036 add_channels()] 0x562ee6e24218: position 1 4
```

Without matching UCM profile the in/outs offers the full range (but everything is mapped as "surround" 4-channel):
```
[D][13133.383190] spa.alsa     | [      alsa-pcm.c: 1346 spa_alsa_enum_format()] opened:0 format:0 started:0
[I][13133.383199] spa.alsa     | [      alsa-pcm.c:  618 spa_alsa_open()] 0x5629c57893f8: ALSA device open 'surround40:4' capture
[I][13133.384911] spa.alsa     | [      alsa-pcm.c:  568 probe_pitch_ctl()] surround40:4 could not find ctl device: No such file or directory
[D][13133.384928] spa.alsa     | [      alsa-pcm.c: 1048 debug_hw_params()] enum_pcm_formats:
[D][13133.384941] spa.alsa     | [      alsa-pcm.c:  469 log_write()] ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
[D][13133.384947] spa.alsa     | [      alsa-pcm.c:  469 log_write()] FORMAT:  S32_LE
[D][13133.384951] spa.alsa     | [      alsa-pcm.c:  469 log_write()] SUBFORMAT:  STD
[D][13133.384955] spa.alsa     | [      alsa-pcm.c:  469 log_write()] SAMPLE_BITS: 32
[D][13133.384959] spa.alsa     | [      alsa-pcm.c:  469 log_write()] FRAME_BITS: 128
[D][13133.384963] spa.alsa     | [      alsa-pcm.c:  469 log_write()] CHANNELS: 4
[D][13133.384967] spa.alsa     | [      alsa-pcm.c:  469 log_write()] RATE: [44100 192000]
[D][13133.384970] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIOD_TIME: [125 1000000]
[D][13133.384974] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIOD_SIZE: [6 192000]
[D][13133.384978] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIOD_BYTES: [96 3072000]
[D][13133.384982] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIODS: [2 1024]
[D][13133.384986] spa.alsa     | [      alsa-pcm.c:  469 log_write()] BUFFER_TIME: (62 2000000]
[D][13133.384990] spa.alsa     | [      alsa-pcm.c:  469 log_write()] BUFFER_SIZE: [12 384000]
[D][13133.384993] spa.alsa     | [      alsa-pcm.c:  469 log_write()] BUFFER_BYTES: [192 6144000]
[D][13133.384997] spa.alsa     | [      alsa-pcm.c:  469 log_write()] TICK_TIME: ALL
[D][13133.385004] spa.alsa     | [      alsa-pcm.c:  885 add_rate()] min:44100 max:192000 min-allowed:0 scale:1 interleave:1 all:0
[D][13133.385009] spa.alsa     | [      alsa-pcm.c:  909 add_rate()] rate:48000 multi:1 card:0 def:0
[D][13133.385014] spa.alsa     | [      alsa-pcm.c:  963 add_channels()] channels (4 4) default:4 all:0
[D][13133.385018] spa.alsa     | [      alsa-pcm.c: 1036 add_channels()] 0x5629c57893f8: position 0 3
[D][13133.385022] spa.alsa     | [      alsa-pcm.c: 1036 add_channels()] 0x5629c57893f8: position 1 4
[D][13133.385026] spa.alsa     | [      alsa-pcm.c: 1036 add_channels()] 0x5629c57893f8: position 2 12
[D][13133.385030] spa.alsa     | [      alsa-pcm.c: 1036 add_channels()] 0x5629c57893f8: position 3 13
```
```
[D][13133.381023] spa.alsa     | [      alsa-pcm.c: 1346 spa_alsa_enum_format()] opened:0 format:0 started:0
[I][13133.381032] spa.alsa     | [      alsa-pcm.c:  618 spa_alsa_open()] 0x5629c57650b8: ALSA device open 'surround40:4' playback
[I][13133.382756] spa.alsa     | [      alsa-pcm.c:  568 probe_pitch_ctl()] surround40:4 could not find ctl device: No such file or directory
[D][13133.382772] spa.alsa     | [      alsa-pcm.c: 1048 debug_hw_params()] enum_pcm_formats:
[D][13133.382786] spa.alsa     | [      alsa-pcm.c:  469 log_write()] ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
[D][13133.382792] spa.alsa     | [      alsa-pcm.c:  469 log_write()] FORMAT:  S16_LE S32_LE
[D][13133.382796] spa.alsa     | [      alsa-pcm.c:  469 log_write()] SUBFORMAT:  STD
[D][13133.382800] spa.alsa     | [      alsa-pcm.c:  469 log_write()] SAMPLE_BITS: [16 32]
[D][13133.382804] spa.alsa     | [      alsa-pcm.c:  469 log_write()] FRAME_BITS: [64 128]
[D][13133.382808] spa.alsa     | [      alsa-pcm.c:  469 log_write()] CHANNELS: 4
[D][13133.382812] spa.alsa     | [      alsa-pcm.c:  469 log_write()] RATE: [44100 192000]
[D][13133.382816] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIOD_TIME: [125 1000000]
[D][13133.382820] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIOD_SIZE: [6 192000]
[D][13133.382824] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIOD_BYTES: [64 3072000]
[D][13133.382827] spa.alsa     | [      alsa-pcm.c:  469 log_write()] PERIODS: [2 1024]
[D][13133.382831] spa.alsa     | [      alsa-pcm.c:  469 log_write()] BUFFER_TIME: (62 2000000]
[D][13133.382835] spa.alsa     | [      alsa-pcm.c:  469 log_write()] BUFFER_SIZE: [12 384000]
[D][13133.382839] spa.alsa     | [      alsa-pcm.c:  469 log_write()] BUFFER_BYTES: [96 6144000]
[D][13133.382843] spa.alsa     | [      alsa-pcm.c:  469 log_write()] TICK_TIME: ALL
[D][13133.382850] spa.alsa     | [      alsa-pcm.c:  885 add_rate()] min:44100 max:192000 min-allowed:0 scale:1 interleave:1 all:0
[D][13133.382855] spa.alsa     | [      alsa-pcm.c:  909 add_rate()] rate:48000 multi:1 card:0 def:0
[D][13133.382859] spa.alsa     | [      alsa-pcm.c:  963 add_channels()] channels (4 4) default:4 all:0
[D][13133.382864] spa.alsa     | [      alsa-pcm.c: 1036 add_channels()] 0x5629c57650b8: position 0 3
[D][13133.382868] spa.alsa     | [      alsa-pcm.c: 1036 add_channels()] 0x5629c57650b8: position 1 4
[D][13133.382872] spa.alsa     | [      alsa-pcm.c: 1036 add_channels()] 0x5629c57650b8: position 2 12
[D][13133.382876] spa.alsa     | [      alsa-pcm.c: 1036 add_channels()] 0x5629c57650b8: position 3 13
```

Issue URL     : https://github.com/alsa-project/alsa-ucm-conf/issues/333
Repository URL: https://github.com/alsa-project/alsa-ucm-conf



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux