ALSA-Soundkartenreihenfolge

dbra schrieb:
Ist die Realtime-Option in den Einstellungen abgehakt?
Yo, unten rechts wird eine Latenz von 42mSek. angegeben.
Ne knappe zwanzigstel Sekunde sollte ja O.K. sein?
Ich hab erstmal nur die Ausgabe über Jack mit Audacity getestet,
mehr ist noch nicht installiert.
@kHz:
die Einträge sind schon vom Setup gemacht worden.
Das hat die rtprio auf 95 gesetzt und das habe ich durch 99 ersetzt.

Das mit der Reihenfolge ist eigentlich kein Problem mehr.
Ich hatte ja gesagt, daß ich auf Dunst pulseaudio installiert hatte.
Das scheint jedenfalls unabhängig von der Soundkartenreihenfolge
dafür zu sorgen, daß im normalen Betrieb, wenn Jack nicht läuft,
der Sound per Alsa über die ICH7 kommt.
Wenn ich dann eine DAW installiert habe und vorher Jack starte,
ist es auch kein Problem mehr, die Intel-Karte auszuwählen.

Tjaa, nu gucken wer ma, obs nicht nen schönen Synth gibt,
den ich über ein externes Masterkeyboard ansteuern kann.
Habt Ihr da Vorschläge für was Einfaches für den Einstieg,
vielleicht schon mit ein paar Presets?
 
Es muss nicht mal ein Realtime-Kernel sein. Ein Lowlatency-kernel bringt auf meinen Rechnern (Core i5) keine schlechteren Ergebnisse.
 
Sooo, kleiner Report eines Anfängers:

Yoshimi is gooil :)
Hab die Puffergröße auf 256 gestellt und die Latenz
liegt dann, nach Angabe, bei 10mSek.
Das Statusfenster von Jack hat mir bis jetzt erst einen xrun berichtet.
Meine Kernelversion lautet: 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u1 x86_64 GNU/Linux

Ich habe ein bischen mit der "Will Godfrey-Bank" rumgespielt,
da sind schöne, fette Strings drunter.
Wenn ich Sounds mit hartem Anschlag spiele, bemerke ich jedenfalls keine Latenzen.
Das Statusfenster von Qjackcontrol sagt mir, die DSP-Last läge bei 11%.
Den amsynth habe ich auch installiert, der tönt zwar, aber mit der MIDI-Verbindung
klappts noch nicht. Aber Wurscht, ich nehm mir erstmal den Yoshimi intensiver vor,
der empfängt ja multitimbral und hat offensichtlich auch ne Menge zu bieten.

Jetzt muß ich mal gucken, ob sich dafür noch ein passender MIDI-Sequencer findet.
Die Verknüppereien in Jack werden dann aber schon etwas unübersichtlich.
 
Im Augenblick will wieder garnichts:
Code:
...
control device hw:1
control device hw:1
audio_reservation_init
Failed to acquire device name : Audio1 error : Method "RequestRelease" with signature "i" on interface "org.freedesktop.ReserveDevice1" doesn't exist
Audio device hw:1 cannot be acquired...
Cannot initialize driver
JackServer::Open failed with -1
Failed to open server
...
aplay -l sieht jetzt so aus:
Code:
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: Generic [HD-Audio Generic], Gerät 3: HDMI 0 [HDMI 0]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: ICH7 [Intel ICH7], Gerät 0: Intel ICH [Intel ICH7]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: ICH7 [Intel ICH7], Gerät 4: Intel ICH - IEC958 [Intel ICH7 - IEC958]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 2: CMI8738 [C-Media CMI8738], Gerät 0: CMI8738 [C-Media PCI DAC/ADC]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 2: CMI8738 [C-Media CMI8738], Gerät 1: CMI8738 [C-Media PCI 2nd DAC]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 2: CMI8738 [C-Media CMI8738], Gerät 2: CMI8738 [C-Media PCI IEC958]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Keine Ahnung, was Jack nicht findet, da ist jedenfalls die ICH7 als Ein- und Ausgabe eingestellt.
p.s.
So ruft Qjackctrl jack auf:
Code:
11:20:41.364 /usr/bin/jackd -P1 -dalsa -r48000 -p256 -n2 -Xraw -D -Chw:1 -Phw:1
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
 
Oh mann!
Dieser scheiß HDMI-Ausgang scheint wirklich Ärger zu machen,
wenn er in der Reihenfolge mal vorn steht.
Neustart, Kartenwürfeln und aplay -l zeigt nun das:
Code:
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: ICH7 [Intel ICH7], Gerät 0: Intel ICH [Intel ICH7]
  Sub-Geräte: 0/1
  Sub-Gerät #0: subdevice #0
Karte 0: ICH7 [Intel ICH7], Gerät 4: Intel ICH - IEC958 [Intel ICH7 - IEC958]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: Generic [HD-Audio Generic], Gerät 3: HDMI 0 [HDMI 0]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 4: CMI8738 [C-Media CMI8738], Gerät 0: CMI8738 [C-Media PCI DAC/ADC]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 4: CMI8738 [C-Media CMI8738], Gerät 1: CMI8738 [C-Media PCI 2nd DAC]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 4: CMI8738 [C-Media CMI8738], Gerät 2: CMI8738 [C-Media PCI IEC958]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Jack läuft jedenfalls wieder.
 
Hab ich jetzt gemacht:
hw0:ICH7
Jack läuft damit.
Aber mal gucken, wies aussieht, wenn sich dieses dämliche udev beim Starten
mal wieder für den Radeon HDMI-Ausgang als Ersten entscheidet.
Hab so das Gefühl, daß das Jack prinzipiell durcheinanderbringt.
Mal gucken.
 
dbra schrieb:
Klicke nicht auf ">". Immer khz mit seinem unqualifizierten Störfeuer hier... ;-)
;-) Hihi ;-) - naja bei mir funkt es so recht gut, seit Jahren. Aber mach es so wie es bei dir hinhaut tholan.
Die Reihenfolge würde ich über kurz oder lang versuchen eindeutig zu machen. Mich würde das nerven, ... - aber keine Panik da dies (das wie) ja auch nicht so eindeutig ist (bei uns Linuxern)! Wenn ich was brauchbares finde im Netz poste ich es hier.

Wenn du willst
Code:
apt-get install linux-image-rt-amd64
(oder wie der da genannt wird).
linux-image-rt-amd64

Evt.
Code:
apt-get install a2jmidid
a2jmidid
In qjackctl/Setup: MIDI Driver: "none" (-> snd_seq nicht mehr verwenden), qjackctl/Misc: (kein ☑) ☐ Enable ALSA Sequencer support >> sondern in qjackctl/Options: "☑ Skript nach Start ausführen:" und da
Code:
sleep 5 && a2jmidid -e &
eintragen.
setting-up-midi/midi-on-linux/
 
Alles erledigt!
Kernel meldet sich jetzt als:
3.2.0-4-rt-amd64 #1 SMP PREEMPT RT Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux
In den Verbindungen von qjackcontrol gibts jetzt nurnoch "Jack-MIDI" mit dem Gerät "a2j"
Und Yoshimi läuft noch :) .
Jetzt kämpfe ich mit seq24. Das sieht ja erstmal etwas sperrig aus.

Gibt aber schon noch ein paar XRUN-callbacks.
Kann ich denn nicht ein paar Dämonen killen?
Da läuft doch sicher eine Menge Mist, der nichts mit Musik zutun hat?
 
tholan schrieb:
3.2.0-4-rt-amd64 #1 SMP PREEMPT RT Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux
In den Verbindungen von qjackcontrol gibts jetzt nurnoch "Jack-MIDI" mit dem Gerät "a2j"
Das ist super.
tholan schrieb:
Jetzt kämpfe ich mit seq24. Das sieht ja erstmal etwas sperrig aus.
http://wiki.datentraeger.org/index.php?title=Seq24

tholan schrieb:
Da läuft doch sicher eine Menge Mist, der nichts mit Musik zutun hat?
Was für ein Desktop hast du?
Ich hatte bei Debian Xfce welches recht wenig sinnloses startet.
Den XFCE, limits.conf angepasst und RT-Kernel (und natürlich einige Audio Programme install) war alles was ich mit mein Debian gemacht hatte um Musik zu machen.
dbra schrieb:
Um ein echtzeitfähiges System zu bekommen sind noch ein paar mehr Änderungen nötig. Unter Fedora installier ich dazu ein spezielles Paket von CCRMA.
Was genau?
dbra schrieb:
Wahllos Dämonen killen wird dich nicht weiterbringen
Ja, du solltest dann schon wissen was du machst. ;-)
dbra schrieb:
hat mit IRQ-Latenz nichts zu tun
Dazu könntest du dieses und die weiteren Punkte lesen. http://wiki.linuxaudio.org/wiki/system_configuration#solve_irq_conflicts_by_unbinding_devices
Ich hatte das ein mal gemacht, aber keine Ahnung ob das viel gebracht hat. Eine gute Soundcard bringt da mehr. ;-)
dbra schrieb:
Probier doch mal KXStudio
Ah da gibt es repositories. Kann man machen, hatte das nie gemacht bzw. gar nicht gewusst.
http://kxstudio.sourceforge.net/Repositories
 
Mojn,
ich hänge gerade am qtractor.
Das ist das erste Sequencerprogramm, mit dem ich es geschafft habe, Verbindung
zu Yoshimi aufzunehmen :) .
Ich glaube, damit werde ich mich erstmal ein wenig beschäftigen.
Ich muß das alles noch auseinanderkriegen, was ich wo starte, wie ich ein komplettes Songsetup
mit allen Einzelteilen möglicherweise in einem Projekt unterkriege.
Bis jetzt ist mir das noch zuviel Gestarte und Gelade irgendwelcher Einzelprogramme,
bzw. Dateien.
Soweit sieht das aber schon gut aus und yoshimi klingt wirklich geil :)

Hier ist übrigens auch das XFCE-Debian installiert.
Parallel ist noch die Fluxbox vorhanden, die ist mir eigentlich am liebsten.
Mit den Klötzern KDE, Gnome oder Unity mag ich auch nichts mehr anfangen.
Die sind ja nurnoch mit sich selbst beschäftigt.

Ich Danke Euch nochmal mit Ausrufezeichen!
:)
 
tholan schrieb:
Bis jetzt ist mir das noch zuviel Gestarte und Gelade irgendwelcher Einzelprogramme,
Das ist auch oft so das du Einzelprogramme startest - modularer Ansatz evt. - geroutet (Audio/MIDI) wird über z.B. qjackctl. Bei qtraktor/ardour3 und so hast du das größtenteils innerhalb dessen Programm.
Unter /usr/share/xxx liegen btw doku bzw presets wenn du mal was suchen solltest.
tholan schrieb:
Hier ist übrigens auch das XFCE-Debian installiert.
Parallel ist noch die Fluxbox vorhanden, die ist mir eigentlich am liebsten.
:)
Evt. --info bzw --help mit dabei, auch $Suchmaschine fragen ... :
https://www.youtube.com/user/gnufunzt/search?query=ardour
http://www.libremusicproduction.com/articles
 
EDIT: Nur das es bei mir nicht (mehr) so geht %/

Festlegen des Default-Device

Code:
cat /proc/asound/cards
Für z.B.
Code:
0 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                     HDA ATI HDMI at 0xfe9ec000 irq 19
1 [Bt878          ]: Bt87x - Brooktree Bt878
                     Brooktree Bt878 at 0xfdffe000, irq 21
2 [Audigy2        ]: Audigy2 - Audigy 4 [SB0610]
                     Audigy 4 [SB0610] (rev.0, serial:0x10211102) at 0xe800, irq 20

Mit z.B. nano editieren
Code:
~/.asoundrc
<-- für Einstellungen, die nur einen Benutzeraccount betreffen.
oder in
Code:
/etc/asound.conf
<-- für systemweite Einstellungen, die alle Benutzer betreffen (root Rechte beim editieren nicht vergessen).

Code:
pcm.!default {
    type hw
    card Audigy2
}
ctl.!default {
    type hw
    card Audigy2
}
https://wiki.archlinux.de/title/Alsa#Festlegen_des_Default-Device


JACK

Code:
~/.asoundrc
Code:
pcm.jackplug12 {
        type plug
        slave { pcm "jack12" }
}

pcm.jack12 {
        type jack
        playback_ports {
                0 alsa_pcm:playback_1
                1 alsa_pcm:playback_2
        }
        capture_ports {
                0 alsa_pcm:capture_1
                1 alsa_pcm:capture_2
        }
}
http://wiki.ubuntuusers.de/.asoundrc#JACK


Das geht bei mir:

Code:
~/.asoundrc
Code:
defaults.ctl.card 0
defaults.pcm.card 0
defaults.timer.card 0
Was nicht die Reihenfolge der Soundcard beeinflusst sondern das Ausgabegeräte für z.B. Firefox festlegt :phat: %/


alsamixer

Die Einstellungen in dem alsamixer zu speichern (root Rechte beim editieren nicht vergessen).

Code:
alsactl store
>>
Code:
alsactl --help
Code:
...
Available commands:
  store     <card>  save current driver setup for one or each soundcards
                      to configuration file
  restore   <card>  load current driver setup for one or each soundcards
                      from configuration file
...


Teste:
Code:
/etc/modprobe.d/alsa.conf
z.B.:
Code:
options snd-emu10k1 index=0
options snd-via82xx index=1
https://www.gentoo.org/doc/de/alsa-guide.xml <-- Mehrere Soundkarten
 
1. Erste Soundkarte festlegen:

Was ist im Computer drin:
Code:
cat /proc/asound/cards
edit:
Code:
/etc/modprobe.d/alsa.conf
Beispiel, nimm die was "/proc/asound/cards" sagt!

- unterschiedliche Treiber:
Code:
    options snd-emu10k1 index=0
    options snd-via82xx index=1
- gleiche Treiber:
Code:
    options snd-ymfpci index=0
    options snd-hda-intel index=1,2


2. Einstellunge in alsamixer speichern (als root), für jede Soundkarte separat Einstellunge vornehmen und abspeichern:
Code:
alsactl store


3. Programme nehmen bestimmte Soundkate:

edit:
Code:
~/.asoundrc
Code:
    defaults.ctl.card 0
    defaults.pcm.card 0
    defaults.timer.card 0


4. Mehrere Soundkarten in qjackctl zusammenführern:

In Qjackctl:
A)
Setup >> Optionen >> [X] Skript beim start ausführen
Code:
jack_load -i "-d hw:1 -i16 -o16" 9632 audioadapter && jack_bufsize 128 &
hw: die du zusammenführen willst (hw:1/hw:0/...)
-i <-- deine Anzahl der SC inputs
-o <-- deine Anzahl der SC outputs
9632 <-- wie du sie benennen willst (jackport)
jack_bufsize <-- festlegen des JACK buffer size

B)
Für Alsa2jack (MIDI):
install:
Code:
a2jmidid
Setup >> Optionen >> [X] Skript nach start ausführen
Code:
sleep 5 && a2jmidid -e &


5. Flash & jack

install:
Code:
alsa-plugins
edit:
Code:
nano .asoundrc
Code:
# convert alsa API over jack API
# use it with
# % aplay foo.wav

# use this as default
pcm.!default {
    type plug
    slave { pcm "jack" }
}

ctl.mixer0 {
    type hw
    card 1
}

# pcm type jack
pcm.jack {
    type jack
    playback_ports {
        0 system:playback_1
        1 system:playback_2
    }
    capture_ports {
        0 system:capture_1
        1 system:capture_2
    }
}
card 1 <-- wenn du die "card 1" (oder "card 0" ...) willst.
 
dbra schrieb:
Keine Ahnung, was da genau gemacht wird, aber es werden eine ganze Reihe von Änderungen an der Systemkonfiguration gemacht.
Wenn mann will, wird ja nicht mehr aktiv weiterentwickelt, kann man einen RT-Kernel nehmen (aktuell ist der 3.14).
Ich habe einen ~normalen neueren genommen und den selber gebaut (menuconfig) wo ich
Code:
Processor type and features >> Preemption Mode >> Complete Preemption (Real-Time)
Processor type and features >> Timer frequency >> 1000 HZ
General setup >> RCU Subsystem >> RCU Implementation (Preemptable tree-based hierarchical RCU)
gesetzt habe (Complete Preemption (Real-Time) gibt es beim normalen ja nicht, eben "fully preemptible" genommen) und meine Soundkarten ausgewählt, die anderen rausgenommen.
Wenn man will noch http://kmuto.jp/debian/hcl/ (Debian GNU/Linux device driver check page).

In der
Code:
/etc/security/limits.conf
Code:
@audio          -       rtprio          99
@audio          -       memlock         unlimited
eingetragen.

TIP: Für eine DAW mit nicht unedlich schneller Hardware solten möglichst wenige Dienste automatisch gestartet werden wenn Sie nicht zwingend benötigt werden. Sporadisch benutzte Dienste lieber manuell starten z.B.: /etc/init.d/klöschenformer start

Wers nicht lassen kann ;-) : Viele Infos zu "System configuration" findet man hier:
http://wiki.linuxaudio.org/wiki/system_configuration
 
Ergänzung zu *1:
Habe jack-audio-connection-kit-2.9999 installiert.

*1:
Code:
1. Erste Soundkarte festlegen:

Was ist im Computer drin:
[code]cat /proc/asound/cards
edit:
Code:
/etc/modprobe.d/alsa.conf
Beispiel, nimm die was "/proc/asound/cards" sagt!

- unterschiedliche Treiber:
Code:
    options snd-emu10k1 index=0
    options snd-via82xx index=1
- gleiche Treiber:
Code:
    options snd-ymfpci index=0
    options snd-hda-intel index=1,2


2. Einstellunge in alsamixer speichern (als root), für jede Soundkarte separat Einstellunge vornehmen und abspeichern:
Code:
alsactl store


3. Programme nehmen bestimmte Soundkate:

edit:
Code:
~/.asoundrc
Code:
    defaults.ctl.card 0
    defaults.pcm.card 0
    defaults.timer.card 0


4. Mehrere Soundkarten in qjackctl zusammenführern:

In Qjackctl:
A)
Setup >> Optionen >> [X] Skript beim start ausführen
Code:
jack_load -i "-d hw:1 -i16 -o16" 9632 audioadapter && jack_bufsize 128 &
hw: die du zusammenführen willst (hw:1/hw:0/...)
-i <-- deine Anzahl der SC inputs
-o <-- deine Anzahl der SC outputs
9632 <-- wie du sie benennen willst (jackport)
jack_bufsize <-- festlegen des JACK buffer size

B)
Für Alsa2jack (MIDI):
install:
Code:
a2jmidid
Setup >> Optionen >> [X] Skript nach start ausführen
Code:
sleep 5 && a2jmidid -e &


5. Flash & jack

install:
Code:
alsa-plugins
edit:
Code:
nano .asoundrc
Code:
# convert alsa API over jack API
# use it with
# % aplay foo.wav

# use this as default
pcm.!default {
    type plug
    slave { pcm "jack" }
}

ctl.mixer0 {
    type hw
    card 1
}

# pcm type jack
pcm.jack {
    type jack
    playback_ports {
        0 system:playback_1
        1 system:playback_2
    }
    capture_ports {
        0 system:capture_1
        1 system:capture_2
    }
}
card 1 <-- wenn du die "card 1" (oder "card 0" ...) willst.[/code]
 


News

Zurück
Oben