PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Latenz-Problem bei Aufnahme mit Midi



farion
12.01.06, 00:05
Hallo

Meine Konfiguration:
Soundblaster live Value
kernel 2.6.15 (mit ck-patches) (alsa)
original sounblaster soundfont (8mbgmsfx.sf2)
jack 0.99.0
Rosegarden4 1.0
Line6POD
AMD Athlon 2400+ mit 2gb DDR

Das Problem:
Ich baue mir in Rosegarden4 eine Drumloop zusammen, das hört sich dann auch per midi ganz gut an. Wenn ich jetzt allerdings meinen Pod mit Gitarre an den Mikrofoneingang stecke und zur Drumloop aufnehme ist die Gitarre nicht syncron zur Midispur. (also wenn ich spiele ist noch alles passend, aber dann später eben nicht)
Verwende ich statt der midispur eine audiospur (wav-export aus hydrogen) ist alles inTime.

Bringt dieser Realtime oder lsm patch evtl. was?

Gruss farion

PS: Kennt jemand ein Programm wie hydrogen, nur für Bassloops?

alterpinguin
12.01.06, 10:54
Latenz (was ist das genau bei Dir?) tritt immer bei dem Versuch verschiedene Quellen gleichzeitig(?) aufzunehmen auf. Deshalb wird normalerweise jede Quelle separat aufgezeichnet und nachträglich zusammengemixt, mit einer für jede Quelle anderen Startzeit (schon mal was von Klappe bei Videoaufnahmen gehört?).
.
Also, zuerst richtig Aufschlüsseln(Aufschreiben?) was Du machst, welche Wege die Töne(Schallwellen, Umwandlung in Digital, Umweg über Programme, Filter, Umwandlung in Analog/Digital, Ausgabe auf Verstärker, Umwandlung in Schallwellen(Lautsprecher?)), zurücklegen müssen. Das in Klammer soll nur ein Hinweis sein, wie passiert es bei Dir?
.
Schonmal die Latenz angehört wenn Du die Mikrofoneingabe direkt wieder über den Rechner auf die Lautsprecher ausgibst? Ist normalweiser deutlich zu hören (wie ein Echo).

corresponder
12.01.06, 11:18
ich hab das gleiche problem mit ner soundblaster live.
die creative karten taugen halt für musik machen nicht wirklich.
warscheinlich kauf ich mir eine m-audio mit 24/96 technik und envy24 chip, die lachen.

(http://www.audio4linux.de/forum/viewtopic.php?t=262)

gruss

c.

schwarzbarde
12.01.06, 12:27
Hallo,
ich habe
viele Probleme

Hm, erstmal, mit was für 'nem Programm nimmst Du auf? Lässt Du auch alles brav über den Jack-Soundserver laufen? Weil der ist für sowas ausgelegt und sollte dann später die Aufnahme auch richtig zusammenmixen können.

Versuche Rosegarden mit aktiviertem Jack zu starten.

Für die Bassloops könntest Du doch Rosegarden benutzen. Es gibt massenweise gute Bass-Soundfonts, die Du z.B. per fluidsynth mit Rosegarden verbinden könntest. Das würde auch als Brücke von Midi-> Jack dienen, da Jack pur noch keine Midispuren verarbeiten kann. Aber wenn Fluidsynth benutzt wird, kann man selbiges per Jack nutzen und die Alsa-Midi-Spur dann per Rosegarden an das fluidsynth (ist im Grunde eine emulierte Wavetable) weiterleiten und damit dürfte bei richtiger Konfiguration alles in-time sein.

Aber hier gilt wie immer: Ausprobieren! Ist ja schliesslich Linux ;)

farion
13.01.06, 00:06
@schwarzbarde

Hallo,
ich habe
viele Probleme

Mhh das habe ich nicht geschrieben, stattdessen habe ich Folgendes geschrieben.


jack 0.99.0
Rosegarden4 1.0

Rosegarden startet Jack und lädt auch den Soundfont automatisch beim Start (habe ich so eingestellt)

Da mein Aufnehmvorgang aber wohl nicht so angekommen ist beschreibe ich den nochmal ausführlich.

Verkabelung:

Gitarre steckt im POD. POD steckt im Mikrofoneingang der Soundkarte.
Kopfhörer steckt am Ausgang der Soundkarte.

Ich mache in Rosegarden folgendes:
Ich erstelle eine Midi-Drum-Spur.
Nun nehme ich den Mikrofoneingang auf eine andere Audiospur auf.
Während der Aufnahme wird natürlich die Drumspur abgespielt ausserdem kann ich das hören was ich gerade spiele (beides kommt aus den Kopfhörern und ist syncron)
Wenn ich mit der Aufnahme fertig bin und die beiden Spuren nun zusammen abspiele sind diese jedoch nicht syncron.

Verwende ich statt der midi-drum-spur eine audiospur (hydrogen-wav-export) gibt es dieses Problem nicht.

Meine Vermuntung:
Der Midi-Output kommt verspätet in den Kopfhörern an, so dass ich dann auch verspätet spiele.

@alterpinguin
Wenn ich einfach nur den POD anschliesse und den Mikroeingang auf die Boxen ausgebe habe ich keine Latenz (zumindest keine Hörbare), das ist wie wenn ich direkt über einen normalen Gitarrenverstärker spiele und wie gesagt, mit Audio-Drum-Spur klappts ja auch.

Ich hoffe, das hat alle Unklarheiten beseitigt.

bye far

PS:fluidsynth probiere ich mal aus.

Gimpel
13.01.06, 00:47
2.6.15-ck1 hat ein paar probs - und zwar mit dynticks. hast du das etwa aktiviert? (wenn ja - böser fehler für audio stuff atm). Und wenn schon -ck, verwendest du auch die SCHED_ISO um die soft rt prio für audio zu erhöhen?

so eine sb live ist zwar für recording echt ein unqualifiziertes stück hardware, aber derartige probs sollte sie dann doch auch wieder nich machen. also kann mir nicht vorstellen dass es nur an der karte liegt. wobei dir hier aber die anschaffung einer ordentlichen karte schon mal sehr ans herz gelegt sei. ne m-audio audiophile 24/96 gibts neu für ~85€. bei ebay ab und an mal für ~60

daher mein verdacht dass dein kernel falsch konfiguriert ist. dynticks in -ck, usb mouse HID polling und ACPI sind da ein paar so übeltäter. auch sollte man die kernel timer frequency auf 1000hz stellen. aber das sollte in -ck eh per default der fall sein

schwarzbarde
13.01.06, 01:11
@schwarzbarde


Mhh das habe ich nicht geschrieben, stattdessen habe ich Folgendes geschrieben.


Sorry, wollte Dir damit nicht auffen Schlips treten, habe dein Quote nur etwas abekürzt, da ich es nicht mag, wenn manchmal seitenweise gequotet wird.
Weiterhin viel Glück mit deinem Problem. Ich konnte es auf ähnliche Weise bisher nicht reproduzieren.


ne m-audio audiophile 24/96 gibts neu für ~85€. bei ebay ab und an mal für ~60


Na den Tip werde ich doch einmal beherzigen. Bin für meine Zwecke zwar mit der SBLive zufrieden, aber die Audiophile scheint ja ein wenig besser zu sein.
In erster Linie hätte ich halt gerne 24 Bit. Hm, einige Audigys schaffen das ja auch. Taugen die evtl. auch ähnlich viel wie die M-Audio?

Gimpel
13.01.06, 03:04
Na den Tip werde ich doch einmal beherzigen. Bin für meine Zwecke zwar mit der SBLive zufrieden, aber die Audiophile scheint ja ein wenig besser zu sein.
In erster Linie hätte ich halt gerne 24 Bit. Hm, einige Audigys schaffen das ja auch. Taugen die evtl. auch ähnlich viel wie die M-Audio?

wird jetzt zwar zum OT im thread hier, aber..
für das geld bekommst du nichts besseres - die karte ist für den preis der absolute hammer. da ist kein schnickschnack drauf verbaut, vergoldete chinch analog I/Os, der gute envy24 chip, latenz auf nem -ck kernel so bei konstannten ~7-8 ms mit MuSE + hydrogen + 2-3 VSTs - mit nem -rt sicher noch näher an die von m-audio angegebenen 4ms

hab noch eine ESI juli@ zum testen da, und muss sagen dass zumindest mit meiner monitore/boxen/kabel combo die m-audio besser klingt, und die juli@ ist für ca 120€ auf markt. also noch ein punkt für die m-audio

allgemein ist creative eher consumer class für multimedia/gamer einsatz (und da super gut), aber profi karten aus dem hause creative heißen EMU, und m-audio gehört auch eindeutig in die pro schiene. solche karten machen als musiker schon mehr schbass ;)

bei den 24bit audigys wäre ich SEHR vorsichtig, denn soweit ich weiß laufen die mit ca0106 chip, und das ist minderwertiger schrott! hatte mal das vergnügen mit einer sb live! 24bit... auha war die schnell wieder ausgebaut...

alterpinguin
13.01.06, 11:52
wird. Bei der Wiedergabe (gitarre->Eingang->Boxen) wird bestimmt nur der Eingang vom Mixer auf den Ausgang weitergegeben. Wenn Du das aber Aufnehmen willst, dann muß der Rechner(die Soundkarte) den Eingang digitalisieren. Damit kommt immer eine größere Latenz rein und Du hast auch nicht gesagt, welche Spur verzögert ist? Die Gitarre oder MidiDrums? Was Du scheinbar testest ist, Du startest die Drums und spielst dazu und weil beides aus den gleichen Lautsprechern kommt, denkst Du das läuft zeitgeich ab. Der Weg des MidiDrum-Geräuschs ist aber bestimmt zeitlich länger im Vergleich zum Gitarrenausgang, der per Mixer direkt auf den Verstärker geht. Wenn Du etwas Aufnehmen willst, dann mußt Du den Line-Ausgang vom Verstärker(an dem die Boxen hängen) aufnehmen, damit umgehst Du sämtliche internen Laufzeitunterschiede. Oder eben die Quellen separat aufnehmen und per Hand den Start der Spuren anpassen.

farion
15.01.06, 22:44
@Gimpel
Dynamic Tick Timer ist deaktiviert
Timer frequency = 1000Hz
Als IOScheduler verwende ich CFQ, falls du das meintest
USB Human Interface Device ist aktiviert
HID input layer ist aktiviert
/dev/hiddev raw HID device ist aktiviert
ACPI mit folgendem (Sleep/AC/Button/Video/Fan/Processor/ThermalZone)
Was soll ich da ändern? :confused:

Die Soundblaster ist schon recht betagt, ich könnte schon mal eine neue kaufen.

@alterpinguin
Wenn ich das so mache, wie du das vorschlägst, habe ich ja alles auf einer Spur. Das sollte schon funktionieren, dass die Latenz so gering ist, dass man dazu aufnehmen kann (das Problem ist ja auch nur bei Midi vorhanden)

alterpinguin
17.01.06, 09:56
die auf Grund des scheduling der vielen scheinbar zur gleichen Zeit laufenden Prozesse auftritt. Normalerweise wird unter Latenz die Verzögerung verstanden, die unterschiedlich (mal mehr mal weniger und zwar dauernd, also extrem bei einem Ton/Geräuschereignis, es eiert) auftritt, wenn ein Ton erzeugt, oder eben aufgenommen werden soll. Es ist aber was anderes wenn ein gepufferter Stream verarbeitet wird. Wie groß ist denn die Verzögerung wenn Du einen Midi-Ton per Tastatur spielst, vom Tastendruck, bis der Ton zu hören ist? Wenn das in etwa mit Deiner Verzögerung bei der Aufnahme übereinstimmt, dann sollte Dir klar sein woher die Verzögerung bei der Aufnahme kommt. Es ist ein Unterschied ob Du per Tastatur Midi-Töne erzeugst oder per Programmschleife. Per Programmschleife kann es sogar sein, daß es gar keine Latenzprobleme gibt, wenn das Programm nicht auf Zeit(Tastatur)ereignis für einen Ton abwartet, sondern einfach einen Puffer mit entsprechenend PCM-Daten für z.B. eine Sekunde im voraus füllt um diesen Puffer dann von der Soundkarte ausgeben zu lassen, während das Programm wieder eine ganze Sekunde Zeit hat den nächsten Puffer zu füllen. Dabei wird von dem Programm der Midi-Ton nicht nach einem Zeitereigniss (z.B. um 8:00 Uhr Gongschlag) sondern einfach nach der Zeitabfolge so in den Puffer geschrieben(schnell, auf einmal), daß beim Abspielen die Reihenfolge und zeitliche Verzögerung stimmt.