PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : X-Fi und Midi-Keyboard unter Ubuntu



Max10110
01.02.11, 11:05
Guten Tag ,

Zu Beginn : Ich bin ein Linuxanfänger ... ^^

( Betriebssystem: Ubuntu 10.4 )
Mein Problem ist :
Ich habe eine Creativ X-Fi Music und ein Midi-Keyboard, und würde gerne das Keyboard über meinen Pc laufen lassen (via Midi -> USB Kabel). Das geht leider nicht: Man hört nichts (zb im Programm "Virtual Midi Keyboard") , außerdem wird nirgends angezeigt, ob das Keyboard als solches erkannt wird bzw. ist.
Ich habe außerdem das Programm "Virtual Midi Keyboard" installiert, bei dem ich auch keine Töne höre, wenn ich mit der Maus im Programm auf die virtuellen Tasten klicke.
Deswegen vermute ich, dass es wohl am Midi-Support der Soundkarte liegt, es gibt/gab ja anscheinend einige Probleme mit X-Fi Soundkarten und Linux...

Deswegen meine Frage :
Ist meine Soundkarte unter Ubuntu einfach ungeeignet dafür oder fehlen mir spezielle Treiber ?

Unter Windows klappt alles ohne Probleme. Normales Musikhören klappt über die Soundkarte auch unter Ubuntu ( Ich hab also nicht vergessen die Lautsprecher einzuschalten^^ . )

Vielen Dank für Antworten !
Gruß Max

pferdefreund
01.02.11, 11:12
Vermutlich brauchst du noch nen Software_Synt, der bei Windows halt schon dabei ist.
timidity im seq-mode kann das prima. Gibt auch noch andere.
Dann per aconnect entsprechend Programm mit Soft-Synth verbinden - und ab geht die Post.

hotzpotz
01.02.11, 18:04
Mit der Karte hat das wenig zu tun. Man kann Soundfonts in spezielle Karten laden, womit ich mich überhaupt nicht auskenne.
Alternativ nutzt man einen Software-Synthesizer, wie timidity oder fluidsynth, letzteres würde ich bevorzugen.

Du kannst Programme wie qsynth (ein Frontend für fluidsynth) nutzen, um (d)einen Soundfont bereitzustellen. Dazu qjackctl, oder aconnect (CLI) um dein Midi-Keyboard Output mit qsynth Input zu verbinden.

Hier noch einige Programme für die Sounderzeugung:

-Aeolus (Virtual Pipe Organ mit synthetischen Klängen)
-Zynaddsubfx
-fluidsynth + Soundfont
-Horgand

Falls dein Keyboard nicht mit aconnect oder qjackctl, Reiter Alsa-Midi, angezeigt wird, dann gibts wohl ein Treiberproblem damit.

Max10110
02.02.11, 16:19
Vielen Dank für die Antworten !

Ich habe mit Hilfe von Timidity das Keyboard zum laufen gebracht, allerdings mit Einschränkungen :
Es gibt wenn ich mit Aconnect den Midi-Ausgang mit einem Timidity-port verbinde eine ziemlich lange Verzögerung zwischen Anschlag auf dem Keyboard und Ton aus den Lautsprechern. ( ungefähr 1 Sekunde ) Kann man das ändern ? Habe ich was nicht richtig eingestellt ?

Gruß Max

hotzpotz
02.02.11, 17:09
... eine ziemlich lange Verzögerung zwischen Anschlag auf dem Keyboard und Ton aus den Lautsprechern.
Genau das ist der Grund, warum ich fluidsynth bevorzuge. Keine Ahnung wo und ob man die Latenz von Timidity einstellen kann, mit fluidsynth + Soundfont, oder wenigstens qsynth, hast du weniger Probleme.

Ich habe übrigens die Erfahrung gemacht, daß ein beim booten angestecktes Midi-Keyboard in 8 von 10 Fällen zu einem Soundausfall führt. Da werden vermutlich die Module in einer verkehrten Reihenfolge geladen.

hotzpotz
02.02.11, 21:22
Zusätzliche Parameter für Timidity (daemon) lassen sich in die /etc/default/timidity unter

TIM_ALSASEQPARAMS="" schreiben, bzw. hinzufügen.
Meine Versuche ergaben, daß

-B 2 eine geringere Latenz bringt.
Danach muß der Timidity-daemon neu gestartet werden

sudo /etc/init.d/timidity restart

pferdefreund
04.02.11, 07:48
das kann nur ein Einstellungsproblem sein - Timidity rennt bei mir auf ner ollen 200Mhz-Kiste mit
einer nicht hörbaren Latenz bei vkeybd. Allerdings lasse ich das Teil auch mit renice -15 laufen.
Irgendwo hab ich mal was von -B 2,8 oder so gelesen - siehe Doku zu timidity...

Max10110
05.02.11, 13:41
Danke für die Antworten !

Ich habe das Keyboard jetzt mit QSynth ohne weitere Probleme zum laufen gebracht, Danke für den Tipp.

Ich stehe jetzt aber schon wieder vor einem neuen Problem (ich weiß nich ob ich dafür einen neues Thema eröffnen sollte, ich schreibs erst mal hier rein) :

Ich würde gerne auch das Programm amSynth nutzten, das es ja im Softwarecenter zum Download gibt. Mit der Version aus dem SwC (V 1.2.2) hab ich aber Knackgeräusche in den Tönen und das Programm läuft alles andere als rund.
Deswegen habe ich die neuere Version ( V 1.2.3, die es nicht im SwC gibt) runtergeladen und installiert. Hat alles geklappt. wenn ich amSynth (v 1.2.3) dann aber über die Konsole starte, öffnet sich zwar das Programm, aber es erscheint nicht in Aconnect, ich kann es also nicht mit irgend einer Midieingabe verbinden.
Mit Version 1.2.2 klappte das noch ohne Probleme.

Hab ich es falsch installiert ? (Ich hab es in der Konsole mit make und make install installiert )
Oder gibt es ein alternatives, vllt sogar besseres^^, Programm zu amSynth ?

Gruß Max

hotzpotz
05.02.11, 21:32
Manchmal hilft beim kompilieren

./configure --help
um sich verfügbare Optionen anzeigen zu lassen.
Allerdings habe ich amsynth-1.2.3 probiert und es knackt auch bei mir.
Das knacken verschwindet fast, wenn man jack als Treiber nutzt. Dazu jackd2 installieren, allgemeinen Zugriff auf Echtzeit zulassen und qjackctl zum starten nimmt.
Möglich ist, daß bei Nutzung des jack Treibers jackd automatisch gestartet wird.

hotzpotz
06.02.11, 07:42
Hab ich es falsch installiert ? (Ich hab es in der Konsole mit make und make install installiert )
Das nicht, nur nimmt der moderne Bäcker

checkinstallstatt

make install
Checkinstall verpackt dein Backwerk in ein Päckchen.deb, welches dann über das Paketmanagement verwaltet wird.

Max10110
07.02.11, 14:56
Vielen Dank für die Hilfe !

Ich hab das mit checkinstall versucht, aber er hat mir nach dem Durchlauf mehrere Fehler angezeigt.
Ich hab das Problem umgangen, indem ich mich nach einem anderen Programm umgesehen hab ^^ .

Und dabei bin ich auf Zynaddsubbfx gestoßen. Das ist eigentlich genau das, wonach ich gesucht hab. Natürlich funktioniert nix ohne Probleme, ich hoffe man kann mir hier nochmals helfen :

(Ich benutzt das Programm aconnct um das keyboard mit Zyn zu verbinden, tut aber glaub ich nix zur Sache)

Ich würde gerne Zyn und z.B. einen Drumsequenzer gleichzeitig über meine Lautsprecher ausgeben.
Das geht nicht, was anscheinend daran liegt, dass Zyn Oss benutzt und nicht Alsa und bei OSS immer nur 1 Programm den Ton ausgeben kann (oder so ähnlich...).

Leider habe ich bisher noch keine Lösung des Problems gefunden.
Ich kann in Zyn leider nicht auf Alsa "umschalten" (Ich hab jedenfalls die entsprechende Funktion nicht gefunden).

Drumsequenzer gleichzeitig mit Qsynth klappt wunderbar.

Danke nochmal für die bisherige Hilfe !
Gruß Max

gropiuskalle
07.02.11, 15:05
Da sollte eigentlich weder OSS noch ALSA stehen, sondern JACK. Startest Du Zynaddsubbfx mit irgendwelchen Optionen (insbesondere '-A'?).

Läuft JACK selbst denn ordentlich?

khz
09.02.11, 09:21
hallo,

install jack und route darüber alles.
wichtig ist auch der eintrag in
/etc/security/limits.conf


@audio - rtprio 90
@audio - memlock 750000
als root mit z.b. nano eintragen. weitere beispiele bzw erklärung findest du im link unten (sidux).
rt-kernel brauchst du nicht unbedingt da vieles vom code in aktuellen kernel eingeflossen ist (3. absatz http://www.heise.de/newsticker/meldung/Kernel-Log-Zweiter-Tag-des-Kernel-Summit-2008-Ubuntu-Kritik-bei-Eroeffnung-der-Linux-Plumbers-Conference-206649.html.
gute anleitung, wenn auch alt, findest du hier: http://sidux.com/index.php?module=Wikula&tag=Audiostudio.
evt. findest du auch hier noch ideen: www.audio4linux.de/forum

gruß khz

hotzpotz
09.02.11, 16:49
Bei Debian, und Ubuntu sicher auch, fragt eine Nachfrage bei der Installation von Jackd2, ob jackd für die Allgemeinheit benützlich sein soll. Anschließend wird bei "ja" die Datei /etc/security/limits.d/audio.conf mit den entsprechenden Werten angelegt, oder bei "nein" deaktiviert.
Mit
dpkg-reconfigure jackd
geht das auch nachträglich.

In die limits.conf muß man nun nichts mehr reinschreiben. Das war noch bei dem bisherigen Jack nötig. Ich glaube, man mußte noch die Gruppe jack in der /etc/group anlegen.

Max10110
09.02.11, 17:16
Danke für die Antworten !

Nur falls das missverstanden wurde : Ich bekomme bei den Programmen Qsynth, Hydrogen und Zynaddsubfx eine Tonausgabe wies sein soll. (Vllt hab ich mich da unklar ausgedrückt).
Mein eigentliches Problem war, dass ich alle drei gerne gleichzeitig hören würde, was aber wegen Zyn. leider nich geht.

Ich hatte vorher schon mal mit JACK Control versucht zu hantieren, es hat aber immer ne Fehlermeldung raus gegeben, weswegen ichs gelassen hab.
Ich hab es jetzt nochmal versucht :

Danke für den Tipp, dass ich in limits.conf die Werte ändern muss. Deren fehlen war der Grund für die erste Fehlermeldung.

Der Fehler, den ich jetzt hab bezieht sich wohl darauf, dass ich nicht in der Gruppe audio bin.
Ich habe aber in der Konsole zum einen

usermod -a -G -audio x
eingegeben, außerdem habe ich mich auch noch "per Hand" in die Gruppe eingetragen ( über den Einstellungspunkt "Benutzer und Gruppen" ein Häckchen in der Gruppe gemacht ).
Der Fehler bleibt aber, hier die Fehlermeldung :


18:04:15.969 Steckfeld deaktiviert.
18:04:15.973 Statistik zurückgesetzt.
18:04:16.117 Schaubild der ALSA-Verbindungen geändert.
18:04:16.321 ALSA-Verbindung geändert.
18:04:19.881 Startup script...
18:04:19.882 artsshell -q terminate
sh: artsshell: not found
18:04:20.287 Startup script terminated mit Rückgabewert = 32512.
18:04:20.288 JACK startet...
18:04:20.290 /usr/bin/jackd -dalsa -dhw:0 -r44100 -p1024 -n2 -Xseq
18:04:20.295 JACK wurde mit PID = 3615 gestartet.
jackd 0.118.0
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK is running in realtime mode, but you are not allowed to use realtime scheduling.
Your system has an audio group, but you are not a member of it.
Please add yourself to the audio group by executing (as root):
usermod -a -G audio (null)
After applying these changes, please re-login in order for them to take effect.
You don't appear to have a sane system configuration. It is very likely that you
encounter xruns. Please apply all the above mentioned changes and start jack again!
18:04:20.320 JACK wurde angehalten mit Rückgabewert = 255.
18:04:20.321 Post-shutdown script...
18:04:20.322 killall jackd
jackd: Kein Prozess gefunden
18:04:20.744 Post-shutdown script terminated mit Rückgabewert = 256.
18:04:22.420 Keine Verbindungsaufnahme als Client zum JACK-Server möglich. - Overall operation failed. - Verbindungsaufnahme zum Server gescheitert. Bitte sehen Sie im Meldungsfenster nach weiteren Informationen.

Ich hoffe ihr könnte mir wieder dabei helfen, Gruß Max


Edit :
Ich habe :

dpkg-reconfigure jackd
ausgeführt und Echtzeitproritäten aktiviert, die Fehlermeldung bleibt aber leider gleich.

hotzpotz
09.02.11, 17:59
Wenn du jackd2 genommen hast, dann brauchst du die limits.conf nicht mehr editieren, dafür gibt es die limits.d/audio.conf, die jackd2 automatisch mit den richtigen Werten anlegt.

Du mußt dich nur noch mal kurz aus- und einloggen, damit die neuen Gruppenberechtigungen neu eingelesen werden.

Das Problem mit dem verschiedenen Soundquellen ist bekannt, daher gibt es den jack Treiber, der auch noch gute Latenz bringt.

gropiuskalle
10.02.11, 18:57
Du mußt dich nur noch mal kurz aus- und einloggen, damit die neuen Gruppenberechtigungen neu eingelesen werden.

Und diese Zugehörigkeiten würde ich auch mal überprüfen:


groups

Für mich sieht es jedenfalls so aus, als ob diese Zuordnung nicht hinhaut und die Prios deshalb gleich bleiben.

Max10110
11.02.11, 11:55
Vielen Dank für die Antworten !
Nach einem Neustart klappte alles ohne Probleme, es lag also daran.

Ich hab nur jackd (also nicht jackd2, was es ,jedenfalls im Softwarecenter, gar nicht gibt. Liegt vllt daran, dass ich Lucid Lynx benutze ? ), musste also die Sachen doch in die limits.conf eintragen.

Falls es Leute geben sollte, die vor dem gleichen Problem stehen wie ich, hier mein Vorgehen (d.h. alle Hilfen von hier zusammengefasst^^) :

Ich habe jackd, runtergeladen, installiert, dann bei /etc/security/ die limits.conf um :


@audio - rtprio 90
@audio - nice -5
@audio - memlock 750000

erweitert.
Ich habe dann in der Konsole :


sudo usermod -a -G audio x

('x' ist mein Benutzername) eingegeben und neugestartet.
Evtl. ist noch zu erwähnen, dass ich per :


dpkg-reconfigure jackd

die Echtzeitprioritäten aktiviert habe. Ich weiß nicht inwieweit das zur Lösung des Problems beigetragen hat ( waren vllt schon aktiviert oder so...)

Meine Probleme sind gelöst (jedenfalls sind noch keine weiteren aufgetreten^^).

Ich bedanke mich herzlich für die Hilfe hier !

Gruß Max