ubuntuusers.de

Keine Bassumleitung unter GNU/Linux möglich?

Status: Ungelöst | Ubuntu-Version: Kubuntu 7.04 (Feisty Fawn)
Antworten |

marcus.arminius

Anmeldungsdatum:
14. Februar 2007

Beiträge: 138

Bekanntlich muss bei einem 2.1/5.1/6.1/7.1 System bei Stereo-Quelle das Basssignal vom Rest getrennt werden und zum Subwoofer umgeleitet werden. Leider habe ich nirgends eine Möglichkeit gefunden dies zu tun.

Es gibt zwar ähnliche Anfragen hier im Forum, doch die einzige Lösung, die man dort fand, war per Upmix das Stereosignal auch dem Subwoofer zugänglich zu machen.

Das ist aber eine Unlösung! Damit belastet man den Subwoofer mit einem gewaltigen Frequenzbauch, für den er nicht zuständig ist. Die Folgen sind: 1.) der Bass wird wegen viel zu hoher Frequenzen, die er zusätzlich ausgibt, ortbar. 2.) Es kommt zu massiver Frequenzüberschneidung zwischen Subwoofer und Satelliten. Das Klangbild wird uneben. Inakzeptable Klangeinbußen sind die Folge.

Weiß jemand genaueres zu diesem Problem? Ist Bassumleitung unter Linux tatsächlich nicht möglich?

Patrick2807

Anmeldungsdatum:
18. Oktober 2007

Beiträge: 59

Hallo!

Ich hab zurzeit dasselbe Problem, habe aber herausgefunden dass man diese Übergangsfrequenz mit einem ladspa plugin in der .asoundrc einstellen kann.
Kuck dir am besten mal folgende Links an:

.asoundrc
http://alsa.opensrc.org/index.php/Low-pass_filter_for_subwoofer_channel_%28HOWTO%29

Da müsste alles nötige drinstehen. Bin selbst noch am rumprobieren.
Viel Spaß ☺

Gruß Patrick

marcus.arminius

(Themenstarter)

Anmeldungsdatum:
14. Februar 2007

Beiträge: 138

Vielen Dank! Den Wikiartikel kannte ich zwar schon, aber irgendwie hatte ich nicht gemerkt, dass mit dem Eingtrag "Filter" die Bassumleitung gemeint sein könnte. Ich werde mich demnächst auch einmal dransetzen und etwaige Erfahrung dann berichten.

Gruß

m

NebuMC

Anmeldungsdatum:
1. Mai 2007

Beiträge: Zähle...

Hallo

Bin seit heut auch stolzer Besitzer eines 5.1 Systems 😉
und habe dieselben Probleme ☹
Kenne mich noch nicht wirklich mit Linux aus (erst seit ein paar Monaten dabei) und verstehe ehrlich gesagt bei den Links oben fast nichts!
Wäre echt nett wenn jemand der es hingekriegt hat mal die einzelnen Schritte aufschreibt oder so?
Vielen Dank im Voraus
Grüße NebuMC

pepre Team-Icon

Supporter
Avatar von pepre

Anmeldungsdatum:
31. Oktober 2005

Beiträge: 6474

Wohnort: Erlangen

Das kann doch wohl nicht wahr sein! Die Subwoofer besitzen keine aktive (oder zumindest passive) eingebaute Frequenzweiche?

Was ist denn das? Sind das besonders billige oder besonders teuere Surround-Anlagen?

Ubuntu-Nico

Anmeldungsdatum:
8. Juni 2006

Beiträge: 20

Ich habe das gleiche Problem:

Beim Subwoofer kann man zwar eine "crossover"-Frequenz einstellen, aber das klingt nicht annähernd so gut wie unter win.
Habe eine Audigy 2 und ein Teufel Concept E und das größte Problem bei der Sache ist, dass der Sub dann das volle Frequenzspektrum abgibt und deshalb sehr schwammig klingt.

Ich hab' auch die Lösung von Patrick versucht, aber wenn ich dann versuche etwas abzuspielen kommt: http://ubuntuusers.de/paste/34163/

Gruß Nico

d-fens

Anmeldungsdatum:
8. August 2006

Beiträge: 14

Hat sich unter Hardy irgendetwas dazu getan? Die von Patrick2807 verlinkte Seite beschreibt ja nur einen LowPass für den Subwoofer. Für meine Kombination Creative Audigy2 ZS + Teufel Concept E Magnum benötige ich jedoch auch einen HighPass für die Satelliten. Der Windows-Treiber arbeitet da sehr sauber und unauffällig - gibt es tatsächlich noch kein Pendant unter Ubuntu oder Linux allgemein? ☹

Cordess

Anmeldungsdatum:
14. Mai 2006

Beiträge: 466

Ich habe hier das selbe Problem mit einer Audigy 2 und einem Teufel Concept E Magnum 5.1 System.

Unter Windows kann ich bei der Audigy 2 Software eine Bassumleitung einstellen, aber welche Lösung empfiehlt ihr hier unter Linux?

Cordess

Anmeldungsdatum:
14. Mai 2006

Beiträge: 466

So, ich habe jetzt für mich nach vielem rumprobieren eine für mich passable Lösung gefunden.

Das Problem war bisher, daß bei 5.1 Soundquellen (z.B. Filme oder AC-3 Soundfiles) die Wiedergabe über den Subwoofer, die Centerbox und Surroundspeaker zwar immer funktioniert hat, aber nur bei Stereo Musikdateien hatte ich nur eine Wiedergabe über die beiden vorderen Lautsprecher, aber ohne Subwoofer und letzteres war ein großes Problem, weil die Musik ohne Subwoofer einfach blechern klingt. Totem und VLC waren dabei natürlich auf ein 5.1 Lautsprechersystem eingestellt, daran liegt es also nicht.

Den oben genannten Tipp mit dem LADSPA Plugin und Low Pass Filter für ALSA habe ich probiert, aber dummerweise funktioniert er unter Ubuntu 10.10 nicht. Das Problem liegt hier vermutlich an dem Paket libasound2-plugins, welches für Ubuntu 10.10 mal wieder ohne LADSPA Support compiliert wurde, so daß keine "type ladspa" Option in der .asoundrc Datei verwendet werden kann. Beim Abspielen mit aplay und einer entsprechendem Low-Pass LADSPA Filterkonfiguration in der .asoundrc Datei erhält man dann eine typische "Unknown PCM" Fehlermeldung, was darauf schließen läßt, daß das LADSPA Plugin "type ladspa" für ALSA nicht compiliert wurde.

Siehe dazu auch: http://ubuntuforums.org/showthread.php?s=e9ae88b9a52baf36dc6eccfb9007edce&p=7893559#post7893559

Danach habe ich versucht mit dem Jackd Soundserver eine Surroundausgabe der Musikdatei zu erzwingen. Das hat auch funktioniert. Dazu mußte ich in Jack Control bei den Einstellungen das Ausgabegerät auf ein Multichannel Device umstellen, bei meiner Audigy 2 war das hw:0,3. Um Fehlermeldungen zu vermeiden mußte ich darüberhinaus auch noch das Eingabegerät auf ein Multichannel Capture Device/Playback einstellen. Bei mir war das dann hw:0,2.

Damit hatte ich dann über den Jack Soundserver genügend playback und capture Devices. Einen Tiefpassfilter konnte ich dann anschließend mit Jack Rack einrichten und dann in Jack Control bei den Verbindungen eine Verbindung von der Abspielsoftware z.b. mplayer (gestartet mit -ao jack) zu dem Inputkanal von Jack Rack anlegen und von dort dann eine weitere Verbindung von dessen Outputkanal auf das playback Device Nr 8, dieses war mein Subwoofer.

D.h. nur der Sound für den Subwoofer wurde über Jack Rack und das dort aktivierte LADSPA Plugin geroutet. Für alle anderen 5 Kanäle habe ich dann noch eine jeweils direkte Verbdinung herstellen müssen.

von output 0 nach playback 3 = hinten links
von output 1 nach playback 4 = hinten rechts
von output 0 nach playback 5 = links + center
von output 1 nach playback 6 = rechts + center
von putput 0 & 1 nach Jack Rack input und von Jack Rack output nach playback 8 = subwoofer

Die Devices
playback 7 = center
playback 9 = links

wurden nicht verwendet, da ich komischerweise für den rechten vorderen Lautsprecher kein playback Device hatte. Daher habe ich die obigen Playback 5 und 6 Devices verwendet.

Die Verbindung zu Playback 1 und Playback 2 mußte ich dann anschließend noch trennen.

Damit lief dann die Musik im 5.1 Modus über alle meine Lautsprecher und den Subwoofer. Das Problem dabei war nur folgedes.

1. Die gesamte Konfiguration mußte jedesmal alles neu eingestellt werden und Jackd mußte extra gestartet werden, nur um darüber Musik zu hören. Das war mir zu umständlich. Für die Konfiguration bietet jack control zwar die Möglichkeit an, die Einstellungen zu speichern, aber Jack Rack wird dadurch ja nicht automatisch gestartet, sondern muß ebenfalls gestartet und dann dessen Konfiguration geladen werden. Also ein enormer Aufwand, aber es gab ein viel schwerwiegenderes Problem:

2. Das ganze lief leider instabil. Jack Rack bzw. das LADSPA Plugin verkorkste nach einiger Zeit vollständig die Soundausgabe über den Subwoofer, so daß aus dem gar nichts mehr rauskam und wenn dann nur ein Brummen.

Jack war also keine Lösung.

Meine Lösung die ich schließlich gefunden habe war Mplayer. Mit diesem kann man intern eine 2 Kanalquelle auf 6 Kanäle aufmotzen und dazu noch den Subwoofer und Centerlautsprecher verwenden. Um eine Musikdatei mit mplayer via Kommandozeile abzuspielen und auf einem 5.1 System auszugeben ist daher folgendes Kommando notwendig:

mplayer -af center=4,sub=100:5,channels=6:6:0:0:1:1:0:2:1:3:4:4:5:5  musikdatei.mp3

Damit funktioniert die Musik über mein Teufel 5.1 System. Und wenn man den Befehl in ein Script packt, dann kann man sich die Tipparbeit sparen. Alternativ dazu, kann man sich auch eine Konfigurationsdatei für mplayer anlegen.

Die Konfiguration muß dann folgendes beinhalten:

MPLAY_AF="center=4,sub=120:5,channels=6:6:0:0:1:1:0:2:1:3:4:4:5:5"

Alternativ mit der equalizer und Volume Option dann folgendes:

MPLAY_AF="center=4,sub=120:5,channels=6:6:0:0:1:1:0:2:1:3:4:4:5:5,equalizer=0:0:0:0:0:0:0:0:0:0,volume=0:1"

Und wer eine bequeme Wiedergabeliste haben möchte, der kann einfach das GUI Frontend kplayer für mplayer verwenden und unter Settings → Configure KPlayer → Advanced folgendes in das "Additional command line arguments" Feld eintragen und danach auf Apply drücken:

-af center=4,sub=100:5,channels=6:6:0:0:1:1:0:2:1:3:4:4:5:5

Prinzpiell ist das ganze zwar nur eine Notlösung und ein funktionierender LADSPA PCM Support bei der ALSA Lib wäre mir lieber, aber da ich das ganze nur zum Musik hören brauche und kplayer ein ausreichend gutes GUI Frontend ist, stört mich das nicht weiter.

Auf jedenfall bin ich froh eine für mich funktionierende Lösung gefunden zu haben, denn vorher war das einfach grauenhaft mit der blechernd klingenden Musik. Da habe ich dann immer vorher Windows gebootet, nur um die Musik vernünfig anhören zu können. Diesen Schritt kann ich mir nun zum Glück sparen.

EDIT:

Die Zahl 100 bei der Option "sub=100" steht für die Frequenz, ab dem der Tiefpassfilter die höheren Frequenzen abschneidet. Wer will, der kann den Wert auch etwas erhöhen, aber Vorsicht, je höher die Frequenz wird, desto eher kann man die Position des Subwoofers ermitteln.

christian667

Avatar von christian667

Anmeldungsdatum:
5. April 2006

Beiträge: Zähle...

Wohnort: Hamburg

Howdy!

Ich lege ein großes Veto ein,

mein Lubuntu 10.10, was ziemlich sicher den selben ALSA-stack verwendet wie (K-)Ubuntu 10.10, läuft mit ladspa Filtern im .asoundrc definiert super. Ich nutze eine Terratec Aureon MK II USB Soundkarte an einem Teufel Concept E 100 5.1 Surround System, die Filter interessieren mich nur beim Upscaling von Stereo auf 5.1. Hierbei nutze ich einen Low-Pass-Filter für den Sub, alle Freqenzen unter 160Hz und einen High-Pass-Filter für alle anderen Kanäle, alle Frequenzen über 160Hz. Meine .asoundrc:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# Route 2.0 to 5.1, low-pass for sub, high-pass for other
# STEP 1: Copy left+right to new channel
pcm.USB20to51 {
    type plug
    slave.pcm filter_21to21
    slave.channels 3
    ttable {
        0.0     1       # left channel
        1.1     1       # right channel
        0.2     0.5     # mix left and right ...
        1.2     0.5     # ... channel for subwoofer
    }
}

# STEP 2: LPF for sub,HPF for other
pcm.filter_21to21 {
    type ladspa
    slave.pcm upmix_21to51
    path "/usr/lib/ladspa"
    channels 3
    plugins {
        0 {
        label hpf 
	   policy none
            input.bindings.0 "Input";
            output.bindings.0 "Output";
            input {
                controls [ 160 ]
            }
        }
        1 {
        label hpf    
	policy none
            input.bindings.1 "Input";
            output.bindings.1 "Output";
            input {
                controls [ 160 ]
            }
        }
        2 {
	label lpf
            policy none
            input.bindings.2 "Input";
            output.bindings.2 "Output";
            input {
                controls [ 160 ]
            }
        }
    }
}

# STEP 3: Route the new filtered 2.1 to 5.1
pcm.upmix_21to51 {
    type plug
    slave.pcm USBDirect51
    slave.channels 6
    ttable {
        0.0	1       # front left
        1.1	1       # front right
        0.2	1       # rear left
        1.3	1       # rear right
        0.4	0.5     # center
        1.4	0.5     # center
        2.5	1       # subwoofer
    }
}

# STEP 4: Play directly and unfiltered 5.1 sound
pcm.USBDirect51 {
        type dmix
        ipc_key 1024
        ipc_key_add_uid false
        ipc_perm 0660
        slave {
                pcm "hw:1,0"
                rate 48000
                channels 6
                period_time 0
                period_size 1024
                buffer_time 0
                buffer_size 5120
        }
    bindings {
        0 0
        1 1
        2 4
        3 5
        4 2
        5 3
    }
}
# Route the 2.0 to 5.1, no filtering
pcm.USB20to51Direct {
        type route
        slave.pcm USBDirect51
        slave.channels 6
        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
}
 
# default device should upmix
#pcm.!default {
#        type softvol
#       slave.pcm "USBDirect51"
#       slave.pcm "USB20to51"
#        control {
#                name "Software Master"
#                card 1
#        }
#}

Hoffe ich konnte jemanden damit helfen ☺

EDIT: SORRY! - unter Ubuntu läuft es defacto nicht, das habe ich eben schmerzlich feststellen müssen.. aber ab 11.10 ist Lubuntu ja nun auch ein offizielles eigenes Derivat..

Cordess

Anmeldungsdatum:
14. Mai 2006

Beiträge: 466

Beim Update auf Ubuntu 11.04 habe ich festgestellt, daß die neue KPlayer Version die Einstellungen ignoriert.

Die Ursache war aber in den Logs zu erkennen: Settings->"Show Message Log"

Hier muß man darauf achten, daß unter AO: das richtige Ausgabedevice angegeben ist.

Bei mir Stand AO: [esd]

Welches der Enlightened Sound Daemon war. Um dies auf AO: [pulse]

zu ändern mußte ich unter Settings->"Configure KPlayer"->Audio Bei der Option "Output driver" von Auto auf "pulse: Pulse Audio" umstellen. Dann ging es wieder.

Antworten |