Nupro X3000 RC – a solid high quality supplement to your Linux Audio

A friend asked me what sound equipment I use on my Linux machine. She wanted to to buy some new decent speakers. I had to make a similar decision a year ago. Coming to a conclusion back then became a more difficult process than I had expected.

I admit that I am a total amateur regarding sound equipment. I have not changed my sound cards (Asus Sonar D2X, Creative X-Fi Titanium, Onboard High Definition GM206) for a long, long time. And I do not hear as well as in my younger years. But during Corona and home office times I became really discontent with my old Creative speakers. One cannot all the time wear headphones. So some new speakers for my Linux workstation became a topic on my private agenda.

Questions ahead of a decision for some speakersfor your PC

When I seriously started thinking about some investment the following questions came up:

A surround system? Active or passive boxes? Suitable for a shelf or standing on the floor? Do you want to use the speakers later also in other contexts than just as a background equipment in your working room? What is appropriate for your room size? Connections cable (copper, optical?) based or WiFi or Bluetooth based? In my age when hearing capabilities are reduced: Will high end properties make a difference at all? And the most limiting factor: budget.

Taking all these factors into account will certainly lead to very personal decisions. So, when I make an explicit recommendation here – take it with caution and a grain of salt.

Guidelines to choosing speakers for a non-professional PC environment

Here are the personal guidelines which I followed – after I had read reviews, listened to Teufel and Edifier speakers at friends and listened to a relative expensive Logitech surround system at my nephew. You may have other references, other budgets and hear much better and more differentiated than I do. So relax if you come to other conclusions.

And do not forget: I am talking about sound equipment on a PC for background music enjoyment in a working room – not for professional objectives and High End specialists.

  • Recommendation 1: If you are interested in sound quality and are a music enthusiast – forget about surround systems. Quantity (many speakers) almost always enforces quality compromises, which you are going to hear in the end. Better invest your money into a 2.0 or 2.1 system which fits the (probably) limited size of your working room.
  • Recommendation 2: If your room size is up to 30 square meters, invest into relatively small speakers – but of studio quality. They will give you a much more pronounced and positioned sound than surround systems. Regarding money think of speakers which you later can supplement with a sub-woofer – e.g. in case you want to move the speakers to a larger room sometime in the future.
  • Recommendation 3: Regarding bass: I am a heavy metal friend – sometimes. I have my phases and periods regarding music … Sometimes I like Jazz, only. Bass in the named two cases has a different meaning to me – but in any case I do not like resonances of my speakers. The stereo speakers alone should already provide a solid, broad and resonance free bass fundament – without a sub-woofer. A sub-woofer can deliver an extra feeling in the case of metal – but for Jazz and classical music I would not consider a sub-woofer as really relevant. So go for some solid speakers with the option of adding a sub-woofer in the future.
  • Recommendation 4: Do not underestimate the effect (or limitations) of the DAC in your sound card! At a certain quality level of your future speakers you are probably going to hear differences. So – if you are lucky and can invest into expensive speakers rethink your sound card equipment, too.
  • Recommendation 5: Do not underestimate the effect of the boxes’ positions in the room. Also in small rooms you will experience bass line effects around 100 Hz or so if you place your boxes in the room’s corners. This leads to the point that you may want some equalizer option to optimize the bass base a bit. Well, Linux or at least most music applications for Linux supply you with equalizers; but it is a nice option to be able to do something at the (active) boxes themselves to get a basic “direction” into your sound environment. And here we would also like to have the option of defining some “presets”.
  • Recommendation 6: Active boxes or amplifier? A very difficult question! In a PC and mobile environment I would tend to active speakers, but … The amplifier technique today is so good that at least in my case my hearing deficits are certainly more important.
  • Recommendation 7: Wifi? personally, I would say: Yes, you should have this option. But if so: Go for a 5 GHz band. And check whether your router offers you the option to define the precise band it should work on or whether the router automatically adapts the precise channel to avoid disturbances with other sources.
  • Personal opinion some people certainly would like to crucify me for: Teufel speakers seem to be a bit overestimated. Personally I do not think that the quality-price relation is convincing. After having heard to a standing speaker pair I think that the balance between bass and mid-range frequency sound is strange. Very vague in a way.

Nupro X3000 speakers as a solid option for a reasonable price

Taking all these aspects into account I ended up with a decision for (active) Nupro X3000 RC speakers from the producer “Nubert electronic GmbH“.

So far, I have not regretted this decision for a second. These boxes did not disappoint me – neither with Classical music, Jazz nor Heavy Metal.

Though admittedly, if you want to feel bass and drumming these boxes improve their performance in larger rooms certainly a bit when combined with a sub-woofer (which I personally use at a second sound card). But this happens at rare occasions …

Ease of setup?

The setup of the active boxes is very simple; the explanations on the accompanying leaflets are fully sufficient. You define everything by a 4 direction control button on one of the speakers. The button and a small display are hidden behind magnetically attached front panels.

Basically, you just have to define a master and a slave speaker in the first setup round and choose a connection to your sound source – here to the output connectors of a PC soundcard. In the end I used the “aux” entry and still live with an analog cable based connection between the sound card and the main box plus a digital coax cable between the boxes. (Due to the speakers’ distance I had to buy an additional coax cable. It disappears behind a shelf).

But a WiFi connection between the speakers works very well, too. I could see no major conflict with the 5 GHz channels occupied by the WLAN routers in my surroundings.

The basic connection options to your PC and sound card are manifold: The USB-interface of the Nupro sound processor appears as an USB sound card on your PC; this
“sound card” is well supported on my Opensuse and KDE based Linux systems. You just have to chose the SPDIF stereo variant of the two options offered in the KDE/Phonon sound settings.

Besides an USB cable the connection cables delivered with the speakers include an optical cable with TOSLink adapters, a SPDIF cable and analog cables with cinch connectors. And eventually there also is the option of a Bluetooth connection – if your PC has such a device.

In the end I personally heard no major difference between analog and digital signal handling. Neither with USB nor the optical connection to my old ASUS Xonar D2X sound card or the optical connection to the X-FI Titanium nor the onboard GM206 High Definition soundcard. The TI-Burr-Brown DAC of the Asus card still seems to be relatively good – at least for my ears.

I also have an additional X-FI Titanium card from Creative in my PC. I like the sound of the Asus card better with my Sennheiser headphones. Regarding the Nupro X3000 I was actually in doubt: For some music I find the sound slightly crispier with the X-Fi. However, whether this is a sign of quality is questionable. I change the sound card from time to time, just for fun – and still have no real preference.

Regarding distances the analog cable option for the connection to your PC’s sound card may be the most reasonable solution – as the optical, SPDIF coax and USB cables coming with the speakers are of limited length.

There is even a possibility to realize a pure Wifi connection from your PC to the X3000 RC speakers. Such a solution, however, requires a special transceiver (135 €) from the producer Nubert; see below. I have no tested this type of connection, yet.

They speakers offer you some basic options regarding the sound balance. A very positive feature is the integrated 5 band equalizer. As said above this allows for a basic adjustment of the sound signature. Not unimportant in my age. In addition the handheld remote control device allows for a change of the relative basic balance between bass and treble.

You can also define a lower cut-off frequency for the bass and the transition frequency to a sub-woofer. Furthermore you can set 6dB a gain of certain analog input channels.

Disappointments ?

Something which disappointed me was the Bluetooth connection of the X3000 RC to my old Samsung smartphone – here I got periodic dropouts. I have not clarified this problem up to now. I do not exclude problems with the Bluetooth and the VLC player on my phone. In reviews I have not read about any such dropouts – but you have been warned. I recently tried a Bluetooth connection from my laptop, too. This one worked flawless. So, I do not know …

Another major disappointment was and is Nubert’s “X-Remote App”. In my case it simply does not work on my Android 6 device. It gets stopped by Android just after granting permission to determine the geo-location. Which by the way is something I do not like in general. I got in contact with the Nubert company recently. They affirmed that they do not collect data, but that it is Google which enforces the explicit accept for geo-location when building up Wifi connections. Had to be expected, we know this stupid problem already from the mess with the German Corona App on Android. BBG again – Big Brother Google … No further comments required.

I had no real need for the App so far. After the basic setup of all the speaker’s internal settings (e.g. the equalizer) I can control the most needed adjustments via the handheld remote control accompanying the speakers. The “room calibration” feature of the App would have been nice – but it requires buying an additional piece of microphone equipment from Nubert for Android smartphones.

Sound quality

Do not expect a solid sound quality review from me. I have neither equipment nor objective, trained ears for such a review. I can only describe an impression – very much in analogy to wine – a sort of personal sound “taste and feeling”
after having heard a lot of music on the speakers. Do I like them with different kinds of music, vocals and instruments?

In a nightlong session I have also compared the Nupro X3000 capabilities with my old Elac 4π (4 Pi) speakers in the living room. They are controlled by NAD pre- and end-amplifiers plus a NAD CD player. I did the comparison with music pieces of very different styles. I really was astonished how good the the small Nupro 3000x speakers could follow the 4π (4 Pi) Elac speakers and fill the room with sound and a solid bass base! Well, of course the Elacs do a better job with the bass at some point, but no wonder regarding their dimensions. Still, this first impression of the Nupro speakers was very convincing.

Then I moved the Elacs and Nupros boxes into my smaller working room – well, the Nupro X3000 at once felt much more adequate. They positioned different sound origins in the stereo sound cloud much more precisely – which is no wonder either. And they filled the whole room with music easily.

A hint: As the speakers work with a bass reflex opening at their backside you should not position the boxes directly at at wall – but leave some space.

Meanwhile, I have listened to a broad spectrum of music on these speakers – ranging from Eberhard Weber, Jan Gabarek, Kjetil Bjørnstad (with an without vocals), Laurie Anderson to compositions of Steve Reich, Rihm, Arvo Pärt and to recent recordings of classical music as of the Danish String Quartet or Sol Gabetta. Intermixed with stuff from Riverside, Korn, Linkin Park, Amorphis, Insomnium, Dark Tranquility, In Flames and Rammstein. As well as a lot of classical symphony and opera recordings. And – as a very welcome side effect – I have re-detected the wonders in the songs of Tom Waits.

You know what: All of it was pure joy – taking into account the sometimes strange intentional distorted mix you find in some heavy metal pieces.

In my opinion the balance between bass, mid-range and treble of the X3000 RC speakers is very good. You (almost) never loose the resolution of instruments covering different frequency regions. Some critics in the audio press was directed to problems in the mid-range frequency area. Personally, I cannot confirm this. If there is some problem, I would bet it appears in larger rooms. But this is not the target environment of these speakers. In my working room the mid range appears very present – both with vocals and classical instruments. But, probably I do not know what high end sound really is … 🙂

I could not hear any bass resonances so far – with standard settings. But when you place the speakers close to a wall or corner you may want to reduce the low bass (< 100 Hz) a bit.

Summary: I very seldom use my Sennheiser headphones these days. I really do like the sound of these speakers.

Are there weaknesses? Well, the X3000 speakers have a little weakness at very low volume in my opinion – the relative weight of mid-range vs. bass changes to bass. May have to do with reflections in the room (or my hearing). But the advantage is that I have so far not felt any need for setting the loudness option to on.

Future options?

Now, I come to a point which makes the Nupro boxes also an investment into some future wireless audio infrastructure: For 135€ you get the NuConnect trX Wireless transceiver (https://www.nubert.de/nuconnect-trx/p4210/). This little brick allows eg. for multi-room wireless solutions, but also for a transmission of digital signals from your PC or other sources to the active speakers.

Alternatively, you could also think about a combination of the trX Transceiver with the “NuControl 2 pre-amplifier” or (a cheaper) AmpX amplifier – both interesting products of Nubert. The latter amplifier uses in my understanding the same amplifying bricks as the active speakers, but now combined and supplemented with other electronics and thus turned into a full amplifier. The critics of this 700 € amplifier
are surprisingly good (see: https://www.nubert.de/nuconnect-ampx/p3646/?category=225).

So, the speakers mark an entrance into a much broader eco-system. In my case a completely digitized audio center on a Linux workstation combined with the trX transceiver, the X3000 speakers, the AmpX and other already existing audio equipment in different rooms appears on the horizon.

Sound support on my Linux system

Working with two soundcards
As I have two sound cards available I kept the three front speakers and the subwoofer box of my old Creative speaker set. The front speakers are placed on my working table – the subwoofer on the floor. This allows for astonishing surround feelings even with stereo sound. A little contribution of these desktop speakers to the louder sound coming from the X3000 in the background and you “swim in an extended audio space”. Interesting for some kinds of music. Here the Pulseaudio mixer (pavucontol) on a Linux system is of advantage to balance sound contributions between the different channels of the active sound cards accurately and al gusto.

Regarding the Linux sound support in general
As a Linux user I have made my peace with Pulseaudio, pavucontrol, the Ladspa equalizer and KDE’s Phonon over the years. It is sometimes still a mess to reproduce working settings for multiple multi-channel sound cards after system upgrades – but once PA and Phonon do work as expected, they do their work well.

The last time when strange things happened was when I upgraded to Opensuse Leap 15.2. Reason: Substantial changes to the Phonon user interface combined with a loss of differentiated setting options. As a result I had to manipulate the directives in the PA configuration files locally in my home directory and below /etc/pulse to get everything right again. The loss or hiding of options is a sickness that has spread itself over central KDE applications during the last years …. I always make a backup of my personal PA settings in my home directory and central Alsa and PA settings, now.

A major topic always is to find working settings which direct all sound output of any application through the Ladspa equalizer and then its output to multiple sound cards. On a KDE desktop such settings have to be consistent with Phonon settings – or the system will forget and overwrite your preferences with the next system start. Then you know that you have to manually change entries in the configuration files …

Be careful with your new speakers when experimenting and switching to new sound configurations – e.g. from analog to digital signals or changes of the the sound card or moving from PA to pure Alsa. The resulting sound and, in some cases, also distortions may be louder than you expect! Always turn the volume of your external speakers to a minimum ahead of such experiments – and also reduce the volume of sound sources to a very low level.

During the last three to four years I have used the PA mixer “pavucontrol” to control the relative volumes of sound sources (i.e. applications) and the audio channels of the different sound cards on my system. But be careful with your settings here, too. In the past Pulseaudio did some strange things with audio signals from the system – e.g. turning them suddenly to 100%. I have not experienced such things in the past 3 years, but Nupro X boxes are too expensive to risk any accidental damage.

The 15-band PA Ladspa equalizer helps to define some basic sound presets with very slight adjustments – the Nupro speakers basically do not need any significant changes from a flat frequency curve of the equalizer.

Note that changes of the equalizer’s settings may be accompanied by a general volume reduction on pavucontrol and a loss of relative channel weights there. Saving (and loosing) presets of the equalizer is no fun either. Some mess will probably always remain with PA … You just need to invest some time into balanced
presets – and then do not touch the central equalizer again.

The good thing is that you can change the direction of the output of applications to a sound sink directly with pavucontrol. So, you can configure the sound output of music applications to run through an equalizer or not. Again – be careful with the impact of such changes on the volume.

My favorite player still is Clementine at 48.000 or 96.000 Hz sampling rate. It offers its own equalizer. If you want to fiddle with an equalizer than use this one.

Sound extraction from CD recordings I do with K3B to “lossless” Ogg Vorbis or Flac encoding.

Conclusion

The active Nupro X 3000 RC speakers are worth the money you have to pay for them. They suit any Linux workstation well. The connection options to sound sources are manifold. Basic analog cable connections work, of course. An USB connection was directly supported on my Opensuse Linux. Optical and SPDIF coax connections to respective output connectors of sound cards work well, too. The possibility to create a full Wifi based solution with some extra (135€) equipment from Nubert is an additional goody.

The setup and the configuration of a speaker pair were very simple. You get an included 5 band equalizer in each speaker, which allows for basic room and position adjustment.

The general sound quality is in my opinion and for my ears excellent. The speakers easily fill small and even rooms up to 40 square meters with sound and provide a solid bass. The balance between bass, mid range and treble fits my ears. Single instruments in complicated arrangements are well distinguished. The positioning of sources in the stereo range is very good.

Links

https://www.igorslab.de/en/welcher-passt-besser-nubert-nupro-x-3000-rc-oder-nupro-x-4000-rc-und-die-qual-der-wahl-2/4/
https://www.lite-magazin.de/2018/11/aktivlautsprecher-nubert-nupro-x-3000-kompakte-komplettloesung-auf-audiophilem-niveau/
https://www.technic3d.com/ article/ audio/ lautsprecher/2087-test-aktive-kompaktbox-nubert-nupro-x-3000-rc/1.htm

Asus Xonar D2X unter Linux / Opensuse 13.1 – III – Alsa Upmix 2.0 auf 5.1

Im letzten Artikel dieser kleinen Serie zur Asus Sonar D2X
Asus Xonar D2X unter Linux / Opensuse 13.1 – II
hatte ich festgestellt,

  • dass Soundsignale neben der Digital-Analog Umwandlung nicht modifiziert werden und vom User nur hinsichtlich der Kanal-Lautstärke direkt beeinflusst werden können,
  • dass die Karte deshalb nur in Grenzen regelbar ist. So fehlen Möglichkeiten zur systemweiten Bass/Höhen-Regelung und die Varianten eines Stereo-Upmix auf mehr als 2 Kanäle sind begrenzt. So kann man über einen entsprechende Schalter nur auf 4.0 oder 6.0 Sound hochmixen. Ein Upmix auf 5.1 oder 7.1 Sound ist jedoch nicht direkt möglich.
  • dass ein Regler zur globalen Lautstärkeregelung, der das Lautstärkeverhältnis der Kanäle zueinander nicht verändert, fehlt.

Hinsichtlich der Klangeigenschaften und der Bass/Höhen-Verteilung müssen unter KDE player-spezifische “Equalizer” helfen, wie sie z.B. Clementine und Amarok zur Verfügung stellen (zumindest bei Einsatz des Gstreamer-Backends für Phonon).

Bzgl. eines weitergehenden Stereo-Upmixes und des fehlenden Reglers müssen wir auf die sehr weitgehenden Konfigurationsmöglichkeiten von ALSA zurückgreifen. Dazu brauchen wir kein Pulse-Audio! ALSA erlaubt dabei eine userspezifische Einstellung über eine Datei “~/.asoundrc“.

Upmix von 2.0-Stereo-Sound auf 5.1-Kanal-Sound (oder 7.1-Kanal-Sound) mittels ALSA und einer “~/.asoundrc”-Datei

Ich definiere und erläutere nachfolgend der Reihe nach die erforderlichen Abschnitte einer Datei “~/.asoundrc“, die unsere D2X-Karte dazu bringt, z.B. zusammen mit den Playern Clementine und Amarok unter KDE folgendes zu tun:

  1. Ergänzung von Kmix um einen Regler zur Lautstärkenänderung über alle Kanäle hinweg, wobei das Lautstärekverhältnis zwischen den Kanälen gleich bleibt.
  2. Upmix des Outputs von Stereo-Audio-Quellen zu einem 5.1 (bzw. 7.1) Sound.

Ich zeige dabei zunächst nur eine simple, aber wirkungsvolle Methode, die das generische ALSA Device “surround 5.1” und die Asus Sonar D2X als 6 Kanal-Gerät benutzt. Das ist für Leute interessant, die nur 5.1 Lautsprecher-Sets zur Verfügung haben. Aus dem unten Ausgeführten ergibt sich der 7.1-Fall (mittels “surround71”) jedoch ganz zwanglos.

Wer bzgl. ALSA und der “~/.asoundrc”-Datei kein Hintergrundswissen mitbringt, dem seien folgende Artikel empfohlen:
http://www.volkerschatz.com/noise/alsa.html
http://www.alsa-project.org/main/index.php/Asoundrc

Dort findet man einige grundsätzliche Erläuterungen. Für Entwickler erschließen sich danach ein paar Begrifflichkeiten ggf. auch über
http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html

Identifiziere die richtige Nummer der Soundkarte

Bevor wir die Datei “~/.asoundr” editieren, benötigen wir ein paar Informationen zu den vom System und ALSA erkannten Soundkarten. Hat man nämlich mehrere Soundkarten installiert, so ist die Nummer der Karte für die weitere ALSA-Konfiguration entscheidend.

Diesbezügliche Informationen erhalten wir z.B. YaST. Auf ALSA-Ebene geht dies direkter mit Hilfe des Kommandos “aplay -l“. (Hinweis: Das Paket “alsatools” sollte auf dem System installiert sein). Bei mir sieht das Ergebnis dieses Kommandos im Moment so aus:

**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: Audigy2 [SB Audigy 2 
Platinum [SB0240P]], Gerät 0: emu10k1 [ADC Capture/Standard PCM Playback]
  Sub-Geräte: 32/32
  Sub-Gerät #0: subdevice #0
  Sub-Gerät #1: subdevice #1
  Sub-Gerät #2: subdevice #2
  Sub-Gerät #3: subdevice #3
  Sub-Gerät #4: subdevice #4
  Sub-Gerät #5: subdevice #5
  Sub-Gerät #6: subdevice #6
  Sub-Gerät #7: subdevice #7
  Sub-Gerät #8: subdevice #8
  Sub-Gerät #9: subdevice #9
  Sub-Gerät #10: subdevice #10
  Sub-Gerät #11: subdevice #11
  Sub-Gerät #12: subdevice #12
  Sub-Gerät #13: subdevice #13
  Sub-Gerät #14: subdevice #14
  Sub-Gerät #15: subdevice #15
  Sub-Gerät #16: subdevice #16
  Sub-Gerät #17: subdevice #17
  Sub-Gerät #18: subdevice #18
  Sub-Gerät #19: subdevice #19
  Sub-Gerät #20: subdevice #20
  Sub-Gerät #21: subdevice #21
  Sub-Gerät #22: subdevice #22
  Sub-Gerät #23: subdevice #23
  Sub-Gerät #24: subdevice #24
  Sub-Gerät #25: subdevice #25
  Sub-Gerät #26: subdevice #26
  Sub-Gerät #27: subdevice #27
  Sub-Gerät #28: subdevice #28
  Sub-Gerät #29: subdevice #29
  Sub-Gerät #30: subdevice #30
  Sub-Gerät #31: subdevice #31
Karte 0: Audigy2 [SB Audigy 2 Platinum [SB0240P]], Gerät 2: emu10k1 efx [Multichannel Capture/PT Playback]
  Sub-Geräte: 8/8
  Sub-Gerät #0: subdevice #0
  Sub-Gerät #1: subdevice #1
  Sub-Gerät #2: subdevice #2
  Sub-Gerät #3: subdevice #3
  Sub-Gerät #4: subdevice #4
  Sub-Gerät #5: subdevice #5
  Sub-Gerät #6: subdevice #6
  Sub-Gerät #7: subdevice #7
Karte 0: Audigy2 [SB Audigy 2 Platinum [SB0240P]], Gerät 3: emu10k1 [Multichannel Playback]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: Audigy2 [SB Audigy 2 Platinum [SB0240P]], Gerät 4: p16v [p16v]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: D2X [Xonar D2X], Gerät 0: Multichannel [Multichannel]
  Sub-Geräte: 0/1
  Sub-Gerät #0: subdevice #0
Karte 1: D2X [Xonar D2X], Gerät 1: Digital [Digital]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 2: NVidia [HDA NVidia], Gerät 3: HDMI 0 [HDMI 0]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 2: NVidia [HDA NVidia], Gerät 7: HDMI 1 [HDMI 1]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 2: NVidia [HDA NVidia], Gerät 8: HDMI 2 [HDMI 2]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 2: NVidia [HDA NVidia], Gerät 9: HDMI 3 [HDMI 3]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

Hier sieht man, dass die D2X als Karte 1 erkannt wurde. Weitere Geräte sind eine alte, liebgewonnene Audigy 2 und eine Onboard-Karte. Man erkennt ferner, dass jede Karte (im Besonderen abwer die Audigy-Karte) eine Reihe untergeordneter Geräte mit weiteren “Sub Devices” beherbergen. Die D2X erscheint mit ihren 2 “Geräten” unter Linux eher als eine sehr schlanke Karte.

Auf einem System mit genau nur einer Soundkarte wäre die Soundkarten-Nummer im Gegensatz zum obigen Befund “0” gewesen.

Weitere Kommandos, die die Reihenfolge der Karten unter einem Linux-System und zugehörige Module anzeigen, sind:

cat /proc/asound/cards

mytux:~ # cat /proc/asound/cards
 0 [D2X            ]: AV200 - Xonar D2X
                      Asus Virtuoso 200 at 0x7e00, irq 16
 1 [Audigy2        ]: Audigy2 - SB Audigy 2 Platinum [SB0240P]
                      SB Audigy 2 Platinum [SB0240P] (rev.4, serial:0x10021102) at 0x8f00, irq 16
 2 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfaffc000 irq 17

cat /proc/asound/modules

mytux:~ # cat /proc/asound/modules
 0 snd_virtuoso
 1 snd_emu10k1
 2 snd_hda_intel

An letzterer Ausgabe erkennt man übrigens auch, dass das für die Asus Xonar D2X geladene Kernelmodul den Namen “snd_virtuoso” trägt. Dieser Befund ist natürlich
konsistent zu der von uns in
Asus Xonar D2X unter Linux / Opensuse 13.1 – II
per YaST vorgenommenen Sound-Karten-Konfiguration.

Bei Bedarf die Reihenfolge der Soundkarten ändern

Dass die eigentlich bevorzugte Xonar D2X-Karte in meinem System nicht als Karte “0” definiert ist, mag dem einen oder anderen Leser suspekt vorkommen. Nicht ganz zu Unrecht:

Bei dem heutigen Mischmasch aus Phonon, einer definierten Reihenfolge aus Phonon-Devices, diversen Phonon-Backends, Resten von Pulse-Audio und ALSA kann die eine oder andere KDE- oder Gnome-Applikation von sich aus schon mal als Default die Karte “0” (oder untergeordnete Geräte) ansprechen; dann müssen da natürlich auch Lautsprecher angeschlossen sein, damit man überhaupt was zu hören bekommt.

Hinzu kommt ein seltsamer Mix aus erkannten reinen ALSA-Devices (mit kleinem ALSA-Logo) und Phonon/KDE-Devices (versehen mit einem kleinen KDE-Logo) in den KDE-weiten “Multimedia (= Phonon)-Einstellungen (s. die Abbildung weiter unten). Auch wenn man die Reihenfolge der bevorzugten Devices dort so definiert, das die ALSA-Devices ganz oben stehen, wird das nicht zwingend von jeder Applikation beachtet. Manche Applikationen erlauben zudem eine spezifische eigene Auswahl des Sound-Gerätes. Wer nicht an jeder Soundkarte Lautsprecher angeschlossen hat und auf Probleme mit Applikationen stößt, der möge die D2X zur Sicherheit also als Karte “0” definieren und die weiter unten folgenden HW-Angaben in der “~/.asoundrc” entsprechend anpassen.

Leicht gesagt – aber wie ändert man eigentlich die Reihenfolge der erkannten Soundkarten im System?

Unter Opensuse kann die Reihenfolge der Karten am einfachsten mit “YaST >> Sound” beeinflusst werden. Unter anderen Systemen ist es u.U. etwas schwieriger. Letztlich läuft die Sache auf Einstellungen in einer sound-spezifischen Datei unter dem Verzeichnis “/etc/modprobe.d/” hinaus. Übersichtliche Hinweise zu Ubuntu findet man hier:
http://wiki.ubuntuusers.de/Soundkarten_konfigurieren
Siehe dort den Abschnitt “Reihenfolge (Priorität) von Soundkarten Ändern”. Die dort beschriebenen Einstellungen gelten vermutlich auch für andere Debian-basierte Systeme; sie verdeutlichen in jedem Fall das Prinzip.

Unter Opensuse 13.1 heißt die zu modifizierende Datei dagegen “/etc/modprobe.d/50-sound.conf”. Sie sieht in meinem Fall so aus:

options snd slots=snd-emu10k1,snd-virtuoso
# Cw4d.j3r564qQSgF:Virtuoso 200 (Xonar D2X)
alias snd-card-1 snd-virtuoso
# cuhJ.vIcU+IM+7DC:SB Audigy2 Platinum
alias snd-card-0 snd-emu10k1

Für eine Reihenfolge, bei der die D2X an erster Stelle kommt, müsste der Inhalt wie folgt abgeändert werden:

options snd slots=snd-virtuoso,snd-emu10k1
# cuhJ.vIcU+IM+7DC:SB Audigy2 Platinum
alias snd-card-1 snd-emu10k1
# Cw4d.j3r564qQSgF:Virtuoso 200 (Xonar D2X)
alias snd-card-0 snd-virtuoso

Nach einem Reboot ist dann die in dieser Datei definierte Reihenfolge gültig. Nebenbei: Die seltsamen Buchstaben-Zahlen-Kombinationen für die Karten stammen aus “udev” und dort hinterlegten Infos.

Beziehung der Soundkarten-Nummer zu ALSA-Definitionen

Wie die Nummer der Karte und ihrer Subdevices in ALSA-Kennungen eingehen, die in einer “.asoundrc” verwendet werden können, erfährt man hier
http://www.alsa-project.org/main/index.php/Asoundrc
In diesem Artikel kann man auch nachlesen, was sog. “Plugin” PCM Devices sind. Derartige PCM Devices (vom Type “plug”) werden wir weiter unten in einer hierarchischen Abfolge definieren und miteinander kombinieren. Vereinfacht gilt:

PCM Devices (bestimmter verschiedener Typen, u.a. “plug”) können sich unter ALSA jeweils ein sogenanntes “Slave Device” zunutze machen und den Sound an dieses Device gemäß vorgegebener Einstellungen weiterleiten. Das Ganze kann über mehrere Ebenen hinweg erfolgen.

Definition eines Full Duplex Devices als Ziel des Upmixes

Wir beginnen nun mit dem Editieren der Datei ~/.asoundrc. In einem ersten Abschnitt legen wir ein Full Duplex Device (Plugin) namens “dmix51” fest, das wir mit unser Hardware verknüpfen. Zu “Full Duplex” siehe z.B.:
http://www.ehow.com/how_7763496_check-sound-card-fullduplex.html.

Der Typ (= “type”), den man bei der Konfiguration eines solchen Full-Duplex-Devices angeben muss, ist “asym”. Siehe http://alsa.opensrc.org/Asym. Plugins vom Typ “asym” bestehen aus zwei Komponenten, die definiert werden müssen – einer “playback”– und einer “capture”-Komponente. Am wichtigsten für unsere Zwecke ist im Moment die “playback”-Komponente. Zu dieser legen wir diverse Eigenschaften fest, während wir bei der “capture”-Komponente lediglich auf die vorhandene Hardware verweisen.

Das “playback”-Plugin ist wiederum vom Typ “dmix”. Siehe hierzu:
http://alsa.opensrc.org/Dmix.
Wichtig ist, dass ALSA für solche definierten Devices mehrere Soundstreams aus unterschiedlichen Quellen direkt miteinander mixen, also störungsfrei überlagern kann. Dafür braucht man Pulseaudio überhaupt nicht. So ist es dann z.B. möglich, parallel Sound von Clementine und von Amarok oder anderen Quellen abspielen zu lassen. Unter Kmix lassen sich diese Quellen dann zudem gegeneinander von der Lautstärke her abmischen.

Sog. “ipc”-Daten regeln die Zugriffsmöglichkeiten. Siehe hierzu: http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html und dort den Abschnitt zu “dmix”.

pcm.dmix51 {
	type asym
	
	playback.pcm {
		type dmix

		ipc_key 6789123
		ipc_perm 0660
		ipc_gid audio

		slave {
			# 6 channels entsprechen surround51, 8 surround71
			channels 6
			pcm {
				#format S32_LE
				format S16_LE
				
				#rate 44100
				rate 48000

				type hw
				card 1
				device 0
				subdevice 0
			}

			period_size 1024
			buffer_size 16384
		}
	}
	capture.pcm "hw:1"
}
ctl.dmix51 {
	type hw
	card 1
}

Der Name “dmix51” ist willkürlich gewählt und deutet an, dass wir hier 6 Kanäle voraussetzen und nutzen wollen. Festgelegt wird Letzteres über das “channels”-Statement im inkludierten “slave” :

channels 6

Schließt man eine 7.1-Anlage an die Xonar D2X an, so nutzt man natürlich ein analog definiertes Device “dmix71” mit “channels 8”. Eine Darstellung des länglichen Codes für ein “dmix71” hierfür habe ich mir aus Platz- und Wiederholungsgründen erspart.

Innerhalb der “playback”-Komponente wird ein Slave PCM Device vom Typ “hw” (Hardware) definiert. Bzgl. der angegebenen Alternativen zu den Sampling-Parametern für die gemixten Streams und auch zum Buffering muss man ein wenig experimentieren – u.a. um stockenden Sound oder “Crackling” zu vermeiden. Siehe etwa die Kommentare in einer analogen Definition in

https://dl.dropboxusercontent.com/u/18371907/asoundrc.

Die Definition des Control Devices “ctl.dmix51” am Ende haben wir zur Sicherheit vorgenommen. Programme wie “Jack” benötigen diese Festlegung gegebenenfalls.

Ok,
nun haben wir ein “dmix”-PCM Device, das auf unsere Karte verweist und das in der Lage ist, eingehende Streams aus unterschiedlichen Quellen zu einem Stream zu resamplen.

Kette aus Default und Slave-Devices in der “~/.asoundrc”

Applikationen wie Clementine nutzen ohne weitere detaillierte Konfiguration ein ALSA Default Device. Amarok wertet zudem die KDE-Einstellungen zum Phonon Standard Device aus. Das von uns nun vorgegebene ALSA Default Device sollte nach Abwickeln einer Kette von hierarchischen Slave Device Definitionen letztich zu dem vorgesehenen HW-Device führen. Dies erreichen wir nachfolgend, indem wir die Slave-Kette am Ende zu unserem bereits definierten “dmix51” PCM Device führen.

pcm.!default {
	type softvol
	slave.pcm "simple51"
# 	slave.pcm "simple71"
#	slave.pcm "ctrl51"

	control {
	  name "SW master"
	  card 1
	 }
	 
   hint {
    show on
    description "ALSA_DEFAULT"
  }
}

# speaker-test -D simple51 -c 2 -t wav
pcm.simple51 {
	type plug
	slave.pcm "surround51"
	slave.channels 6
	route_policy duplicate
}
pcm.simple71 {
	type plug
	slave.pcm "surround71"
	slave.channels 8
	route_policy duplicate
}
pcm.!surround20 {
	type plug
	slave.pcm "dmix51"
	# slave.pcm "dmix71"
}

pcm.!surround40 {
	type plug
	slave.pcm "dmix51"
	# slave.pcm "dmix71"
}

pcm.!surround51 {
	type plug
	slave.pcm "dmix51"
	# slave.pcm "dmix71"
}

pcm.!surround71 {
	type plug
	slave.pcm "dmix71"
}

# speaker-test -D ctrl51 -c 2 -t wav
pcm.ctrl51 {
	type plug
	slave.pcm "surround51"
	slave.channels 6
	type route
    ttable.0.0 1
    ttable.1.1 1
    ttable.0.2 1
    ttable.1.3 1
    ttable.0.4 0.5
    ttable.1.4 0.5	
    ttable.0.5 0.5
    ttable.1.5 0.5	
}

pcm.wine {
	type plug
	# Output directly, for performance
	#slave.pcm "hw:0"
	slave.pcm "surround20"
}

Hinweis: “#” leitet einen Kommentar ein.

Was passiert hier ? Zunächst gilt:

  1. surround51” ist eines der generischen ALSA Devices – siehe http://alsa.opensrc.org/SurroundSound.
  2. Das Ausrufezeichen vor den PCM Plugin-Namen leitet eine neue Device Definition mit (ggf.) Parameterüberschreibung ein. Siehe http://www.volkerschatz.com/noise/alsa.html und dort den Abschnitt über “Advanced configuration file features”.

Mit diesem Wissen ausgestattet, besprechen wir nun einzelne Abschnitte.

Definition des Default Devices als “softvol” Device mit kanalübergreifendem Lautstärkeregler

Wir definieren im ersten Block also das PCM Standard (=Default) Device “pcm.!default” neu und zwar so, dass es offenbar vom Typ “softvol” sein soll. Letzteres bedeutet, dass ein “volume”-Regler (also Lautstärkeregler) auf SW-Basis eingeführt und einer HW-Einheit zugeordnet wird. Siehe hierzu: http://alsa.opensrc.org/Softvol.

Der über “control” für unsere Soundkarte 1 definierte Regler steht dann z.B. in Mixer-GUIs wie “kmix” oder “alsamix” als verwendbarer Regler zur Verfügung. Warum wollen wir einen solchen Regler? Weil die Kanal-Splittung des Standard-Master-Reglers der D2X alle Kanäle auf das gleiche Volumen hebt, sobald er betätigt wird. Wir möchten aber einen (zusätzlichen) Regler, der nach einem Split des Master auf einzelnen Kanäle das relative Lautstärkeverhältnis der Kanäle zueinander aufrecht erhält. Genau dies wird der von uns definierte Regler leisten. Wir haben ihn deshalb als “SW Master” bezeichnet.

Unser “pcm.!default”-
Device bindet aber auch ein Slave Device vom Typ “plug” ein, nämlich “pcm.simple51”, dessen Eigenschaften wir in einem weiteren, entsprechenden Abschnitt definiert haben. Will man eine 7.1-Konfiguration, so ist die Zeile

slave.pcm “simple51”

auszukommentieren und durch die im Moment kommentierte Zeile mit

slave.pcm “simple71”

zu ersetzen.

Upmix über ein zwischengeschobenes Plugin, das Stereo-Eingangskanäle nach Upmix an das generische Device “surround51” bzw. “surround71” weiterleitet

Das PCM Device “simple51” benutzt als Slave das (redefinierte) “Surround51”-Plugin und gibt dafür vor,

  • dass 6 Kanäle benutzt werden sollen und
  • dass eine Kanal-Duplikation vorgenommen werden soll.

Letzteres drückt sich in dem “route_policy”-Statement aus:

route_policy duplicate

Hinweise zur Bedeutung des Parameters “route_policy” und den verschiedenen dafür vergebbaren Werten findet man in http://alsa.opensrc.org/Asoundrc (Abschnitt “Plugins”).

Die Einstellung “duplicate” führt zu einer automatischen Generierung von sog. “ttable”-Einstellungen, die den Upmix der ersten beiden Kanäle auf alle folgenden in einer einfachen, vordefinierten Lautstärkebalance vornehmen.

“ttable”-Vorgaben legen fest, welcher vorhandene Kanal durch ALSA in welcher Form (z.B. mit welcher Lautstärke) auf einen anderen Kanal abgebildet werden soll. Wie man die “ttable”-Einstellungen in der “~/.asoundrc” bei Bedarf explizit ändern kann, beschreibe ich kurz weiter unten. Zwingend ist eine eigene “ttable”-Abmischung über die “.asoundrc” aber nicht erforderlich, da wir ja zum relativen Lautstärke-Mix der D2X-Kanäle auch unsere Regler unter Kmix (oder einer anderen Mixer-GUI) zur Verfügung haben.

Im 7.1 Fall hätte unser “pcm.!default” in natürlich analoger Weise auf das angegebene “pcm.simple71” verwiesen und Letzteres wiederum auf das ebenfalls angegebene “pcm.!surround71”.

Redefinition des generischen “surround51”- bzw. “surround71” Devices

Wohin verweist dann das redefinierte “surround51”-Plugin? Natürlich auf unser “dmix51” Device, das an unsere Soundkarte gebunden wurde und 6 Kanäle bereitstellt. (Im 7.1-Fall verweist “pcm.!surround71” natürlich auf ein vorzudefinierendes “dmix71”).

Insgesamt hat unsere “~/.asoundrc” also folgende Device-Kette etabliert:

pcm!default => pcm.simple51 (Upmix) => pcm.!surround51 => pcm.dmix51

Siehe zum hier gewählten Vorgehen für den Default-Upmix auch :
http://forums.bodhilinux.com/index.php?/topic/2493-how-to-51-surround-sound-with-alsa/
http://www.gentoo-wiki.info/HOWTO_Surround_Sound
https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture/Example_Configurations

Warum ein zwischengeschobenes Plugin “pcm.simple51” bzw. “pcm.simple71” für den Upmix?

Der aufmerksame Leser wird fragen, warum das Plugin “simple51” (bzw. “simple71”) überhaupt dazwischen geschoben werden muss. Der einfache Grund dafür ist, dass wir unser 6 Kanal-“dmix51”-Gerät (bzw. unser 8 Kanal “dmix71 Gerät) ja auch ohne Upmix von expliziten Mehrkanal-Sound-Quellen unseres PCs nutzen lassen wollen, für die gar kein 2.0=>5.1 Upmix nötig ist und die von Haus aus z.B. das generische “surround51”-Device ansprechen. Beispiel hierfür
wären etwa Video-Player.

Insgesamt fangen die Redefinitionen von “surround20”, “surround40” und eben “surround51” den Upmix ab. Wird eines dieser generischen ALSA-Geräte explizit von einem Player angesprochen, wird es direkt an “dmix51” weitergereicht. (Für 7.1 kommentiert man jeweils die “dmix51”-Zeile und unkommentiert die jeweilige “dmix71”-Zeile).

Nun kommt als Nächstes natürlich die Frage, warum ich die generischen “surround40” und “surround20” nicht auf 5.1 (bzw. 7.1) hochmixe. Gute Frage! Ich lasse das in der Regel bleiben, weil ich dadurch beim Hören direkt erfahre, welche Sound-Applikation die genannten generischen Geräte explizit (also anstelle des ALSA-Default-Devices) anspricht. Ein “40=>51”-Upmix erfordert außerdem spezifischere “ttable”-Einstellungen. “surround40” kommt ferner so gut wie nie vor. Der geneigte Leser kann ja aber bei Lust und Laune zumindest schon mal “surround20” auf “simple51” (bzw. “simple71”) umlenken!

Einstellen des ALSA Default Devices als Phonon Default Device für geeignete Sound-Quellen unter KDE

Bleibt noch ein wichtiger Schritt. Wer hat denn festgelegt, dass KDE oder KDE-Anwendungen – z.B. für Musik – überhaupt das ALSA Default Device nutzen sollen? Bislang niemand ! Deshalb müssen wir das ALSA Default Device explizit an die Spitze der von Phonon erkannten Devices für “Audio=>Musik”-Quellen zu stellen. Dies geschieht über die KDE Systemeinstellungen (aufrufbar über das Kommando “systemsettings”) und dort unter “Hardware=> Multimedia”.

phonon_600

Ergänzung 20.12.2014: Anzeige der ALSA PCM Devices in den Phonon-Einstellungen von KDE

Nachdem ich auf einem meiner Systeme testweise Opensuse 13.2 musste ich feststellen, dass immer weniger erkannte Alsa Devices unter Phonon angezeigt werden. Das bringt uns zu der Frage, wie man eigentlich die in der “~/.asoundrc” definierten PCM Devices in Phonon zur Anzeige bringt. Dies funktioniert für unser redefiniertes Default Device z.B. über die Ergänzung

   
hint {
    show on
    description "ALSA_DEFAULT"
  }

innerhalb des Definitionsbereichs. Siehe oben. Ich habe den Abschnitt für “pcm.!default” ergänzt. Die “hint”-Ergänzung scheint ein allgemeiner Mechanismus zu sein. Er funktioniert nach ersten Tests z.B. auch für “pcm.simple51”. Das kann jeder Leser mal selbst ausprobieren.

Den Hinweis auf “hint” habe ich (gut versteckt) in einem der Abschnitte von
https://intern.radiotux.de/Dmix
gefunden. Siehe auch
http://wiki.ubuntuusers.de/.asoundrc
In beiden Fällen nach “phonon” suchen.

Findet man also aus irgendwelchen Gründen das Alsa Default Device nicht unter den Phonon-Geräten, dei unter den KDE Multimedia-Einstellungen gezeigt werden, so kann man eine Anzeige unseres selbst definierten PCM Devices über “hint” veranlassen, dann in den Phonon-Einstellungen testen und in der Priorität ganz nach oben schieben.

Ähnliche Einstellungen für das von Phonon zu priorisierende Gerät nimmt man für die Punkte “Benachrichtigungen”, “Kommunikation” und “Zugangshilfen” vor.

Für “Audio=>Video”- Quellen wird man dagegen direkt eines der erkannten Multichannel-Geräte auswählen. Da wir u.a. das “surround71” Device nicht umgelenkt haben, können wir (bei entsprechender Anzahl an angeschlossenen Lautsprechern) dann auch vollen 7.1-Kanal-Sound erhalten. Bei Spielen wird man normalerweise auch ein Multichannel-Gerät und nicht das “ALSA-Default Device” verwenden. Für Spiele mit reinem Stereo kann man ja bei Bedarf umschalten.

Bezieht man Phonon mit ein, so sieht unsere
eigentliche Geräte-Kette also wie folgt aus:

KDE => Phonon => Musik => ALSA Default Device => Redefiniertes ALSA Default Device per ~/.asoundrc == pcm!default => pcm.simple51 (Upmix) => pcm.!surround51 => pcm.dmix51 => D2X, genutzt als 6-Kanal-Gerät

Eigentlich gar nicht so komplex. Phonon gibt uns an dieser Stelle einfach weitere Freiheitsgrade.

Damit unsere Einstellungen in der “~/.asoundrc” nun in Gänze wirksam werden müssen wir uns von KDE abmelden und uns danach wieder einloggen. Ein Reboot (oder einfacher ein Neustart des Soundsystems) ist nur nötig, wenn wir die Reihenfolge von Soundkarten vertauscht haben sollten.

Resultierende erweiterte Darstellung unter Kmix

Haben wir alles richtig gemacht, so ergibt sich etwa folgendes Bild unter Kmix :

kmix3_600

Der rechte Bereich der Mixer-GUI wurde abgeschnitten. Man erkennt unschwer unseren SW-Lautstärkeregler “SW Master”, der nun kanalübergreifend funktioniert.

Wir testen das Ganze etwa mit Clementine und spielen ein paar Soundtracks ab. Unter “Werkzeuge >> Einstellungen >> Wiedergabe” sollte als Ausgabe-Plugin “Audio sink (ALSA)” festgelegt sein:

clementine

Leider erfolgte in meinem Fall die globale Lautstärke-Regelung über den rechten der 2 zu “SW Master” angebotenen Regler, der eigentlich für Aufnahmen gedacht ist. Ich habe noch nicht herausgefunden, wie ich das switchen kann – aber man muss es ja nur wissen.

Man kann nun über “Einstellungen > Hauptkanal auswählen” unseren Regler “SW Master” auswählen. Er wird dann künftig angezeigt, wenn wir auf das “Kmix”-Symbol im Systemsteuerungsabschnitt der KDE-Kontroll-Leiste klicken:

kmix1

Damit ist (zumindest für das ALSA Default Device eines unserer Ziele für eine bessere Nutzung der Xonar D2X – nämlich die kanalübergreifende Lautstärkeregelung – erreicht.

5.1 Surround Sound und Verkabelung – ein Hinweis

Meine Standard-Lautsprecheranlage am Arbeitsplatz ist von Creative und hat ein 5.1-Anschluss-Kabel für die Soundkarte. Am Anlagenanschluss wird jedoch auch ein Kabel für die Side-Kanäle abgeführt; das System ist intern 7.1-Upmix-fähig. Ein wenig schwachsinnig; aber sehr günstig erstanden 🙂 .

Ich weiss nicht, ob es an dieser seltsamen Kombination liegt, aber die Regelung der 5.1-Kanäle funktioniert nur dann richtig, wenn man die Kabel bei Draufsicht in folgender Reihenfolge in die Analog-Ausgänge der D2X steckt – dabei blicke ich von hinten auf die Karte :

  • Grün (Creative-Front) – auf grünen Ausgang der Karte (D2X – Front)
  • Schwarz (Creative-Rear) – auf den orangen Ausgang der Karte (D2X-Side)
  • Orange (Creative-Center/Subwoofer) – auf den weißen Ausgang der Karte (D2X – Center/Subwoofer)

Das Stecken des schwarzen Kables ist nicht konsistent zur D2X-Beschreibung – funktioniert aber mit den angegebenen Einstellungen in der “~/.asoundrc”. Hier ist die Kanalnummerierung des ALSA-Treibers wohl etwas neben der Intention von Asus. Oder die im Internet verfügbare Beschreibung zur D2X stimmt nicht. Na ja, stört
mich nicht.

Sollte jemand mit einer 5.1-Anlage an der D2X-Probleme mit den Lautsprechern und/oder deren Regelung haben, so sollte er in jedem Fall mal die angegebene Stecker-Reihenfolge ausprobieren.

Übrigens: Bei einem 7.1-Upmix und einem physikalischen 5.1-Abgriff relativiert sich das Ganze dann sowieso.

Ich habe den Befund aber als Hinweis darauf genommen, dass es beim Ansehen von Filmen mit Surround Sound wichtig sein kann, die Lautsprecher-Reihenfolge zu prüfen. Hierzu dann bitte das Progrämmchen “speaker-test” einsetzen. Für 5.1 und unseren einfachen Upmix über “surround51” in der Form:

speaker-test -c 6 -D surround51 -t wav

Natürlich kann man mit

speaker-test -c 6 -D simple51 -t wav

auch unser “simple51” PCM testen.

Ein paar Worte zum Kopfhörer-Anschluss

Es gibt ja bei der D2X keine Möglichkeit, einen Ausgang auf das Frontpanel des PCs zu legen. Kopfhörer muss man also normalerweise (zumindest ohne Elektronik-Bastelei) hinten an der Karte an den Stereo-Ausgang (grün) legen.

Ich habe Gott sei Dank am flexiblen Lautstärkeregler der Lautsprecher-Anlage auch einen Kopfhörerausgang, so dass ich den Kopfhörer nicht hinten in einen der analogen Ausgänge der Karte selbst einstöpseln muss.

Aber auch dem, der das nicht haben sollte, hilft ggf. unser ALSA-Upmix: Bei einem 7.1-Upmix per ALSA und einem physikalischen 5.1-Abgriff wäre auch noch ein Ausgang frei, den man für die Kopfhörer benutzen könnte – auch permanent. Für diesen Ausgang muss man dann aber die Lautstärken-Regelung im Griff haben. Also nach Kopfhörer-Benutzung zur Sicherheit auf 0 stellen.

Direkte Beeinflussung der Signalstärke bei der Kanalzuordnung im Upmix durch ttable-Anweisungen

Der aufmerksame Leser wird sich gewundert haben, dass das oben angegebene PCM Device “pcm.ctrl51” unerwähnt blieb. Ich gehe darauf kurz ein. Um “pcm.ctrl51” zu nutzen, muss man “simple51” als Slave in der “pcm.!default”-Definition auskommentieren und den Kommentar aus der Zeile mit

slave.pcm “ctrl51”

entfernen.

Der Abschnitt zu “pcm.ctrl51” enthält den bekannten Slave “surround51” und explizite “ttable”-Definitionen. Wie z.B.:

#front     
    ttable.0.0 1.0
    ttable.1.1 1.0
#rear left    
    ttable.0.2 1.0
#rear right    
    ttable.1.3 1.0
#center    
    ttable.0.4 0.5
    ttable.1.4 0.5	
#bass    
    ttable.0.5 0.2
    ttable.1.5 0.2

Man erkennt, wie die die Input-Kanäle “0” und “1” (links auf den ersten Punkt in jeder Zeile folgend) auf die 6 Output-Kanäle “0” bis “5” des Slaves verteilt werden. Die Werte ganz rechts in jeder ttable-Zeile geben (lineare elektronische) Signalstärkenverhältnisse an, die der User nun selbst anpassen kann, statt sich auf die “route_policy” von “simple51” zu verlassen. Die weitere Lautstärke-Regelung jedes Kanals auf diesem Grundmix durch die Regler von Kmix bleibt natürlich unbenommen.

Weitere Informationen hierzu findet ihr unter
http://drona.csa.iisc.ernet.in/~uday/alsamch.shtml
Analoge Einstellungen für einen 7.1-Upmix sollten für den Leser kein Problem mehr darstellen.

Viel Spaß nun mit der Nutzung der Xonar D2X, der vereinfachten, kanalübergreifenden Lautstärke-Regelung und dem vorgenommenen 2.0=>5.1 bzw. 2.0=>7.1 “Surround”-Upmix!

Wenn ich Zeit finden sollte, gehe ich einem weiteren Artikel auf weitere Einstellungen zum Upmix und ggf. auch auf die Einbindung von “alsaequ” ein. Wird aber mit Sicherheit ein wenig dauern …

Asus Xonar D2X unter Linux / Opensuse 13.1 – II

In meinem ersten Artikel über die die Asus Xonar D2X unter Linux
Asus Xonar D2X unter Linux / Opensuse 13.1 – I
hatte ich – etwas oberflächlich und subjektiv – ein paar Aspekte dieser Karte mit denen konkurrierender Karten von Creative verglichen. Nun wenden wir uns folgenden Fragen zu:

  • der Inbetriebnahme der Karte unter Opensuse/KDE über YaST2
  • Wie präsentiert sich die Karte unter KDE – im speziellen unter KMix ?

Bei all dem, was ich nachfolgend darstelle, gilt: Pulseaudio ist natürlich vollständig deaktiviert :-).

Sonst erhält man unter KDE nicht den direkten Zugriff auf die dargestellten Features. Zudem produziert eine Trennung der Soundkanal-Regler unter “pavucontrol” von Pulseaudio für avanciertere Karten faktisch nur Mist. Und wer will schon anfangen, an den schwer zu verstehenden Pulseaudio-Systemdateien herumzufrickeln ?

Ich verlasse mich da lieber auf ALSA und seine (halbwegs) verständlichen Konfigurationsmöglichkeiten – das Leben ist einfach zu kurz, als dass ich mich als normaler End User mit einer fehlerhaften bis nicht funktionierenden und z.T. völlig überzogenen Abstraktionsschicht des Soundsystems namens Pulseaudio herumschlagen möchte. Das Teil hat mich schon zu viele Nerven gekostet … weg damit.

Unter Opensuse 13.1 deaktiviert man Pulseaudio am einfachsten über

YaST2 > Hardware > Sound > Other > PulseAudio Configuration

und durch Betätigen der dortigen Checkbox. Ansonsten findet man Anregungen zur Deaktivierung unter
http://www.beastwithin.org/blogs/wolfheadofselfrepair/2013/07/pulseaudio-insidious-linux-malware

Im Linux-System sollte man für den ordnungsgemäßen Soundbetrieb ferner die erforderlichen Module von ALSA und der “gstreamer”-Software aus einem der einschlägigen Repositories (SuSE Update, Packman, SuSE Multimedia Libs) konsistent installiert haben, z.B.von

  • http://download.opensuse.org/update/13.1/
  • http://download.opensuse.org/repositories/multimedia:/libs/openSUSE_13.1/
  • http://ftp.gwdg.de/pub/linux/packman/suse/openSUSE_13.1/

Bei einer Standardinstallation von Opensuse 13.1 sind die minimal erforderlichen Alsa und Gstreamer-Module schon installiert. Es lohnt sich jedoch, sich mal in anderen als den Opensuse Basis-Repositories nach Erweiterungen umzusehen.

“Gstreamer” wird als Backend für KDE’s Soundabstraktionsschicht “Phonon” eingesetzt. Phonon nutzt letztlich wiederum ALSA – soweit installiert. Das Gstreamer Backend funktioniert übrigens nach meiner Erfahrung inzwischen sehr viel besser als noch vor ca. 2 Jahren, als es unter KDE das “xine”-Backend für Phonon dauerhaft ersetzte. Für mich ein Muster-Beispiel für einen nach einer Übergangszeit wirklich gelungenen Ersatz einer wichtigen Opensource-Komponente durch einen andere.

Grundinstallation der Xonar D2X unter OS 13.1

Voraussetzung für das folgende ist natürlich eine abgeschlossene Installation der Hardware – also der Soundkarte in einem frein PCIe-X1 slot. Man achte dabei auf ein eventuelles boardspezifisches “lane und bandwidth sharing” mit anderen Slots.

Die Inbetriebnahme der Xonar D2X unter Opensuse 13.1 ist relativ simpel. Unter KDE 4 führt man die Basisinstallation z.B. mit Hilfe von

YaST2 > Hardware > Sound

durch.
Man wählt dann die Soundkarte Virtuoso 200 (Xonar D2X) aus der Liste

yast_sound_1_600

aus, drückt dann auf den “Edit-Button” und bestätigt die nachfolgenden Dialoge. Die Soundkarte wird nach dem Verlassen des Konfigurations-Dialogs dann auch direkt als reines Alsa Device gestartet. Benötigt werden für den reibungslosen Betrieb der Asus D2X unter KDE zumindest die Kernelmodule
“snd_virtuoso”, “snd”, “sndcore”, “snd_oxygen_lib”, “snd_pcm”, “snd_page_alloc”, “snd_timer”.
Siehe die Liste der geladenen Kernelmodule weiter unten. Diejenigen, die mit Midi operieren wollen (extra “Board” im Lieferumfang) sollten (vermutlich) auch die Module “snd_mpu401_uart”,”snd_rawmidi”, “snd_seq_device” und “snd_seq” zum Einsatz bringen.

YaST startet je nach erkannter HW diese Module. Sind in einem System mehrere Soundkarten im Spiel erweitert sich die Modulliste entsprechend. Hat man mehrere Soundkarten aktiv, so kann man mit Hilfe von

YaST2 > Hardware > Sound > Other > Set as the primary card

eine der vorhandenen Karten auswählen und als primäre auswählen. Ein anderer direkter Weg zur Soundkarten-Priorisierung wird im nächsten Artikel dieser Serie angesprochen. Ich will auf die Grundkonfiguration mehrerer gleichzeitig aktiver Karten unter KDE und ALSA hier aber nicht weiter eingehen.

Nach der YaST-Installation sehen die KDE-Systemeinstellungen wie folgt aus:

KDE_sound_1_600

Ich empfehle, das System nun komplett neu zu starten. KDE4 und Phonon reagieren nämlich auf die neu vorhandene Karte und stellen dann unter KDE’s “Systemeinstellungen > Hardware > Multimedia” mehr als die puren Alsa Standard Devices dar. Nach dem Neustart ergibt sich auf meinem System unter KDE etwa folgendes Bild (ohne Option erweiterte Geräte):

KDE_sound_2_1000

Mit der aktivierten Option “Erweiterte Geräte” erhalte ich auf meinem System folgende lange Liste:

KDE_sound_3_1000

Sie ist in meinem Fall so komplex, weil ich drei Karten im System installiert habe und diese alle in der Vergangenheit auch erfolgreich getestet habe. Systemd, udev und KDE vergessen das offenbar nicht so ohne weiteres, selbst wenn unter YaST die Module für die anderen Karten im Moment gar nicht aktiviert erscheinen (s. Bild oben). Die erforderlichen Kernel-Module werden von systemd über udev beim Systemstart trotzdem geladen:

mytux:~ # lsmod | grep snd
snd_hda_codec_hdmi     45213  4 
snd_virtuoso           45131  2 
snd_oxygen_lib         45235  1 snd_virtuoso
snd_mpu401_uart        14169  1 snd_oxygen_lib
snd_emu10k1           169303  2 
snd_hda_intel          48171  2 
snd_rawmidi            34523  2 snd_mpu401_uart,snd_emu10k1
snd_ac97_codec        138428  1 snd_emu10k1
snd_hda_codec         205080  2 snd_hda_codec_hdmi,snd_hda_intel
ac97_bus               12730  1 snd_ac97_codec
snd_pcm               110211  6 snd_hda_codec_hdmi,snd_oxygen_lib,<br>snd_emu10k1,snd_hda_intel,<br>snd_ac97_
codec,snd_hda_codec
snd_util_mem           14117  1 snd_emu10k1
snd_hwdep              13602  2 snd_emu10k1,snd_hda_codec
snd_seq                69752  0 
snd_timer              29423  3 snd_emu10k1,snd_pcm,snd_seq
snd_seq_device         14497  3 snd_emu10k1,snd_rawmidi,snd_seq
snd                    87417  26 snd_hda_codec_hdmi,snd_virtuoso,<br>snd_oxygen_lib,snd_mpu401_uart,snd_emu10k1,<br>snd_hda_intel,snd_rawmidi,snd_ac97_codec,<br>snd_hda_codec,snd_pcm,snd_hwdep,<br>snd_seq,snd_timer,snd_seq_device
soundcore              15047  1 snd
snd_page_alloc         18710  3 snd_emu10k1,snd_hda_intel,snd_pcm
mytux:~ # 

Mir ist unklar, ob das eine Inkonsistent zwischen YaST, der sonstigen SuSE-Soundkonfiguration, den systemd- oder udev-Einstellungen darstellt. Vermutlich erkennt udev die onboard Karte sowie die Audigy automatisch und lädt unter systemd die zugehörigen Treiber. Ich habe das im Moment nicht weiter untersucht. Blacklisten wollte ich die Module auch nicht, da ich bisher keine negativen Effekte der geladenen Kernelmodule feststellen konnte. Alsa kann jedenfalls auch auf die anderen Karten zugreifen.

Verfügbare Regler der D2X unter Kmix – Vergleich mit einer Audigy 2

Ich hatte im ersten Beitrag bereits festgestellt, dass eine Asus D2X eher etwas für Puristen ist, die einfach nur guten Sound hören wollen. Dieser Eindruck bestätigt sich im Vergleich zu Creative Karten beim Angebot an einstellbaren Kanälen und Features.

Ich zeige zunächst das vollständige Kanalbild unter Kmix, das uns KDE und Alsa auf Basis eines über die Jahre sehr hoch entwickelten Kernelmoduls bieten. Ich verwende wegen der großen Anzahl der Kanäle 4 Bilder:

Kmix-Regler der Audigy 2

audigy2_1_600
audigy2_2_600
audigy2_3_600
audigy2_4_600

Man ist regelrecht erschlagen von der Vielfalt der Regelungsmöglichkeiten, die in der Regel aber auch funktionieren. Die Audigy 2 ist hier üppigst ausgestattet. (Übrigens: Unter PulseAudio würde man als End User davon leider gar nichts mitbekommen …)

Nun zur Xonar D2X. Sie gibt sich sehr viel bescheidener:

Kmix-Regler der Xonar D2X

xonar_d2x_1_600
xonar_d2x_2_600

Ob dieser bescheidene Eindruck an Regelbarkeit nun allein am Treiber liegt, vermag ich nicht wirklich zu beurteilen. Die Trennung der Output-Kanäle habe ich hier
übrigens unter KMIX manuell vorgenommen.

Keine Klangregelung
Was sofort ins Auge fällt: Es gibt keine Regler für Höhen und Tiefen. Das hatte ich bereits im ersten Beitrag dieser Serie angesprochen. Auch separate Regler für Synth, Wave und PCM sind nicht vorhanden.

Keine Anhebung des Sounds über alle Kanäle unter Beibehaltung der Lautstärkeverhältnisse zwischen den Kanälen
Alle getrennt erscheinenden Regler für die Output-Kanäle ergeben sich aus der Trennung genau eines Master-Kanals. Man kann den Master nicht im Sinne einer gemeinsamen prozentualen Anhebung aller Kanäle – bei ansonsten unterschiedlichen und gleichbleibenden relativen Niveaus der Kanäle zueinander – separat steuern, wie dies etwa bei der Audigy 2 der Fall ist. Dies ist ein weiterer sehr ärgerlicher Punkt der D2X-Karte unter Linux – denn regelt man in der verkürzten Ansicht des Mixers (etwa beim Klick auf das Symbol im Systemabschnitt der Steuerleiste) den Master, so werden alle Output-Kanäle auf ein- und dasselbe Lautstärke-Niveau gesetzt – auch z.B. der Bass-Lautsprecher. Das verändert dann natürlich das Klangbild insgesamt. Und es ist mühsam, die Verhältnisse der Kanäle wieder nachzuregulieren.

Hier erweist es sich als Vorteil, wenn die betriebene Lutsprecher-Anlage einen externen, unabhängig von der Soundkarte bedienbaren Lautstärkeregler aufweist. Dann stellt man mit Kmix einmal die Lautstärkeverhältnisse zwischen den Kanälen auf dem Linux-PC fest ein und regelt die Gesamtlautstärke nur noch über den externen Regler.

Zeit für eine Zwischenbilanz. Rein auf Basis des mageren Erscheinungsbildes unter Kmix kommt man zu folgender Aussage:

Die Asus D2X entpuppt sich (unter Linux) tatsächlich als Karte, die digitalen Input

  • in analoge Signale umwandelt und dann unmodifiziert an die analogen Output-Kanäle weiterreicht oder
  • unmodifiziert an einen optischen Digitalausgang durchreicht.

Wir sprechen im Kern also über einen hochwertigen Digital-Analog-Wandler.
 
Eine digitale und durch den Anwender in Grenzen regelbare Manipulation des eingehenden Sound-Signals wie durch den Soundprozessor der Audigy2 findet entweder von Haus aus nicht statt oder ist eben über die aktuellen Linux-Treiber zumindest nicht zugänglich und/oder regelbar. Die Karte hinterlässt hinsichtlich der Features unter Linux einen wirklich sehr puristisch Eindruck – wie schon gesagt.

Angesichts des Preises der Karte fängt es hier an, doch etwas ärgerlich zu werden …. Ich finde, dass dieser Befund für manch einen ein sehr guter Grund sein kann, die Finger von der Karte zu lassen. Ich möchte es nochmals betonen: Die Karte lohnt sich nicht für einen Linux-Anwender, der gelegentlich neben der Arbeit am PC mal Musik hören will, und der dennoch vielfältige Einstellmöglichkeiten erwartet.

Dieser vorläufige Befund hat aber noch eine weitere Auswirkung (s. nächste Abschnitt).

Einschränkung der Xonar D2X : 2-Kanal-Stereo-Output für Stereo-Input – Spiegelung des Sounds durch Mixer-Schalter nur eingeschränkt möglich

Ohne weitere Schritte gilt:
2 Stereo Kanäle in – 2 Stereo Kanäle out. Wieso sollte man eigentlich mehr erwarten? Nun, von sämtlichen bisher betriebenen Audigy- oder X-Fi-Karten war ich es gewohnt, dass Stereo-Input durch den Soundprozessor automatisch auf andere analoge Output-Kanäle als “Front Left” und “Front Right” vervielfältig bzw. gespiegelt wurde. Natürlich wurden dabei auch ein Center-Speaker und eine Bass-Speaker angemessen berücksichtigt. Bzgl. des Tiefton-Kanals wurde der Sound angeblich sogar frequenzabhängig zugewiesen. Das kann man bei der Xonar D2X für reine ogg-vorbis-, flac-, wav-, mp3-Musik-Player (Amarok, Clementine, Banshee etc.) in einer Standardeinrichtung weitgehend vergessen. Es ist auf einfache
Weise keine umfassende Sound-Verteilung auf 5.1 oder 7.1 Speaker-Systeme möglich …. Kanal für Kanal wird durchgereicht.

Bei Mehrkanal-Input wie z.B. von einem Video-Player wie MPLAYER gilt dann aber auch: da schleift auch die Xonar D2X den Sound kanalgetreu durch. Hier erhält man also echten Mehrkanal-Ton, wenn der Film einen solchen aufwies.

Nun könnte man bzgl. der reinen Stereo-Musikwiedergabe theoretisch mit der Einschränkung des 2-Kanal-Outputs leben, aber mich persönlich hat das erstmal frustriert. Schließlich habe ich – wie im letzten Abschnitt erwähnt – eine eine kleine billige Mehrkanal-Anlage an meinem Linux-System hängen. Und manchmal hätte man gerne – speziell bei SW-Entwicklungsarbeiten – eine Rundum-Beschallung.

Was also tun? Ein erste einfache Einstellmöglichkeit liefert die Karte doch ! Auf den Kmix-Bildern weiter oben erkennt man bei genauerem Hinsehen einen Schalter für einen “Stereo-Upmix”. Aber nicht zu früh gefreut: Dieser Schalter erlaubt zwar eine Spiegelung

Front Left => Rear Left (und ggf. => Side Left)
Front Right => Rear Right (und ggf. => Side Right)

Ein vorhandener Centre Speaker und ein Bass Speaker bleiben dabei aber leider außen vor.

Linux wäre nicht Linux, wenn es hierfür nicht eine Lösung gäbe. Und dazu müssen wir im nächsten Beitrag
Asus Xonar D2X unter Linux / Opensuse 13.1 – III – Alsa Upmix 2.0 auf 5.1
ein klein wenig an einer persönlichen Alsa-Konfiguration basteln.