Jack'in Nabız'dan daha hızlı olduğu ve gecikme süresinin daha az olduğu bir sürü iddia görüyorum. Bu nasıl? Neden Pulse kendine hafif diyor, Jack beyleri de buna yağ diyor? Birisi bu iki daemonun içini bir meslekten mahrum edebilir mi?
Jack'in Nabız'dan daha hızlı olduğu ve gecikme süresinin daha az olduğu bir sürü iddia görüyorum. Bu nasıl? Neden Pulse kendine hafif diyor, Jack beyleri de buna yağ diyor? Birisi bu iki daemonun içini bir meslekten mahrum edebilir mi?
Yanıtlar:
Jack , makinenizi olası en düşük işlem gecikme süresini belirlemek üzere sunucuyu yapılandırmak için size - bilgili kullanıcı gerektirir . (İşlem gecikmesi, sunucunun verileri istemci uygulamalarına / uygulamalardan taşımasına ve ardından sistemin dışındaki ses örneklerinin bir sonraki "öbeğini" almasına / göndermesine kadar geçen zamandır.) Jack, söz konusu ses verilerini zamanında ya da teslim eder. başarısız olur ve size tampon altını verir (bazen "bırakma" olarak adlandırılır veya açılır ve tıklar).). Jack sürekli altüst olursa, ya farklı ayarlarla sunucuyu yeniden başlatmak ya da daha verimli hale getirmek için istemci uygulamalarınızda bir şeyleri değiştirmek sizin işinizle sonuçlandırır. Sunucu ayarlarınız tüm istemciler için aynı şekilde uygulandığından, Jack, sesi birden fazla ses uygulaması arasında yönlendirmek ve öngörülebilir sonuçlar almak için oldukça kullanışlıdır . (Yani, "jakları" çeşitli ses bileşenlerine takmak gibidir.)
Darbe, sunucunun sistemin dışına ses göndermek / almak için bir son teslim tarihine uymaması nedeniyle sesin düşme sayısını en aza indirecek şekilde tasarlanmıştır. Görünüşe göre düşük işlem gecikmesi talep etmeyen istemci uygulamaları için büyük bir tampon seçerek , daha sonra son tarihi olan istemciler uygulamaları için örnekleri bu tampona "enjekte" ederek çalışır. Son başvuru tarihini kaçırdığı ve yetersiz kalmasına neden olacak kadar kısa sürede numuneleri enjekte etmeye çalışırsa, Pulse bir istemcinin sunucuya ses güncellemesi göndermesine izin verecek en kısa süreyi otomatik olarak artıracaktır. Darbeli dokümanlar açıkça çok düşük gecikme süresi olduğunu söylüyorlar - örneğin, 10 ms'den az işlem gecikmesi süresi- tasarım amacı değil. Linux'un kendisi (ve muhtemelen donanımınız) sesin gerçek zamanlı olarak programlanması için tasarlanmadığı için, onlara inanmaya hazırım.
Kullanıcı konfigürasyonu açısından, Pulse "hafif" tir. (Birisi Pulse'nin düşük konfigürasyon gecikmesine sahip olduğunu söyleyebiliriz , ne yazık ki birçok Linux Ses uygulamasının görünüşte ihmal ettiği bir şey.) Jack'e kıyasla altında yatan karmaşıklığı açısından, Pulse "yağ" dır.
Hangisinin daha hızlı olduğu konusunda kesin bir cevap almak için, sadece bir geridöngü aygıtı edinmeniz ve gerçeği bilmek için kendi sisteminizdeki gidiş-dönüş gecikmesini ölçmeniz yeterlidir. Gidiş-dönüş gecikmesi , sisteminizin sesi işlemesi ve sisteme geri işlediği şeyi alma süresidir. Linux altında bunun nasıl yapılacağını açıklayan çevrimiçi öğreticiler var. Bu size gerçekte neyin peşinde olduğunuzla ilgili bir fikir verecektir, ki bu algılanan gecikmedir - bir olayı tetiklediğiniz andan itibaren (örneğin bir gitarın tellerini tökezleyerek) ilk sesini duyduğunuz ana kadar geçen süre bu sonuç verir (örneğin, gitar akorunu duymak).
Son olarak, hem Pulse hem de Jack'in çoğu GNU / Linux dağıtımında ALSA'nın üstüne oturduğunu unutmayın. Sadece Jack'e karşı Nabız'ı sorduğunu biliyorum. Ancak, doğrudan ALSA'ya bağlanabilen tek bir ses uygulaması kullanıyorsanız, Pulse veya Jack'i eklemenin yalnızca algılanan gecikme süresini yalnızca ALSA'dan daha düşük tutacağı düşünülemez . Bu anlamda hem Pulse hem de Jack "yağ" dır.
TLDR; Tek başına ALSA en hızlısıdır, Jack çoklu ses uygulamalarını birlikte zincirlemek için kullanışlıdır ve Pulse muhtemelen çok düşük gecikme süresi umursamadığınızda kullanımı en kolay olanıdır. Ne tür bir gecikme olduğunu açıklamaksızın gecikme terimini kullanan tüm belgeleri veya tartışmaları dikkate almayın. (Ne yazık ki, hem resmi Jack docs hem de Lennart'ın Pulse ile ilgili blog yazıları bu kategoriye girmektedir.)
Not : Tek bir ses uygulamasını kullanmak istediğiniz kenar durumlar olabilir ve crummy bir ALSA arayüzüne ve iyi bir Jack arayüzüne sahiptir. Bu durumda, Jack'i kullanmanız gecikmeyi azaltabilir. Ancak gecikmeyi en aza indirmek için tasarlanmış uygulamalardan bahsediyorsak, bu durumlar nadir olmalıdır. Ama bir geridöngü cihazı bağla ve hipotezimi test et!
Aslında ses sunucusu olmalarına benzerler . JACK , profesyonel seviye ses çözümleri için gerekli olan gerçek zamanlı / düşük gecikmeli yanıt için tasarlanmıştır. PulseAudio genel masaüstünde daha az hedeflenir (daha az katı ihtiyaçların uygulandığı). PA , JACK'den daha ağır görünmektedir - daha karmaşık olmak daha fazla ek yüke yol açar . Linux'ta her ikisi de sonunda gerçek çıktı almak için ALSA'yı kullanır . PA ile veriler genellikle ALSA'dan (uygulama çıktısı) PA'ya (işlemden) ALSA'ya (çıkış) yönlendirilir, ki bu elbette JACK-ALSA yolundan daha yavaştır. Öte yandan, yerel olarak kullanamayan uygulamalar için şeffaftır, çünkü onlara ALSA arayüzlü sanal bir ses kartı sunar.
Her durumda, müzik üretmeyi düşünmüyorsanız ya da uygulama ses kontrolü başına olmadan yaşayamıyorsanız (ya da ağ üzerinden başka bir makineye ses iletiyorsanız), sade ALSA daha az ek yük ile gayet iyi durumda olacaktır. Bazı sürücüler donanım karıştırması yapabilir ve olmasa bile, ALSA bir eklenti ile karıştırabilir (muhtemelen JACK kadar hızlı değil, ancak "normal" kullanımı iyi olmalıdır).
Jack, örneğin düşük ses seviyesi gerektiren uygulamalar içindir: müzisyenler, video yapımcıları, vb.
Darbe düzenli masaüstü uygulamaları içindir (düşük tutarsızlık beklemeyin)
alsa
ve oss
çıktı olarak kullanılabilirAlsa kullanıcı alanı katmanı (sürücüler değil) minimum yapar ([*] arasında değişkenlik)
Çoğu durumda Pulse normal masaüstü kullanıcıları için en iyi seçimdir. Jack, müzisyenler vb. İçin en iyi seçimdir.
Bu gerçekten "vs" meselesi değil. İlk bakışta ikisinin de "Ses Sunucusu" olduklarını görebiliyoruz. Bu nedenle, belki de, sadece birinin kendi aralarından seçim yapması gerektiği sonucuna varılmıştır. Konu bu değil. Örneğin, bir video kamerayı ve bir FLIR kamerayı karşılaştırın; ikisi de kameradır. Ancak, biri sadece aralarında “seçim” yapmaz. Çok farklı roller üstlenirler, bu roller iltifat olabilir, ancak hiçbir şekilde rekabet edemezler. Birinin krikoya veya birinin nabzına ihtiyacı var, yoksa ikisine de ihtiyacı olabilir. Seçim, belirli gecikme gibi özellik ekleri değil, sorun alanı tarafından belirlenir.
“FAT” a göre değil, terim gerçekten anlamlı olmak için çok fazla şekilde kullanılır. Ancak, genel olarak, FAT terimi "uygulama sizin için her şeyi yaparsa", az ya da çok kullanılır. "Hafif", muhtemelen seçeneklerden oluşan bir paletten seçerek ve gerisini atmadan, istediğiniz işlevselliği yüklemenizi sağlar. Darbe, birkaç parametre verdiğiniz ve büyük ölçüde kullandığı "büyük bir blok" programıdır. İhtiyacınız olsun veya olmasın, nabzı başlattığınızda büyük miktarda işlevsellik yüklenir. Jack, istediğinizi inşa etmek için istediğiniz sayıda eklentiye, programa, vb. Yapıştırdığınız küçük ve kendi başına işe yaramaz bir programdır. Programcılar dünyayı makine kaynaklarının yanında görme eğilimindedirler.
Yani, nabız değişken bir gecikme sunucusudur ve jak sabit gecikme süresidir. Bunlar özel problem alanları. Sadece TV izliyorsanız veya bir ağ üzerinden müzik dinliyorsanız, kesinlikle nabız olmasını istiyorsunuz. Canlı elektronik müzik çalmaya çalışıyorsanız, kesinlikle jack'e ihtiyacınız var. TV izliyorsanız ve ses yayınlarında biraz işlem yapıyorsanız, mutlaka ikisine de ihtiyacınız olacaktır.