RME Fireface UCX unter Linux

Antworten
Buschel
Aktiver Hörer
Beiträge: 989
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

RME Fireface UCX unter Linux

Beitrag von Buschel »

Hallo zusammen,

ich konnte nicht widerstehen und habe mir zur Probe eine RME Fireface UCX geliehen, um sie anstatt meiner Focusrite 2i2 als Audiointerface an meinem Linux-Faltungsrechner zu betreiben. Grund für den Wechselwunsch ist relativ starkes Grundrauschen und geringer Ausgangspegel der 2i2. Im Vorfeld hatte ich mich schon soweit informiert, dass RME und Linux eher eine schwierige Geschichte sind.

Die guten Nachrichten: Unter Ubuntu 14.04 wird die UCX sofort erkannt, wenn der "Class Compliant" Mode aktiviert wird. Das analoge Einschleifen funktioniert über Eingang 1/2 und Ausgang 1/2 problemlos. Das Grundrauschen ist etwas geringer als bei der 2i2, aber es wird ein deutlich höherer Ausgangspegel erreicht. Dadurch muss ich meine Vorstufe nicht mehr so weit aufdrehen, wodurch das Grundrauschen der RME im normalen Betriebsbereich durch das der Aktivlautsprecher verdeckt wird.

Unschönheiten:
1. Es werden "nur" Abtastraten bis 96 kHz unterstützt. Alle darüber liegenden Frequenzen werden nicht akzeptiert.
2. Ich kann nur 2 analoge Ein- und 2 analoge Ausgänge ansprechen.

Obwohl ich bereits meine Hauptziele (Pegel erhöhen, Rauschgrund senken) erreicht habe, würde ich gerne weitere Kanäle ansprechen können. Wichtig sind mir vor allem die hinteren analogen Eingänge. Hat hier jemand eine Idee, ob das ein reines Konfigurationsthema unter Linux ist? :roll:

Viele Grüße,
Andree
Bild
Daihedz
Aktiver Hörer
Beiträge: 793
Registriert: 25.06.2010, 15:09

Beitrag von Daihedz »

Hallo Andrée

Über amixer können alle Funktionen einer Soundkarte erschlossen werden, welche ALSA zur Verfügung stellt. Versuche deshalb mal, Dich hier gescheit zu machen:
http://wiki.ubuntuusers.de/amixer,
sowie in den weiter verlinkten Seiten zu amixer.

Und versuche dann folgendes, vorausgesetzt, die Karte ist unter -c 0 ansprechbar (sonst -c 1, -c 2 ...):

$ amixer -c 0 controls
und / oder
$ amixer -c 0 contents

Da siehts Du allerhand Informationen zur Karte und deren Einstellmöglichkeiten. Suche aber keine einzelnen ID's zu den Ein- und Ausgängen. Eingänge, Ausgänge und Pegel werden (bei meinen RME HDSP's) alle unter numid=5 (="mixer") eingestellt. Der mixer funktioniert somit mit den 3 Parametern: Eingang - Ausgang - Pegel. Da wird so ziemlich alles beliebig miteinander vermixbar, was viele Möglichkeiten eröffnet, aber gleichzeitig auch etwas Einarbeitungszeit abverlangt.

Besonderheit der HDSP-RME's unter ALSA: Die unterstützen ja unter anderem 8 Kanäle ADAT In und Out. ADAT unterstützt pro Kanal bloss 44.1kHz/48kHz. Bei 96kHz werden zwei Kanäle zu einem gemultiplext, bei 192kHz deren vier. Der ALSA-Treiber erkennt dies, und stellt deshalb z.B. bei meinen Multifaces bei 44.1kHz/48kHz 18 Kanäle zur Verfügung, bei 96kHz bloss noch deren 14. Und bei 96kHz werden leider nicht nur die ADAT-Kanäle gestutzt, sondern als Farce gleich auch noch die regulären DA-Kanäle. Bei 96kHz bleiben also bloss noch 4 Kanäle DA übrig. Das wäre an und für sich nicht nötig.

Gemischt ermutigend (Linux) -verärgerte (Kollateralschaden des ADAT-Muxing) Grüsse
Simon
Bild
Buschel
Aktiver Hörer
Beiträge: 989
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Hallo Simon,

Danke für deinen Hinweis auf amixer. Ich habe mir die Wiki angesehen und einige der Kommandos aufgerufen. Allerdings zeigt sich auch hier, dass es kaum Kanäle bzw. Stellmöglichkeiten gibt.

$ amixer -c 2 info
ergibt
...
Controls: 2
Simple ctrls: 1
$ amixer -c 2 scontrols
ergibt
...
Simple mixer control 'Speaker',0
Deine HDSP wird ja offiziell in Linux unterstützt, die UCX nicht. Sie läuft nur in einem Kompatibilitätsmodus als USB Audio 2 Device. Ich schätze das macht den Unterschied aus. Es gibt im Netz Beiträge, die -- ohne Angabe zum eingesetzten Linux -- davon berichten, dass die UCX ohne weitere Einstellungen über alsa als Karte mit 8 capture und 8 playback Kanälen verfügbar war. Unter Ubuntu 14.04 werden nur jeweils 2 angeboten.

Sieht so aus, als ob ich nur drei Optionen habe:
- Warten bis in Linux gefixt
- Warten bis ffado die UCX unterstützt und über Firewire-to-USB Adapter gehen
- Rechner auf Windows umstellen

Viele Grüße,
Andree
Bild
Buschel
Aktiver Hörer
Beiträge: 989
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Hallo nochmal,

Dank eines Tipps von Simon habe ich mir jetzt genauer das Programm ecasound genauer angesehen. Mit diesem lassen sich über alsa alle 8 analogen Eingänge und 6 analogen Ausgänge der RME Fireface UCX getrennt ansprechen.
:cheers:

Mit folgendem Kommando werden alle 6 Ausgänge aktiviert, es werden unterschiedliche Signale über die Ausgänge (die UCX ist bei mir als card 2 angemeldet, daher alsaplugin,2,0) ausgegeben:

Code: Alles auswählen

$ ecasound -i:chan_labels_6.wav -f:s24_le,6,44100 -o:alsaplugin,2,0
Es kann auch eine Stereo wav-Datei mit ihren logischen Kanälen 1/2 auf andere Ausgänge gemappt werden. Folgendes Kommando gibt eine Stereodatei auf den Ausgängen 5/6 aus:

Code: Alles auswählen

$ ecasound -f:16,6,44100 -i:test.wav -o:alsaplugin,2,0 -chcopy:1,5 -chcopy:2,6
Ähnlich funktioniert die Aufnahme. Nachfolgendes Kommando aktiviert 8 Eingänge, mappt die analogen Eingänge 7/8 zurück auf die logischen Kanäle 1/2, und schreibt diese für 5 Sekunden in eine wav-Datei:

Code: Alles auswählen

$ ecasound -f:16,8,44100 -t:5 -i:alsaplugin,2,0 -o:test78.wav -chcopy:7,1 -chcopy:8,2
Die 6-Kanal-Datei chan_labels_6.wav kann hier heruntergeladen werden. Eine detaillierte Beschreibung zu ecasound gibt es auf dieser Website.

Damit steht dem Kauf nichts mehr entgegen. :mrgreen:

Viele Grüße,
Andree
Bild
Buschel
Aktiver Hörer
Beiträge: 989
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Hallo zusammen,

Strike! :mrgreen:

Die UCX scheint jetzt auch mit brutefir und jeweils 18 Kanälen für capture und playback zu laufen -- zumindest behauptet sie das:

Code: Alles auswählen

$ cat /proc/asound/card2/pcm0c/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 18
rate: 48000 (48000/1)
period_size: 1024
buffer_size: 14563

bzw.

Code: Alles auswählen

$ cat /proc/asound/card2/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 18
rate: 48000 (48000/1)
period_size: 1024
buffer_size: 14563
Tatsächlich war der wesentliche Trick, dass die korrekte Anzahl an Kanälen konfiguriert wird. alsa akzeptiert auf seiner HW-Schnittstelle offenbar nur 2 oder genau 18 Kanäle. Den Beweis, dass tatsächlich mehr als die bisherigen 2 capture Kanäle funktionieren, kann ich gerade hören. Mit folgender brutefir Konfiguration höre ich gerade "New Blood" über die Eingänge 5/6 und gebe über die Ausgänge 1/2 aus.

Code: Alles auswählen

##
## DEFAULT GENERAL SETTINGS
##
float_bits: 32;			# internal floating point precision
sampling_rate: 48000;	# sampling rate in Hz of audio interfaces
filter_length: 1024,4;	# length of filters: 4 (not used here ;-)
overflow_warnings: true;	# echo warnings to stderr if overflow occurs
show_progress: true; 		# echo filtering progress to stderr
max_dither_table_size: 0; 	# maximum size in bytes of precalculated dither
allow_poll_mode: false; 	# allow use of input poll mode
modules_path: "."; 		# extra path where to find BruteFIR modules
monitor_rate: false; 		# monitor sample rate
powersave: false; 		# pause filtering when input is zero
lock_memory: true; 		# try to lock memory if realtime prio is set

##
## LOGIC 
##
logic: "cli" { port: 3000; };

##
## OUTPUT 
##
output "out_left", "out_right" {
  device: "alsa" { device: "hw:2,0"; };
  sample: "S32_LE";
  channels: 18/0,1;
  delay: 0,0;
  maxdelay: -1;
  individual_maxdelay: -1,-1;
  mute: false,false;
  dither: false;
};

##
## INPUT
##
input "in_left", "in_right" {
  device: "alsa" { device: "hw:2,0"; };
  sample: "S32_LE";
  channels: 18/4,5;			# number of open channels / each channel
};

##
## FILTER (none) 
##
filter "main_left" {
  inputs: "in_left";
  to_outputs: "out_left";
  coeff: -1;
};

filter "main_right" {
  inputs: "in_right";
  to_outputs: "out_right";
  coeff: -1;
}; 
Die Samplingrate lässt ist allerdings weiterhin auf maximal 96 kHz begrenzt. Alle darüber liegenden Samplingfrequenzen werden zwar akzeptiert, tatsächlich gesetzt wird aber 96 kHz. :roll:

Egal, damit bin ich nahezu vollständig zufrieden. :cheers:

Viele Grüße,
Andree
Bild
Daihedz
Aktiver Hörer
Beiträge: 793
Registriert: 25.06.2010, 15:09

Beitrag von Daihedz »

Hallo Andree
Buschel hat geschrieben: ... Die Samplingrate lässt ist allerdings weiterhin auf maximal 96 kHz begrenzt. Alle darüber liegenden Samplingfrequenzen werden zwar akzeptiert, tatsächlich gesetzt wird aber 96 kHz ...
Buschel hat geschrieben: ##
## DEFAULT GENERAL SETTINGS
##
float_bits: 32; # internal floating point precision
sampling_rate: 48000; # sampling rate in Hz of audio interfaces
filter_length: 1024,4; # length of filters: 4 (not used here ;-)
overflow_warnings: true; # echo warnings to stderr if overflow occurs
...
...
...
##
## INPUT
##
input "in_left", "in_right" {
device: "alsa" { device: "hw:2,0"; };
sample: "S32_LE";
channels: 18/4,5; # number of open channels / each channel
};
...
Du hast eine Brutefir-Config eingestellt, welche Dir mit der UCX bei SR=48kHz mindestens 5 Kanäle Input zur Verfügung stellt. Wie verhält sich die UCX in Sachen Kanäle denn bei 96kHz? Mich interessieren vor allem die DA-Output-Kanäle.

Bei meiner Multiface @ 96kHz muss ich wegen des ADAT-MUXings die Kanalzahl von 18 auf 14 reduzieren, was zunächst einmal in Anbetracht der Bandbreite eines jeden Kanals logisch ist - 8 Kanäle ADAT @ 48kHz werden zu 4 Kanälen ADAT @ 96kHz zusammengefasst :

aus
sampling_rate: 48000; # sampling rate in Hz of audio interfaces
channels: 18/n,m; # number of open channels / each channel

wird somit
sampling_rate: 96000; # sampling rate in Hz of audio interfaces
channels: 14/n,m; # number of open channels / each channel

ABER: Bei 96kHz bleiben eigensinnigerweise die Kanäle 5-8 (DA-out) stumm, obschon die ja eigentlich überhaupt nichts mit ADAT zu tun haben:

Mit channels: 14/0,1,2,3,4,5,6,7

Startet Brutefir zwar, aber die Kanäle 4 ... 7 machen keinen Mucks. Ist dieser Fehler auch mit der UCX reproduzierbar, oder ist dies eine selektive Macke des HDSP-Treibers?

Beste Grüsse
Simon
Bild
Buschel
Aktiver Hörer
Beiträge: 989
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Hallo Simon,

wie du schon schreibst gilt die Einschränkung der ADAT-Kanäle bei 96 kHz und 192 kHz auch für die UCX (Klick mich). Es sollen aber laut RME unabhängig von der Samplingfrequenz alle 8 analogen I/O's funktionieren. Ich kann das heute Abend mit 96 kHz ausprobieren, falls ich mit meinem Laden über den Preis einig werde. 8)
Daihedz hat geschrieben:Du hast eine Brutefir-Config eingestellt, welche Dir mit der UCX bei SR=48kHz mindestens 5 Kanäle Input zur Verfügung stellt.
Es sind nach meinem Verständnis 6 Kanäle. Die vorderen 4 (0-3) sind unbenutzt, die ersten beiden hinteren (4-5) sind aktiv.

Viele Grüße,
Andree
Bild
Daihedz
Aktiver Hörer
Beiträge: 793
Registriert: 25.06.2010, 15:09

Beitrag von Daihedz »

Hallo Andree
Buschel hat geschrieben: ...Es sollen aber laut RME unabhängig von der Samplingfrequenz alle 8 analogen I/O's funktionieren.
Tun sie wahrscheinlich auch bei mir, und ich nehme den Verdacht auf einen defekten HDSP-Treiber zurück. Ich habe die Sache mit dem ADAT-Muxing und der Gesamtkanal-Veränderung nicht zu Ende gedacht und übersehen, dass beim Routing die gesamte Definition der Inputs bei 96kHz um 4 Zähler nach unten rutscht. Nun ist es bei mir besser so:

Code: Alles auswählen

#!/bin/bash
#############################################
## soundcard_config
## Soundcard: RME Multiface
#############################################
#
# Simon
# 24.4.2014
#


echo ''
echo ${0%}' starting Setup Multiface ... '
echo ''

SOUNDCARD_ID=$(cat /proc/asound/cards | grep "H-DSP" | cut -d "[" -f 1)  # Value must match ALSA HW:n


# Sample Rate

NUMID_SAMPLERATE=11
NUMID_SAMPLERATE_VALUE=7   # 0 internal 2 44100 3 48000 6 96000kHz


### MATRIX
  
NUMID_AMIXER=5
NUMID_AMIXER_INPUTS=33
NUMID_AMIXER_OUTPUTS=33
NUMID_AMIXER_GAIN=32768  # Value of 32768 corresponds to 0dB in RME soundcards


# RESET ALL MATRIX

echo 'Resetting Inputs and Outputs'
	
for InputID in $(seq 0 1 $NUMID_AMIXER_INPUTS) ; do

	for OutputID in $(seq 0 1 $NUMID_AMIXER_OUTPUTS) ; do

		amixer -c $SOUNDCARD_ID cset numid=$NUMID_AMIXER $InputID,$OutputID,0 > /dev/null
	done
done


echo 'Routing Inputs and Outputs'

# Set Samplerate - FIST place before Routing, because of ADAT Muxing and consequent channels number shift

amixer -c $SOUNDCARD_ID cset numid=$NUMID_SAMPLERATE $NUMID_SAMPLERATE_VALUE > /dev/null # 0 internal 2 44100 3 48000 6 96000kHz


# Set Routing now, after setting samplerate

if [ ${NUMID_SAMPLERATE_VALUE} = 6 ] ; then  
	# Samplerate is 96 kHz with ADAT MUXing

	InputID=22  # @ 14 Hardware Inputs and Outputs (8 DA - 4 ADAT - 2 SPDIF)
else

	InputID=26  # @ 18 Hardware Inputs and Outputs (8 DA - 8 ADAT - 2 SPIDF)

fi

OutputID=0

for OutputID in $(seq 0 1 7) ; do

	amixer -c $SOUNDCARD_ID cset numid=$NUMID_AMIXER $InputID,$OutputID,${NUMID_AMIXER_GAIN} > /dev/null
	
	(( InputID += 1 ))
	(( OutputID += 1 ))
done

Buschel hat geschrieben: ... ausprobieren, falls ich mit meinem Laden über den Preis einig werde ...
Ich wünsche Dir viel Glück und Euch beiden gegenseitige Zufriedenheit ...
Buschel hat geschrieben: Es sind nach meinem Verständnis 6 Kanäle. Die vorderen 4 (0-3) sind unbenutzt, die ersten beiden hinteren (4-5) sind aktiv.
Ich schliesse mich Deinem Verständnis an. Ich den Index 0 nicht mitgezählt. 0 ... 5 sind SECHSE!

Ergänzende Grüße
Simon
Bild
Buschel
Aktiver Hörer
Beiträge: 989
Registriert: 12.12.2013, 20:12
Wohnort: Raum Karlsruhe

Beitrag von Buschel »

Hallo nochmal,
Buschel hat geschrieben:Es sollen aber laut RME unabhängig von der Samplingfrequenz alle 8 analogen I/O's funktionieren. Ich kann das heute Abend mit 96 kHz ausprobieren, falls ich mit meinem Laden über den Preis einig werde.
Ich kann bei 96 kHz Samplingfrequenz auf den Kanälen 4 und 5 (die letzten hinteren analogen Ausgänge) ausgeben. Läuft also alles so wie es soll. 8)
Daihedz hat geschrieben:Ich wünsche Dir viel Glück und Euch beiden gegenseitige Zufriedenheit ...
Es wurde ganz unkompliziert der (deutlich) günstigere Preis eines direkten Mitbewerbers übernommen -- viel ist da wohl nicht hängen geblieben. Dafür haben sie mich als Stammkunden weiter gefestigt. Die UCX ist damit gekauft und natürlich schon wieder in Betrieb. Ich muss mir nur überlegen wie ich mit dem Kabelverhau umgehe... :roll:

Viele Grüße,
Andree
Bild
Antworten