RME Fireface UCX unter Linux
RME Fireface UCX unter Linux
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?
Viele Grüße,
Andree
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?
Viele Grüße,
Andree
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
Ü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
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
ergibt
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
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
$ amixer -c 2 scontrols...
Controls: 2
Simple ctrls: 1
ergibt
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....
Simple mixer control 'Speaker',0
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
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.
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:
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:
Ä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:
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.
Viele Grüße,
Andree
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.
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
Code: Alles auswählen
$ ecasound -f:16,6,44100 -i:test.wav -o:alsaplugin,2,0 -chcopy:1,5 -chcopy:2,6
Code: Alles auswählen
$ ecasound -f:16,8,44100 -t:5 -i:alsaplugin,2,0 -o:test78.wav -chcopy:7,1 -chcopy:8,2
Damit steht dem Kauf nichts mehr entgegen.
Viele Grüße,
Andree
Hallo zusammen,
Strike!
Die UCX scheint jetzt auch mit brutefir und jeweils 18 Kanälen für capture und playback zu laufen -- zumindest behauptet sie das:
bzw.
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.
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.
Egal, damit bin ich nahezu vollständig zufrieden.
Viele Grüße,
Andree
Strike!
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
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;
};
Egal, damit bin ich nahezu vollständig zufrieden.
Viele Grüße,
Andree
Hallo Andree
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
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 ...
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.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
};
...
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
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.
Viele Grüße,
Andree
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.
Es sind nach meinem Verständnis 6 Kanäle. Die vorderen 4 (0-3) sind unbenutzt, die ersten beiden hinteren (4-5) sind aktiv.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.
Viele Grüße,
Andree
Hallo Andree
Ergänzende Grüße
Simon
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:Buschel hat geschrieben: ...Es sollen aber laut RME unabhängig von der Samplingfrequenz alle 8 analogen I/O's funktionieren.
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
Ich wünsche Dir viel Glück und Euch beiden gegenseitige Zufriedenheit ...Buschel hat geschrieben: ... ausprobieren, falls ich mit meinem Laden über den Preis einig werde ...
Ich schliesse mich Deinem Verständnis an. Ich den Index 0 nicht mitgezählt. 0 ... 5 sind SECHSE!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.
Ergänzende Grüße
Simon
Hallo nochmal,
Viele Grüße,
Andree
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.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.
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...Daihedz hat geschrieben:Ich wünsche Dir viel Glück und Euch beiden gegenseitige Zufriedenheit ...
Viele Grüße,
Andree